Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
# vim: set fileencoding=latin-1 :
# (find-es "python" "encoding")
# This file:
# http://angg.twu.net/fbcache/p.py
# http://angg.twu.net/fbcache/p.py.html
#  (find-angg        "fbcache/p.py")
#
# Edrx:
# (defun p  () (interactive) (find-angg "fbcache/p.py"))
# (defun pu () (interactive) (find-angg "fbcache/p.py" "upload"))

# (defun pq () (interactive) (find-wget "http://sourceforge.net/p/oiler/code/ci/master/tree/esc/quick.esc?format=raw"))
# (defun pc () (interactive) (find-wget "http://sourceforge.net/p/oiler/code/ci/master/tree/esc/cmd.esc?format=raw"))

#
# Tau:
# (defun p  () (interactive) (find-fline   "/tmp/p.py"))
# (defun d  () (interactive) (find-sh "cd /tmp/ && wget -O p.py http://angg.twu.net/fbcache/p.py"))

# (find-angg ".pythonrc.py")
# (find-angg "faceutils/README")
# (find-es "python")
# (find-pyfb "")
# (find-facepy "")
# (find-faceutils "")
# (find-faceutils "get_txt")
# (find-faceutils "url.py")

# «.imports»		(to "imports")
# «.token»		(to "token")
# «.basic»		(to "basic")
# «.urls»		(to "urls")
# «.translations0»	(to "translations0")
# «.wget»		(to "wget")
# «.wrap»		(to "wrap")
# «.wrap-example»	(to "wrap-example")
# «.wrap-example-2»	(to "wrap-example-2")
# «.dooptions»		(to "dooptions")
# «.regexps»		(to "regexps")
# «.2014oct05»		(to "2014oct05")
# «.upload»		(to "upload")
# «.ep»			(to "ep")





#  ___                            _
# |_ _|_ __ ___  _ __   ___  _ __| |_ ___
#  | || '_ ` _ \| '_ \ / _ \| '__| __/ __|
#  | || | | | | | |_) | (_) | |  | |_\__ \
# |___|_| |_| |_| .__/ \___/|_|   \__|___/
#               |_|
#
# «imports» (to ".imports")
import os
import re
import pprint
import facebook
import textwrap
import subprocess

# «token» (to ".token")
# (find-angg ".pythonrc.py")
# (find-es "facebook" "explorer")
# https://developers.facebook.com/tools/explorer
token = "CAACEdEose0cBAFZAhj4dxnvKhFhUzZB4swkQAvePUWCtueM89oeBieOUh0w6Ohv4HILwfMhbZC10GZCrbLNmNDixMkjyqPyZAX75UGw8jZA4ZAogisH5ThIw4v87UnhNXhpw4W6T1Mcx0rCwZAmwkuT0tLh6LH6VxaJJelwRqL5lrqne9LXgQ2hTs16fQffl69YVNq3uR0jnC55PSceVmZAAfQeWttb6x9NYZD"
graph = facebook.GraphAPI(token)


#  ____            _
# | __ )  __ _ ___(_) ___
# |  _ \ / _` / __| |/ __|
# | |_) | (_| \__ \ | (__
# |____/ \__,_|___/_|\___|
#
# «basic» (to ".basic")

def pp(o):
  pprint.pprint(o)
def ggo(o):
  return graph.get_object(o)
def po(o):
  pp(ggo(o))

def ee_expand (fname):
  fname = re.sub("^~", os.getenv("HOME"), fname)
  fname = re.sub("^\\$([A-Za-z0-9_]+)", lambda (m): os.getenv(m.group(1)), fname)
  return fname

def readfile (fname):
  return open(ee_expand(fname)).read()
def writefile (fname, str):
  open(ee_expand(fname), "w").write(str)

def readfile_pp (fname):
  return eval(readfile(fname))
def writefile_pp (fname, obj):
  with open(ee_expand(fname), 'w') as fd:
    pprint.pprint(obj, stream=fd)
  return obj

def fb_get_from_id (id):
  return graph.get_object("/v2.1/%s" % (id))
def fb_get_from_fname_id (fname, id):
  try:    return readfile_pp(fname)
  except: return writefile_pp(fname, fb_get_from_id(id))

def fb_get_from_function_id (f, id):
  return fb_get_from_fname_id(f(id), id)
def fb_get_from_function_url (f, url):
  (fname, id) = f(url)
  return fb_get_from_fname_id(fname, id)





#             _
#  _   _ _ __| |___
# | | | | '__| / __|
# | |_| | |  | \__ \
#  \__,_|_|  |_|___/
#
# «urls» (to ".urls")
# (find-es "python" "string.gsub")
# (find-faceutilsfile "url.py" "def rep(rgx):")
# file:///usr/share/doc/python2.7/html/howto/regex.html#search-and-replace

def string_format (fmt, tuple):
  return fmt % (tuple[:fmt.count("%s")])
def string_match (str, r):
  return re.search(r, str).groups()
def string_gsub_t(str, r, tbl):
  return re.sub(r, (lambda (m): tbl[m.group(0)]), str)

letter_to_re = {
  'W':'([^/]+)',
  'N':'([0-9]+)',
  'O':'([^/&?]+)',
  'L':'([^_]+)',
  'R':'(.*)',
  '?':'\\?',
  '.':'\\.',
}
letter_to_fmt = {
  'W':'%s',
  'N':'%s',
  'O':'%s',
  'L':'%s',
  'R':'',
  '?':'?',
  '.':'.'
}

# «translations0» (to ".translations0")
# Lua version: (find-angg "fbcache/urls.lua" "translations0")
translations0 = """
  /W/photos/W/WR                      photos_L_L_L  3
  /W/posts/NR                         posts_L_L     0
  /permalink.php?story_fbid=N&set=OR  pesfs_L_L     0
  /photo.php?v=N&set=OR               photovs_L_L   0
  /photo.php?fbid=N&set=OR            photofs_L_L   0
  /photo.php?v=NR                     photov_L      0
  /permalink.php?story_fbid=N&id=NR   pesfi_L_L     1
  /pages/W/NR                         pages_L_L     0
  /notes/W/W/NR                       notes_L_L_L   0
  /media/set/?set=OR                  media_L       0
  /W/media_set?set=OR                 media0_L_L    0
  /groups/W/permalink/N/R             grpe_L_L      2
  /events/W/permalink/N/R             evpe_L_L      2
  /events/N/N/R                       ev2_L_L       0
  /events/N/R                         ev1_L         0
"""
translations0_re = "([!-~]+)[ \t]+([!-~]+)[ \t]+([!-~]+)"
translations1    = re.findall(translations0_re, translations0)

def abc_to_tr (a, b, c):
  f_re  = lambda (str): string_gsub_t(str, "[WNORL?.]", letter_to_re)
  f_fmt = lambda (str): string_gsub_t(str, "[WNORL?.]", letter_to_fmt)
  f     = lambda (str): ("^" + f_re(str) + "$", f_fmt(str))
  ha    = "https://www.facebook.com" + a
  return (f(ha), f(b), int(c))

translations2 = []
for (a, b, c) in translations1: translations2.append(abc_to_tr(a, b, c))

def translations_which (str, j):
  for i in range(0, len(translations2)):
    try:
      rgx   = translations2[i][j][0]
      parts = string_match(str, rgx)
      return (i, parts)
    except: pass

def url_to_fname (url):
  (i, parts) = translations_which(url, 0)
  fmt = translations2[i][1][1]
  return string_format(fmt, parts)
def fname_to_url (fname):
  (i, parts) = translations_which(fname, 1)
  fmt = translations2[i][0][1]
  return string_format(fmt, parts)


def url_to_iparts (url):
  return translations_which(url, 0)
def iparts_to_id (iparts):
  (i, parts) = iparts
  whichpart = translations2[i][2]
  if whichpart > 0:
    return parts[whichpart - 1]

# This is very high-level stuff! Beware!
def url_to_iobj (url):
  (i, pairts) = url_to_iparts(url)
  id = iparts_to_id((i, pairts))
  fname = "~/fbcache/cache_by_id/" + id
  return (i, fb_get_from_fname_id(fname, id))

# def f_t (id):
#   return "/tmp/"+id
# def fi (id):
#   return fb_get_from_function_id(f_t, id)





def fb_urls_from_string (bigstr):
  return re.findall("(http[!-~]+)", bigstr)
def fb_urls_from (fname):
  return fb_urls_from_string(readfile(fname))
def cache_urls (urls_list):
  for url in urls_list:
    try:
      obj = url_to_iobj(url)
      print(url)
    except: pass

