-
-
Save emre/c2f3a0552866a2f877fa0a6588bd5ac0 to your computer and use it in GitHub Desktop.
resteemers
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
from steem import Steem | |
from steem.account import Account | |
from steem.post import Post | |
from collections import Counter | |
import steembase | |
import pygal | |
def resteemers(steemd, username, output_path): | |
processed_posts = set() | |
resteemer_list = list() | |
resteemed_posts = list() | |
acc = Account(username, steemd_instance=steemd) | |
for comment in acc.history_reverse(filter_by=["comment"]): | |
# don't process updates | |
post_identifier = "@%s/%s" % ( | |
comment.get("author"), comment.get("permlink")) | |
if post_identifier in processed_posts: | |
continue | |
processed_posts.add(post_identifier) | |
# don't process resteems of the author | |
if comment.get("author") != username: | |
continue | |
try: | |
post = Post(comment, steemd_instance=steemd) | |
except steembase.exceptions.PostDoesNotExist: | |
continue | |
if post.time_elapsed().total_seconds() > 2592000: # 1 month | |
break | |
# don't process comments | |
if not post.is_main_post(): | |
continue | |
resteemers = steemd.get_reblogged_by( | |
post.get("author"), post.get("permlink")) | |
resteemers.remove(username) | |
if len(resteemers) == 0: | |
continue | |
for resteemer in resteemers: | |
resteemer_list.append(resteemer) | |
resteemed_posts.append(post.identifier) | |
most_resteemed_posts = Counter(resteemed_posts).most_common(5) | |
most_resteemers = Counter(resteemer_list).most_common(5) | |
line_chart = pygal.Bar() | |
line_chart.title = 'Most Resteemed Posts (%s)' % username | |
for item in most_resteemed_posts: | |
line_chart.add(item[0], item[1]) | |
line_chart.render_to_file("%s/most_resteemed.svg" % output_path) | |
pie = pygal.Pie() | |
pie.title = 'Resteemers of %s' % username | |
for item in most_resteemers: | |
pie.add(item[0], item[1]) | |
pie.render_to_file("%s/resteemers.svg" % output_path) | |
def main(): | |
s = Steem(nodes=["https://api.steemit.com"]) | |
resteemers(s, "emrebeyler", "/tmp/") | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment