Skip to content

Instantly share code, notes, and snippets.

@emre
Last active March 6, 2018 07:09
Show Gist options
  • Save emre/c2f3a0552866a2f877fa0a6588bd5ac0 to your computer and use it in GitHub Desktop.
Save emre/c2f3a0552866a2f877fa0a6588bd5ac0 to your computer and use it in GitHub Desktop.
resteemers
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