# (find-sh "grep www.facebook.com ~/TODO | sort | tee /tmp/of")
# (find-fline "/tmp/of")

# Experimental

urls_lst = re.findall("(http[!-~]+)", readfile("urls.lst"))
def urls_of_kind (kind):
  for url in urls_lst:
    try:
      (i, parts) = translations_which(url, 0)
      if i == kind:
        print url
        print parts
    except: pass

"""
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
execfile("p.py", globals())
url1 = "https://www.facebook.com/RioNaRua/posts/1512975565581359"
fname1 = 'posts_RioNaRua_1512975565581359'
url_to_fname(url1)
fname_to_url(fname1)

cache_urls(fb_urls_from("urls.lst"))
cache_urls(fb_urls_from("~/TH/ee.blogme"))
cache_urls(fb_urls_from("~/TH/links-sobre-gaza.blogme"))
cache_urls(fb_urls_from("/tmp/of"))
# (find-fline "~/TH/ee.blogme")
# (find-fline "~/fbcache/cache_by_id/")




url2 = "https://www.facebook.com/617121238319221/photos/a.617156974982314.1073741828.617121238319221/791252907572719/?type=1"
# **********
pp(url_to_iparts(url2))
pp(url_to_iobj(url2))
# (find-fline "~/fbcache/cache_by_id/")

for url in urls_lst:
  try:
    obj = url_to_iobj(url)
    print(url)
  except: pass


ee_expand("~/fbcache/cache_by_id/791252907572719")

for url in urls_lst:
  print translations_which(url, 0)

urls_of_kind(0)
pp(fi("587541661354935"))

# urls_of_kind(1)
# pp(fi("925993824083710"))
# pp(fi("767290823334891"))

# urls_of_kind(2)
# urls_of_kind(3)

# urls_of_kind(4)
# pp(fi("100000506804612"))
# pp(fi("114698335223726"))
# pp(fi("900630653297153"))

urls_of_kind(5)
urls_of_kind(6)
pp(fi("921476867869306"))    # content
pp(fi("347772661906399"))    # something else

urls_of_kind(7)
urls_of_kind(8)
urls_of_kind(9)
pp(fi("274406112761308"))    # content (but link redirects to media/set)
pp(fi("1073741828"))         # error
pp(fi("274323649436221"))    # something else

urls_of_kind(10)
urls_of_kind(11)
pp(fi("741666739234537"))    # works

urls_of_kind(12)
pp(fi("363189927163010"))    # description (doesn't have a link)
pp(fi("366157006866302"))    # top post (doesn't have a link to the event)

# https://www.facebook.com/events/321541207970578/permalink/322758714515494/
# ('321541207970578', '322758714515494', '')
pp(fi("321541207970578"))
pp(fi("322758714515494"))
pp(fi(""))


pp(fi("230472160479780"))
pp(fi("277828559039269"))

urls_of_kind(13)
urls_of_kind(14)



pp(fi(""))






"""



#                     _   
# __      ____ _  ___| |_ 
# \ \ /\ / / _` |/ _ \ __|
#  \ V  V / (_| |  __/ |_ 
#   \_/\_/ \__, |\___|\__|
#          |___/          
#
# «wget» (to ".wget")
# file:///usr/share/doc/python2.7/html/library/subprocess.html

fb_wget_user_agent = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.3) Gecko/20070310 Iceweasel/2.0.0.3 (Debian-2.0.0.3-1)"
def wget_cmd (fname, url):
  return ['wget', '--progress=dot', '-U', fb_wget_user_agent,
    '-O', fname, url]

def wget_from_fname_url (fname, url):
  try:
    return readfile(fname)
  except:
    subprocess.call(wget_cmd(fname, url))
    return readfile(fname)

def fb_wget_fname0 (url):
  return ee_expand("~/fbcache/cache_wget/" + url_to_fname(url))
def fb_wget_clear (url):
  subprocess.call(["rm", "-fv", fb_wget_fname0(url)])
def fb_wget_url (url):
  return wget_from_fname_url(fb_wget_fname0(url), url)



