Created
August 9, 2015 11:32
-
-
Save mudream4869/b1a143d6c14f27cfd642 to your computer and use it in GitHub Desktop.
期末廢文大賽記分板
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
import time | |
import random | |
import json | |
import sys | |
access_token = "access_token=[APP的Token]" | |
base_url = "https://graph.facebook.com/v2.3/" | |
start_url = "https://graph.facebook.com/v2.3/832004440226215/feed/?" + access_token | |
# 832004440226215是活動id | |
def perr(ss): | |
sys.stderr.write(ss + "\n") | |
def get_like_count(id): | |
get_obj = json.loads(requests.get(base_url + id + "/likes?summary=true&" + access_token).text) | |
try: | |
return get_obj["summary"]["total_count"] | |
except: | |
perr(repr(get_obj)) | |
return 0 | |
def shorter(msg): | |
if len(msg) <= 10: | |
return msg | |
else: | |
return msg[:10] + "..." | |
def timeclear(tm): | |
ret = str(tm)[:19] | |
ret = ret[:10] + " " + ret[11:] | |
return ret | |
def resolve_msg(row): | |
try: | |
return row["message"] | |
except: | |
return "" | |
r = requests.get(start_url) | |
count = 0 | |
it_url = start_url | |
collect_data = [] | |
while(1): | |
obj = json.loads(requests.get(it_url).text) | |
#print obj | |
for row in obj["data"]: | |
new_row = { | |
"id" : row["id"], | |
"like" : get_like_count(row["id"]), | |
"time" : timeclear(row["created_time"]), | |
"cont" : shorter(resolve_msg(row)) | |
} | |
sys.stderr.write(repr(new_row) + "\n") | |
collect_data.append(new_row) | |
count += len(obj["data"]) | |
if "paging" not in obj: break | |
if "next" not in obj["paging"]: break | |
it_url = obj["paging"]["next"] | |
time.sleep(random.choice([1, 2])) | |
perr('block ok cnt = '+ str(count) + "\n") | |
collect_data.sort(key = lambda x: x["like"], reverse=True) | |
import tornado.template | |
loader = tornado.template.Loader("template路徑") | |
new_scorebroad = open("輸出路徑和檔名", "w") | |
new_scorebroad.write( | |
loader.load("templ.html").generate( | |
rows=collect_data[:10], | |
fw_count=len(collect_data) | |
) | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<head> | |
<meta charset="UTF-8" /> | |
<title> 廢文記分板 </title> | |
<!-- Latest compiled and minified CSS --> | |
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script> | |
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> | |
<!-- Optional theme --> | |
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css"> | |
<!-- Latest compiled and minified JavaScript --> | |
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> | |
<style> | |
.body_div{ | |
padding-left: 1%; | |
padding-right: 1%; | |
} | |
</style> | |
</head> | |
<body class="body_div"> | |
<div class="page-header"> | |
<h1>有點廢的廢文記分板 <small>期末神馬的爆炸吧</small></h1> | |
</div> | |
<div class="row"> | |
<div class="col-md-6 col-md-offset-3"> | |
<p class="lead">廢文總數:{{fw_count}}篇</p> | |
<table class="table table-hover"> | |
<thead> <td>發佈時間<td> 連結 </td> <td>內文 </td> <td> 讚數</td></thead> | |
{% for row in rows%} | |
<tr> | |
<td>{{row["time"]}}</td> | |
<td><a href="http://facebook.com/{{row['id']}}">廢文連結</a></td> | |
<td>{{row["cont"]}}</td> | |
<td>{{row["like"]}}</td> | |
</tr> | |
{% end %} | |
</table> | |
</div> | |
</div> | |
</body> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment