[cyberdrop] add extractor for media URLs (#2496)

https://github.com/mikf/gallery-dl/issues/2496#issuecomment-2495467133
This commit is contained in:
Mike Fährmann
2024-12-08 20:57:12 +01:00
parent d7873b9eb7
commit 47311352de
4 changed files with 50 additions and 4 deletions

View File

@@ -196,7 +196,7 @@ Consider all listed sites to potentially be NSFW.
<tr>
<td>Cyberdrop</td>
<td>https://cyberdrop.me/</td>
<td>Albums</td>
<td>Albums, Media Files</td>
<td></td>
</tr>
<tr>

View File

@@ -10,12 +10,15 @@ from . import lolisafe
from .common import Message
from .. import text
BASE_PATTERN = r"(?:https?://)?(?:www\.)?cyberdrop\.(?:me|to)"
class CyberdropAlbumExtractor(lolisafe.LolisafeAlbumExtractor):
"""Extractor for cyberdrop albums"""
category = "cyberdrop"
root = "https://cyberdrop.me"
root_api = "https://api.cyberdrop.me"
pattern = r"(?:https?://)?(?:www\.)?cyberdrop\.(?:me|to)/a/([^/?#]+)"
pattern = BASE_PATTERN + r"/a/([^/?#]+)"
example = "https://cyberdrop.me/a/ID"
def items(self):
@@ -40,7 +43,7 @@ class CyberdropAlbumExtractor(lolisafe.LolisafeAlbumExtractor):
extr('id="title"', "")
album = {
"album_id" : self.album_id,
"album_id" : album_id,
"album_name" : text.unescape(extr('title="', '"')),
"album_size" : text.parse_bytes(extr(
'<p class="title">', "B")),
@@ -67,3 +70,20 @@ class CyberdropAlbumExtractor(lolisafe.LolisafeAlbumExtractor):
continue
yield file
class CyberdropMediaExtractor(CyberdropAlbumExtractor):
"""Extractor for cyberdrop media links"""
subcategory = "media"
directory_fmt = ("{category}",)
pattern = BASE_PATTERN + r"/f/([^/?#]+)"
example = "https://cyberdrop.me/f/ID"
def fetch_album(self, album_id):
return self._extract_files((album_id,)), {
"album_id" : "",
"album_name" : "",
"album_size" : -1,
"description": "",
"count" : 1,
}

View File

@@ -6,5 +6,5 @@
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
__version__ = "1.28.1"
__version__ = "1.28.2-dev"
__variant__ = None

View File

@@ -58,4 +58,30 @@ __tests__ = (
"url" : str,
},
{
"#url" : "https://cyberdrop.me/f/lHYBt9VAluZf6",
"#category": ("lolisafe", "cyberdrop", "media"),
"#class" : cyberdrop.CyberdropMediaExtractor,
"#pattern" : r"https://k1-cd\.cdn\.gigachad-cdn\.ru/api/file/d/lHYBt9VAluZf6\?token=ey.+",
"#count" : 1,
"#sha1_content": "a546bdbc07d07f8e2c53e49e99736d5206f4da23",
"album_id" : "",
"album_name" : "",
"album_size" : -1,
"auth_url" : "https://api.cyberdrop.me/api/file/auth/lHYBt9VAluZf6",
"count" : 1,
"description" : "",
"extension" : "gif",
"filename" : "danbooru_133128_049ebb917bb57589bca19155271a4200-rrhV0I30",
"id" : "rrhV0I30",
"name" : "danbooru_133128_049ebb917bb57589bca19155271a4200",
"num" : 1,
"size" : 143992,
"slug" : "lHYBt9VAluZf6",
"thumbnail_url": "https://api.cyberdrop.me/api/proxy/thumb/lHYBt9VAluZf6",
"type" : "image/gif",
"url" : str,
},
)