make content type checking less strict

pull/397/head
halcy 2025-02-14 21:07:57 +02:00
rodzic 8c3ee8525c
commit c60092b5b9
1 zmienionych plików z 8 dodań i 4 usunięć

Wyświetl plik

@ -110,7 +110,8 @@ class Mastodon(Internals):
def __status_internal(self, status: Optional[str], in_reply_to_id: Optional[Union[Status, IdType]] = None, media_ids: Optional[List[Union[MediaAttachment, IdType]]] = None,
sensitive: Optional[bool] = False, visibility: Optional[str] = None, spoiler_text: Optional[str] = None, language: Optional[str] = None,
idempotency_key: Optional[str] = None, content_type: Optional[str] = None, scheduled_at: Optional[datetime] = None,
poll: Optional[Union[Poll, IdType]] = None, quote_id: Optional[Union[Status, IdType]] = None, edit: Optional[bool] = False) -> Union[Status, ScheduledStatus]:
poll: Optional[Union[Poll, IdType]] = None, quote_id: Optional[Union[Status, IdType]] = None, edit: bool = False,
strict_content_type: bool = False) -> Union[Status, ScheduledStatus]:
"""
Internal statuses poster helper
"""
@ -121,10 +122,13 @@ class Mastodon(Internals):
if content_type is not None:
if self.feature_set != "pleroma":
raise MastodonIllegalArgumentError('content_type is only available with feature set pleroma')
if strict_content_type:
raise MastodonIllegalArgumentError('content_type is only available with feature set pleroma')
# It would be better to read this from nodeinfo and cache, but this is easier
if not content_type in ["text/plain", "text/html", "text/markdown", "text/bbcode"]:
raise MastodonIllegalArgumentError('Invalid content type specified')
if strict_content_type:
raise MastodonIllegalArgumentError('Invalid content type specified')
if in_reply_to_id is not None:
in_reply_to_id = self.__unpack_id(in_reply_to_id)
@ -178,7 +182,7 @@ class Mastodon(Internals):
if poll is not None:
use_json = True
params = self.__generate_params(params_initial, ['idempotency_key', 'edit'])
params = self.__generate_params(params_initial, ['idempotency_key', 'edit', 'strict_content_type'])
cast_type = Status
if scheduled_at is not None:
cast_type = ScheduledStatus