def create_map(): url = request.args.get('url', '', type=str) # Get url to scrape for reblogging information url = url if len(url) > 0 else 'http://ioncewishediwasawitch.tumblr.com/post/15710423803' # A default url for testing purposes # Scrape url for reblogging information a = PostScraper(url) if a.has_next(): (list_of_relations, num_reblogs, num_likes, next_url_to_scrape, source) = a.next() # Return reblogging information in json format list_of_relations = [{'poster': _blgr2dict(poster), 'reblogger': _blgr2dict(reblogger)} for poster, reblogger in list_of_relations] return jsonify( list_of_relations = list_of_relations, num_reblogs = num_reblogs, num_likes = num_likes, next_url_to_scrape = next_url_to_scrape, source = _blgr2dict(source))
except: #url = "http://ioncewishediwasawitch.tumblr.com/post/15710423803" #1 page of notes #url = "http://chanaaaa.tumblr.com/post/5326278147" #2,500 notes #url = "http://beepbeepfagg0tt.tumblr.com/post/15727549088" #171 notes url = "http://beepbeepfagg0tt.tumblr.com/post/15553114034" #151 notes #url = "http://beepbeepfagg0tt.tumblr.com/post/15478680896" a = PostScraper(url) posters = {} num_likes = 0 num_reblogs = 0 post_source = None # Iterate through all notes and build reblog map while a.has_next(): (new_relations, likes, reblogs, next_url, ret_source) = a.next() num_likes += likes num_reblogs += reblogs post_source = post_source or ret_source print "post-source: ", post_source for poster, reblogger in new_relations: posters[poster.name] = posters.get( poster.name, poster) posters[poster.name].addReblogger(reblogger) from operator import itemgetter print "\n\nReblog Map:", printReblogMap(posters)