"""
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
* (find-sh0 "rm -v /tmp/o")
execfile("p.py", globals())
url = 'http://angg.twu.net/.cshrc'
content = wget_from_fname_url('/tmp/o', url)
len(content)
content = wget_from_fname_url('/tmp/o', url)
len(content)
print content


* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
execfile("p.py", globals())
url = 'https://www.facebook.com/augusto.lima.9849/posts/307609159410432'
url = 'https://www.facebook.com/AdvogadosAtivistas/posts/659720537431177'
fb_wget_fname0(url)
fb_wget_clear(url)
len(fb_wget_url(url))
len(fb_wget_url(url))

# (find-fline "~/fbcache/cache_wget/")

"""


"""
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
execfile("p.py", globals())
pp(translations2)

"""



#                     _
# __      ____ _  ___| |_
# \ \ /\ / / _` |/ _ \ __|
#  \ V  V / (_| |  __/ |_
#   \_/\_/ \__, |\___|\__|
#          |___/
#
# «wget» (to ".wget")
# (find-anggfile "fbcache/urls.lua" "fb_wget =")


#             _   _          _            _
#  _   _ _ __| | | |_ ___   | |_ _____  _| |_
# | | | | '__| | | __/ _ \  | __/ _ \ \/ / __|
# | |_| | |  | | | || (_) | | ||  __/>  <| |_
#  \__,_|_|  |_|  \__\___/   \__\___/_/\_\\__|
#
# (find-faceutilsfile "faceutils.py")
# From: (find-faceutilsfile "get_txt" "= facebook.GraphAPI(opt.token)")
# By Tau. Uses a heuristic, and is slow
def url_to_text (url):
  graph    = facebook.GraphAPI(token)
  obj_list = get_object(graph, opt.url)
  data     = ''
  for o in obj_list:
    data  = '%s\n\n%s' % (data, get_obj_text(o))
  return data




# (find-THfile "2011-meios-e-fins.blogme")
emma = """
  It is at once the great failure and the great tragedy of the
  Russian Revolution that it attempted (in the leadership of the
  ruling political party) to change only institutions and conditions
  while ignoring entirely the human and social values involved in the
  Revolution. Worse yet, in its mad passion for power, the Communist
  State even sought to strengthen and deepen the very ideas and
  conceptions which the Revolution had come to destroy. It supported
  and encouraged all the worst anti-social qualities and
  systematically destroyed the already awakened conception of the new
  revolutionary values. The sense of justice and equality, the love of
  liberty and of human brotherhood -- these fundamentals of the real
  regeneration of society -- the Communist State suppressed to the
  point of extermination. Man's instinctive sense of equity was
  branded as weak sentimentality; human dignity and liberty became a
  bourgeois superstition; the sanctity of life, which is the very
  essence of social reconstruction, was condemned as un-revolutionary,
  almost counter-revolutionary. This fearful perversion of fundamental
  values bore within itself the seed of destruction. With the
  conception that the Revolution was only a means of securing
  political power, it was inevitable that all revolutionary values
  should be subordinated to the needs of the Socialist State; indeed,
  exploited to further the security of the newly acquired governmental
  power. "Reasons of State," masked as the "interests of the
  Revolution and of the People," became the sole criterion of action,
  even of feeling. Violence, the tragic inevitability of revolutionary
  upheavals, became an established custom, a habit, and was presently
  enthroned as the most powerful and "ideal" institution. Did not
  Zinoviev himself canonize Dzerzhinsky, the head of the bloody
  Tcheka, as the "saint of the Revolution"? Were not the greatest
  public honours paid by the State to Uritsky, the founder and
  sadistic chief of the Petrograd Tcheka?
       
  This perversion of the ethical values soon crystallized into the
  all-dominating slogan of the Communist Party: THE END JUSTIFIES ALL
  MEANS. Similarly in the past the Inquisition and the Jesuits adopted
  this motto and subordinated to it all morality. It avenged itself
  upon the Jesuits as it did upon the Russian Revolution. In the wake
  of this slogan followed lying, deceit, hypocrisy and treachery,
  murder, open and secret. It should be of utmost interest to students
  of social psychology that two movements as widely separated in time
  and ideas as Jesuitism and Bolshevism reached exactly similar
  results in the evolution of the principle that the end justifies all
  means. The historic parallel, almost entirely ignored so far,
  contains a most important lesson for all coming revolutions and for
  the whole future of mankind.
"""



