Exemplo n.º 1
0
def vote_poller(url):
    print "Starting Vote poller for ",url
    components =  get_url_components(url)
    if not components:
        print "Invalid URL : ",url
        return
    subreddit, uid, postname = components
    json_url = "http://www.reddit.com/r/%s/comments/%s.json" % (subreddit,uid)
    sr_dir,srinfo_dir = get_subreddit_dirs(subreddit)
    record_file = sr_dir + uid
    info_file = srinfo_dir + uid
    if not record_info_success(json_url,info_file):
        print "Could not Record Info! url : %s",json_url
        return
    JOBS.append(url)
    while True:
        r = reddit.make_get_request(json_url)
        rjson = json.loads(r.content)
        ups = get_ups(rjson)
        downs = get_downs(rjson)
        save_record_entry(record_file, time.time(), ups, downs)
        job_ctime = get_file_ctime(record_file)
        time_now = time.time()
        # if job created over 24 hours ago, kill it
        if time_now - job_ctime > ONEDAY:
            break
        if debug:
            print "Successfully polled ",json_url
        gevent.sleep(FIVEMINUTES) # sleep for 5 minutes
Exemplo n.º 2
0
def record_info_success(url, info_file):
    r = reddit.make_get_request(url)
    content = r.content
    rjson = json.loads(content)
    if isinstance(rjson,dict) and "error" in rjson:
        print "Request Error : ",rjson["error"]
        return False
    f = open(info_file,'w')
    f.write(content)
    f.close()
    return True
Exemplo n.º 3
0
def start_collection():
    jobs = []
    jcount = 0
    while True:
        r = reddit.make_get_request(RINDIA_NEW)
        rj = json.loads(r.content)
        for post in rj["data"]["children"]:
            permalink = "http://www.reddit.com" + post["data"]["permalink"]
            if not rrj.job_running(permalink):
                jobs += [gevent.spawn(rrj.start,permalink)]
                jcount += 1
                print "SPAWNED %d JOBS!!" % jcount
        gevent.sleep(15*60)