diff options
| author | 2023-05-28 01:35:27 -0400 | |
|---|---|---|
| committer | 2023-05-28 01:35:27 -0400 | |
| commit | 8950c0f2ef55ec2ed36b3fccc9fd85b64b877c3b (patch) | |
| tree | 353c894306904849b05b4dacbb9ea0966f36bd95 /gallery_dl/extractor/misskey.py | |
| parent | bff1d7a3fc1f184002ea6c6f77de675885bda3eb (diff) | |
New upstream version 1.25.5.upstream/1.25.5
Diffstat (limited to 'gallery_dl/extractor/misskey.py')
| -rw-r--r-- | gallery_dl/extractor/misskey.py | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/gallery_dl/extractor/misskey.py b/gallery_dl/extractor/misskey.py index 03e9104..37efac0 100644 --- a/gallery_dl/extractor/misskey.py +++ b/gallery_dl/extractor/misskey.py @@ -7,7 +7,7 @@ """Extractors for Misskey instances""" from .common import BaseExtractor, Message -from .. import text +from .. import text, exception class MisskeyExtractor(BaseExtractor): @@ -27,6 +27,8 @@ class MisskeyExtractor(BaseExtractor): def items(self): for note in self.notes(): + if "note" in note: + note = note["note"] files = note.pop("files") or [] renote = note.get("renote") if renote: @@ -68,7 +70,7 @@ BASE_PATTERN = MisskeyExtractor.update({ }, "lesbian.energy": { "root": "https://lesbian.energy", - "pattern": r"lesbian\.energy" + "pattern": r"lesbian\.energy", }, "sushi.ski": { "root": "https://sushi.ski", @@ -152,6 +154,21 @@ class MisskeyNoteExtractor(MisskeyExtractor): return (self.api.notes_show(self.item),) +class MisskeyFavoriteExtractor(MisskeyExtractor): + """Extractor for favorited notes""" + subcategory = "favorite" + pattern = BASE_PATTERN + r"/(?:my|api/i)/favorites" + test = ( + ("https://misskey.io/my/favorites"), + ("https://misskey.io/api/i/favorites"), + ("https://lesbian.energy/my/favorites"), + ("https://sushi.ski/my/favorites"), + ) + + def notes(self): + return self.api.i_favorites() + + class MisskeyAPI(): """Interface for Misskey API @@ -164,6 +181,7 @@ class MisskeyAPI(): self.root = extractor.root self.extractor = extractor self.headers = {"Content-Type": "application/json"} + self.access_token = extractor.config("access-token") def user_id_by_username(self, username): endpoint = "/users/show" @@ -187,6 +205,13 @@ class MisskeyAPI(): data = {"noteId": note_id} return self._call(endpoint, data) + def i_favorites(self): + endpoint = "/i/favorites" + if not self.access_token: + raise exception.AuthenticationError() + data = {"i": self.access_token} + return self._pagination(endpoint, data) + def _call(self, endpoint, data): url = self.root + "/api" + endpoint return self.extractor.request( |
