mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2025-01-18 08:30:42 -06:00
mastodon: Set API version at 4.3.2. Retrieves instance supported languages upon startup.
This commit is contained in:
parent
90acd9ebea
commit
8ed80da82c
@ -11,7 +11,7 @@ import config
|
|||||||
import config_utils
|
import config_utils
|
||||||
import output
|
import output
|
||||||
import application
|
import application
|
||||||
from mastodon import MastodonError, MastodonAPIError, MastodonNotFoundError, MastodonUnauthorizedError
|
from mastodon import MastodonError, MastodonAPIError, MastodonNotFoundError, MastodonUnauthorizedError, MastodonVersionError
|
||||||
from pubsub import pub
|
from pubsub import pub
|
||||||
from mysc.thread_utils import call_threaded
|
from mysc.thread_utils import call_threaded
|
||||||
from sessions import base
|
from sessions import base
|
||||||
@ -19,7 +19,7 @@ from sessions.mastodon import utils, streaming
|
|||||||
|
|
||||||
log = logging.getLogger("sessions.mastodonSession")
|
log = logging.getLogger("sessions.mastodonSession")
|
||||||
|
|
||||||
MASTODON_VERSION = "4.0.1"
|
MASTODON_VERSION = "4.3.2"
|
||||||
|
|
||||||
class Session(base.baseSession):
|
class Session(base.baseSession):
|
||||||
version_check_mode = "created"
|
version_check_mode = "created"
|
||||||
@ -29,6 +29,7 @@ class Session(base.baseSession):
|
|||||||
super(Session, self).__init__(*args, **kwargs)
|
super(Session, self).__init__(*args, **kwargs)
|
||||||
self.config_spec = "mastodon.defaults"
|
self.config_spec = "mastodon.defaults"
|
||||||
self.supported_languages = []
|
self.supported_languages = []
|
||||||
|
self.default_language = None
|
||||||
self.type = "mastodon"
|
self.type = "mastodon"
|
||||||
self.db["pagination_info"] = dict()
|
self.db["pagination_info"] = dict()
|
||||||
self.char_limit = 500
|
self.char_limit = 500
|
||||||
@ -48,6 +49,9 @@ class Session(base.baseSession):
|
|||||||
credentials = self.api.account_verify_credentials()
|
credentials = self.api.account_verify_credentials()
|
||||||
self.db["user_name"] = credentials["username"]
|
self.db["user_name"] = credentials["username"]
|
||||||
self.db["user_id"] = credentials["id"]
|
self.db["user_id"] = credentials["id"]
|
||||||
|
if hasattr(credentials, "source") and hasattr(credentials.source, "language"):
|
||||||
|
log.info(f"Setting default language on account {credentials.username} to {credentials.source.language}")
|
||||||
|
self.default_language = credentials.source.language
|
||||||
self.settings["mastodon"]["user_name"] = credentials["username"]
|
self.settings["mastodon"]["user_name"] = credentials["username"]
|
||||||
self.logged = True
|
self.logged = True
|
||||||
log.debug("Logged.")
|
log.debug("Logged.")
|
||||||
@ -113,7 +117,10 @@ class Session(base.baseSession):
|
|||||||
self.db["utc_offset"] = offset
|
self.db["utc_offset"] = offset
|
||||||
instance = self.api.instance()
|
instance = self.api.instance()
|
||||||
if len(self.supported_languages) == 0:
|
if len(self.supported_languages) == 0:
|
||||||
self.supported_languages = instance.languages
|
try:
|
||||||
|
self.supported_languages = self.api.instance_languages()
|
||||||
|
except (Exception, MastodonVersionError):
|
||||||
|
pass
|
||||||
self.get_lists()
|
self.get_lists()
|
||||||
self.get_muted_users()
|
self.get_muted_users()
|
||||||
# determine instance custom characters limit.
|
# determine instance custom characters limit.
|
||||||
@ -207,17 +214,17 @@ class Session(base.baseSession):
|
|||||||
self.sound.play(_sound)
|
self.sound.play(_sound)
|
||||||
return val
|
return val
|
||||||
|
|
||||||
def send_post(self, reply_to=None, visibility=None, posts=[]):
|
def send_post(self, reply_to=None, visibility=None, language=None, posts=[]):
|
||||||
""" Convenience function to send a thread. """
|
""" Convenience function to send a thread. """
|
||||||
in_reply_to_id = reply_to
|
in_reply_to_id = reply_to
|
||||||
for obj in posts:
|
for obj in posts:
|
||||||
text = obj.get("text")
|
text = obj.get("text")
|
||||||
if len(obj["attachments"]) == 0:
|
if len(obj["attachments"]) == 0:
|
||||||
try:
|
try:
|
||||||
item = self.api_call(call_name="status_post", status=text, _sound="tweet_send.ogg", in_reply_to_id=in_reply_to_id, visibility=visibility, sensitive=obj["sensitive"], spoiler_text=obj["spoiler_text"])
|
item = self.api_call(call_name="status_post", status=text, _sound="tweet_send.ogg", in_reply_to_id=in_reply_to_id, visibility=visibility, sensitive=obj["sensitive"], spoiler_text=obj["spoiler_text"], language=language)
|
||||||
# If it fails, let's basically send an event with all passed info so we will catch it later.
|
# If it fails, let's basically send an event with all passed info so we will catch it later.
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pub.sendMessage("mastodon.error_post", name=self.get_name(), reply_to=reply_to, visibility=visibility, posts=posts)
|
pub.sendMessage("mastodon.error_post", name=self.get_name(), reply_to=reply_to, visibility=visibility, posts=posts, lang=language)
|
||||||
return
|
return
|
||||||
if item != None:
|
if item != None:
|
||||||
in_reply_to_id = item["id"]
|
in_reply_to_id = item["id"]
|
||||||
@ -231,11 +238,11 @@ class Session(base.baseSession):
|
|||||||
for i in obj["attachments"]:
|
for i in obj["attachments"]:
|
||||||
media = self.api_call("media_post", media_file=i["file"], description=i["description"], synchronous=True)
|
media = self.api_call("media_post", media_file=i["file"], description=i["description"], synchronous=True)
|
||||||
media_ids.append(media.id)
|
media_ids.append(media.id)
|
||||||
item = self.api_call(call_name="status_post", status=text, _sound="tweet_send.ogg", in_reply_to_id=in_reply_to_id, media_ids=media_ids, visibility=visibility, poll=poll, sensitive=obj["sensitive"], spoiler_text=obj["spoiler_text"])
|
item = self.api_call(call_name="status_post", status=text, _sound="tweet_send.ogg", in_reply_to_id=in_reply_to_id, media_ids=media_ids, visibility=visibility, poll=poll, sensitive=obj["sensitive"], spoiler_text=obj["spoiler_text"], language=language)
|
||||||
if item != None:
|
if item != None:
|
||||||
in_reply_to_id = item["id"]
|
in_reply_to_id = item["id"]
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pub.sendMessage("mastodon.error_post", name=self.get_name(), reply_to=reply_to, visibility=visibility, posts=posts)
|
pub.sendMessage("mastodon.error_post", name=self.get_name(), reply_to=reply_to, visibility=visibility, posts=posts, lang=language)
|
||||||
return
|
return
|
||||||
|
|
||||||
def get_name(self):
|
def get_name(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user