Handle logging in better, added set_display_name

main
Paco Hope 2022-12-04 11:28:05 -05:00
parent bb84401421
commit 65c09345e4
1 changed files with 47 additions and 24 deletions

View File

@ -8,9 +8,8 @@ __date__ = '25 November 2022'
__version__ = '1.0' __version__ = '1.0'
__copyright__ = 'Copyright © 2022 Paco Hope. See LICENSE for details.' __copyright__ = 'Copyright © 2022 Paco Hope. See LICENSE for details.'
from mastodon import Mastodon import mastodon
import toml import toml
import os
import time import time
import argparse import argparse
import sys import sys
@ -18,11 +17,12 @@ from pathlib import Path
import random import random
import re import re
import logging import logging
from tootapalooza.userdata.names import usernames
args=None args=None
logger=None logger=None
class Tooter(Mastodon): class Tooter(mastodon.Mastodon):
credentials: dict = {} credentials: dict = {}
hostname : str = '' hostname : str = ''
files : dict = {} files : dict = {}
@ -37,14 +37,30 @@ class Tooter(Mastodon):
self.displayname = cred_dict['name'] self.displayname = cred_dict['name']
self.cred_file = f'.tootapalooza-usercred-{self.acct}.env' self.cred_file = f'.tootapalooza-usercred-{self.acct}.env'
super().__init__(client_id=self.client_id) super().__init__(access_token = self.cred_file,
client_id=self.client_id,
user_agent = "tootapalooza")
# Try a basic call to ensure we are logged in
try:
account = self.me()
except mastodon.errors.MastodonUnauthorizedError:
logger.warn(f"Warning {self.acct} not logged in. Logging in.")
self.revoke_access_token()
try:
self.log_in(
self.username,
self.password,
to_file=self.cred_file
)
except Exception as e:
logger.critical( f"Failed to login as {self.acct}" )
return None
# if logging in worked, this will work
account = self.me()
self.id = account['id']
self.log_in(
self.username,
self.password,
to_file=self.cred_file
)
self.id = self.me()['id']
@classmethod @classmethod
def load_credentials(cls, file: str) -> None: def load_credentials(cls, file: str) -> None:
as_dict = toml.load(file) as_dict = toml.load(file)
@ -280,23 +296,30 @@ class Tooter(Mastodon):
logger.debug(f"{self.acct} report_random_local") logger.debug(f"{self.acct} report_random_local")
return( 0 ) return( 0 )
def set_display_name(self) -> int:
newname = random.choice(usernames)
logger.debug(f"{self.acct} set_display_name to {newname}")
self.account_update_credentials(display_name=newname)
return( 0 )
def random_interaction(self): def random_interaction(self):
"""Choose one possible interaction according to the weights, and do it.""" """Choose one possible interaction according to the weights, and do it."""
interactions = { interactions = {
self.reply_random_local: 4, self.reply_random_local: 0,
self.reply_random_home: 4, self.reply_random_home: 0,
self.reply_random_public: 4, self.reply_random_public: 0,
self.follow_random_local: 2, self.follow_random_local: 0,
self.unfollow_random: 1, self.unfollow_random: 0,
self.toot_plain_public: 1, self.toot_plain_public: 0,
self.toot_tagged_public: 4, self.toot_tagged_public: 0,
self.toot_plain_unlisted: 1, self.toot_plain_unlisted: 0,
self.favourite_random_local: 2, self.favourite_random_local: 0,
self.favourite_random_home: 2, self.favourite_random_home: 0,
self.favourite_random_public: 2, self.favourite_random_public: 0,
self.boost_random_local: 2, self.boost_random_local: 0,
self.boost_random_home: 2, self.boost_random_home: 0,
self.boost_random_public: 2, self.boost_random_public: 0,
self.set_display_name: 1,
self.report_random_local: 0 self.report_random_local: 0
} }
chosen = random.choices(population=list(interactions.keys()), chosen = random.choices(population=list(interactions.keys()),