#                           
# __      ___ __ __ _ _ __  
# \ \ /\ / / '__/ _` | '_ \ 
#  \ V  V /| | | (_| | |_) |
#   \_/\_/ |_|  \__,_| .__/ 
#                    |_|    
# «wrap» (to ".wrap")
# (find-es "python" "faceutils-wrap")
# file:///usr/share/doc/python2.7/html/library/textwrap.html
# file:///usr/share/doc/python2.7/html/library/textwrap.html#textwrap.wrap
# file:///usr/share/doc/python2.7/html/library/stdtypes.html#str.join
# file:///usr/share/doc/python2.7/html/library/stdtypes.html#str.split

def mydecode (str):
  return str.decode('string-escape')

def string_gsub_f(str, r, f):
  return re.sub(r, f, str)

def myrecode (str):
  return str.encode('latin-1')
def mywrap1 (str):
  return "\n".join(textwrap.wrap(str, 69))
def mywrap (str):
  f = lambda (m): mywrap1(myrecode(m.group(0))) + "\n"
  return string_gsub_f(str, "[^\n]+", f)



"""
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
# (find-eevrc ".pythonrc.py")
execfile("p.py", globals())

str = "foo\nbar\nplic"
mywrap(str)

mywrap1(str)

string_gsub_f(str, "[^\n]+", lambda (m): "<" + m.group(0) + ">")


pp(mywrap0(emma))
print mywrap(emma)

# (find-fline "~/fbcache/cache_by_id/141539566016667")
# (find-fline      "/tmp/cache_by_id/141539566016667")
fname =       "~/fbcache/cache_by_id/141539566016667"
fname =            "/tmp/cache_by_id/141539566016667"
o = readfile_pp(fname)
o['name']
print o['name']
print o['name'].encode('latin-1')
print o['name'].encode('latin-1').encode('latin-1')

print mywrap(o['name'])

print o['name'].encode('latin-1')
mydecode(o['name'])

# o['name']
# print o['name']






# «wrap-example» (to ".wrap-example")

Original:

Vou esclarecer pela ultima vez os fatos recentes, mas antes... Gente! 50 mil likes!!! <3 

Estão me criticando por ter rebatido o preconceito de uma pessoa que supostamente tem 13 anos.
Estão defendendo uma agressora por causa de determinações biológicas (Ela - "Mulher de verdade" Eu - "Mulher de mentira" devo ficar calada quando vierem me esculhambar, não é mesmo?)
Estão dizendo que eu fui misógina.
E eu vou explicar tudo pra vocês.

1 - Facebook não é local pra crianças (Não tenho como adivinhar a idade da pessoa pela foto).
2 - Eu não abro e nem tenho tempo pra abrir o perfil de quem me manda mensagem de ódio.
3 - Como vocês sabem, a maioria das pessoas que me mandam mensagens de ódio são fakes, pensei que ela era fake devido ao sobrenome (Totalmente compreensível!).
4 - Se ela própria acha que o que a faz mulher é menstruar, ter vagina e filhos (E que isso tudo a faz superior a outro ser humano - Pasme! Eu! Então ela vai ter um choque de realidade! Porque ser mulher é uma construção psicossocial). As mulheres que não podem menstruar ou não podem ter filhos viram automaticamente homens? Tenho que avisar isso a minha mãe, ela acaba de virar "meu pai"! 
5 - Eu não tenho sangue de barata pra ouvir provocação e não rebater.
6 - Eu não fui até o perfil dela, ela veio, procurou... E achou o que queria! ^_^ 
7 - A gíria "Rapariga! Vou lacrar o cu das inimigas" Ou "Rapariga! Vou rasgar o cu das inimigas" são bordões lbgt's que eu usei com um seguidor, em momento algum me dirigi a ela dessa forma. Então avisem também a RomaGaga que ela está promovendo o estupro, já que querem ser tão desonestas... Que sejam coerentes ao menos.
8 - Estão dizendo que meninas de 13 anos não podem ser transfóbicas, bom... Ela pareceu BASTANTE transfóbica pra mim.
9 - Se ela quiser me processar, peço que me mande uma mensagem privada onde o meu endereço e dados serão disponibilizados, espero uma retribuição do favor - Já que eu tenho o gênero feminino de acordo com o estado, e quem for contra esse fato está me causando constrangimento. Atitude passível de indenização.
10 - Todas as pessoas que de alguma forma apoiaram as TERFS (Feministas Radicais Transfóbicas) foram banidas, sabe porque? Porque aqui NÃO É UMA DEMOCRACIA BABY.

Agora eu começo a entender porque eu tenho amigas Trans que se distanciaram do movimento feminista. É a agressão que mais dói. Porque de homem eu tô acostumada, agora "fogo-amigo" é um outro nível!




# «wrap-example-2» (to ".wrap-example-2")
Quando a gente roda "foo 141539566016667" ele deve mandar isto aqui
pro stdout:


Vou esclarecer pela ultima vez os fatos recentes, mas antes... Gente!
50 mil likes!!! <3


Estão me criticando por ter rebatido o preconceito de uma pessoa
que supostamente tem 13 anos.

Estão defendendo uma agressora por causa de determinações
biológicas (Ela - "Mulher de verdade" Eu - "Mulher de mentira" devo
ficar calada quando vierem me esculhambar, não é mesmo?)

Estão dizendo que eu fui misógina.

E eu vou explicar tudo pra vocês.


1 - Facebook não é local pra crianças (Não tenho como
adivinhar a idade da pessoa pela foto).

2 - Eu não abro e nem tenho tempo pra abrir o perfil de quem me
manda mensagem de ódio.

3 - Como vocês sabem, a maioria das pessoas que me mandam mensagens
de ódio são fakes, pensei que ela era fake devido ao sobrenome
(Totalmente compreensível!).

4 - Se ela própria acha que o que a faz mulher é menstruar, ter
vagina e filhos (E que isso tudo a faz superior a outro ser humano -
Pasme! Eu! Então ela vai ter um choque de realidade! Porque ser
mulher é uma construção psicossocial). As mulheres que não
podem menstruar ou não podem ter filhos viram automaticamente
homens? Tenho que avisar isso a minha mãe, ela acaba de virar "meu
pai"!

5 - Eu não tenho sangue de barata pra ouvir provocação e
não rebater.

6 - Eu não fui até o perfil dela, ela veio, procurou... E achou
o que queria! ^_^

7 - A gíria "Rapariga! Vou lacrar o cu das inimigas" Ou "Rapariga!
Vou rasgar o cu das inimigas" são bordões lbgt's que eu usei com
um seguidor, em momento algum me dirigi a ela dessa forma. Então
avisem também a RomaGaga que ela está promovendo o estupro,
já que querem ser tão desonestas... Que sejam coerentes ao
menos.

8 - Estão dizendo que meninas de 13 anos não podem ser
transfóbicas, bom... Ela pareceu BASTANTE transfóbica pra mim.

9 - Se ela quiser me processar, peço que me mande uma mensagem
privada onde o meu endereço e dados serão disponibilizados,
espero uma retribuição do favor - Já que eu tenho o gênero
feminino de acordo com o estado, e quem for contra esse fato está
me causando constrangimento. Atitude passível de indenização.

10 - Todas as pessoas que de alguma forma apoiaram as TERFS
(Feministas Radicais Transfóbicas) foram banidas, sabe porque?
Porque aqui NÃO É UMA DEMOCRACIA BABY.


Agora eu começo a entender porque eu tenho amigas Trans que se
distanciaram do movimento feminista. É a agressão que mais
dói. Porque de homem eu tô acostumada, agora "fogo-amigo" é
um outro nível!










MAX = 69
dir = "/home/edrx/usrc/faceutils-code/wget/"
fname = dir + "posts_ortelladopablo_759874930744749.wget"
post = '\n'.join(wrap(post, MAX))
post = post.decode('string-escape')
print post

"""







