[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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user