69 líneas
1,4 KiB
Python
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'])
|
||
|
|