#      _                   _   _
#   __| | ___   ___  _ __ | |_(_) ___  _ __  ___
#  / _` |/ _ \ / _ \| '_ \| __| |/ _ \| '_ \/ __|
# | (_| | (_) | (_) | |_) | |_| | (_) | | | \__ \
#  \__,_|\___/ \___/| .__/ \__|_|\___/|_| |_|___/
#                   |_|
#
# «dooptions» (to ".dooptions")

def dooptions (args):
  if len(args) > 0:
    print args[0]
    # print "1"
    dooptions(args[1:])
  print "Done"

# def dooptions (args):
#   if len(args) == 0:
#     return
#
#   if args[0] == "-wget"
#     print "wget:", args[1]
#     return dooptions(args[2:])
#   if args[0] == "-get"
#     print "get:", args[1]
#     return dooptions(args[2:])
#   if args[0] == "-url"
#     print "url:", args[1]
#     return dooptions(args[2:])
#
#   print "Bad option: " + args[0]


"""
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
execfile("p.py", globals())
dooptions(("-wget", "foo", "-url", "uuu"))

ee_expand("~/foo")
ee_expand("$HOME/foo")
"""



# http://www.tutorialspoint.com/python/python_tuples.htm
# http://www.tutorialspoint.com/python/python_decision_making.htm
# -wget url
#  -get url
#  -url url

