diff options
Diffstat (limited to 'feeder/diornights.py')
| -rwxr-xr-x | feeder/diornights.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/feeder/diornights.py b/feeder/diornights.py new file mode 100755 index 0000000..2c41787 --- /dev/null +++ b/feeder/diornights.py @@ -0,0 +1,72 @@ +#!/usr/bin/python + +import fb_feed +import facebook +import db + +db = db.db () + +def load_old_ids (): + sql = 'SELECT id,fbid,likes FROM dior_fb' + db.execute (sql) + rows = db.cursor.fetchall () + seen = {} + for r in rows: + seen[r[1]] = (r[2], r[0]) + return seen +def update_sql (rec, id): + if id is None: + return + sql = 'UPDATE dior_fb SET likes=%s,comments=%s WHERE id=%s' + args = (rec['likes'],rec['comments'],id) + db.execute (sql, args) +def fixunicode (x): + return x.encode('utf-8') +def insert_sql (rec): + sql = 'INSERT INTO dior_fb (fbid,date,likes,comments,authorfbid,author,link,description) VALUES(%s,%s,%s,%s,%s,%s,%s,%s)' + args = (rec['fbid'], int(rec['date']), rec['likes'], rec['comments'], rec['fromid'], fixunicode(rec['from']), rec['link'], fixunicode(rec['desc'])) + db.execute (sql, args) + +# jono = facebook.Facebook ("daytimetelevision") +jono = facebook.Facebook ("ryz") +diornights = fb_feed.FacebookGroup ('diornights', '212608092108276', '1875', 'diornights', 'diornights') + +seen = load_old_ids () + +recs = diornights.deep_report(jono) +# recs = diornights.report(jono) + +FIELDS = "datetime likes comments from linkname link desc".split(" ") + +print "DONE READING" + +out = file("/var/www/scannerjammer.com/httpdocs/diornights/site/report.html", "w") +out.write("<body><font size='-1'><table>") +for r in reversed(sorted(recs, key=lambda rec: int(rec['likes']))): + if r['fbid'] in seen: + print r['fbid'], r['from'], ">", r['linkname'], "likes =", str(r['likes']) + if int(r['likes']) > seen[r['fbid']][0]: + print r['fbid'], r['from'], "likes =", str(r['likes']) + update_sql (r, seen[r['fbid']][1]) + else: + print r['fbid'], r['from'], "NEW >", r['linkname'], "likes =", str(r['likes']) + insert_sql (r) + seen[r['fbid']] = (r['likes'], None) + + out.write("<tr>") + for field in FIELDS: + try: + int(r[field]) + out.write("<td>"+str(r[field])+"</td>") + except: + out.write("<td>") + if field == "datetime": + datetime = r[field].split("T", 1) + out.write( "<nobr>" + datetime[0] + "</nobr></td><td><nobr>" + datetime[1][0:5] + "</nobr>" ) + else: + out.write( r[field].encode('ascii', 'xmlcharrefreplace') ) + out.write("</td>") + out.write("</tr>") +out.write("</table></body>") + +print "DONE" |
