Files
fachschaften/compiler/comp/fb.py
Andreas Stephanides 9dc49e83df fb fixes
2017-01-16 12:22:22 +01:00

52 lines
1.7 KiB
Python

from dateutil.parser import parse
from datetime import datetime
import re
import urlparse
from src.fb import graph
from facebook import GraphAPIError
import json
def fbfeedelement(h):
art={}
art["text"]=""
if h.has_key("story"):
art["text"]=art["text"]+h["story"]+"<br>"
if h.has_key("attachments") and len(h["attachments"]["data"])>0:
for a in h["attachments"]["data"]:
if a.has_key("media") and a["media"].has_key("image") and a["media"]["image"].has_key("src") and not art.has_key("image"):
art["image"]=a["media"]["image"]["src"]
if a.has_key("title"):
art["title"]=a["title"]
if a.has_key("type") and a["type"] in ["event"]:
art["url"]=a["url"]
if a.has_key("description"):
art["text"]=art["text"]+a["description"]+"<br>"
if not art.has_key("title") and h.has_key("story"):
art["title"]=h["story"]
if h.has_key("message"):
art["text"]=art["text"]+h["message"]
art["published"] =parse(h["created_time"])
if not art.has_key("url"):
art["url"]=urlparse.urlunsplit(("http","www.facebook.at",h["id"],"",""))
return art
def fbfeed(url, raw):
js = json.loads(raw)
arts=[]
u=urlparse.urlparse(url)
for m in js["data"]:
aa=fbfeedelement(m)
if not aa.has_key("title"):
aa["title"] = u[1]+ " at " + aa["published"].strftime("%Y-%m-%d %H:%M")
aa["section"]="Facebook: "+u[1]
arts.append(aa)
nx=None
if js.has_key("paging") and js["paging"].has_key("next"):
un=urlparse.urlparse(js["paging"]["next"])
nx=urlparse.urlunsplit((u[0],u[1],u[2],un[4],un[3]))
return {"url": url, "next_page": nx,"articles": arts}