# -print_json
# -write_json fname
#  -read_json fname

# -print_dict
# -write_dict fname
#  -read_dict fname

# -write_html fname
#  -read_html fname

#  -get_text1
# -write_text

# -utof url
# -ftou fname



"""
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
execfile("p.py", globals())
ee_expand("~/foo")
ee_expand("$HOME/foo")
"""


"""
# «regexps» (to ".regexps")
# (find-es "python" "string.gsub")

* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
execfile("p.py", globals())

# file:///usr/share/doc/python2.7/html/library/re.html#re.MatchObject.groups
# file:///usr/share/doc/python2.7/html/library/stdtypes.html#str.count
# file:///usr/share/doc/python2.7/html/reference/executionmodel.html#naming
# file:///usr/share/doc/python2.7/html/reference/expressions.html#lambda

"""


def f_t (id):
  return "/tmp/"+id
def fi (id):
  return fb_get_from_function_id(f_t, id)

def fc (id):
  print id
  fname = "~/fbcache/cache_by_id/" + id
  try: fb_get_from_fname_id(fname, id)
  except: pass
def fcs (bigstr):
  for id in re.findall("[0-9]+", bigstr): fc(id)



"""
# «2014oct05» (to ".2014oct05")
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
* (find-sh0 "rm -v /tmp/o")
# (find-eevrc ".pythonrc.py")
execfile("p.py", globals())

pp(fi("349931288498768_356917681133462"))
pp(fi("356917681133462"))

pp(fi("753833871331289"))


fb_id = '349931288498768_356917681133462'
fb_get_from_fname_id("/tmp/o", fb_id)
fb_get_from_fname_id("/tmp/o", fb_id)

fb_get_from_function_id(f_t, fb_id)
fb_get_from_function_id(f_t, fb_id)


  return fb_get_from_fname_id(f(id), id)


o = fb_get_from_id("857183890966831")

type("foo")
type(pp)

pp(fb_get_from_id("857183890966831"))

# graph = facebook.GraphAPI(token)

req   = "/v2.1/%s" % (fb_id)
obj   = graph.get_object(req)
writefile_pp("/tmp/o", obj)
obj
readfile_pp("/tmp/o")


# (find-facepyfile "facepy/graph_api.py")

"""


"""
* (eepitch-python)
* (eepitch-kill)
* (eepitch-python)
# (find-eevrc ".pythonrc.py")
execfile("p.py", globals())
ee_expand("~/foo")
ee_expand("$LUA_INIT/foo")
os.getenv("LUA_INIT")

dooptions(("-ftou", "http://foo"))
dooptions(())

().type()
type(())
type((2, 3))

L = (10, 20, 30)
print(L)
print(L[1])
print(L[0:])
print(L[1:])
print(L[2:])
print(L[3:])
print(L.len)
print(L.length)

* (eepitch-lua51)
* (eepitch-kill)
* (eepitch-lua51)
dofile "p.py"

"""



"""
# «upload» (to ".upload")
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
makeR1 fbcache/p.py.html
Scp-np fbcache/p.py.html fbcache/p.py $TWUP/fbcache/

Scp    fbcache/p.py.html fbcache/p.py $TWUP/fbcache/
scp    fbcache/p.py.html fbcache/p.py $TWUP/fbcache/
scp -v fbcache/p.py.html fbcache/p.py $TWUP/fbcache/
# http://angg.twu.net/fbcache/p.py.html
# http://angg.twu.net/fbcache/p.py.html#wget
# http://angg.twu.net/fbcache/p.py.html#wrap
# http://angg.twu.net/fbcache/p.py.html#wrap-example-2

# «ep» (to ".ep")
# http://angg.twu.net/fbcache/p.py.html#ep
# (find-eev-intro "way 1")

{
  {
    echo '#!/bin/sh'
    echo 'cd ~/eev/ && emacs -l ./eev-readme.el /tmp/p.py'
  } > /tmp/ep
  chmod 755 /tmp/ep
}
"""




# Local Variables:
# coding: raw-text-unix
# End: