34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from mastodon import Mastodon
|
|
import logging
|
|
|
|
# Mastodon bot to post things
|
|
class bot():
|
|
def __init__(self, config, neuter=False):
|
|
self.neuter = neuter
|
|
self.masto = Mastodon(access_token=config["mastodon"]["access_token"], api_base_url=config["mastodon"]["host"])
|
|
|
|
# uploads media to mastodon, returns the mastodon ID
|
|
# specify mimetype of video files as "video/mp4" to avoid error
|
|
def upload_media(self, filename, mimetype=None):
|
|
logging.warning(f"Uploading media {filename}")
|
|
if not self.neuter:
|
|
returnval = self.masto.media_post(filename, mime_type=mimetype)
|
|
else:
|
|
print(f"Would have uploaded {filename}")
|
|
returnval = True
|
|
return returnval
|
|
|
|
# uploads all given media
|
|
def upload_all_media(self, filenames):
|
|
ids = []
|
|
for fn in filenames:
|
|
ids.append(self.upload_media(fn))
|
|
return ids
|
|
|
|
def toot(self, text, media=None):
|
|
logging.warning(f"Posting:\n Text: {text}")
|
|
if not self.neuter:
|
|
self.masto.status_post(text, media_ids=media)
|
|
else:
|
|
print(f"Would have posted {text}")
|