Merge pull request #90 from ai6yr/multi
I think you already implemented this, but here you go... Mastodon config and bot code.
This commit is contained in:
commit
2a5ae6159f
|
@ -52,3 +52,9 @@ ENABLE = FALSE
|
||||||
TITLE = Title Of Telegram message
|
TITLE = Title Of Telegram message
|
||||||
ROOM_ID = -100xxxxxxxxxx
|
ROOM_ID = -100xxxxxxxxxx
|
||||||
BOT_TOKEN = xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
BOT_TOKEN = xxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
|
||||||
|
[MASTODON]
|
||||||
|
ENABLE = TRUE
|
||||||
|
ACCESS_TOKEN = mastodonaccesstoken
|
||||||
|
APP_URL = mastodonappurl
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
def sendMastodon(photo, message, config):
|
||||||
|
from mastodon import Mastodon
|
||||||
|
sent = False
|
||||||
|
retry_c = 0
|
||||||
|
while sent == False:
|
||||||
|
try:
|
||||||
|
bot = Mastodon(
|
||||||
|
access_token=config.get('MASTODON','ACCESS_TOKEN'),
|
||||||
|
api_base_url=config.get('MASTODON','APP_URL')
|
||||||
|
)
|
||||||
|
mediaid = bot.media_post(photo, mime_type="image/jpeg")
|
||||||
|
sent = bot.status_post(message,None,mediaid,False, "Public")
|
||||||
|
except Exception as err:
|
||||||
|
print('err.args:')
|
||||||
|
print(err.args)
|
||||||
|
print(f"Unexpected {err=}, {type(err)=}")
|
||||||
|
print("\nString err:\n"+str(err))
|
||||||
|
if retry_c > 4:
|
||||||
|
print('Mastodon attempts exceeded. Message not sent.')
|
||||||
|
break
|
||||||
|
elif str(err) == 'Unauthorized':
|
||||||
|
print('Invalid Mastodon bot token, message not sent.')
|
||||||
|
break
|
||||||
|
elif str(err) == 'Timed out':
|
||||||
|
retry_c += 1
|
||||||
|
print('Mastodon timeout count: '+str(retry_c))
|
||||||
|
pass
|
||||||
|
elif str(err)[:35] == '[Errno 2] No such file or directory':
|
||||||
|
print('Mastodon module couldn\'t find an image to send.')
|
||||||
|
break
|
||||||
|
elif str(err) == 'Media_caption_too_long':
|
||||||
|
print('Mastodon image caption lenght exceeds 1024 characters. Message not send.')
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
print('[X] Unknown error. Message not sent.')
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
print("Mastodon message successfully sent.")
|
||||||
|
return sent
|
|
@ -463,6 +463,11 @@ class Plane:
|
||||||
from defTelegram import sendTeleg
|
from defTelegram import sendTeleg
|
||||||
photo = open(self.map_file_name, "rb")
|
photo = open(self.map_file_name, "rb")
|
||||||
sendTeleg(photo, message, self.config)
|
sendTeleg(photo, message, self.config)
|
||||||
|
#Mastodon
|
||||||
|
if self.config.has_section('MASTODON') and self.config.getboolean('MASTODON', 'ENABLE'):
|
||||||
|
from defMastodon import sendMastodon
|
||||||
|
sendMastodon(self.map_file_name, message, self.config)
|
||||||
|
|
||||||
#Discord
|
#Discord
|
||||||
if self.config.getboolean('DISCORD', 'ENABLE'):
|
if self.config.getboolean('DISCORD', 'ENABLE'):
|
||||||
role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') and self.config.get('DISCORD', 'ROLE_ID').strip() != "" else None
|
role_id = self.config.get('DISCORD', 'ROLE_ID') if self.config.has_option('DISCORD', 'ROLE_ID') and self.config.get('DISCORD', 'ROLE_ID').strip() != "" else None
|
||||||
|
@ -816,6 +821,10 @@ class Plane:
|
||||||
if self.config.has_option('META', 'ENABLE') and self.config.getboolean('META', 'ENABLE'):
|
if self.config.has_option('META', 'ENABLE') and self.config.getboolean('META', 'ENABLE'):
|
||||||
from meta_toolkit import post_to_meta_both
|
from meta_toolkit import post_to_meta_both
|
||||||
post_to_meta_both(self.config.get("META", "FB_PAGE_ID"), self.config.get("META", "IG_USER_ID"), self.map_file_name, message, self.config.get("META", "ACCESS_TOKEN"))
|
post_to_meta_both(self.config.get("META", "FB_PAGE_ID"), self.config.get("META", "IG_USER_ID"), self.map_file_name, message, self.config.get("META", "ACCESS_TOKEN"))
|
||||||
|
#Mastodon
|
||||||
|
if self.config.has_section('MASTODON') and self.config.getboolean('MASTODON', 'ENABLE'):
|
||||||
|
from defMastodon import sendMastodon
|
||||||
|
sendMastodon(self.map_file_name, message, self.config)
|
||||||
self.circle_history['triggered'] = True
|
self.circle_history['triggered'] = True
|
||||||
elif abs(total_change) <= 360 and self.circle_history["triggered"]:
|
elif abs(total_change) <= 360 and self.circle_history["triggered"]:
|
||||||
print("No Longer Circling, trigger cleared")
|
print("No Longer Circling, trigger cleared")
|
||||||
|
|
Loading…
Reference in New Issue