Python script to save and compare active users on steem and hive

in #steem4 years ago

Hi there,

Today I had a bit of free time and I spent it in update an old script I publish a while ago on github.

The script used the steem library to operate so it was impossible to use the same commands both for steem and hive, so the necessity to update it.

Now it uses the beem library like all of my scripts and bots ahaha. [very good job indeed @holger80]

The script is very simple, and parse the last hours blocks to detect the users that interact with the blockchain, it clean the list from double and save the list in a file, the process is repeated every hour.

This script allow you to see the hour active, the new ones and the total saved.

from beem import Steem
from beem.blockchain import Blockchain
from beem.nodelist import NodeList
import time
import re


def hour_active(chain):
        nodelist = NodeList()
        nodelist.update_nodes()
        if chain=='steem':
                s = Steem(node=nodelist.get_steem_nodes())
        else:
                s = Steem(node=nodelist.get_hive_nodes())
        b=Blockchain(s)
        bl_=[]
        bl_num=int(b.get_current_block_num())
        bl_num_=bl_num-1250
        bl=b.blocks(bl_num_,bl_num)
        for i in bl:
                bl_.append(i['transactions'])

    
        x=('follower','account','voter','from','author')
        account=[]
        new=[]
        for i in x:
                acc=re.findall('"'+i+'":"(.+?)"',str(bl_))
                for l in acc:
                        if l not in account:
                                account.append(l)
        if chain=='steem':
                file=open('active_acc_steem.txt','r')
                old=file.readlines()
                file.close()
                file=open('active_acc_steem.txt','a')
                for i in account:
                        if i+'\n' not in old:
                                file.write(str(i)+'\n')
                                new.append(i)
                file.close()
        else:
                file=open('active_acc_hive.txt','r')
                old=file.readlines()
                file.close()
                file=open('active_acc_hive.txt','a')
                for i in account:
                        if i+'\n' not in old:
                                file.write(str(i)+'\n')
                                new.append(i)
                file.close()
                
        print ('one hour accounts '+chain,len(account))
        print ('one hour brand new '+chain,len(new))
        print ('total ACTIVE accounts '+chain,len(old))
    


counter=1
while True:
        print (counter)
        try:
            hour_active('steem')
            hour_active('hive')
        except Exception as e:
            print (e)
            pass
        counter+=1
        print ('__________________________')
        time.sleep(3580)

Here the repo on github:
https://github.com/digital-mine/get_steem_active_users

Here an example output of 1 hour cicle:

1oraapp.png

Sort:  

Hi, Is it possible to write a program to unfollow the people who do not follow me back. ?

yes I did it already actually ahaha

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.032
BTC 63423.66
ETH 3077.69
USDT 1.00
SBD 3.87