xmppbot.py/activity.py

69 líneas
1,4 KiB
Python

from app.libraries.setup import Setup
from app.libraries.ejabberdapi import Ejabberd
from app.libraries.strings import Strings
from app.libraries.database import Database
from mastodon import Mastodon, StreamListener
import sys
import humanize
import datetime as dt
from datetime import datetime, date, timedelta
import pdb
def check_activity(id, username):
active = False
try:
act_st = mastodon.account_statuses(id)
active_post = 0
for status in act_st:
if status.created_at.replace(tzinfo=None) > datetime.now() - timedelta(days=30):
active_post += 1
if active_post >= 3:
active = True
except:
print(f"username {username} not found.")
pass
return active
# main
if __name__ == '__main__':
setup = Setup()
mastodon = Mastodon(
access_token = setup.mastodon_app_token,
api_base_url= setup.mastodon_hostname
)
ejabberd = Ejabberd()
strings = Strings()
db = Database()
users = db.load_users()
for user in users:
active = check_activity(user['id'], user['username'])
if not active:
print(f"user {user['username']} is not active enough. Deleting it from {user['service']} and database.\n")
is_unregistered, is_admin = ejabberd.unregister(user['username'], ejabberd.local_vhost)
db.delete_user(user['id'], user['username'])