[mastodon] allow downloading without access token (#2782)

Most mastodon instances allow accessing /api/v1/accounts/XXXX/statuses and api/v1/statuses/XXXX without an API access token.
This commit allows users to download at least some links from such a mastodon instance that does not already have access tokens hard-coded into the extractor.
User extractor only works on links that include the user id such as https://mastodon.tld/@id:12345. Status links work as-is.
This commit is contained in:
Marius Kaufmann
2022-07-27 12:07:06 +02:00
committed by GitHub
parent ea5ffb19a6
commit 0aa8345a13

View File

@@ -179,12 +179,11 @@ class MastodonAPI():
try:
access_token = INSTANCES[extractor.category]["access-token"]
except (KeyError, TypeError):
raise exception.StopExtraction(
"Missing access token.\n"
"Run 'gallery-dl oauth:mastodon:%s' to obtain one.",
extractor.instance)
self.headers = {"Authorization": "Bearer " + access_token}
pass
if access_token:
self.headers = {"Authorization": "Bearer " + access_token}
else:
self.headers = None
def account_id_by_username(self, username):
if username.startswith("id:"):
@@ -232,6 +231,11 @@ class MastodonAPI():
if code < 400:
return response
if code == 401:
raise exception.StopExtraction(
"Invalid or missing access token.\n"
"Run 'gallery-dl oauth:mastodon:%s' to obtain one.",
self.extractor.instance)
if code == 404:
raise exception.NotFoundError()
if code == 429: