add exported extractor results

pull/4539/head
Mike Fährmann 1 year ago
parent b611bf9629
commit a833c244c8
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -250,7 +250,7 @@ def collect_tests(whitelist=None):
if whitelist and extr.category not in whitelist:
continue
test = build_test(extr, data)
tests[f"{extr.category}_{extr.subcategory}"].append(test)
tests[extr.category].append(test)
return tests

@ -1,5 +1,5 @@
[flake8]
exclude = build,archive
exclude = .git,__pycache__,build,dist,archive,test/results
ignore = E203,E226,W504
per-file-ignores =
setup.py: E501

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
gallery_dl = __import__("gallery_dl.extractor.2chan")
_2chan = getattr(gallery_dl.extractor, "2chan")
__tests__ = (
{
"#url" : "https://dec.2chan.net/70/res/14565.htm",
"#category": ("", "2chan", "thread"),
"#class" : _2chan._2chanThreadExtractor,
"#pattern" : r"https://dec\.2chan\.net/70/src/\d{13}\.jpg",
"#count" : ">= 3",
"board" : "70",
"board_name": "新板提案",
"com" : str,
"fsize" : r"re:\d+",
"name" : "名無し",
"no" : r"re:1[45]\d\d\d",
"now" : r"re:22/../..\(.\)..:..:..",
"post" : "無題",
"server" : "dec",
"thread" : "14565",
"tim" : r"re:^\d{13}$",
"time" : r"re:^\d{10}$",
"title" : "ヒロアカ板",
},
)

@ -0,0 +1,68 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
gallery_dl = __import__("gallery_dl.extractor.2chen")
_2chen = getattr(gallery_dl.extractor, "2chen")
import datetime
__tests__ = (
{
"#url" : "https://sturdychan.help/tv/268929",
"#category": ("", "2chen", "thread"),
"#class" : _2chen._2chenThreadExtractor,
"#pattern" : r"https://sturdychan\.help/assets/images/src/\w{40}\.\w+$",
"#count" : ">= 179",
"board" : "tv",
"date" : datetime.datetime,
"hash" : r"re:[0-9a-f]{40}",
"name" : "Anonymous",
"no" : r"re:\d+",
"thread": "268929",
"time" : int,
"title" : "「/ttg/ #118: 🇧🇷 edition」",
"url" : str,
},
{
"#url" : "https://2chen.club/tv/1",
"#category": ("", "2chen", "thread"),
"#class" : _2chen._2chenThreadExtractor,
},
{
"#url" : "https://2chen.moe/jp/303786",
"#category": ("", "2chen", "thread"),
"#class" : _2chen._2chenThreadExtractor,
},
{
"#url" : "https://sturdychan.help/co/",
"#category": ("", "2chen", "board"),
"#class" : _2chen._2chenBoardExtractor,
"#pattern" : _2chen._2chenThreadExtractor.pattern,
},
{
"#url" : "https://2chen.moe/co",
"#category": ("", "2chen", "board"),
"#class" : _2chen._2chenBoardExtractor,
},
{
"#url" : "https://2chen.club/tv",
"#category": ("", "2chen", "board"),
"#class" : _2chen._2chenBoardExtractor,
},
{
"#url" : "https://2chen.moe/co/catalog",
"#category": ("", "2chen", "board"),
"#class" : _2chen._2chenBoardExtractor,
},
)

@ -0,0 +1,75 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
gallery_dl = __import__("gallery_dl.extractor.35photo")
_35photo = getattr(gallery_dl.extractor, "35photo")
__tests__ = (
{
"#url" : "https://35photo.pro/liya",
"#category": ("", "35photo", "user"),
"#class" : _35photo._35photoUserExtractor,
"#pattern" : r"https://([a-z][0-9]\.)?35photo\.pro/photos_(main|series)/.*\.jpg",
"#count" : 9,
},
{
"#url" : "https://35photo.pro/suhoveev",
"#category": ("", "35photo", "user"),
"#class" : _35photo._35photoUserExtractor,
"#count" : ">= 33",
},
{
"#url" : "https://en.35photo.pro/liya",
"#category": ("", "35photo", "user"),
"#class" : _35photo._35photoUserExtractor,
},
{
"#url" : "https://ru.35photo.pro/liya",
"#category": ("", "35photo", "user"),
"#class" : _35photo._35photoUserExtractor,
},
{
"#url" : "https://35photo.pro/tags/landscape/",
"#category": ("", "35photo", "tag"),
"#class" : _35photo._35photoTagExtractor,
"#range" : "1-25",
"#count" : 25,
"#archive" : False,
},
{
"#url" : "https://35photo.pro/genre_109/",
"#category": ("", "35photo", "genre"),
"#class" : _35photo._35photoGenreExtractor,
},
{
"#url" : "https://35photo.pro/photo_753340/",
"#category": ("", "35photo", "image"),
"#class" : _35photo._35photoImageExtractor,
"#count" : 1,
"url" : r"re:https://35photo\.pro/photos_main/.*\.jpg",
"id" : 753340,
"title" : "Winter walk",
"description": str,
"tags" : list,
"views" : int,
"favorites" : int,
"score" : int,
"type" : 0,
"date" : "15 авг, 2014",
"user" : "liya",
"user_id" : 20415,
"user_name" : "Liya Mirzaeva",
},
)

@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
gallery_dl = __import__("gallery_dl.extractor.3dbooru")
_3dbooru = getattr(gallery_dl.extractor, "3dbooru")
__tests__ = (
{
"#url" : "http://behoimi.org/post?tags=himekawa_azuru+dress",
"#category": ("booru", "3dbooru", "tag"),
"#class" : _3dbooru._3dbooruTagExtractor,
"#sha1_url" : "ecb30c6aaaf8a6ff8f55255737a9840832a483c1",
"#sha1_content": "11cbda40c287e026c1ce4ca430810f761f2d0b2a",
},
{
"#url" : "http://behoimi.org/pool/show/27",
"#category": ("booru", "3dbooru", "pool"),
"#class" : _3dbooru._3dbooruPoolExtractor,
"#sha1_url" : "da75d2d1475449d5ef0c266cb612683b110a30f2",
"#sha1_content": "fd5b37c5c6c2de4b4d6f1facffdefa1e28176554",
},
{
"#url" : "http://behoimi.org/post/show/140852",
"#category": ("booru", "3dbooru", "post"),
"#class" : _3dbooru._3dbooruPostExtractor,
"#options" : {"tags": True},
"#sha1_url" : "ce874ea26f01d6c94795f3cc3aaaaa9bc325f2f6",
"#sha1_content": "26549d55b82aa9a6c1686b96af8bfcfa50805cd4",
"tags_character": "furude_rika",
"tags_copyright": "higurashi_no_naku_koro_ni",
"tags_model" : "himekawa_azuru",
"tags_general" : str,
},
{
"#url" : "http://behoimi.org/post/popular_by_month?month=2&year=2013",
"#category": ("booru", "3dbooru", "popular"),
"#class" : _3dbooru._3dbooruPopularExtractor,
"#pattern" : r"http://behoimi\.org/data/../../[0-9a-f]{32}\.jpg",
"#count" : 20,
},
)

@ -0,0 +1,37 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
gallery_dl = __import__("gallery_dl.extractor.4chan")
_4chan = getattr(gallery_dl.extractor, "4chan")
__tests__ = (
{
"#url" : "https://boards.4chan.org/tg/thread/15396072/",
"#category": ("", "4chan", "thread"),
"#class" : _4chan._4chanThreadExtractor,
"#sha1_url" : "39082ad166161966d7ba8e37f2173a824eb540f0",
"#sha1_metadata": "7ae2f4049adf0d2f835eb91b6b26b7f4ec882e0a",
"#sha1_content" : "20b7b51afa51c9c31a0020a0737b889532c8d7ec",
},
{
"#url" : "https://boards.4channel.org/tg/thread/15396072/",
"#category": ("", "4chan", "thread"),
"#class" : _4chan._4chanThreadExtractor,
"#sha1_url" : "39082ad166161966d7ba8e37f2173a824eb540f0",
"#sha1_metadata": "7ae2f4049adf0d2f835eb91b6b26b7f4ec882e0a",
},
{
"#url" : "https://boards.4channel.org/po/",
"#category": ("", "4chan", "board"),
"#class" : _4chan._4chanBoardExtractor,
"#pattern" : _4chan._4chanThreadExtractor.pattern,
"#count" : ">= 100",
},
)

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
gallery_dl = __import__("gallery_dl.extractor.4chanarchives")
_4chanarchives = getattr(gallery_dl.extractor, "4chanarchives")
__tests__ = (
{
"#url" : "https://4chanarchives.com/board/c/thread/2707110",
"#category": ("", "4chanarchives", "thread"),
"#class" : _4chanarchives._4chanarchivesThreadExtractor,
"#pattern" : r"https://i\.imgur\.com/(0wLGseE|qbByWDc)\.jpg",
"#count" : 2,
"board" : "c",
"com" : str,
"name" : "Anonymous",
"no" : int,
"thread": "2707110",
"time" : r"re:2016-07-1\d \d\d:\d\d:\d\d",
"title" : "Ren Kagami from 'Oyako Neburi'",
},
{
"#url" : "https://4chanarchives.com/board/c/",
"#category": ("", "4chanarchives", "board"),
"#class" : _4chanarchives._4chanarchivesBoardExtractor,
"#pattern" : _4chanarchives._4chanarchivesThreadExtractor.pattern,
"#range" : "1-40",
"#count" : 40,
},
{
"#url" : "https://4chanarchives.com/board/c",
"#category": ("", "4chanarchives", "board"),
"#class" : _4chanarchives._4chanarchivesBoardExtractor,
},
{
"#url" : "https://4chanarchives.com/board/c/10",
"#category": ("", "4chanarchives", "board"),
"#class" : _4chanarchives._4chanarchivesBoardExtractor,
},
)

@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import foolfuuka
__tests__ = (
{
"#url" : "https://archive.4plebs.org/tg/thread/54059290",
"#category": ("foolfuuka", "4plebs", "thread"),
"#class" : foolfuuka.FoolfuukaThreadExtractor,
"#sha1_url": "fd823f17b5001442b941fddcd9ec91bafedfbc79",
},
{
"#url" : "https://archive.4plebs.org/tg/",
"#category": ("foolfuuka", "4plebs", "board"),
"#class" : foolfuuka.FoolfuukaBoardExtractor,
},
{
"#url" : "https://archive.4plebs.org/_/search/text/test/",
"#category": ("foolfuuka", "4plebs", "search"),
"#class" : foolfuuka.FoolfuukaSearchExtractor,
},
{
"#url" : "https://archive.4plebs.org/tg/gallery/1",
"#category": ("foolfuuka", "4plebs", "gallery"),
"#class" : foolfuuka.FoolfuukaGalleryExtractor,
},
)

@ -0,0 +1,103 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
gallery_dl = __import__("gallery_dl.extractor.500px")
_500px = getattr(gallery_dl.extractor, "500px")
__tests__ = (
{
"#url" : "https://500px.com/p/light_expression_photography",
"#category": ("", "500px", "user"),
"#class" : _500px._500pxUserExtractor,
"#pattern" : r"https?://drscdn.500px.org/photo/\d+/m%3D4096/v2",
"#range" : "1-99",
"#count" : 99,
},
{
"#url" : "https://500px.com/light_expression_photography",
"#category": ("", "500px", "user"),
"#class" : _500px._500pxUserExtractor,
},
{
"#url" : "https://web.500px.com/light_expression_photography",
"#category": ("", "500px", "user"),
"#class" : _500px._500pxUserExtractor,
},
{
"#url" : "https://500px.com/p/fashvamp/galleries/lera",
"#category": ("", "500px", "gallery"),
"#class" : _500px._500pxGalleryExtractor,
"#count" : 3,
"#sha1_url": "002dc81dee5b4a655f0e31ad8349e8903b296df6",
"gallery": dict,
"user" : dict,
},
{
"#url" : "https://500px.com/fashvamp/galleries/lera",
"#category": ("", "500px", "gallery"),
"#class" : _500px._500pxGalleryExtractor,
},
{
"#url" : "https://500px.com/liked",
"#category": ("", "500px", "favorite"),
"#class" : _500px._500pxFavoriteExtractor,
},
{
"#url" : "https://500px.com/photo/222049255/queen-of-coasts",
"#category": ("", "500px", "image"),
"#class" : _500px._500pxImageExtractor,
"#count" : 1,
"#sha1_url": "fbdf7df39325cae02f5688e9f92935b0e7113315",
"camera" : "Canon EOS 600D",
"camera_info" : dict,
"comments" : list,
"comments_count" : int,
"created_at" : "2017-08-01T08:40:05+00:00",
"description" : str,
"editored_by" : None,
"editors_choice" : False,
"extension" : "jpg",
"feature" : "popular",
"feature_date" : "2017-08-01T09:58:28+00:00",
"focal_length" : "208",
"height" : 3111,
"id" : 222049255,
"image_format" : "jpg",
"image_url" : list,
"images" : list,
"iso" : "100",
"lens" : "EF-S55-250mm f/4-5.6 IS II",
"lens_info" : dict,
"liked" : None,
"location" : None,
"location_details": dict,
"name" : "Queen Of Coasts",
"nsfw" : False,
"privacy" : False,
"profile" : True,
"rating" : float,
"status" : 1,
"tags" : list,
"taken_at" : "2017-05-04T17:36:51+00:00",
"times_viewed" : int,
"url" : "/photo/222049255/Queen-Of-Coasts-by-Alice-Nabieva",
"user" : dict,
"user_id" : 12847235,
"votes_count" : int,
"watermark" : True,
"width" : 4637,
},
)

@ -0,0 +1,91 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
gallery_dl = __import__("gallery_dl.extractor.8chan")
_8chan = getattr(gallery_dl.extractor, "8chan")
__tests__ = (
{
"#url" : "https://8chan.moe/vhs/res/4.html",
"#category": ("", "8chan", "thread"),
"#class" : _8chan._8chanThreadExtractor,
"#pattern" : r"https://8chan\.moe/\.media/[0-9a-f]{64}\.\w+$",
"#count" : 14,
"archived" : False,
"autoSage" : False,
"boardDescription": "Film and Cinema",
"boardMarkdown" : None,
"boardName" : "Movies",
"boardUri" : "vhs",
"creation" : r"re:\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z",
"cyclic" : False,
"email" : None,
"id" : r"re:^[0-9a-f]{6}$",
"locked" : False,
"markdown" : str,
"maxFileCount" : 5,
"maxFileSize" : "32.00 MB",
"maxMessageLength": 8001,
"message" : str,
"mime" : str,
"name" : "Anonymous",
"num" : int,
"originalName" : str,
"path" : r"re:/.media/[0-9a-f]{64}\.\w+$",
"pinned" : False,
"postId" : int,
"signedRole" : None,
"size" : int,
"threadId" : 4,
"thumb" : r"re:/.media/t_[0-9a-f]{64}$",
"uniquePosters" : 9,
"usesCustomCss" : True,
"usesCustomJs" : False,
"?wsPort" : 8880,
"?wssPort" : 2087,
},
{
"#url" : "https://8chan.se/vhs/res/4.html",
"#category": ("", "8chan", "thread"),
"#class" : _8chan._8chanThreadExtractor,
},
{
"#url" : "https://8chan.cc/vhs/res/4.html",
"#category": ("", "8chan", "thread"),
"#class" : _8chan._8chanThreadExtractor,
},
{
"#url" : "https://8chan.moe/vhs/",
"#category": ("", "8chan", "board"),
"#class" : _8chan._8chanBoardExtractor,
},
{
"#url" : "https://8chan.moe/vhs/2.html",
"#category": ("", "8chan", "board"),
"#class" : _8chan._8chanBoardExtractor,
"#pattern" : _8chan._8chanThreadExtractor.pattern,
"#count" : 23,
},
{
"#url" : "https://8chan.se/vhs/",
"#category": ("", "8chan", "board"),
"#class" : _8chan._8chanBoardExtractor,
},
{
"#url" : "https://8chan.cc/vhs/",
"#category": ("", "8chan", "board"),
"#class" : _8chan._8chanBoardExtractor,
},
)

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import vichan
__tests__ = (
{
"#url" : "https://8kun.top/test/res/65248.html",
"#category": ("vichan", "8kun", "thread"),
"#class" : vichan.VichanThreadExtractor,
"#pattern" : r"https://media\.128ducks\.com/file_store/\w{64}\.\w+",
"#count" : ">= 8",
},
{
"#url" : "https://8kun.top/v/index.html",
"#category": ("vichan", "8kun", "board"),
"#class" : vichan.VichanBoardExtractor,
"#pattern" : vichan.VichanThreadExtractor.pattern,
"#count" : ">= 100",
},
{
"#url" : "https://8kun.top/v/2.html",
"#category": ("vichan", "8kun", "board"),
"#class" : vichan.VichanBoardExtractor,
},
{
"#url" : "https://8kun.top/v/index.html?PageSpeed=noscript",
"#category": ("vichan", "8kun", "board"),
"#class" : vichan.VichanBoardExtractor,
},
)

@ -0,0 +1,73 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
gallery_dl = __import__("gallery_dl.extractor.8muses")
_8muses = getattr(gallery_dl.extractor, "8muses")
__tests__ = (
{
"#url" : "https://comics.8muses.com/comics/album/Fakku-Comics/mogg/Liar",
"#category": ("", "8muses", "album"),
"#class" : _8muses._8musesAlbumExtractor,
"#pattern" : r"https://comics.8muses.com/image/fl/[\w-]+",
"#sha1_url": "6286ac33087c236c5a7e51f8a9d4e4d5548212d4",
"url" : str,
"hash" : str,
"page" : int,
"count": 6,
"album": {
"id" : 10467,
"title" : "Liar",
"path" : "Fakku Comics/mogg/Liar",
"parts" : [
"Fakku Comics",
"mogg",
"Liar",
],
"private": False,
"url" : "https://comics.8muses.com/comics/album/Fakku-Comics/mogg/Liar",
"parent" : 10464,
"views" : int,
"likes" : int,
"date" : "dt:2018-07-10 00:00:00",
},
},
{
"#url" : "https://www.8muses.com/comics/album/Fakku-Comics/santa",
"#category": ("", "8muses", "album"),
"#class" : _8muses._8musesAlbumExtractor,
"#pattern" : _8muses._8musesAlbumExtractor.pattern,
"#count" : ">= 3",
"url" : str,
"name" : str,
"private": False,
},
{
"#url" : "https://www.8muses.com/comics/album/Fakku-Comics/11?sort=az",
"#comment" : "custom sorting",
"#category": ("", "8muses", "album"),
"#class" : _8muses._8musesAlbumExtractor,
"#count" : ">= 70",
"name": r"re:^[R-Zr-z]",
},
{
"#url" : "https://comics.8muses.com/comics/album/Various-Authors/Chessire88/From-Trainers-to-Pokmons",
"#comment" : "non-ASCII characters",
"#category": ("", "8muses", "album"),
"#class" : _8muses._8musesAlbumExtractor,
"#count" : 2,
"name": r"re:From Trainers to Pokémons",
},
)

@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import jschan
__tests__ = (
{
"#url" : "https://94chan.org/art/thread/25.html",
"#category": ("jschan", "94chan", "thread"),
"#class" : jschan.JschanThreadExtractor,
"#pattern" : r"https://94chan.org/file/[0-9a-f]{64}(\.\w+)?",
"#count" : ">= 15",
},
{
"#url" : "https://94chan.org/art/",
"#category": ("jschan", "94chan", "board"),
"#class" : jschan.JschanBoardExtractor,
"#pattern" : jschan.JschanThreadExtractor.pattern,
"#count" : ">= 30",
},
{
"#url" : "https://94chan.org/art/2.html",
"#category": ("jschan", "94chan", "board"),
"#class" : jschan.JschanBoardExtractor,
},
{
"#url" : "https://94chan.org/art/catalog.html",
"#category": ("jschan", "94chan", "board"),
"#class" : jschan.JschanBoardExtractor,
},
{
"#url" : "https://94chan.org/art/index.html",
"#category": ("jschan", "94chan", "board"),
"#class" : jschan.JschanBoardExtractor,
},
)

@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
import os
import sys
import functools
__directory__ = os.path.dirname(__file__)
@functools.lru_cache(maxsize=None)
def tests(name):
try:
module = __import__(name, globals(), None, (), 1)
return module.__tests__
except Exception as exc:
print(exc)
return ()
def all():
ignore = ("__init__.py", "__pycache__")
for filename in os.listdir(__directory__):
if filename not in ignore:
yield from tests(filename[:-3])
def category(category):
return tests(category.replace(".", ""))

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagehosts
__tests__ = (
{
"#url" : "https://acidimg.cc/img-5acb6b9de4640.html",
"#category": ("imagehost", "acidimg", "image"),
"#class" : imagehosts.AcidimgImageExtractor,
"#sha1_url" : "f132a630006e8d84f52d59555191ed82b3b64c04",
"#sha1_metadata": "135347ab4345002fc013863c0d9419ba32d98f78",
"#sha1_content" : "0c8768055e4e20e7c7259608b67799171b691140",
},
)

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import adultempire
__tests__ = (
{
"#url" : "https://www.adultempire.com/5998/gallery.html",
"#category": ("", "adultempire", "gallery"),
"#class" : adultempire.AdultempireGalleryExtractor,
"#range" : "1",
"#sha1_metadata": "5b3266e69801db0d78c22181da23bc102886e027",
"#sha1_content" : "5c6beb31e5e3cdc90ee5910d5c30f9aaec977b9e",
},
{
"#url" : "https://www.adultdvdempire.com/5683/gallery.html",
"#category": ("", "adultempire", "gallery"),
"#class" : adultempire.AdultempireGalleryExtractor,
"#sha1_url" : "b12cd1a65cae8019d837505adb4d6a2c1ed4d70d",
"#sha1_metadata": "8d448d79c4ac5f5b10a3019d5b5129ddb43655e5",
},
)

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import danbooru
__tests__ = (
{
"#url" : "https://aibooru.online/posts?tags=center_frills&z=1",
"#category": ("Danbooru", "aibooru", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
"#pattern" : r"https://cdn\.aibooru\.online/original/[0-9a-f]{2}/[0-9a-f]{2}/[0-9a-f]{32}\.\w+",
"#count" : ">= 3",
},
{
"#url" : "https://safe.aibooru.online/posts?tags=center_frills",
"#category": ("Danbooru", "aibooru", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
},
{
"#url" : "https://aibooru.online/pools/1",
"#category": ("Danbooru", "aibooru", "pool"),
"#class" : danbooru.DanbooruPoolExtractor,
},
{
"#url" : "https://aibooru.online/posts/1",
"#category": ("Danbooru", "aibooru", "post"),
"#class" : danbooru.DanbooruPostExtractor,
"#sha1_content": "54d548743cd67799a62c77cbae97cfa0fec1b7e9",
},
{
"#url" : "https://aibooru.online/explore/posts/popular",
"#category": ("Danbooru", "aibooru", "popular"),
"#class" : danbooru.DanbooruPopularExtractor,
},
)

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import gelbooru_v01
__tests__ = (
{
"#url" : "https://allgirl.booru.org/index.php?page=post&s=list&tags=dress",
"#category": ("gelbooru_v01", "allgirlbooru", "tag"),
"#class" : gelbooru_v01.GelbooruV01TagExtractor,
"#range" : "1-25",
"#count" : 25,
},
{
"#url" : "https://allgirl.booru.org/index.php?page=favorites&s=view&id=380",
"#category": ("gelbooru_v01", "allgirlbooru", "favorite"),
"#class" : gelbooru_v01.GelbooruV01FavoriteExtractor,
"#count" : 4,
},
{
"#url" : "https://allgirl.booru.org/index.php?page=post&s=view&id=107213",
"#category": ("gelbooru_v01", "allgirlbooru", "post"),
"#class" : gelbooru_v01.GelbooruV01PostExtractor,
"#sha1_url" : "b416800d2d2b072f80d3b37cfca9cb806fb25d51",
"#sha1_content": "3e3c65e0854a988696e11adf0de52f8fa90a51c7",
"created_at": "2021-02-13 16:27:39",
"date" : "dt:2021-02-13 16:27:39",
"file_url" : "https://img.booru.org/allgirl//images/107/2aaa0438d58fc7baa75a53b4a9621bb89a9d3fdb.jpg",
"height" : "1200",
"id" : "107213",
"md5" : "2aaa0438d58fc7baa75a53b4a9621bb89a9d3fdb",
"rating" : "s",
"score" : str,
"source" : "",
"tags" : "blush dress green_eyes green_hair hatsune_miku long_hair twintails vocaloid",
"uploader" : "Honochi31",
"width" : "1600",
},
)

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import reactor
__tests__ = (
{
"#url" : "http://anime.reactor.cc/tag/Anime+Art",
"#category": ("reactor", "anime.reactor", "tag"),
"#class" : reactor.ReactorTagExtractor,
},
{
"#url" : "http://anime.reactor.cc/user/Shuster",
"#category": ("reactor", "anime.reactor", "user"),
"#class" : reactor.ReactorUserExtractor,
},
{
"#url" : "http://anime.reactor.cc/post/3576250",
"#category": ("reactor", "anime.reactor", "post"),
"#class" : reactor.ReactorPostExtractor,
},
)

@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import architizer
__tests__ = (
{
"#url" : "https://architizer.com/projects/house-lo/",
"#category": ("", "architizer", "project"),
"#class" : architizer.ArchitizerProjectExtractor,
"#pattern" : r"https://architizer-prod\.imgix\.net/media/mediadata/uploads/.+\.jpg$",
"count" : 27,
"description": str,
"firm" : "Atelier Lina Bellovicova",
"gid" : "225496",
"location" : "Czechia",
"num" : int,
"size" : "1000 sqft - 3000 sqft",
"slug" : "house-lo",
"status" : "Built",
"subcategory": "project",
"title" : "House LO",
"type" : "Residential Private House",
"year" : "2020",
},
{
"#url" : "https://architizer.com/firms/olson-kundig/",
"#category": ("", "architizer", "firm"),
"#class" : architizer.ArchitizerFirmExtractor,
"#pattern" : architizer.ArchitizerProjectExtractor.pattern,
"#count" : ">= 90",
},
)

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import foolfuuka
__tests__ = (
{
"#url" : "https://archived.moe/gd/thread/309639/",
"#category": ("foolfuuka", "archivedmoe", "thread"),
"#class" : foolfuuka.FoolfuukaThreadExtractor,
"#sha1_url" : "fdd533840e2d535abd162c02d6dfadbc12e2dcd8",
"#sha1_content": "c27e2a7be3bc989b5dd859f7789cc854db3f5573",
},
{
"#url" : "https://archived.moe/a/thread/159767162/",
"#category": ("foolfuuka", "archivedmoe", "thread"),
"#class" : foolfuuka.FoolfuukaThreadExtractor,
"#sha1_url": "ffec05a1a1b906b5ca85992513671c9155ee9e87",
},
{
"#url" : "https://archived.moe/gd/",
"#category": ("foolfuuka", "archivedmoe", "board"),
"#class" : foolfuuka.FoolfuukaBoardExtractor,
},
{
"#url" : "https://archived.moe/_/search/text/test/",
"#category": ("foolfuuka", "archivedmoe", "search"),
"#class" : foolfuuka.FoolfuukaSearchExtractor,
},
{
"#url" : "https://archived.moe/gd/gallery/2",
"#category": ("foolfuuka", "archivedmoe", "gallery"),
"#class" : foolfuuka.FoolfuukaGalleryExtractor,
},
)

@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import foolfuuka
__tests__ = (
{
"#url" : "https://archiveofsins.com/h/thread/4668813/",
"#category": ("foolfuuka", "archiveofsins", "thread"),
"#class" : foolfuuka.FoolfuukaThreadExtractor,
"#sha1_url" : "f612d287087e10a228ef69517cf811539db9a102",
"#sha1_content": "0dd92d0d8a7bf6e2f7d1f5ac8954c1bcf18c22a4",
},
{
"#url" : "https://archiveofsins.com/h/",
"#category": ("foolfuuka", "archiveofsins", "board"),
"#class" : foolfuuka.FoolfuukaBoardExtractor,
},
{
"#url" : "https://archiveofsins.com/_/search/text/test/",
"#category": ("foolfuuka", "archiveofsins", "search"),
"#class" : foolfuuka.FoolfuukaSearchExtractor,
},
{
"#url" : "https://archiveofsins.com/_/search/text/test/",
"#category": ("foolfuuka", "archiveofsins", "search"),
"#class" : foolfuuka.FoolfuukaSearchExtractor,
},
{
"#url" : "https://archiveofsins.com/h/gallery/3",
"#category": ("foolfuuka", "archiveofsins", "gallery"),
"#class" : foolfuuka.FoolfuukaGalleryExtractor,
},
)

@ -0,0 +1,160 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import artstation
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://www.artstation.com/sungchoi/",
"#category": ("", "artstation", "user"),
"#class" : artstation.ArtstationUserExtractor,
"#pattern" : r"https://\w+\.artstation\.com/p/assets/images/images/\d+/\d+/\d+/(4k|large|medium|small)/[^/]+",
"#range" : "1-10",
"#count" : ">= 10",
},
{
"#url" : "https://www.artstation.com/sungchoi/albums/all/",
"#category": ("", "artstation", "user"),
"#class" : artstation.ArtstationUserExtractor,
},
{
"#url" : "https://sungchoi.artstation.com/",
"#category": ("", "artstation", "user"),
"#class" : artstation.ArtstationUserExtractor,
},
{
"#url" : "https://sungchoi.artstation.com/projects/",
"#category": ("", "artstation", "user"),
"#class" : artstation.ArtstationUserExtractor,
},
{
"#url" : "https://www.artstation.com/huimeiye/albums/770899",
"#category": ("", "artstation", "album"),
"#class" : artstation.ArtstationAlbumExtractor,
"#count" : 2,
},
{
"#url" : "https://www.artstation.com/huimeiye/albums/770898",
"#category": ("", "artstation", "album"),
"#class" : artstation.ArtstationAlbumExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://huimeiye.artstation.com/albums/770899",
"#category": ("", "artstation", "album"),
"#class" : artstation.ArtstationAlbumExtractor,
},
{
"#url" : "https://www.artstation.com/mikf/likes",
"#category": ("", "artstation", "likes"),
"#class" : artstation.ArtstationLikesExtractor,
"#pattern" : r"https://\w+\.artstation\.com/p/assets/images/images/\d+/\d+/\d+/(4k|large|medium|small)/[^/]+",
"#count" : 6,
},
{
"#url" : "https://www.artstation.com/sungchoi/likes",
"#comment" : "no likes",
"#category": ("", "artstation", "likes"),
"#class" : artstation.ArtstationLikesExtractor,
"#count" : 0,
},
{
"#url" : "https://www.artstation.com/contests/thu-2017/challenges/20",
"#category": ("", "artstation", "challenge"),
"#class" : artstation.ArtstationChallengeExtractor,
},
{
"#url" : "https://www.artstation.com/contests/beyond-human/challenges/23?sorting=winners",
"#category": ("", "artstation", "challenge"),
"#class" : artstation.ArtstationChallengeExtractor,
"#range" : "1-30",
"#count" : 30,
},
{
"#url" : "https://www.artstation.com/search?query=ancient&sort_by=rank",
"#category": ("", "artstation", "search"),
"#class" : artstation.ArtstationSearchExtractor,
"#range" : "1-20",
"#count" : 20,
},
{
"#url" : "https://www.artstation.com/artwork?sorting=latest",
"#category": ("", "artstation", "artwork"),
"#class" : artstation.ArtstationArtworkExtractor,
"#range" : "1-20",
"#count" : 20,
},
{
"#url" : "https://www.artstation.com/artwork/LQVJr",
"#category": ("", "artstation", "image"),
"#class" : artstation.ArtstationImageExtractor,
"#pattern" : r"https?://\w+\.artstation\.com/p/assets/images/images/008/760/279/4k/.+",
"#sha1_content": "7b113871465fdc09d127adfdc2767d51cf45a7e9",
},
{
"#url" : "https://www.artstation.com/artwork/Db3dy",
"#comment" : "multiple images per project",
"#category": ("", "artstation", "image"),
"#class" : artstation.ArtstationImageExtractor,
"#count" : 4,
},
{
"#url" : "https://www.artstation.com/artwork/g4WPK",
"#comment" : "embedded youtube video",
"#category": ("", "artstation", "image"),
"#class" : artstation.ArtstationImageExtractor,
"#options" : {"external": True},
"#pattern" : "ytdl:https://www.youtube.com/embed/JNFfJtwwrU0",
"#range" : "2",
},
{
"#url" : "https://www.artstation.com/artwork/3q3mXB",
"#comment" : "404 (#3016)",
"#category": ("", "artstation", "image"),
"#class" : artstation.ArtstationImageExtractor,
"#count" : 0,
},
{
"#url" : "https://sungchoi.artstation.com/projects/LQVJr",
"#comment" : "alternate URL patterns",
"#category": ("", "artstation", "image"),
"#class" : artstation.ArtstationImageExtractor,
},
{
"#url" : "https://artstn.co/p/LQVJr",
"#category": ("", "artstation", "image"),
"#class" : artstation.ArtstationImageExtractor,
},
{
"#url" : "https://www.artstation.com/sungchoi/following",
"#category": ("", "artstation", "following"),
"#class" : artstation.ArtstationFollowingExtractor,
"#pattern" : artstation.ArtstationUserExtractor.pattern,
"#count" : ">= 50",
},
)

@ -0,0 +1,86 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import aryion
__tests__ = (
{
"#url" : "https://aryion.com/g4/gallery/jameshoward",
"#category": ("", "aryion", "gallery"),
"#class" : aryion.AryionGalleryExtractor,
"#options" : {"recursive": False},
"#pattern" : r"https://aryion\.com/g4/data\.php\?id=\d+$",
"#range" : "48-52",
"#count" : 5,
},
{
"#url" : "https://aryion.com/g4/user/jameshoward",
"#category": ("", "aryion", "gallery"),
"#class" : aryion.AryionGalleryExtractor,
},
{
"#url" : "https://aryion.com/g4/latest.php?name=jameshoward",
"#category": ("", "aryion", "gallery"),
"#class" : aryion.AryionGalleryExtractor,
},
{
"#url" : "https://aryion.com/g4/tags.php?tag=star+wars&p=19",
"#category": ("", "aryion", "tag"),
"#class" : aryion.AryionTagExtractor,
"#count" : ">= 5",
},
{
"#url" : "https://aryion.com/g4/view/510079",
"#category": ("", "aryion", "post"),
"#class" : aryion.AryionPostExtractor,
"#sha1_url": "f233286fa5558c07ae500f7f2d5cb0799881450e",
"artist" : "jameshoward",
"user" : "jameshoward",
"filename" : "jameshoward-510079-subscribestar_150",
"extension" : "jpg",
"id" : 510079,
"width" : 1665,
"height" : 1619,
"size" : 784239,
"title" : "I'm on subscribestar now too!",
"description": r"re:Doesn't hurt to have a backup, right\?",
"tags" : [
"Non-Vore",
"subscribestar",
],
"date" : "dt:2019-02-16 19:30:34",
"path" : [],
"views" : int,
"favorites" : int,
"comments" : int,
"_mtime" : "Sat, 16 Feb 2019 19:30:34 GMT",
},
{
"#url" : "https://aryion.com/g4/view/588928",
"#comment" : "x-folder (#694)",
"#category": ("", "aryion", "post"),
"#class" : aryion.AryionPostExtractor,
"#pattern" : aryion.AryionPostExtractor.pattern,
"#count" : ">= 8",
},
{
"#url" : "https://aryion.com/g4/view/537379",
"#comment" : "x-comic-folder (#945)",
"#category": ("", "aryion", "post"),
"#class" : aryion.AryionPostExtractor,
"#pattern" : aryion.AryionPostExtractor.pattern,
"#count" : 2,
},
)

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import danbooru
__tests__ = (
{
"#url" : "https://booru.allthefallen.moe/posts?tags=yume_shokunin",
"#category": ("Danbooru", "atfbooru", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
"#count" : 12,
},
{
"#url" : "https://booru.allthefallen.moe/pools/9",
"#category": ("Danbooru", "atfbooru", "pool"),
"#class" : danbooru.DanbooruPoolExtractor,
"#count" : 6,
"#sha1_url": "902549ffcdb00fe033c3f63e12bc3cb95c5fd8d5",
},
{
"#url" : "https://booru.allthefallen.moe/posts/22",
"#category": ("Danbooru", "atfbooru", "post"),
"#class" : danbooru.DanbooruPostExtractor,
"#sha1_content": "21dda68e1d7e0a554078e62923f537d8e895cac8",
},
{
"#url" : "https://booru.allthefallen.moe/explore/posts/popular",
"#category": ("Danbooru", "atfbooru", "popular"),
"#class" : danbooru.DanbooruPopularExtractor,
},
)

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import foolfuuka
__tests__ = (
{
"#url" : "https://arch.b4k.co/meta/thread/196/",
"#category": ("foolfuuka", "b4k", "thread"),
"#class" : foolfuuka.FoolfuukaThreadExtractor,
"#sha1_url": "d309713d2f838797096b3e9cb44fe514a9c9d07a",
},
{
"#url" : "https://arch.b4k.co/meta/",
"#category": ("foolfuuka", "b4k", "board"),
"#class" : foolfuuka.FoolfuukaBoardExtractor,
},
{
"#url" : "https://arch.b4k.co/meta/gallery/",
"#category": ("foolfuuka", "b4k", "gallery"),
"#class" : foolfuuka.FoolfuukaGalleryExtractor,
},
)

@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import mastodon
__tests__ = (
{
"#url" : "https://baraag.net/@pumpkinnsfw",
"#category": ("mastodon", "baraag", "user"),
"#class" : mastodon.MastodonUserExtractor,
},
{
"#url" : "https://baraag.net/bookmarks",
"#category": ("mastodon", "baraag", "bookmark"),
"#class" : mastodon.MastodonBookmarkExtractor,
},
{
"#url" : "https://baraag.net/users/pumpkinnsfw/following",
"#category": ("mastodon", "baraag", "following"),
"#class" : mastodon.MastodonFollowingExtractor,
},
{
"#url" : "https://baraag.net/@pumpkinnsfw/104364170556898443",
"#category": ("mastodon", "baraag", "status"),
"#class" : mastodon.MastodonStatusExtractor,
"#sha1_content": "67748c1b828c58ad60d0fe5729b59fb29c872244",
},
)

@ -0,0 +1,49 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import bbc
__tests__ = (
{
"#url" : "https://www.bbc.co.uk/programmes/p084qtzs/p085g9kg",
"#category": ("", "bbc", "gallery"),
"#class" : bbc.BbcGalleryExtractor,
"#pattern" : r"https://ichef\.bbci\.co\.uk/images/ic/1920xn/\w+\.jpg",
"#count" : 37,
"programme": "p084qtzs",
"path" : [
"BBC One",
"Doctor Who",
"The Timeless Children",
],
},
{
"#url" : "https://www.bbc.co.uk/programmes/p084qtzs",
"#category": ("", "bbc", "gallery"),
"#class" : bbc.BbcGalleryExtractor,
},
{
"#url" : "https://www.bbc.co.uk/programmes/b006q2x0/galleries",
"#category": ("", "bbc", "programme"),
"#class" : bbc.BbcProgrammeExtractor,
"#pattern" : bbc.BbcGalleryExtractor.pattern,
"#range" : "1-50",
"#count" : ">= 50",
},
{
"#url" : "https://www.bbc.co.uk/programmes/b006q2x0/galleries?page=40",
"#category": ("", "bbc", "programme"),
"#class" : bbc.BbcProgrammeExtractor,
"#pattern" : bbc.BbcGalleryExtractor.pattern,
"#count" : ">= 100",
},
)

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import lynxchan
__tests__ = (
{
"#url" : "https://bbw-chan.nl/bbwdraw/res/499.html",
"#category": ("lynxchan", "bbw-chan", "thread"),
"#class" : lynxchan.LynxchanThreadExtractor,
"#pattern" : r"https://bbw-chan\.nl/\.media/[0-9a-f]{64}(\.\w+)?$",
"#count" : ">= 352",
},
{
"#url" : "https://bbw-chan.nl/bbwdraw/res/489.html",
"#category": ("lynxchan", "bbw-chan", "thread"),
"#class" : lynxchan.LynxchanThreadExtractor,
},
{
"#url" : "https://bbw-chan.nl/bbwdraw/",
"#category": ("lynxchan", "bbw-chan", "board"),
"#class" : lynxchan.LynxchanBoardExtractor,
"#pattern" : lynxchan.LynxchanThreadExtractor.pattern,
"#count" : ">= 148",
},
{
"#url" : "https://bbw-chan.nl/bbwdraw/2.html",
"#category": ("lynxchan", "bbw-chan", "board"),
"#class" : lynxchan.LynxchanBoardExtractor,
},
)

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import szurubooru
__tests__ = (
{
"#url" : "https://booru.bcbnsfw.space/posts/query=simple_background",
"#category": ("szurubooru", "bcbnsfw", "tag"),
"#class" : szurubooru.SzurubooruTagExtractor,
},
{
"#url" : "https://booru.bcbnsfw.space/post/1599",
"#category": ("szurubooru", "bcbnsfw", "post"),
"#class" : szurubooru.SzurubooruPostExtractor,
"#pattern" : r"https://booru\.bcbnsfw\.space/data/posts/1599_53784518e92086bd\.png",
"#sha1_content": "0c38fc612ba1f03950fad31c4f80a1fccdab1096",
},
)

@ -0,0 +1,88 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import behance
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://www.behance.net/gallery/17386197/A-Short-Story",
"#category": ("", "behance", "gallery"),
"#class" : behance.BehanceGalleryExtractor,
"#count" : 2,
"#sha1_url": "ab79bd3bef8d3ae48e6ac74fd995c1dfaec1b7d2",
"id" : 17386197,
"name" : r"re:\"Hi\". A short story about the important things ",
"owners": [
"Place Studio",
"Julio César Velazquez",
],
"fields": [
"Animation",
"Character Design",
"Directing",
],
"tags" : list,
"module": dict,
"date" : "dt:2014-06-03 15:41:51",
},
{
"#url" : "https://www.behance.net/gallery/21324767/Nevada-City",
"#category": ("", "behance", "gallery"),
"#class" : behance.BehanceGalleryExtractor,
"#count" : 6,
"#sha1_url": "0258fe194fe7d828d6f2c7f6086a9a0a4140db1d",
"owners": ["Alex Strohl"],
},
{
"#url" : "https://www.behance.net/gallery/88276087/Audi-R8-RWD",
"#comment" : "'media_collection' modules",
"#category": ("", "behance", "gallery"),
"#class" : behance.BehanceGalleryExtractor,
"#pattern" : r"https://mir-s3-cdn-cf\.behance\.net/project_modules/source/[0-9a-f]+.[0-9a-f]+\.jpg",
"#count" : 20,
"#sha1_url": "6bebff0d37f85349f9ad28bd8b76fd66627c1e2f",
},
{
"#url" : "https://www.behance.net/gallery/101185577/COLCCI",
"#comment" : "'video' modules (#1282)",
"#category": ("", "behance", "gallery"),
"#class" : behance.BehanceGalleryExtractor,
"#pattern" : r"https://cdn-prod-ccv\.adobe\.com/\w+/rend/\w+_720\.mp4\?",
"#count" : 3,
},
{
"#url" : "https://www.behance.net/gallery/177464639/Kimori",
"#comment" : "mature content (#4417)",
"#category": ("", "behance", "gallery"),
"#class" : behance.BehanceGalleryExtractor,
"#exception": exception.AuthorizationError,
},
{
"#url" : "https://www.behance.net/alexstrohl",
"#category": ("", "behance", "user"),
"#class" : behance.BehanceUserExtractor,
"#pattern" : behance.BehanceGalleryExtractor.pattern,
"#count" : ">= 11",
},
{
"#url" : "https://www.behance.net/collection/71340149/inspiration",
"#category": ("", "behance", "collection"),
"#class" : behance.BehanceCollectionExtractor,
"#pattern" : behance.BehanceGalleryExtractor.pattern,
"#count" : ">= 150",
},
)

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import urlshortener
__tests__ = (
{
"#url" : "https://bit.ly/3cWIUgq",
"#category": ("urlshortener", "bitly", "link"),
"#class" : urlshortener.UrlshortenerLinkExtractor,
"#pattern" : "^https://gumroad.com/l/storm_b1",
"#count" : 1,
},
)

@ -0,0 +1,107 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import blogger
__tests__ = (
{
"#url" : "https://julianbphotography.blogspot.com/2010/12/moon-rise.html",
"#category": ("", "blogger", "post"),
"#class" : blogger.BloggerPostExtractor,
"#pattern" : "https://3.bp.blogspot.com/.*/s0/Icy-Moonrise-.*.jpg",
"#sha1_url": "9928429fb62f712eb4de80f53625eccecc614aae",
"blog": {
"date" : "dt:2010-11-21 18:19:42",
"description": "",
"id" : "5623928067739466034",
"kind" : "blogger#blog",
"locale" : dict,
"name" : "Julian Bunker Photography",
"pages" : int,
"posts" : int,
"published" : "2010-11-21T10:19:42-08:00",
"updated" : str,
"url" : "http://julianbphotography.blogspot.com/",
},
"post": {
"author" : "Julian Bunker",
"content" : str,
"date" : "dt:2010-12-26 01:08:00",
"etag" : str,
"id" : "6955139236418998998",
"kind" : "blogger#post",
"published": "2010-12-25T17:08:00-08:00",
"replies" : "0",
"title" : "Moon Rise",
"updated" : "2011-12-06T05:21:24-08:00",
"url" : r"re:.+/2010/12/moon-rise.html$",
},
"num" : int,
"url" : str,
},
{
"#url" : "blogger:http://www.julianbunker.com/2010/12/moon-rise.html",
"#category": ("", "blogger", "post"),
"#class" : blogger.BloggerPostExtractor,
},
{
"#url" : "http://cfnmscenesinmovies.blogspot.com/2011/11/cfnm-scene-jenna-fischer-in-office.html",
"#comment" : "video (#587)",
"#category": ("", "blogger", "post"),
"#class" : blogger.BloggerPostExtractor,
"#pattern" : r"https://.+\.googlevideo\.com/videoplayback",
},
{
"#url" : "https://randomthingsthroughmyletterbox.blogspot.com/2022/01/bitter-flowers-by-gunnar-staalesen-blog.html",
"#comment" : "new image domain (#2204)",
"#category": ("", "blogger", "post"),
"#class" : blogger.BloggerPostExtractor,
"#pattern" : "https://blogger.googleusercontent.com/img/a/.+=s0$",
"#count" : 8,
},
{
"#url" : "https://julianbphotography.blogspot.com/",
"#category": ("", "blogger", "blog"),
"#class" : blogger.BloggerBlogExtractor,
"#pattern" : r"https://\d\.bp\.blogspot\.com/.*/s0/[^.]+\.jpg",
"#range" : "1-25",
"#count" : 25,
},
{
"#url" : "blogger:https://www.kefblog.com.ng/",
"#category": ("", "blogger", "blog"),
"#class" : blogger.BloggerBlogExtractor,
"#range" : "1-25",
"#count" : 25,
},
{
"#url" : "https://julianbphotography.blogspot.com/search?q=400mm",
"#category": ("", "blogger", "search"),
"#class" : blogger.BloggerSearchExtractor,
"#count" : "< 10",
"query": "400mm",
},
{
"#url" : "https://dmmagazine.blogspot.com/search/label/D%26D",
"#category": ("", "blogger", "label"),
"#class" : blogger.BloggerLabelExtractor,
"#range" : "1-25",
"#count" : 25,
"label": "D&D",
},
)

@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import danbooru
__tests__ = (
{
"#url" : "https://booru.borvar.art/posts?tags=chibi&z=1",
"#category": ("Danbooru", "booruvar", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
"#pattern" : r"https://booru\.borvar\.art/data/original/[0-9a-f]{2}/[0-9a-f]{2}/[0-9a-f]{32}\.\w+",
"#count" : ">= 3",
},
{
"#url" : "https://booru.borvar.art/pools/2",
"#category": ("Danbooru", "booruvar", "pool"),
"#class" : danbooru.DanbooruPoolExtractor,
"#count" : 4,
"#sha1_url": "77fa3559a3fc919f72611f4e3dd0f919d19d3e0d",
},
{
"#url" : "https://booru.borvar.art/posts/1487",
"#category": ("Danbooru", "booruvar", "post"),
"#class" : danbooru.DanbooruPostExtractor,
"#sha1_content": "91273ac1ea413a12be468841e2b5804656a50bff",
},
{
"#url" : "https://booru.borvar.art/explore/posts/popular",
"#category": ("Danbooru", "booruvar", "popular"),
"#class" : danbooru.DanbooruPopularExtractor,
},
)

@ -0,0 +1,100 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import bunkr
__tests__ = (
{
"#url" : "https://bunkrr.su/a/Lktg9Keq",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
"#pattern" : r"https://cdn\.bunkr\.ru/test-テスト-\"&>-QjgneIQv\.png",
"#sha1_content": "0c8768055e4e20e7c7259608b67799171b691140",
"album_id" : "Lktg9Keq",
"album_name": "test テスト \"&>",
"count" : 1,
"filename" : "test-テスト-\"&>-QjgneIQv",
"id" : "QjgneIQv",
"name" : "test-テスト-\"&>",
"num" : int,
},
{
"#url" : "https://app.bunkr.ru/a/ptRHaCn2",
"#comment" : "mp4 (#2239)",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
"#pattern" : r"https://media-files\.bunkr\.ru/_-RnHoW69L\.mp4",
"#sha1_content": "80e61d1dbc5896ae7ef9a28734c747b28b320471",
},
{
"#url" : "https://bunkr.is/a/iXTTc1o2",
"#comment" : "cdn4",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
"#pattern" : r"https://(cdn|media-files)4\.bunkr\.ru/",
"#sha1_content": "da29aae371b7adc8c5ef8e6991b66b69823791e8",
"album_id" : "iXTTc1o2",
"album_name" : "test2",
"album_size" : "691.1 KB",
"count" : 2,
"description": "072022",
"filename" : r"re:video-wFO9FtxG|image-sZrQUeOx",
"id" : r"re:wFO9FtxG|sZrQUeOx",
"name" : r"re:video|image",
"num" : int,
},
{
"#url" : "https://bunkrr.su/a/j1G29CnD",
"#comment" : "cdn12 .ru TLD (#4147)",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
"#pattern" : r"https://(cdn12.bunkr.ru|media-files12.bunkr.la)/\w+",
"#count" : 8,
},
{
"#url" : "https://bunkrr.su/a/Lktg9Keq",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
},
{
"#url" : "https://bunkr.la/a/Lktg9Keq",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
},
{
"#url" : "https://bunkr.su/a/Lktg9Keq",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
},
{
"#url" : "https://bunkr.ru/a/Lktg9Keq",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
},
{
"#url" : "https://bunkr.is/a/Lktg9Keq",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
},
{
"#url" : "https://bunkr.to/a/Lktg9Keq",
"#category": ("lolisafe", "bunkr", "album"),
"#class" : bunkr.BunkrAlbumExtractor,
},
)

@ -0,0 +1,59 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import catbox
__tests__ = (
{
"#url" : "https://catbox.moe/c/1igcbe",
"#category": ("", "catbox", "album"),
"#class" : catbox.CatboxAlbumExtractor,
"#pattern" : r"https://files\.catbox\.moe/\w+\.\w{3}$",
"#count" : 3,
"#sha1_url" : "35866a88c29462814f103bc22ec031eaeb380f8a",
"#sha1_content": "70ddb9de3872e2d17cc27e48e6bf395e5c8c0b32",
"album_id" : "1igcbe",
"album_name" : "test",
"date" : "dt:2022-08-18 00:00:00",
"description": "album test &>",
},
{
"#url" : "https://www.catbox.moe/c/cd90s1",
"#category": ("", "catbox", "album"),
"#class" : catbox.CatboxAlbumExtractor,
},
{
"#url" : "https://catbox.moe/c/w7tm47#",
"#category": ("", "catbox", "album"),
"#class" : catbox.CatboxAlbumExtractor,
},
{
"#url" : "https://files.catbox.moe/8ih3y7.png",
"#category": ("", "catbox", "file"),
"#class" : catbox.CatboxFileExtractor,
"#pattern" : r"^https://files\.catbox\.moe/8ih3y7\.png$",
"#count" : 1,
"#sha1_content": "0c8768055e4e20e7c7259608b67799171b691140",
},
{
"#url" : "https://litter.catbox.moe/t8v3n9.png",
"#category": ("", "catbox", "file"),
"#class" : catbox.CatboxFileExtractor,
},
{
"#url" : "https://de.catbox.moe/bjdmz1.jpg",
"#category": ("", "catbox", "file"),
"#class" : catbox.CatboxFileExtractor,
},
)

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import shimmie2
__tests__ = (
{
"#url" : "https://booru.cavemanon.xyz/index.php?q=post/list/Amber/1",
"#category": ("shimmie2", "cavemanon", "tag"),
"#class" : shimmie2.Shimmie2TagExtractor,
"#pattern" : r"https://booru\.cavemanon\.xyz/index\.php\?q=image/\d+\.\w+",
"#range" : "1-100",
"#count" : 100,
},
{
"#url" : "https://booru.cavemanon.xyz/post/list/Amber/1",
"#category": ("shimmie2", "cavemanon", "tag"),
"#class" : shimmie2.Shimmie2TagExtractor,
},
{
"#url" : "https://booru.cavemanon.xyz/index.php?q=post/view/8335",
"#category": ("shimmie2", "cavemanon", "post"),
"#class" : shimmie2.Shimmie2PostExtractor,
"#pattern" : r"https://booru\.cavemanon\.xyz/index\.php\?q=image/8335\.png",
"#sha1_content": "7158f7e4abbbf143bad5835eb93dbe4d68c1d4ab",
"extension": "png",
"file_url" : "https://booru.cavemanon.xyz/index.php?q=image/8335.png",
"filename" : "8335",
"height" : 460,
"id" : 8335,
"md5" : "",
"size" : 0,
"tags" : "Color Fang Food Pterodactyl discord_emote transparent",
"width" : 459,
},
)

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import shopify
__tests__ = (
{
"#url" : "https://chelseacrew.com/collections/flats",
"#category": ("shopify", "chelseacrew", "collection"),
"#class" : shopify.ShopifyCollectionExtractor,
},
{
"#url" : "https://chelseacrew.com/collections/flats/products/dora",
"#category": ("shopify", "chelseacrew", "product"),
"#class" : shopify.ShopifyProductExtractor,
},
)

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import comicvine
__tests__ = (
{
"#url" : "https://comicvine.gamespot.com/jock/4040-5653/images/",
"#category": ("", "comicvine", "tag"),
"#class" : comicvine.ComicvineTagExtractor,
"#pattern" : r"https://comicvine\.gamespot\.com/a/uploads/original/\d+/\d+/\d+-.+\.(jpe?g|png)",
"#count" : ">= 140",
},
{
"#url" : "https://comicvine.gamespot.com/batman/4005-1699/images/?tag=Fan%20Art%20%26%20Cosplay",
"#category": ("", "comicvine", "tag"),
"#class" : comicvine.ComicvineTagExtractor,
"#pattern" : r"https://comicvine\.gamespot\.com/a/uploads/original/\d+/\d+/\d+-.+",
"#count" : ">= 450",
},
)

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import kemonoparty
__tests__ = (
{
"#url" : "https://coomer.party/onlyfans/user/alinity/post/125962203",
"#comment" : "coomer.party (#2100)",
"#category": ("", "coomerparty", "onlyfans"),
"#class" : kemonoparty.KemonopartyPostExtractor,
"#pattern" : r"https://coomer\.party/data/7d/3f/7d3fd9804583dc224968c0591163ec91794552b04f00a6c2f42a15b68231d5a8\.jpg",
},
)

@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import cyberdrop
__tests__ = (
{
"#url" : "https://cyberdrop.me/a/keKRjm4t",
"#comment" : "images",
"#category": ("lolisafe", "cyberdrop", "album"),
"#class" : cyberdrop.CyberdropAlbumExtractor,
"#pattern" : r"https://fs-\d+\.cyberdrop\.to/.*\.(jpg|png|webp)$",
"album_id" : "keKRjm4t",
"album_name" : "Fate (SFW)",
"album_size" : 150069254,
"count" : 62,
"date" : "dt:2020-06-18 13:14:20",
"description": "",
"id" : r"re:\w{8}",
},
{
"#url" : "https://cyberdrop.to/a/l8gIAXVD",
"#comment" : "videos",
"#category": ("lolisafe", "cyberdrop", "album"),
"#class" : cyberdrop.CyberdropAlbumExtractor,
"#pattern" : r"https://fs-\d+\.cyberdrop\.to/.*\.mp4$",
"#count" : 31,
"album_id" : "l8gIAXVD",
"album_name": "Achelois17 videos",
"album_size": 652037121,
"date" : "dt:2020-06-16 15:40:44",
},
)

@ -0,0 +1,103 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import danbooru
__tests__ = (
{
"#url" : "https://danbooru.donmai.us/posts?tags=bonocho",
"#category": ("Danbooru", "danbooru", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
"#sha1_content": "b196fb9f1668109d7774a0a82efea3ffdda07746",
},
{
"#url" : "https://danbooru.donmai.us/posts?tags=mushishi",
"#comment" : "test page transitions",
"#category": ("Danbooru", "danbooru", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
"#count" : ">= 300",
},
{
"#url" : "https://danbooru.donmai.us/posts?tags=pixiv_id%3A1476533",
"#comment" : "'external' option (#1747)",
"#category": ("Danbooru", "danbooru", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
"#options" : {"external": True},
"#pattern" : r"https://i\.pximg\.net/img-original/img/2008/08/28/02/35/48/1476533_p0\.jpg",
},
{
"#url" : "https://hijiribe.donmai.us/posts?tags=bonocho",
"#category": ("Danbooru", "danbooru", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
},
{
"#url" : "https://sonohara.donmai.us/posts?tags=bonocho",
"#category": ("Danbooru", "danbooru", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
},
{
"#url" : "https://safebooru.donmai.us/posts?tags=bonocho",
"#category": ("Danbooru", "danbooru", "tag"),
"#class" : danbooru.DanbooruTagExtractor,
},
{
"#url" : "https://danbooru.donmai.us/pools/7659",
"#category": ("Danbooru", "danbooru", "pool"),
"#class" : danbooru.DanbooruPoolExtractor,
"#sha1_content": "b16bab12bea5f7ea9e0a836bf8045f280e113d99",
},
{
"#url" : "https://danbooru.donmai.us/pool/show/7659",
"#category": ("Danbooru", "danbooru", "pool"),
"#class" : danbooru.DanbooruPoolExtractor,
},
{
"#url" : "https://danbooru.donmai.us/posts/294929",
"#category": ("Danbooru", "danbooru", "post"),
"#class" : danbooru.DanbooruPostExtractor,
"#sha1_content": "5e255713cbf0a8e0801dc423563c34d896bb9229",
"date": "dt:2008-08-12 04:46:05",
},
{
"#url" : "https://danbooru.donmai.us/posts/3613024",
"#category": ("Danbooru", "danbooru", "post"),
"#class" : danbooru.DanbooruPostExtractor,
"#options" : {"ugoira": True},
"#pattern" : r"https?://.+\.zip$",
},
{
"#url" : "https://danbooru.donmai.us/post/show/294929",
"#category": ("Danbooru", "danbooru", "post"),
"#class" : danbooru.DanbooruPostExtractor,
},
{
"#url" : "https://danbooru.donmai.us/explore/posts/popular",
"#category": ("Danbooru", "danbooru", "popular"),
"#class" : danbooru.DanbooruPopularExtractor,
},
{
"#url" : "https://danbooru.donmai.us/explore/posts/popular?date=2013-06-06&scale=week",
"#category": ("Danbooru", "danbooru", "popular"),
"#class" : danbooru.DanbooruPopularExtractor,
"#range" : "1-120",
"#count" : 120,
},
)

@ -0,0 +1,116 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import philomena
__tests__ = (
{
"#url" : "https://derpibooru.org/images/1",
"#category": ("philomena", "derpibooru", "post"),
"#class" : philomena.PhilomenaPostExtractor,
"#count" : 1,
"#sha1_content": "88449eeb0c4fa5d3583d0b794f6bc1d70bf7f889",
"animated" : False,
"aspect_ratio" : 1.0,
"comment_count" : int,
"created_at" : "2012-01-02T03:12:33Z",
"date" : "dt:2012-01-02 03:12:33",
"deletion_reason" : None,
"description" : "",
"downvotes" : int,
"duplicate_of" : None,
"duration" : 0.04,
"extension" : "png",
"faves" : int,
"first_seen_at" : "2012-01-02T03:12:33Z",
"format" : "png",
"height" : 900,
"hidden_from_users": False,
"id" : 1,
"mime_type" : "image/png",
"name" : "1__safe_fluttershy_solo_cloud_happy_flying_upvotes+galore_artist-colon-speccysy_get_sunshine",
"orig_sha512_hash": None,
"processed" : True,
"representations" : dict,
"score" : int,
"sha512_hash" : "f16c98e2848c2f1bfff3985e8f1a54375cc49f78125391aeb80534ce011ead14e3e452a5c4bc98a66f56bdfcd07ef7800663b994f3f343c572da5ecc22a9660f",
"size" : 860914,
"source_url" : "https://www.deviantart.com/speccysy/art/Afternoon-Flight-215193985",
"spoilered" : False,
"tag_count" : int,
"tag_ids" : list,
"tags" : list,
"thumbnails_generated": True,
"updated_at" : r"re:\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\dZ",
"uploader" : "Clover the Clever",
"uploader_id" : 211188,
"upvotes" : int,
"view_url" : str,
"width" : 900,
"wilson_score" : float,
},
{
"#url" : "https://derpibooru.org/1",
"#category": ("philomena", "derpibooru", "post"),
"#class" : philomena.PhilomenaPostExtractor,
},
{
"#url" : "https://www.derpibooru.org/1",
"#category": ("philomena", "derpibooru", "post"),
"#class" : philomena.PhilomenaPostExtractor,
},
{
"#url" : "https://www.derpibooru.org/images/1",
"#category": ("philomena", "derpibooru", "post"),
"#class" : philomena.PhilomenaPostExtractor,
},
{
"#url" : "https://derpibooru.org/search?q=cute",
"#category": ("philomena", "derpibooru", "search"),
"#class" : philomena.PhilomenaSearchExtractor,
"#range" : "40-60",
"#count" : 21,
},
{
"#url" : "https://derpibooru.org/tags/cute",
"#category": ("philomena", "derpibooru", "search"),
"#class" : philomena.PhilomenaSearchExtractor,
"#range" : "40-60",
"#count" : 21,
},
{
"#url" : "https://derpibooru.org/tags/artist-colon--dash-_-fwslash--fwslash-%255Bkorroki%255D_aternak",
"#category": ("philomena", "derpibooru", "search"),
"#class" : philomena.PhilomenaSearchExtractor,
"#count" : ">= 2",
},
{
"#url" : "https://derpibooru.org/galleries/1",
"#category": ("philomena", "derpibooru", "gallery"),
"#class" : philomena.PhilomenaGalleryExtractor,
"#pattern" : r"https://derpicdn\.net/img/view/\d+/\d+/\d+/\d+[^/]+$",
"gallery": {
"description" : "Indexes start at 1 :P",
"id" : 1,
"spoiler_warning": "",
"thumbnail_id" : 1,
"title" : "The Very First Gallery",
"user" : "DeliciousBlackInk",
"user_id" : 365446,
},
},
)

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import desktopography
__tests__ = (
{
"#url" : "https://desktopography.net/",
"#category": ("", "desktopography", "site"),
"#class" : desktopography.DesktopographySiteExtractor,
},
{
"#url" : "https://desktopography.net/exhibition-2020/",
"#category": ("", "desktopography", "exhibition"),
"#class" : desktopography.DesktopographyExhibitionExtractor,
},
{
"#url" : "https://desktopography.net/portfolios/new-era/",
"#category": ("", "desktopography", "entry"),
"#class" : desktopography.DesktopographyEntryExtractor,
},
)

@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import foolfuuka
__tests__ = (
{
"#url" : "https://desuarchive.org/a/thread/159542679/",
"#category": ("foolfuuka", "desuarchive", "thread"),
"#class" : foolfuuka.FoolfuukaThreadExtractor,
"#sha1_url": "e7d624aded15a069194e38dc731ec23217a422fb",
},
{
"#url" : "https://desuarchive.org/a/",
"#category": ("foolfuuka", "desuarchive", "board"),
"#class" : foolfuuka.FoolfuukaBoardExtractor,
},
{
"#url" : "https://desuarchive.org/_/search/text/test/",
"#category": ("foolfuuka", "desuarchive", "search"),
"#class" : foolfuuka.FoolfuukaSearchExtractor,
},
{
"#url" : "https://desuarchive.org/a/gallery/5",
"#category": ("foolfuuka", "desuarchive", "gallery"),
"#class" : foolfuuka.FoolfuukaGalleryExtractor,
},
)

@ -0,0 +1,732 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import deviantart
import datetime
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://www.deviantart.com/shimoda7",
"#category": ("", "deviantart", "user"),
"#class" : deviantart.DeviantartUserExtractor,
"#pattern" : "/shimoda7/gallery$",
},
{
"#url" : "https://www.deviantart.com/shimoda7",
"#category": ("", "deviantart", "user"),
"#class" : deviantart.DeviantartUserExtractor,
"#options" : {"include": "all"},
"#pattern" : "/shimoda7/(gallery(/scraps)?|posts(/statuses)?|favourites)$",
"#count" : 5,
},
{
"#url" : "https://shimoda7.deviantart.com/",
"#category": ("", "deviantart", "user"),
"#class" : deviantart.DeviantartUserExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery/",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
"#pattern" : r"https://(images-)?wixmp-[^.]+\.wixmp\.com/f/.+/.+\.(jpg|png)\?token=.+",
"#count" : ">= 30",
"allows_comments" : bool,
"author" : {
"type" : "regular",
"usericon": str,
"userid" : "9AE51FC7-0278-806C-3FFF-F4961ABF9E2B",
"username": "shimoda7",
},
"category_path" : str,
"content" : {
"filesize" : int,
"height" : int,
"src" : str,
"transparency": bool,
"width" : int,
},
"da_category" : str,
"date" : datetime.datetime,
"deviationid" : str,
"?download_filesize": int,
"extension" : str,
"index" : int,
"is_deleted" : bool,
"is_downloadable" : bool,
"is_favourited" : bool,
"is_mature" : bool,
"preview" : {
"height" : int,
"src" : str,
"transparency": bool,
"width" : int,
},
"published_time" : int,
"stats" : {
"comments" : int,
"favourites": int,
},
"target" : dict,
"thumbs" : list,
"title" : str,
"url" : r"re:https://www.deviantart.com/shimoda7/art/[^/]+-\d+",
"username" : "shimoda7",
},
{
"#url" : "https://www.deviantart.com/yakuzafc/gallery",
"#comment" : "group",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
"#pattern" : r"https://www.deviantart.com/yakuzafc/gallery/\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/",
"#count" : ">= 15",
},
{
"#url" : "https://www.deviantart.com/justatest235723/gallery",
"#comment" : "'folders' option (#276)",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
"#options" : {
"metadata": 1,
"folders" : 1,
"original": 0,
},
"#count" : 3,
"description": str,
"folders" : list,
"is_watching": bool,
"license" : str,
"tags" : list,
},
{
"#url" : "https://www.deviantart.com/shimoda8/gallery/",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery/all",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery/?catpath=/",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
},
{
"#url" : "https://shimoda7.deviantart.com/gallery/",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
},
{
"#url" : "https://shimoda7.deviantart.com/gallery/all/",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
},
{
"#url" : "https://shimoda7.deviantart.com/gallery/?catpath=/",
"#category": ("", "deviantart", "gallery"),
"#class" : deviantart.DeviantartGalleryExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery/722019/Miscellaneous",
"#comment" : "user",
"#category": ("", "deviantart", "folder"),
"#class" : deviantart.DeviantartFolderExtractor,
"#options" : {"original": False},
"#count" : 5,
},
{
"#url" : "https://www.deviantart.com/yakuzafc/gallery/37412168/Crafts",
"#comment" : "group",
"#category": ("", "deviantart", "folder"),
"#class" : deviantart.DeviantartFolderExtractor,
"#options" : {"original": False},
"#count" : ">= 4",
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery/B38E3C6A-2029-6B45-757B-3C8D3422AD1A/misc",
"#comment" : "uuid",
"#category": ("", "deviantart", "folder"),
"#class" : deviantart.DeviantartFolderExtractor,
"#options" : {"original": False},
"#count" : 5,
},
{
"#url" : "https://www.deviantart.com/justatest235723/gallery/69302698/-test-b-c-d-e-f-",
"#comment" : "name starts with '_', special characters (#1451)",
"#category": ("", "deviantart", "folder"),
"#class" : deviantart.DeviantartFolderExtractor,
"#options" : {"original": False},
"#count" : 1,
},
{
"#url" : "https://shimoda7.deviantart.com/gallery/722019/Miscellaneous",
"#category": ("", "deviantart", "folder"),
"#class" : deviantart.DeviantartFolderExtractor,
},
{
"#url" : "https://yakuzafc.deviantart.com/gallery/37412168/Crafts",
"#category": ("", "deviantart", "folder"),
"#class" : deviantart.DeviantartFolderExtractor,
},
{
"#url" : "https://sta.sh/022c83odnaxc",
"#category": ("", "deviantart", "stash"),
"#class" : deviantart.DeviantartStashExtractor,
"#pattern" : r"https://wixmp-[^.]+\.wixmp\.com/f/.+/.+\.png\?token=.+",
"#count" : 1,
"#sha1_content": "057eb2f2861f6c8a96876b13cca1a4b7a408c11f",
},
{
"#url" : "https://sta.sh/21jf51j7pzl2",
"#comment" : "multiple stash items",
"#category": ("", "deviantart", "stash"),
"#class" : deviantart.DeviantartStashExtractor,
"#options" : {"original": False},
"#count" : 4,
},
{
"#url" : "https://sta.sh/024t4coz16mi",
"#comment" : "downloadable, but no 'content' field (#307)",
"#category": ("", "deviantart", "stash"),
"#class" : deviantart.DeviantartStashExtractor,
"#pattern" : r"https://wixmp-[^.]+\.wixmp\.com/f/.+/.+\.rar\?token=.+",
"#count" : 1,
},
{
"#url" : "https://sta.sh/215twi387vfj",
"#comment" : "mixed folders and images (#659)",
"#category": ("", "deviantart", "stash"),
"#class" : deviantart.DeviantartStashExtractor,
"#options" : {"original": False},
"#count" : 4,
},
{
"#url" : "https://sta.sh/abcdefghijkl",
"#category": ("", "deviantart", "stash"),
"#class" : deviantart.DeviantartStashExtractor,
"#count" : 0,
},
{
"#url" : "https://www.deviantart.com/h3813067/favourites/",
"#category": ("", "deviantart", "favorite"),
"#class" : deviantart.DeviantartFavoriteExtractor,
"#options" : {
"metadata": True,
"flat" : False,
},
"#count" : 1,
},
{
"#url" : "https://www.deviantart.com/h3813067/favourites/",
"#category": ("", "deviantart", "favorite"),
"#class" : deviantart.DeviantartFavoriteExtractor,
"#sha1_content": "6a7c74dc823ebbd457bdd9b3c2838a6ee728091e",
},
{
"#url" : "https://www.deviantart.com/h3813067/favourites/all",
"#category": ("", "deviantart", "favorite"),
"#class" : deviantart.DeviantartFavoriteExtractor,
},
{
"#url" : "https://www.deviantart.com/h3813067/favourites/?catpath=/",
"#category": ("", "deviantart", "favorite"),
"#class" : deviantart.DeviantartFavoriteExtractor,
},
{
"#url" : "https://h3813067.deviantart.com/favourites/",
"#category": ("", "deviantart", "favorite"),
"#class" : deviantart.DeviantartFavoriteExtractor,
},
{
"#url" : "https://h3813067.deviantart.com/favourites/all",
"#category": ("", "deviantart", "favorite"),
"#class" : deviantart.DeviantartFavoriteExtractor,
},
{
"#url" : "https://h3813067.deviantart.com/favourites/?catpath=/",
"#category": ("", "deviantart", "favorite"),
"#class" : deviantart.DeviantartFavoriteExtractor,
},
{
"#url" : "https://www.deviantart.com/pencilshadings/favourites/70595441/3D-Favorites",
"#category": ("", "deviantart", "collection"),
"#class" : deviantart.DeviantartCollectionExtractor,
"#options" : {"original": False},
"#count" : ">= 15",
},
{
"#url" : "https://www.deviantart.com/pencilshadings/favourites/F050486B-CB62-3C66-87FB-1105A7F6379F/3D Favorites",
"#category": ("", "deviantart", "collection"),
"#class" : deviantart.DeviantartCollectionExtractor,
"#options" : {"original": False},
"#count" : ">= 15",
},
{
"#url" : "https://pencilshadings.deviantart.com/favourites/70595441/3D-Favorites",
"#category": ("", "deviantart", "collection"),
"#class" : deviantart.DeviantartCollectionExtractor,
},
{
"#url" : "https://www.deviantart.com/angrywhitewanker/posts/journals/",
"#category": ("", "deviantart", "journal"),
"#class" : deviantart.DeviantartJournalExtractor,
"#sha1_url": "38db2a0d3a587a7e0f9dba7ff7d274610ebefe44",
},
{
"#url" : "https://www.deviantart.com/angrywhitewanker/posts/journals/",
"#category": ("", "deviantart", "journal"),
"#class" : deviantart.DeviantartJournalExtractor,
"#options" : {"journals": "text"},
"#sha1_url": "b2a8e74d275664b1a4acee0fca0a6fd33298571e",
},
{
"#url" : "https://www.deviantart.com/angrywhitewanker/posts/journals/",
"#category": ("", "deviantart", "journal"),
"#class" : deviantart.DeviantartJournalExtractor,
"#options" : {"journals": "none"},
"#count" : 0,
},
{
"#url" : "https://www.deviantart.com/shimoda7/posts/",
"#category": ("", "deviantart", "journal"),
"#class" : deviantart.DeviantartJournalExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/journal/",
"#category": ("", "deviantart", "journal"),
"#class" : deviantart.DeviantartJournalExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/journal/?catpath=/",
"#category": ("", "deviantart", "journal"),
"#class" : deviantart.DeviantartJournalExtractor,
},
{
"#url" : "https://shimoda7.deviantart.com/journal/",
"#category": ("", "deviantart", "journal"),
"#class" : deviantart.DeviantartJournalExtractor,
},
{
"#url" : "https://shimoda7.deviantart.com/journal/?catpath=/",
"#category": ("", "deviantart", "journal"),
"#class" : deviantart.DeviantartJournalExtractor,
},
{
"#url" : "https://www.deviantart.com/t1na/posts/statuses",
"#category": ("", "deviantart", "status"),
"#class" : deviantart.DeviantartStatusExtractor,
"#count" : 0,
},
{
"#url" : "https://www.deviantart.com/justgalym/posts/statuses",
"#category": ("", "deviantart", "status"),
"#class" : deviantart.DeviantartStatusExtractor,
"#count" : 4,
"#sha1_url": "bf4c44c0c60ff2648a880f4c3723464ad3e7d074",
},
{
"#url" : "https://www.deviantart.com/justgalym/posts/statuses",
"#category": ("", "deviantart", "status"),
"#class" : deviantart.DeviantartStatusExtractor,
"#options" : {"journals": "none"},
"#pattern" : r"https://images-wixmp-\w+\.wixmp\.com/f/[^/]+/[^.]+\.jpg\?token=",
"#count" : 1,
},
{
"#url" : "https://www.deviantart.com/vanillaghosties/posts/statuses",
"#comment" : "shared sta.sh item",
"#category": ("", "deviantart", "status"),
"#class" : deviantart.DeviantartStatusExtractor,
"#options" : {
"journals": "none",
"original": False,
},
"#range" : "5-",
"#count" : 1,
"index" : int,
"index_base36": r"re:^[0-9a-z]+$",
"url" : r"re:^https://sta.sh",
},
{
"#url" : "https://www.deviantart.com/AndrejSKalin/posts/statuses",
"#comment" : "'deleted' deviations in 'items'",
"#category": ("", "deviantart", "status"),
"#class" : deviantart.DeviantartStatusExtractor,
"#options" : {
"journals" : "none",
"original" : 0,
"image-filter": "deviationid[:8] == '147C8B03'",
},
"#count" : 2,
"#archive" : False,
"deviationid": "147C8B03-7D34-AE93-9241-FA3C6DBBC655",
},
{
"#url" : "https://www.deviantart.com/justgalym/posts/statuses",
"#category": ("", "deviantart", "status"),
"#class" : deviantart.DeviantartStatusExtractor,
"#options" : {"journals": "text"},
"#sha1_url": "c8744f7f733a3029116607b826321233c5ca452d",
},
{
"#url" : "https://www.deviantart.com/?order=popular-all-time",
"#category": ("", "deviantart", "popular"),
"#class" : deviantart.DeviantartPopularExtractor,
"#options" : {"original": False},
"#range" : "1-30",
"#count" : 30,
},
{
"#url" : "https://www.deviantart.com/popular-24-hours/?q=tree+house",
"#category": ("", "deviantart", "popular"),
"#class" : deviantart.DeviantartPopularExtractor,
"#options" : {"original": False},
"#range" : "1-30",
"#count" : 30,
},
{
"#url" : "https://www.deviantart.com/artisan/popular-all-time/?q=tree",
"#category": ("", "deviantart", "popular"),
"#class" : deviantart.DeviantartPopularExtractor,
},
{
"#url" : "https://www.deviantart.com/tag/nature",
"#category": ("", "deviantart", "tag"),
"#class" : deviantart.DeviantartTagExtractor,
"#options" : {"original": False},
"#range" : "1-30",
"#count" : 30,
},
{
"#url" : "https://www.deviantart.com/watch/deviations",
"#category": ("", "deviantart", "watch"),
"#class" : deviantart.DeviantartWatchExtractor,
},
{
"#url" : "https://www.deviantart.com/notifications/watch",
"#category": ("", "deviantart", "watch"),
"#class" : deviantart.DeviantartWatchExtractor,
},
{
"#url" : "https://www.deviantart.com/watch/posts",
"#category": ("", "deviantart", "watch-posts"),
"#class" : deviantart.DeviantartWatchPostsExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/art/For-the-sake-10073852",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#options" : {"original": 0},
"#sha1_content": "6a7c74dc823ebbd457bdd9b3c2838a6ee728091e",
},
{
"#url" : "https://www.deviantart.com/zzz/art/zzz-1234567890",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://www.deviantart.com/myria-moon/art/Aime-Moi-261986576",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#options" : {"comments": True},
"#pattern" : r"https://wixmp-[^.]+\.wixmp\.com/f/.+/.+\.jpg\?token=.+",
"comments": list,
},
{
"#url" : "https://www.deviantart.com/citizenfresh/art/Hverarond-789295466",
"#comment" : "wixmp URL rewrite",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#pattern" : r"https://images-wixmp-\w+\.wixmp\.com/f/[^/]+/[^.]+\.jpg\?token=",
},
{
"#url" : "https://www.deviantart.com/skatergators/art/COM-Moni-781571783",
"#comment" : "GIF (#242)",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#pattern" : r"https://wixmp-\w+\.wixmp\.com/f/03fd2413-efe9-4e5c-8734-2b72605b3fbb/dcxbsnb-1bbf0b38-42af-4070-8878-f30961955bec\.gif\?token=ey...",
},
{
"#url" : "https://www.deviantart.com/yuumei/art/Flash-Comic-214724929",
"#comment" : "Flash animation with GIF preview (#1731)",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#pattern" : r"https://wixmp-[^.]+\.wixmp\.com/f/.+/.+\.swf\?token=.+",
"filename" : "flash_comic_tutorial_by_yuumei-d3juatd",
"extension": "swf",
},
{
"#url" : "https://www.deviantart.com/uotapo/art/INANAKI-Memo-590297498",
"#comment" : "sta.sh URLs from description (#302)",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#options" : {
"extra" : 1,
"original": 0,
},
"#pattern" : deviantart.DeviantartStashExtractor.pattern,
"#range" : "2-",
"#count" : 4,
},
{
"#url" : "https://www.deviantart.com/cimar-wildehopps/art/Honorary-Vixen-859809305",
"#comment" : "sta.sh URL from deviation['text_content']['body']['features']",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#options" : {"extra": 1},
"#pattern" : r"""text:<!DOCTYPE html>
|(?:https?://)?sta\.sh/([a-z0-9]+)""",
"#count" : 2,
},
{
"#url" : "https://www.deviantart.com/shimoda7/journal/ARTility-583755752",
"#comment" : "journal",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#pattern" : """text:<!DOCTYPE html>
""",
"#sha1_url": "d34b2c9f873423e665a1b8ced20fcb75951694a3",
},
{
"#url" : "https://www.deviantart.com/gliitchlord/art/brashstrokes-812942668",
"#comment" : "journal-like post with isJournal == False (#419)",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#pattern" : """text:<!DOCTYPE html>
""",
"#sha1_url": "e2e0044bd255304412179b6118536dbd9bb3bb0e",
},
{
"#url" : "https://deviantart.com/view/904858796/",
"#comment" : "/view/ URLs",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#sha1_content": "8770ec40ad1c1d60f6b602b16301d124f612948f",
},
{
"#url" : "http://www.deviantart.com/view/890672057",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#sha1_content": "1497e13d925caeb13a250cd666b779a640209236",
},
{
"#url" : "https://www.deviantart.com/view/706871727",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#sha1_content": "3f62ae0c2fca2294ac28e41888ea06bb37c22c65",
},
{
"#url" : "https://www.deviantart.com/view/1",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://www.deviantart.com/deviation/817215762",
"#comment" : "/deviation/ (#3558)",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
},
{
"#url" : "https://fav.me/ddijrpu",
"#comment" : "fav.me (#3558)",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#count" : 1,
},
{
"#url" : "https://fav.me/dddd",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://shimoda7.deviantart.com/art/For-the-sake-of-a-memory-10073852",
"#comment" : "old-style URLs",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
},
{
"#url" : "https://myria-moon.deviantart.com/art/Aime-Moi-part-en-vadrouille-261986576",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
},
{
"#url" : "https://zzz.deviantart.com/art/zzz-1234567890",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
},
{
"#url" : "https://www.deviantart.com/view.php?id=14864502",
"#comment" : "old /view/ URLs from the Wayback Machine",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
},
{
"#url" : "http://www.deviantart.com/view-full.php?id=100842",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
},
{
"#url" : "https://www.fxdeviantart.com/zzz/art/zzz-1234567890",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
},
{
"#url" : "https://www.fxdeviantart.com/view/1234567890",
"#category": ("", "deviantart", "deviation"),
"#class" : deviantart.DeviantartDeviationExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery/scraps",
"#category": ("", "deviantart", "scraps"),
"#class" : deviantart.DeviantartScrapsExtractor,
"#count" : 12,
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery/?catpath=scraps",
"#category": ("", "deviantart", "scraps"),
"#class" : deviantart.DeviantartScrapsExtractor,
},
{
"#url" : "https://shimoda7.deviantart.com/gallery/?catpath=scraps",
"#category": ("", "deviantart", "scraps"),
"#class" : deviantart.DeviantartScrapsExtractor,
},
{
"#url" : "https://www.deviantart.com/search?q=tree",
"#category": ("", "deviantart", "search"),
"#class" : deviantart.DeviantartSearchExtractor,
},
{
"#url" : "https://www.deviantart.com/search/deviations?order=popular-1-week",
"#category": ("", "deviantart", "search"),
"#class" : deviantart.DeviantartSearchExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery?q=memory",
"#category": ("", "deviantart", "gallery-search"),
"#class" : deviantart.DeviantartGallerySearchExtractor,
"#options" : {"original": 0},
"#sha1_content": "6a7c74dc823ebbd457bdd9b3c2838a6ee728091e",
},
{
"#url" : "https://www.deviantart.com/shimoda7/gallery?q=memory&sort=popular",
"#category": ("", "deviantart", "gallery-search"),
"#class" : deviantart.DeviantartGallerySearchExtractor,
},
{
"#url" : "https://www.deviantart.com/shimoda7/about#watching",
"#category": ("", "deviantart", "following"),
"#class" : deviantart.DeviantartFollowingExtractor,
"#pattern" : deviantart.DeviantartUserExtractor.pattern,
"#range" : "1-50",
"#count" : 50,
},
)

@ -0,0 +1,62 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import directlink
__tests__ = (
{
"#url" : "https://en.wikipedia.org/static/images/project-logos/enwiki.png",
"#category": ("", "directlink", ""),
"#class" : directlink.DirectlinkExtractor,
"#sha1_url" : "18c5d00077332e98e53be9fed2ee4be66154b88d",
"#sha1_metadata": "105770a3f4393618ab7b811b731b22663b5d3794",
},
{
"#url" : "https://example.org/file.webm",
"#comment" : "empty path",
"#category": ("", "directlink", ""),
"#class" : directlink.DirectlinkExtractor,
"#sha1_url" : "2d807ed7059d1b532f1bb71dc24b510b80ff943f",
"#sha1_metadata": "29dad729c40fb09349f83edafa498dba1297464a",
},
{
"#url" : "https://example.org/path/to/file.webm?que=1?&ry=2/#fragment",
"#comment" : "more complex example",
"#category": ("", "directlink", ""),
"#class" : directlink.DirectlinkExtractor,
"#sha1_url" : "6fb1061390f8aada3db01cb24b51797c7ee42b31",
"#sha1_metadata": "3d7abc31d45ba324e59bc599c3b4862452d5f29c",
},
{
"#url" : "https://example.org/%27%3C%23/%23%3E%27.jpg?key=%3C%26%3E",
"#comment" : "percent-encoded characters",
"#category": ("", "directlink", ""),
"#class" : directlink.DirectlinkExtractor,
"#sha1_url" : "2627e8140727fdf743f86fe18f69f99a052c9718",
"#sha1_metadata": "831790fddda081bdddd14f96985ab02dc5b5341f",
},
{
"#url" : "https://post-phinf.pstatic.net/MjAxOTA1MjlfMTQ4/MDAxNTU5MTI2NjcyNTkw.JUzkGb4V6dj9DXjLclrOoqR64uDxHFUO5KDriRdKpGwg.88mCtd4iT1NHlpVKSCaUpPmZPiDgT8hmQdQ5K_gYyu0g.JPEG/2.JPG",
"#comment" : "upper case file extension (#296)",
"#category": ("", "directlink", ""),
"#class" : directlink.DirectlinkExtractor,
},
{
"#url" : "https://räksmörgås.josefsson.org/raksmorgas.jpg",
"#comment" : "internationalized domain name",
"#category": ("", "directlink", ""),
"#class" : directlink.DirectlinkExtractor,
"#sha1_url" : "a65667f670b194afbd1e3ea5e7a78938d36747da",
"#sha1_metadata": "fd5037fe86eebd4764e176cbaf318caec0f700be",
},
)

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import gelbooru_v01
__tests__ = (
{
"#url" : "https://drawfriends.booru.org/index.php?page=post&s=list&tags=all",
"#category": ("gelbooru_v01", "drawfriends", "tag"),
"#class" : gelbooru_v01.GelbooruV01TagExtractor,
},
{
"#url" : "https://drawfriends.booru.org/index.php?page=favorites&s=view&id=1",
"#category": ("gelbooru_v01", "drawfriends", "favorite"),
"#class" : gelbooru_v01.GelbooruV01FavoriteExtractor,
},
{
"#url" : "https://drawfriends.booru.org/index.php?page=post&s=view&id=107474",
"#category": ("gelbooru_v01", "drawfriends", "post"),
"#class" : gelbooru_v01.GelbooruV01PostExtractor,
},
)

@ -0,0 +1,59 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import dynastyscans
__tests__ = (
{
"#url" : "http://dynasty-scans.com/chapters/hitoribocchi_no_oo_seikatsu_ch33",
"#category": ("", "dynastyscans", "chapter"),
"#class" : dynastyscans.DynastyscansChapterExtractor,
"#sha1_url" : "dce64e8c504118f1ab4135c00245ea12413896cb",
"#sha1_metadata": "b67599703c27316a2fe4f11c3232130a1904e032",
},
{
"#url" : "http://dynasty-scans.com/chapters/new_game_the_spinoff_special_13",
"#category": ("", "dynastyscans", "chapter"),
"#class" : dynastyscans.DynastyscansChapterExtractor,
"#sha1_url" : "dbe5bbb74da2edcfb1832895a484e2a40bc8b538",
"#sha1_metadata": "6b674eb3a274999153f6be044973b195008ced2f",
},
{
"#url" : "https://dynasty-scans.com/series/hitoribocchi_no_oo_seikatsu",
"#category": ("", "dynastyscans", "manga"),
"#class" : dynastyscans.DynastyscansMangaExtractor,
"#pattern" : dynastyscans.DynastyscansChapterExtractor.pattern,
"#count" : ">= 100",
},
{
"#url" : "https://dynasty-scans.com/images?with[]=4930&with[]=5211",
"#category": ("", "dynastyscans", "search"),
"#class" : dynastyscans.DynastyscansSearchExtractor,
"#sha1_url" : "22cf0fb64e12b29e79b0a3d26666086a48f9916a",
"#sha1_metadata": "11cbc555a15528d25567977b8808e10369c4c3ee",
},
{
"#url" : "https://dynasty-scans.com/images",
"#category": ("", "dynastyscans", "search"),
"#class" : dynastyscans.DynastyscansSearchExtractor,
"#range" : "1",
"#count" : 1,
},
{
"#url" : "https://dynasty-scans.com/images/1245",
"#category": ("", "dynastyscans", "image"),
"#class" : dynastyscans.DynastyscansImageExtractor,
"#sha1_url" : "15e54bd94148a07ed037f387d046c27befa043b2",
"#sha1_metadata": "0d8976c2d6fbc9ed6aa712642631b96e456dc37f",
},
)

@ -0,0 +1,128 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import e621
__tests__ = (
{
"#url" : "https://e621.net/posts?tags=anry",
"#category": ("E621", "e621", "tag"),
"#class" : e621.E621TagExtractor,
"#sha1_url" : "8021e5ea28d47c474c1ffc9bd44863c4d45700ba",
"#sha1_content": "501d1e5d922da20ee8ff9806f5ed3ce3a684fd58",
},
{
"#url" : "https://e621.net/post/index/1/anry",
"#category": ("E621", "e621", "tag"),
"#class" : e621.E621TagExtractor,
},
{
"#url" : "https://e621.net/post?tags=anry",
"#category": ("E621", "e621", "tag"),
"#class" : e621.E621TagExtractor,
},
{
"#url" : "https://e621.net/pools/73",
"#category": ("E621", "e621", "pool"),
"#class" : e621.E621PoolExtractor,
"#sha1_url" : "1bd09a72715286a79eea3b7f09f51b3493eb579a",
"#sha1_content": "91abe5d5334425d9787811d7f06d34c77974cd22",
},
{
"#url" : "https://e621.net/pool/show/73",
"#category": ("E621", "e621", "pool"),
"#class" : e621.E621PoolExtractor,
},
{
"#url" : "https://e621.net/posts/535",
"#category": ("E621", "e621", "post"),
"#class" : e621.E621PostExtractor,
"#sha1_url" : "f7f78b44c9b88f8f09caac080adc8d6d9fdaa529",
"#sha1_content": "66f46e96a893fba8e694c4e049b23c2acc9af462",
"date": "dt:2007-02-17 19:02:32",
},
{
"#url" : "https://e621.net/posts/3181052",
"#category": ("E621", "e621", "post"),
"#class" : e621.E621PostExtractor,
"#options" : {"metadata": "notes,pools"},
"#pattern" : r"https://static\d\.e621\.net/data/c6/8c/c68cca0643890b615f75fb2719589bff\.png",
"notes": [{
"body" : "Little Legends 2",
"created_at" : "2022-05-16T13:58:38.877-04:00",
"creator_id" : 517450,
"creator_name": "EeveeCuddler69",
"height" : 475,
"id" : 321296,
"is_active" : True,
"post_id" : 3181052,
"updated_at" : "2022-05-16T13:59:02.050-04:00",
"version" : 3,
"width" : 809,
"x" : 83,
"y" : 117,
}],
"pools": [{
"category" : "series",
"created_at" : "2022-02-17T00:29:22.669-05:00",
"creator_id" : 1077440,
"creator_name": "Yeetus90",
"description" : """* "Little Legends":/pools/27971
* Little Legends 2
* "Little Legends 3":/pools/27481""",
"id" : 27492,
"is_active" : False,
"name" : "Little Legends 2",
"post_count" : 39,
"post_ids" : list,
"updated_at" : "2022-03-27T06:30:03.382-04:00",
}],
},
{
"#url" : "https://e621.net/post/show/535",
"#category": ("E621", "e621", "post"),
"#class" : e621.E621PostExtractor,
},
{
"#url" : "https://e621.net/explore/posts/popular",
"#category": ("E621", "e621", "popular"),
"#class" : e621.E621PopularExtractor,
},
{
"#url" : "https://e621.net/explore/posts/popular?date=2019-06-01&scale=month",
"#category": ("E621", "e621", "popular"),
"#class" : e621.E621PopularExtractor,
"#pattern" : r"https://static\d.e621.net/data/../../[0-9a-f]+",
"#count" : ">= 70",
},
{
"#url" : "https://e621.net/favorites",
"#category": ("E621", "e621", "favorite"),
"#class" : e621.E621FavoriteExtractor,
},
{
"#url" : "https://e621.net/favorites?page=2&user_id=53275",
"#category": ("E621", "e621", "favorite"),
"#class" : e621.E621FavoriteExtractor,
"#pattern" : r"https://static\d.e621.net/data/../../[0-9a-f]+",
"#count" : "> 260",
},
)

@ -0,0 +1,68 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import e621
__tests__ = (
{
"#url" : "https://e6ai.net/posts?tags=anry",
"#category": ("E621", "e6ai", "tag"),
"#class" : e621.E621TagExtractor,
},
{
"#url" : "https://e6ai.net/post/index/1/anry",
"#category": ("E621", "e6ai", "tag"),
"#class" : e621.E621TagExtractor,
},
{
"#url" : "https://e6ai.net/post?tags=anry",
"#category": ("E621", "e6ai", "tag"),
"#class" : e621.E621TagExtractor,
},
{
"#url" : "https://e6ai.net/pools/3",
"#category": ("E621", "e6ai", "pool"),
"#class" : e621.E621PoolExtractor,
"#sha1_url": "a6d1ad67a3fa9b9f73731d34d5f6f26f7e85855f",
},
{
"#url" : "https://e6ai.net/pool/show/3",
"#category": ("E621", "e6ai", "pool"),
"#class" : e621.E621PoolExtractor,
},
{
"#url" : "https://e6ai.net/posts/23",
"#category": ("E621", "e6ai", "post"),
"#class" : e621.E621PostExtractor,
"#sha1_url" : "3c85a806b3d9eec861948af421fe0e8ad6b8f881",
"#sha1_content": "a05a484e4eb64637d56d751c02e659b4bc8ea5d5",
},
{
"#url" : "https://e6ai.net/post/show/23",
"#category": ("E621", "e6ai", "post"),
"#class" : e621.E621PostExtractor,
},
{
"#url" : "https://e6ai.net/explore/posts/popular",
"#category": ("E621", "e6ai", "popular"),
"#class" : e621.E621PopularExtractor,
},
{
"#url" : "https://e6ai.net/favorites",
"#category": ("E621", "e6ai", "favorite"),
"#class" : e621.E621FavoriteExtractor,
},
)

@ -0,0 +1,87 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import e621
__tests__ = (
{
"#url" : "https://e926.net/posts?tags=anry",
"#category": ("E621", "e926", "tag"),
"#class" : e621.E621TagExtractor,
"#sha1_url" : "12198b275c62ffe2de67cca676c8e64de80c425d",
"#sha1_content": "501d1e5d922da20ee8ff9806f5ed3ce3a684fd58",
},
{
"#url" : "https://e926.net/post/index/1/anry",
"#category": ("E621", "e926", "tag"),
"#class" : e621.E621TagExtractor,
},
{
"#url" : "https://e926.net/post?tags=anry",
"#category": ("E621", "e926", "tag"),
"#class" : e621.E621TagExtractor,
},
{
"#url" : "https://e926.net/pools/73",
"#category": ("E621", "e926", "pool"),
"#class" : e621.E621PoolExtractor,
"#sha1_url" : "6936f1b6a18c5c25bee7cad700088dbc2503481b",
"#sha1_content": "91abe5d5334425d9787811d7f06d34c77974cd22",
},
{
"#url" : "https://e926.net/pool/show/73",
"#category": ("E621", "e926", "pool"),
"#class" : e621.E621PoolExtractor,
},
{
"#url" : "https://e926.net/posts/535",
"#category": ("E621", "e926", "post"),
"#class" : e621.E621PostExtractor,
"#sha1_url" : "17aec8ebd8fab098d321adcb62a2db59dab1f4bf",
"#sha1_content": "66f46e96a893fba8e694c4e049b23c2acc9af462",
},
{
"#url" : "https://e926.net/post/show/535",
"#category": ("E621", "e926", "post"),
"#class" : e621.E621PostExtractor,
},
{
"#url" : "https://e926.net/explore/posts/popular",
"#category": ("E621", "e926", "popular"),
"#class" : e621.E621PopularExtractor,
},
{
"#url" : "https://e926.net/explore/posts/popular?date=2019-06-01&scale=month",
"#category": ("E621", "e926", "popular"),
"#class" : e621.E621PopularExtractor,
"#pattern" : r"https://static\d.e926.net/data/../../[0-9a-f]+",
"#count" : ">= 70",
},
{
"#url" : "https://e926.net/favorites",
"#category": ("E621", "e926", "favorite"),
"#class" : e621.E621FavoriteExtractor,
},
{
"#url" : "https://e926.net/favorites?page=2&user_id=53275",
"#category": ("E621", "e926", "favorite"),
"#class" : e621.E621FavoriteExtractor,
"#pattern" : r"https://static\d.e926.net/data/../../[0-9a-f]+",
"#count" : "> 260",
},
)

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import lynxchan
__tests__ = (
{
"#url" : "https://endchan.org/yuri/res/193483.html",
"#category": ("lynxchan", "endchan", "thread"),
"#class" : lynxchan.LynxchanThreadExtractor,
"#pattern" : r"https://endchan\.org/\.media/[^.]+(\.\w+)?$",
"#count" : ">= 19",
},
{
"#url" : "https://endchan.org/yuri/res/33621.html",
"#category": ("lynxchan", "endchan", "thread"),
"#class" : lynxchan.LynxchanThreadExtractor,
},
{
"#url" : "https://endchan.org/yuri/",
"#category": ("lynxchan", "endchan", "board"),
"#class" : lynxchan.LynxchanBoardExtractor,
"#pattern" : lynxchan.LynxchanThreadExtractor.pattern,
"#count" : ">= 9",
},
{
"#url" : "https://endchan.org/yuri/catalog.html",
"#category": ("lynxchan", "endchan", "board"),
"#class" : lynxchan.LynxchanBoardExtractor,
},
)

@ -0,0 +1,53 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import erome
__tests__ = (
{
"#url" : "https://www.erome.com/a/NQgdlWvk",
"#category": ("", "erome", "album"),
"#class" : erome.EromeAlbumExtractor,
"#pattern" : r"https://v\d+\.erome\.com/\d+/NQgdlWvk/j7jlzmYB_480p\.mp4",
"#count" : 1,
"album_id": "NQgdlWvk",
"num" : 1,
"title" : "porn",
"user" : "yYgWBZw8o8qsMzM",
},
{
"#url" : "https://www.erome.com/a/TdbZ4ogi",
"#category": ("", "erome", "album"),
"#class" : erome.EromeAlbumExtractor,
"#pattern" : r"https://s\d+\.erome\.com/\d+/TdbZ4ogi/\w+",
"#count" : 6,
"album_id": "TdbZ4ogi",
"num" : int,
"title" : "82e78cfbb461ad87198f927fcb1fda9a1efac9ff.",
"user" : "yYgWBZw8o8qsMzM",
},
{
"#url" : "https://www.erome.com/yYgWBZw8o8qsMzM",
"#category": ("", "erome", "user"),
"#class" : erome.EromeUserExtractor,
"#range" : "1-25",
"#count" : 25,
},
{
"#url" : "https://www.erome.com/search?q=cute",
"#category": ("", "erome", "search"),
"#class" : erome.EromeSearchExtractor,
"#range" : "1-25",
"#count" : 25,
},
)

@ -0,0 +1,132 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import exhentai
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://exhentai.org/g/1200119/d55c44d3d0/",
"#category": ("", "exhentai", "gallery"),
"#class" : exhentai.ExhentaiGalleryExtractor,
"#options" : {"original": False},
"#sha1_content": [
"2c68cff8a7ca540a78c36fdbf5fbae0260484f87",
"e9891a4c017ed0bb734cd1efba5cd03f594d31ff",
],
"cost" : int,
"date" : "dt:2018-03-18 20:14:00",
"eh_category" : "Non-H",
"expunged" : False,
"favorites" : r"re:^[12]\d$",
"filecount" : "4",
"filesize" : 1488978,
"gid" : 1200119,
"height" : int,
"image_token" : r"re:[0-9a-f]{10}",
"lang" : "ja",
"language" : "Japanese",
"parent" : "",
"rating" : r"re:\d\.\d+",
"size" : int,
"tags" : [
"parody:komi-san wa komyushou desu.",
"character:shouko komi",
"group:seventh lowlife",
"other:sample",
],
"thumb" : "https://exhentai.org/t/ce/0a/ce0a5bcb583229a9b07c0f83bcb1630ab1350640-624622-736-1036-jpg_250.jpg",
"title" : "C93 [Seventh_Lowlife] Komi-san ha Tokidoki Daitan desu (Komi-san wa Komyushou desu) [Sample]",
"title_jpn" : "(C93) [Comiketjack (わ!)] 古見さんは、時々大胆です。 (古見さんは、コミュ症です。) [見本]",
"token" : "d55c44d3d0",
"torrentcount": "0",
"uploader" : "klorpa",
"width" : int,
},
{
"#url" : "https://exhentai.org/g/960461/4f0e369d82/",
"#category": ("", "exhentai", "gallery"),
"#class" : exhentai.ExhentaiGalleryExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "http://exhentai.org/g/962698/7f02358e00/",
"#category": ("", "exhentai", "gallery"),
"#class" : exhentai.ExhentaiGalleryExtractor,
"#exception": exception.AuthorizationError,
},
{
"#url" : "https://exhentai.org/s/f68367b4c8/1200119-3",
"#category": ("", "exhentai", "gallery"),
"#class" : exhentai.ExhentaiGalleryExtractor,
"#options" : {"original": False},
"#count" : 2,
},
{
"#url" : "https://e-hentai.org/s/f68367b4c8/1200119-3",
"#category": ("", "exhentai", "gallery"),
"#class" : exhentai.ExhentaiGalleryExtractor,
"#options" : {"original": False},
"#count" : 2,
},
{
"#url" : "https://g.e-hentai.org/g/1200119/d55c44d3d0/",
"#category": ("", "exhentai", "gallery"),
"#class" : exhentai.ExhentaiGalleryExtractor,
},
{
"#url" : "https://e-hentai.org/?f_search=touhou",
"#category": ("", "exhentai", "search"),
"#class" : exhentai.ExhentaiSearchExtractor,
},
{
"#url" : "https://exhentai.org/?f_cats=767&f_search=touhou",
"#category": ("", "exhentai", "search"),
"#class" : exhentai.ExhentaiSearchExtractor,
},
{
"#url" : "https://exhentai.org/tag/parody:touhou+project",
"#category": ("", "exhentai", "search"),
"#class" : exhentai.ExhentaiSearchExtractor,
},
{
"#url" : "https://exhentai.org/?f_doujinshi=0&f_manga=0&f_artistcg=0&f_gamecg=0&f_western=0&f_non-h=1&f_imageset=0&f_cosplay=0&f_asianporn=0&f_misc=0&f_search=touhou&f_apply=Apply+Filter",
"#category": ("", "exhentai", "search"),
"#class" : exhentai.ExhentaiSearchExtractor,
"#pattern" : exhentai.ExhentaiGalleryExtractor.pattern,
"#range" : "1-30",
"#count" : 30,
"gallery_id" : int,
"gallery_token": r"re:^[0-9a-f]{10}$",
},
{
"#url" : "https://e-hentai.org/favorites.php",
"#category": ("", "exhentai", "favorite"),
"#class" : exhentai.ExhentaiFavoriteExtractor,
"#pattern" : r"https?://e-hentai\.org/g/1200119/d55c44d3d0",
"#count" : 1,
},
{
"#url" : "https://exhentai.org/favorites.php?favcat=1&f_search=touhou&f_apply=Search+Favorites",
"#category": ("", "exhentai", "favorite"),
"#class" : exhentai.ExhentaiFavoriteExtractor,
},
)

@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import fallenangels
__tests__ = (
{
"#url" : "https://manga.fascans.com/manga/chronos-ruler/20/1",
"#category": ("", "fallenangels", "chapter"),
"#class" : fallenangels.FallenangelsChapterExtractor,
"#sha1_url" : "4604a7914566cc2da0ff789aa178e2d1c8c241e3",
"#sha1_metadata": "2dfcc50020e32cd207be88e2a8fac0933e36bdfb",
},
{
"#url" : "http://truyen.fascans.com/manga/hungry-marie/8",
"#category": ("", "fallenangels", "chapter"),
"#class" : fallenangels.FallenangelsChapterExtractor,
"#sha1_url" : "1f923d9cb337d5e7bbf4323719881794a951c6ae",
"#sha1_metadata": "2bdb7334c0e3eceb9946ffd3132df679b4a94f6a",
},
{
"#url" : "http://manga.fascans.com/manga/rakudai-kishi-no-eiyuutan/19.5",
"#category": ("", "fallenangels", "chapter"),
"#class" : fallenangels.FallenangelsChapterExtractor,
"#sha1_url" : "273f6863966c83ea79ad5846a2866e08067d3f0e",
"#sha1_metadata": "d1065685bfe0054c4ff2a0f20acb089de4cec253",
},
{
"#url" : "https://manga.fascans.com/manga/chronos-ruler",
"#category": ("", "fallenangels", "manga"),
"#class" : fallenangels.FallenangelsMangaExtractor,
"#sha1_url" : "eea07dd50f5bc4903aa09e2cc3e45c7241c9a9c2",
"#sha1_metadata": "c414249525d4c74ad83498b3c59a813557e59d7e",
},
{
"#url" : "https://truyen.fascans.com/manga/rakudai-kishi-no-eiyuutan",
"#category": ("", "fallenangels", "manga"),
"#class" : fallenangels.FallenangelsMangaExtractor,
"#sha1_url" : "51a731a6b82d5eb7a335fbae6b02d06aeb2ab07b",
"#sha1_metadata": "2d2a2a5d9ea5925eb9a47bb13d848967f3af086c",
},
)

@ -0,0 +1,104 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import fanbox
__tests__ = (
{
"#url" : "https://xub.fanbox.cc",
"#category": ("", "fanbox", "creator"),
"#class" : fanbox.FanboxCreatorExtractor,
"#range" : "1-15",
"#count" : ">= 15",
"creatorId": "xub",
"tags" : list,
"title" : str,
},
{
"#url" : "https://xub.fanbox.cc/posts",
"#category": ("", "fanbox", "creator"),
"#class" : fanbox.FanboxCreatorExtractor,
},
{
"#url" : "https://www.fanbox.cc/@xub/",
"#category": ("", "fanbox", "creator"),
"#class" : fanbox.FanboxCreatorExtractor,
},
{
"#url" : "https://www.fanbox.cc/@xub/posts",
"#category": ("", "fanbox", "creator"),
"#class" : fanbox.FanboxCreatorExtractor,
},
{
"#url" : "https://www.fanbox.cc/@xub/posts/1910054",
"#category": ("", "fanbox", "post"),
"#class" : fanbox.FanboxPostExtractor,
"#count" : 3,
"title" : "えま★おうがすと",
"tags" : list,
"hasAdultContent": True,
"isCoverImage" : False,
},
{
"#url" : "https://nekoworks.fanbox.cc/posts/915",
"#comment" : "entry post type, image embedded in html of the post",
"#category": ("", "fanbox", "post"),
"#class" : fanbox.FanboxPostExtractor,
"#count" : 2,
"title" : "【SAYORI FAN CLUB】お届け内容",
"tags" : list,
"html" : str,
"hasAdultContent": True,
},
{
"#url" : "https://steelwire.fanbox.cc/posts/285502",
"#comment" : "article post type, imageMap, 2 twitter embeds, fanbox embed",
"#category": ("", "fanbox", "post"),
"#class" : fanbox.FanboxPostExtractor,
"#options" : {"embeds": True},
"#count" : 10,
"title" : "イラスト+SS義足の炭鉱少年が義足を見せてくれるだけ 【全体公開版】",
"tags" : list,
"articleBody" : dict,
"hasAdultContent": True,
},
{
"#url" : "https://www.fanbox.cc/@official-en/posts/4326303",
"#comment" : "'content' metadata (#3020)",
"#category": ("", "fanbox", "post"),
"#class" : fanbox.FanboxPostExtractor,
"content": r"re:(?s)^Greetings from FANBOX.\n \nAs of Monday, September 5th, 2022, we are happy to announce the start of the FANBOX hashtag event #MySetupTour ! \nAbout the event\nTo join this event .+ \nPlease check this page for further details regarding the Privacy & Terms.\nhttps://fanbox.pixiv.help/.+/10184952456601\n\n\nThank you for your continued support of FANBOX.$",
},
{
"#url" : "https://mochirong.fanbox.cc/posts/3746116",
"#comment" : "imageMap file order (#2718)",
"#category": ("", "fanbox", "post"),
"#class" : fanbox.FanboxPostExtractor,
"#sha1_url": "c92ddd06f2efc4a5fe30ec67e21544f79a5c4062",
},
{
"#url" : "https://www.pixiv.net/fanbox/creator/52336352",
"#category": ("", "fanbox", "redirect"),
"#class" : fanbox.FanboxRedirectExtractor,
"#pattern" : fanbox.FanboxCreatorExtractor.pattern,
},
)

@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import fanleaks
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://fanleaks.club/selti/880",
"#category": ("", "fanleaks", "post"),
"#class" : fanleaks.FanleaksPostExtractor,
"#pattern" : r"https://fanleaks\.club//models/selti/images/selti_0880\.jpg",
"model_id": "selti",
"model" : "Selti",
"id" : 880,
"type" : "photo",
},
{
"#url" : "https://fanleaks.club/daisy-keech/1038",
"#category": ("", "fanleaks", "post"),
"#class" : fanleaks.FanleaksPostExtractor,
"#pattern" : r"https://fanleaks\.club//models/daisy-keech/videos/daisy-keech_1038\.mp4",
"model_id": "daisy-keech",
"model" : "Daisy Keech",
"id" : 1038,
"type" : "video",
},
{
"#url" : "https://fanleaks.club/hannahowo/000",
"#category": ("", "fanleaks", "post"),
"#class" : fanleaks.FanleaksPostExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://fanleaks.club/hannahowo",
"#category": ("", "fanleaks", "model"),
"#class" : fanleaks.FanleaksModelExtractor,
"#pattern" : r"https://fanleaks\.club//models/hannahowo/(images|videos)/hannahowo_\d+\.\w+",
"#range" : "1-100",
"#count" : 100,
},
{
"#url" : "https://fanleaks.club/belle-delphine",
"#category": ("", "fanleaks", "model"),
"#class" : fanleaks.FanleaksModelExtractor,
"#pattern" : r"https://fanleaks\.club//models/belle-delphine/(images|videos)/belle-delphine_\d+\.\w+",
"#range" : "1-100",
"#count" : 100,
},
{
"#url" : "https://fanleaks.club/daisy-keech",
"#category": ("", "fanleaks", "model"),
"#class" : fanleaks.FanleaksModelExtractor,
},
)

@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import fantia
__tests__ = (
{
"#url" : "https://fantia.jp/fanclubs/6939",
"#category": ("", "fantia", "creator"),
"#class" : fantia.FantiaCreatorExtractor,
"#range" : "1-25",
"#count" : ">= 25",
"fanclub_user_id": 52152,
"tags" : list,
"title" : str,
},
{
"#url" : "https://fantia.jp/posts/1166373",
"#category": ("", "fantia", "post"),
"#class" : fantia.FantiaPostExtractor,
"#pattern" : r"https://(c\.fantia\.jp/uploads/post/file/1166373/|cc\.fantia\.jp/uploads/post_content_photo/file/732549[01]|fantia\.jp/posts/1166373/album_image\?)",
"blogpost_text" : r"re:^$|This is a test.\n\nThis is a test.\n\n|Link to video:\nhttps://www.youtube.com/watch\?v=5SSdvNcAagI\n\nhtml img from another site:\n\n\n\n\n\n",
"comment" : """
""",
"content_category": r"re:thumb|blog|photo_gallery",
"content_comment" : str,
"content_filename": r"re:|",
"content_title" : r"re:Test (Blog Content \d+|Image Gallery)|thumb",
"date" : "dt:2022-03-09 16:46:12",
"fanclub_id" : 356320,
"fanclub_name" : "Test Fantia",
"fanclub_url" : "https://fantia.jp/fanclubs/356320",
"fanclub_user_id" : 7487131,
"fanclub_user_name": "2022/03/08 15:13:52の名無し",
"file_url" : str,
"filename" : str,
"num" : int,
"plan" : dict,
"post_id" : 1166373,
"post_title" : "Test Fantia Post",
"post_url" : "https://fantia.jp/posts/1166373",
"posted_at" : "Thu, 10 Mar 2022 01:46:12 +0900",
"rating" : "general",
"tags" : [],
},
{
"#url" : "https://fantia.jp/posts/508363",
"#category": ("", "fantia", "post"),
"#class" : fantia.FantiaPostExtractor,
"#count" : 6,
"post_title": "zunda逆バニーでおしりコッショリ",
"tags" : list,
"rating" : "adult",
"post_id" : 508363,
},
)

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import fapachi
__tests__ = (
{
"#url" : "https://fapachi.com/sonson/media/0082",
"#comment" : "NSFW",
"#category": ("", "fapachi", "post"),
"#class" : fapachi.FapachiPostExtractor,
"#pattern" : r"https://fapachi\.com/models/s/o/sonson/1/full/sonson_0082\.jpeg",
"user": "sonson",
"id" : "0082",
},
{
"#url" : "https://fapachi.com/ferxiita/media/0159",
"#comment" : "NSFW",
"#category": ("", "fapachi", "post"),
"#class" : fapachi.FapachiPostExtractor,
},
{
"#url" : "https://fapachi.com/sonson",
"#category": ("", "fapachi", "user"),
"#class" : fapachi.FapachiUserExtractor,
"#pattern" : fapachi.FapachiPostExtractor.pattern,
"#range" : "1-50",
"#count" : 50,
},
{
"#url" : "https://fapachi.com/ferxiita/page/3",
"#category": ("", "fapachi", "user"),
"#class" : fapachi.FapachiUserExtractor,
},
)

@ -0,0 +1,100 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import fapello
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://fapello.com/carrykey/530/",
"#category": ("", "fapello", "post"),
"#class" : fapello.FapelloPostExtractor,
"#pattern" : r"https://fapello\.com/content/c/a/carrykey/1000/carrykey_0530\.jpg",
"model" : "carrykey",
"id" : 530,
"type" : "photo",
"thumbnail": "",
},
{
"#url" : "https://fapello.com/vladislava-661/693/",
"#category": ("", "fapello", "post"),
"#class" : fapello.FapelloPostExtractor,
"#pattern" : r"https://cdn\.fapello\.com/content/v/l/vladislava-661/1000/vladislava-661_0693\.mp4",
"model" : "vladislava-661",
"id" : 693,
"type" : "video",
"thumbnail": "https://fapello.com/content/v/l/vladislava-661/1000/vladislava-661_0693.jpg",
},
{
"#url" : "https://fapello.com/carrykey/000/",
"#category": ("", "fapello", "post"),
"#class" : fapello.FapelloPostExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://fapello.com/hyoon/",
"#category": ("", "fapello", "model"),
"#class" : fapello.FapelloModelExtractor,
"#pattern" : fapello.FapelloPostExtractor.pattern,
"#range" : "1-50",
"#count" : 50,
},
{
"#url" : "https://fapello.com/kobaebeefboo/",
"#category": ("", "fapello", "model"),
"#class" : fapello.FapelloModelExtractor,
},
{
"#url" : "https://fapello.com/top-likes/",
"#category": ("", "fapello", "path"),
"#class" : fapello.FapelloPathExtractor,
"#pattern" : fapello.FapelloModelExtractor.pattern,
"#range" : "1-10",
"#count" : 10,
},
{
"#url" : "https://fapello.com/videos/",
"#category": ("", "fapello", "path"),
"#class" : fapello.FapelloPathExtractor,
"#pattern" : fapello.FapelloPostExtractor.pattern,
"#range" : "1-10",
"#count" : 10,
},
{
"#url" : "https://fapello.com/top-followers/",
"#category": ("", "fapello", "path"),
"#class" : fapello.FapelloPathExtractor,
},
{
"#url" : "https://fapello.com/trending/",
"#category": ("", "fapello", "path"),
"#class" : fapello.FapelloPathExtractor,
},
{
"#url" : "https://fapello.com/popular_videos/twelve_hours/",
"#category": ("", "fapello", "path"),
"#class" : fapello.FapelloPathExtractor,
},
{
"#url" : "https://fapello.com/popular_videos/week/",
"#category": ("", "fapello", "path"),
"#class" : fapello.FapelloPathExtractor,
},
)

@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagehosts
__tests__ = (
{
"#url" : "https://fappic.com/98wxqcklyh8k/test.png",
"#category": ("imagehost", "fappic", "image"),
"#class" : imagehosts.FappicImageExtractor,
},
{
"#url" : "https://www.fappic.com/98wxqcklyh8k/test.png",
"#category": ("imagehost", "fappic", "image"),
"#class" : imagehosts.FappicImageExtractor,
"#pattern" : r"https://img\d+\.fappic\.com/img/\w+/test\.png",
"#sha1_metadata": "433b1d310b0ff12ad8a71ac7b9d8ba3f8cd1e898",
"#sha1_content" : "0c8768055e4e20e7c7259608b67799171b691140",
},
)

@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import shopify
__tests__ = (
{
"#url" : "https://www.fashionnova.com/collections/mini-dresses",
"#category": ("shopify", "fashionnova", "collection"),
"#class" : shopify.ShopifyCollectionExtractor,
"#range" : "1-20",
"#count" : 20,
},
{
"#url" : "https://www.fashionnova.com/collections/mini-dresses/?page=1",
"#category": ("shopify", "fashionnova", "collection"),
"#class" : shopify.ShopifyCollectionExtractor,
},
{
"#url" : "https://www.fashionnova.com/collections/mini-dresses#1",
"#category": ("shopify", "fashionnova", "collection"),
"#class" : shopify.ShopifyCollectionExtractor,
},
{
"#url" : "https://www.fashionnova.com/products/essential-slide-red",
"#category": ("shopify", "fashionnova", "product"),
"#class" : shopify.ShopifyProductExtractor,
"#pattern" : r"https?://cdn\d*\.shopify.com/",
"#count" : 3,
},
{
"#url" : "https://www.fashionnova.com/collections/flats/products/name",
"#category": ("shopify", "fashionnova", "product"),
"#class" : shopify.ShopifyProductExtractor,
},
)

@ -0,0 +1,36 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import foolfuuka
__tests__ = (
{
"#url" : "https://boards.fireden.net/sci/thread/11264294/",
"#category": ("foolfuuka", "fireden", "thread"),
"#class" : foolfuuka.FoolfuukaThreadExtractor,
"#sha1_url": "61cab625c95584a12a30049d054931d64f8d20aa",
},
{
"#url" : "https://boards.fireden.net/sci/",
"#category": ("foolfuuka", "fireden", "board"),
"#class" : foolfuuka.FoolfuukaBoardExtractor,
},
{
"#url" : "https://boards.fireden.net/_/search/text/test/",
"#category": ("foolfuuka", "fireden", "search"),
"#class" : foolfuuka.FoolfuukaSearchExtractor,
},
{
"#url" : "https://boards.fireden.net/sci/gallery/6",
"#category": ("foolfuuka", "fireden", "gallery"),
"#class" : foolfuuka.FoolfuukaGalleryExtractor,
},
)

@ -0,0 +1,162 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import flickr
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://www.flickr.com/photos/departingyyz/16089302239",
"#category": ("", "flickr", "image"),
"#class" : flickr.FlickrImageExtractor,
"#pattern" : flickr.FlickrImageExtractor.pattern,
"#sha1_content": [
"3133006c6d657fe54cf7d4c46b82abbcb0efaf9f",
"0821a28ee46386e85b02b67cf2720063440a228c",
],
"comments" : int,
"description": str,
"extension" : "jpg",
"filename" : "16089302239_de18cd8017_b",
"id" : 16089302239,
"height" : 683,
"label" : "Large",
"media" : "photo",
"url" : str,
"views" : int,
"width" : 1024,
},
{
"#url" : "https://secure.flickr.com/photos/departingyyz/16089302239",
"#category": ("", "flickr", "image"),
"#class" : flickr.FlickrImageExtractor,
},
{
"#url" : "https://m.flickr.com/photos/departingyyz/16089302239",
"#category": ("", "flickr", "image"),
"#class" : flickr.FlickrImageExtractor,
},
{
"#url" : "https://flickr.com/photos/departingyyz/16089302239",
"#category": ("", "flickr", "image"),
"#class" : flickr.FlickrImageExtractor,
},
{
"#url" : "https://www.flickr.com/photos/145617051@N08/46733161535",
"#category": ("", "flickr", "image"),
"#class" : flickr.FlickrImageExtractor,
"#count" : 1,
"media": "video",
},
{
"#url" : "http://c2.staticflickr.com/2/1475/24531000464_9a7503ae68_b.jpg",
"#category": ("", "flickr", "image"),
"#class" : flickr.FlickrImageExtractor,
"#pattern" : flickr.FlickrImageExtractor.pattern,
},
{
"#url" : "https://farm2.static.flickr.com/1035/1188352415_cb139831d0.jpg",
"#category": ("", "flickr", "image"),
"#class" : flickr.FlickrImageExtractor,
"#pattern" : flickr.FlickrImageExtractor.pattern,
},
{
"#url" : "https://flic.kr/p/FPVo9U",
"#category": ("", "flickr", "image"),
"#class" : flickr.FlickrImageExtractor,
"#pattern" : flickr.FlickrImageExtractor.pattern,
},
{
"#url" : "https://www.flickr.com/photos/zzz/16089302238",
"#category": ("", "flickr", "image"),
"#class" : flickr.FlickrImageExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://www.flickr.com/photos/shona_s/albums/72157633471741607",
"#category": ("", "flickr", "album"),
"#class" : flickr.FlickrAlbumExtractor,
"#pattern" : flickr.FlickrImageExtractor.pattern,
"#count" : 6,
},
{
"#url" : "https://www.flickr.com/photos/shona_s/albums",
"#category": ("", "flickr", "album"),
"#class" : flickr.FlickrAlbumExtractor,
"#pattern" : flickr.FlickrAlbumExtractor.pattern,
"#count" : 2,
},
{
"#url" : "https://secure.flickr.com/photos/shona_s/albums",
"#category": ("", "flickr", "album"),
"#class" : flickr.FlickrAlbumExtractor,
},
{
"#url" : "https://m.flickr.com/photos/shona_s/albums",
"#category": ("", "flickr", "album"),
"#class" : flickr.FlickrAlbumExtractor,
},
{
"#url" : "https://www.flickr.com/photos/flickr/galleries/72157681572514792/",
"#category": ("", "flickr", "gallery"),
"#class" : flickr.FlickrGalleryExtractor,
"#pattern" : flickr.FlickrImageExtractor.pattern,
"#count" : ">= 10",
},
{
"#url" : "https://www.flickr.com/groups/bird_headshots/",
"#category": ("", "flickr", "group"),
"#class" : flickr.FlickrGroupExtractor,
"#pattern" : flickr.FlickrImageExtractor.pattern,
"#count" : "> 150",
},
{
"#url" : "https://www.flickr.com/photos/shona_s/",
"#category": ("", "flickr", "user"),
"#class" : flickr.FlickrUserExtractor,
"#pattern" : flickr.FlickrImageExtractor.pattern,
"#count" : 28,
},
{
"#url" : "https://www.flickr.com/photos/shona_s/favorites",
"#category": ("", "flickr", "favorite"),
"#class" : flickr.FlickrFavoriteExtractor,
"#pattern" : flickr.FlickrImageExtractor.pattern,
"#count" : 4,
},
{
"#url" : "https://flickr.com/search/?text=mountain",
"#category": ("", "flickr", "search"),
"#class" : flickr.FlickrSearchExtractor,
},
{
"#url" : "https://flickr.com/search/?text=tree%20cloud%20house&color_codes=4&styles=minimalism",
"#category": ("", "flickr", "search"),
"#class" : flickr.FlickrSearchExtractor,
},
)

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import szurubooru
__tests__ = (
{
"#url" : "https://booru.foalcon.com/posts/query=simple_background",
"#category": ("szurubooru", "foalcon", "tag"),
"#class" : szurubooru.SzurubooruTagExtractor,
"#pattern" : r"https://booru\.foalcon\.com/data/posts/\d+_[0-9a-f]{16}\.\w+",
"#range" : "1-150",
"#count" : 150,
},
{
"#url" : "https://booru.foalcon.com/post/30092",
"#category": ("szurubooru", "foalcon", "post"),
"#class" : szurubooru.SzurubooruPostExtractor,
"#pattern" : r"https://booru\.foalcon\.com/data/posts/30092_b7d56e941888b624\.png",
"#sha1_url" : "dad4d4c67d87cd9a4ac429b3414747c27a95d5cb",
"#sha1_content": "86d1514c0ca8197950cc4b74e7a59b2dc76ebf9c",
},
)

@ -0,0 +1,161 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import furaffinity
__tests__ = (
{
"#url" : "https://www.furaffinity.net/gallery/mirlinthloth/",
"#category": ("", "furaffinity", "gallery"),
"#class" : furaffinity.FuraffinityGalleryExtractor,
"#pattern" : r"https://d\d?\.f(uraffinity|acdn)\.net/art/mirlinthloth/\d+/\d+.\w+\.\w+",
"#range" : "45-50",
"#count" : 6,
},
{
"#url" : "https://www.furaffinity.net/scraps/mirlinthloth/",
"#category": ("", "furaffinity", "scraps"),
"#class" : furaffinity.FuraffinityScrapsExtractor,
"#pattern" : r"https://d\d?\.f(uraffinity|acdn)\.net/art/[^/]+(/stories)?/\d+/\d+.\w+.",
"#count" : ">= 3",
},
{
"#url" : "https://www.furaffinity.net/favorites/mirlinthloth/",
"#category": ("", "furaffinity", "favorite"),
"#class" : furaffinity.FuraffinityFavoriteExtractor,
"#pattern" : r"https://d\d?\.f(uraffinity|acdn)\.net/art/[^/]+/\d+/\d+.\w+\.\w+",
"#range" : "45-50",
"#count" : 6,
"favorite_id": int,
},
{
"#url" : "https://www.furaffinity.net/search/?q=cute",
"#category": ("", "furaffinity", "search"),
"#class" : furaffinity.FuraffinitySearchExtractor,
"#pattern" : r"https://d\d?\.f(uraffinity|acdn)\.net/art/[^/]+/\d+/\d+.\w+\.\w+",
"#range" : "45-50",
"#count" : 6,
},
{
"#url" : "https://www.furaffinity.net/search/?q=leaf&range=1day",
"#comment" : "first page of search results (#2402)",
"#category": ("", "furaffinity", "search"),
"#class" : furaffinity.FuraffinitySearchExtractor,
"#range" : "1-3",
"#count" : 3,
},
{
"#url" : "https://www.furaffinity.net/view/21835115/",
"#category": ("", "furaffinity", "post"),
"#class" : furaffinity.FuraffinityPostExtractor,
"#pattern" : r"https://d\d*\.f(uraffinity|acdn)\.net/(download/)?art/mirlinthloth/music/1488278723/1480267446.mirlinthloth_dj_fennmink_-_bude_s_4_ever\.mp3",
"artist" : "mirlinthloth",
"artist_url" : "mirlinthloth",
"date" : "dt:2016-11-27 17:24:06",
"description": "A Song made playing the game Cosmic DJ.",
"extension" : "mp3",
"filename" : r"re:\d+\.\w+_dj_fennmink_-_bude_s_4_ever",
"id" : 21835115,
"tags" : list,
"title" : "Bude's 4 Ever",
"url" : r"re:https://d\d?\.f(uraffinity|acdn)\.net/art",
"user" : "mirlinthloth",
"views" : int,
"favorites" : int,
"comments" : int,
"rating" : "General",
"fa_category": "Music",
"theme" : "All",
"species" : "Unspecified / Any",
"gender" : "Any",
"width" : 120,
"height" : 120,
},
{
"#url" : "https://www.furaffinity.net/view/42166511/",
"#comment" : "'external' option (#1492)",
"#category": ("", "furaffinity", "post"),
"#class" : furaffinity.FuraffinityPostExtractor,
"#options" : {"external": True},
"#pattern" : r"https://d\d*\.f(uraffinity|acdn)\.net/|http://www\.postybirb\.com",
"#count" : 2,
},
{
"#url" : "https://www.furaffinity.net/view/45331225/",
"#comment" : "no tags (#2277)",
"#category": ("", "furaffinity", "post"),
"#class" : furaffinity.FuraffinityPostExtractor,
"artist" : "Kota_Remminders",
"artist_url" : "kotaremminders",
"date" : "dt:2022-01-03 17:49:33",
"fa_category": "Adoptables",
"filename" : "1641232173.kotaremminders_chidopts1",
"gender" : "Any",
"height" : 905,
"id" : 45331225,
"rating" : "General",
"species" : "Unspecified / Any",
"tags" : [],
"theme" : "All",
"title" : "REMINDER",
"width" : 1280,
},
{
"#url" : "https://furaffinity.net/view/21835115/",
"#category": ("", "furaffinity", "post"),
"#class" : furaffinity.FuraffinityPostExtractor,
},
{
"#url" : "https://sfw.furaffinity.net/view/21835115/",
"#category": ("", "furaffinity", "post"),
"#class" : furaffinity.FuraffinityPostExtractor,
},
{
"#url" : "https://www.furaffinity.net/full/21835115/",
"#category": ("", "furaffinity", "post"),
"#class" : furaffinity.FuraffinityPostExtractor,
},
{
"#url" : "https://www.furaffinity.net/user/mirlinthloth/",
"#category": ("", "furaffinity", "user"),
"#class" : furaffinity.FuraffinityUserExtractor,
"#pattern" : "/gallery/mirlinthloth/$",
},
{
"#url" : "https://www.furaffinity.net/user/mirlinthloth/",
"#category": ("", "furaffinity", "user"),
"#class" : furaffinity.FuraffinityUserExtractor,
"#options" : {"include": "all"},
"#pattern" : "/(gallery|scraps|favorites)/mirlinthloth/$",
"#count" : 3,
},
{
"#url" : "https://www.furaffinity.net/watchlist/by/mirlinthloth/",
"#category": ("", "furaffinity", "following"),
"#class" : furaffinity.FuraffinityFollowingExtractor,
"#pattern" : furaffinity.FuraffinityUserExtractor.pattern,
"#range" : "176-225",
"#count" : 50,
},
)

@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import philomena
__tests__ = (
{
"#url" : "https://furbooru.org/images/1",
"#category": ("philomena", "furbooru", "post"),
"#class" : philomena.PhilomenaPostExtractor,
"#sha1_content": "9eaa1e1b32fa0f16520912257dbefaff238d5fd2",
},
{
"#url" : "https://furbooru.org/search?q=cute",
"#category": ("philomena", "furbooru", "search"),
"#class" : philomena.PhilomenaSearchExtractor,
"#range" : "40-60",
"#count" : 21,
},
{
"#url" : "https://furbooru.org/galleries/27",
"#category": ("philomena", "furbooru", "gallery"),
"#class" : philomena.PhilomenaGalleryExtractor,
"#count" : ">= 13",
},
)

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import fuskator
__tests__ = (
{
"#url" : "https://fuskator.com/thumbs/d0GnIzXrSKU/",
"#category": ("", "fuskator", "gallery"),
"#class" : fuskator.FuskatorGalleryExtractor,
"#pattern" : r"https://i\d+.fuskator.com/large/d0GnIzXrSKU/.+\.jpg",
"#count" : 22,
"gallery_id" : 473023,
"gallery_hash": "d0GnIzXrSKU",
"title" : r"re:Shaved Brunette Babe Maria Ryabushkina with ",
"views" : int,
"score" : float,
"count" : 22,
"tags" : list,
},
{
"#url" : "https://fuskator.com/expanded/gXpKzjgIidA/index.html",
"#category": ("", "fuskator", "gallery"),
"#class" : fuskator.FuskatorGalleryExtractor,
},
{
"#url" : "https://fuskator.com/search/red_swimsuit/",
"#category": ("", "fuskator", "search"),
"#class" : fuskator.FuskatorSearchExtractor,
"#pattern" : fuskator.FuskatorGalleryExtractor.pattern,
"#count" : ">= 40",
},
{
"#url" : "https://fuskator.com/page/3/swimsuit/quality/",
"#category": ("", "fuskator", "search"),
"#class" : fuskator.FuskatorSearchExtractor,
},
)

@ -0,0 +1,142 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import gelbooru
__tests__ = (
{
"#url" : "https://gelbooru.com/index.php?page=post&s=list&tags=bonocho",
"#category": ("booru", "gelbooru", "tag"),
"#class" : gelbooru.GelbooruTagExtractor,
"#count" : 5,
},
{
"#url" : "https://gelbooru.com/index.php?page=post&s=list&tags=meiya_neon",
"#category": ("booru", "gelbooru", "tag"),
"#class" : gelbooru.GelbooruTagExtractor,
"#pattern" : r"https://img\d\.gelbooru\.com/images/../../[0-9a-f]{32}\.jpg",
"#range" : "196-204",
"#count" : 9,
"#sha1_url": "845a61aa1f90fb4ced841e8b7e62098be2e967bf",
},
{
"#url" : "https://gelbooru.com/index.php?page=pool&s=show&id=761",
"#category": ("booru", "gelbooru", "pool"),
"#class" : gelbooru.GelbooruPoolExtractor,
"#count" : 6,
},
{
"#url" : "https://gelbooru.com/index.php?page=favorites&s=view&id=279415",
"#category": ("booru", "gelbooru", "favorite"),
"#class" : gelbooru.GelbooruFavoriteExtractor,
"#count" : 3,
},
{
"#url" : "https://gelbooru.com/index.php?page=post&s=view&id=313638",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
"#count" : 1,
"#sha1_content": "5e255713cbf0a8e0801dc423563c34d896bb9229",
},
{
"#url" : "https://gelbooru.com/index.php?page=post&s=view&id=313638",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
},
{
"#url" : "https://gelbooru.com/index.php?s=view&page=post&id=313638",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
},
{
"#url" : "https://gelbooru.com/index.php?page=post&id=313638&s=view",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
},
{
"#url" : "https://gelbooru.com/index.php?s=view&id=313638&page=post",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
},
{
"#url" : "https://gelbooru.com/index.php?id=313638&page=post&s=view",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
},
{
"#url" : "https://gelbooru.com/index.php?id=313638&s=view&page=post",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
},
{
"#url" : "https://gelbooru.com/index.php?page=post&s=view&id=6018318",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
"#options" : {"tags": True},
"#sha1_content": "977caf22f27c72a5d07ea4d4d9719acdab810991",
"tags_artist" : "kirisaki_shuusei",
"tags_character": str,
"tags_copyright": "vocaloid",
"tags_general" : str,
"tags_metadata" : str,
},
{
"#url" : "https://gelbooru.com/index.php?page=post&s=view&id=5938076",
"#comment" : "video",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
"#pattern" : r"https://img\d\.gelbooru\.com/images/22/61/226111273615049235b001b381707bd0\.webm",
"#sha1_content": "6360452fa8c2f0c1137749e81471238564df832a",
},
{
"#url" : "https://gelbooru.com/index.php?page=post&s=view&id=5997331",
"#comment" : "notes",
"#category": ("booru", "gelbooru", "post"),
"#class" : gelbooru.GelbooruPostExtractor,
"#options" : {"notes": True},
"notes": [
{
"body" : "Look over this way when you talk~",
"height": 553,
"width" : 246,
"x" : 35,
"y" : 72,
},
{
"body" : """Hey~
Are you listening~?""",
"height": 557,
"width" : 246,
"x" : 1233,
"y" : 109,
},
],
},
{
"#url" : "https://gelbooru.com/redirect.php?s=Ly9nZWxib29ydS5jb20vaW5kZXgucGhwP3BhZ2U9cG9zdCZzPXZpZXcmaWQ9MTgzMDA0Ng==",
"#category": ("booru", "gelbooru", "redirect"),
"#class" : gelbooru.GelbooruRedirectExtractor,
"#pattern" : r"https://gelbooru.com/index.php\?page=post&s=view&id=1830046",
},
)

@ -0,0 +1,68 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import generic
__tests__ = (
{
"#url" : "https://www.nongnu.org/lzip/",
"#category": ("", "generic", ""),
"#class" : generic.GenericExtractor,
"#count" : 1,
"#sha1_content": "40be5c77773d3e91db6e1c5df720ee30afb62368",
"description": "Lossless data compressor",
"imageurl" : "https://www.nongnu.org/lzip/lzip.png",
"keywords" : "lzip, clzip, plzip, lzlib, LZMA, bzip2, gzip, data compression, GNU, free software",
"pageurl" : "https://www.nongnu.org/lzip/",
},
{
"#url" : "https://räksmörgås.josefsson.org/",
"#category": ("", "generic", ""),
"#class" : generic.GenericExtractor,
"#pattern" : "^https://räksmörgås.josefsson.org/",
"#count" : 2,
},
{
"#url" : "https://en.wikipedia.org/Main_Page",
"#category": ("", "generic", ""),
"#class" : generic.GenericExtractor,
},
{
"#url" : "https://example.org/path/to/file?que=1?&ry=2/#fragment",
"#category": ("", "generic", ""),
"#class" : generic.GenericExtractor,
},
{
"#url" : "https://example.org/%27%3C%23/%23%3E%27.htm?key=%3C%26%3E",
"#category": ("", "generic", ""),
"#class" : generic.GenericExtractor,
},
{
"#url" : "https://en.wikipedia.org/Main_Page",
"#category": ("", "generic", ""),
"#class" : generic.GenericExtractor,
},
{
"#url" : "https://example.org/path/to/file?que=1?&ry=2/#fragment",
"#category": ("", "generic", ""),
"#class" : generic.GenericExtractor,
},
{
"#url" : "https://example.org/%27%3C%23/%23%3E%27.htm?key=%3C%26%3E",
"#category": ("", "generic", ""),
"#class" : generic.GenericExtractor,
},
)

@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import shimmie2
__tests__ = (
{
"#url" : "https://giantessbooru.com/index.php?q=/post/list/drawing/1",
"#category": ("shimmie2", "giantessbooru", "tag"),
"#class" : shimmie2.Shimmie2TagExtractor,
"#pattern" : r"https://giantessbooru\.com/index\.php\?q=/image/\d+\.jpg",
"#range" : "1-100",
"#count" : 100,
},
{
"#url" : "https://giantessbooru.com/post/list/drawing/1",
"#category": ("shimmie2", "giantessbooru", "tag"),
"#class" : shimmie2.Shimmie2TagExtractor,
},
{
"#url" : "https://giantessbooru.com/index.php?q=/post/view/41",
"#category": ("shimmie2", "giantessbooru", "post"),
"#class" : shimmie2.Shimmie2PostExtractor,
"#pattern" : r"https://giantessbooru\.com/index\.php\?q=/image/41\.jpg",
"#sha1_content": "79115ed309d1f4e82e7bead6948760e889139c91",
"extension": "jpg",
"file_url" : "https://giantessbooru.com/index.php?q=/image/41.jpg",
"filename" : "41",
"height" : 0,
"id" : 41,
"md5" : "",
"size" : 0,
"tags" : "anime bare_midriff color drawing gentle giantess karbo looking_at_tinies negeyari outdoors smiling snake_girl white_hair",
"width" : 1387,
},
{
"#url" : "https://giantessbooru.com/post/view/41",
"#category": ("shimmie2", "giantessbooru", "post"),
"#class" : shimmie2.Shimmie2PostExtractor,
},
)

@ -0,0 +1,57 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import gofile
__tests__ = (
{
"#url" : "https://gofile.io/d/k6BomI",
"#category": ("", "gofile", "folder"),
"#class" : gofile.GofileFolderExtractor,
"#pattern" : r"https://store\d+\.gofile\.io/download/\w{8}-\w{4}-\w{4}-\w{4}-\w{12}/test-%E3%83%86%E3%82%B9%E3%83%88-%2522%26!\.png",
"createTime" : int,
"directLink" : r"re:https://store5.gofile.io/download/direct/.+",
"downloadCount": int,
"extension" : "png",
"filename" : "test-テスト-%22&!",
"folder" : {
"childs" : [
"b0367d79-b8ba-407f-8342-aaf8eb815443",
"7fd4a36a-c1dd-49ff-9223-d93f7d24093f",
],
"code" : "k6BomI",
"createTime" : 1654076165,
"id" : "fafb59f9-a7c7-4fea-a098-b29b8d97b03c",
"name" : "root",
"public" : True,
"totalDownloadCount": int,
"totalSize" : 182,
"type" : "folder",
},
"id" : r"re:\w{8}-\w{4}-\w{4}-\w{4}-\w{12}",
"link" : r"re:https://store5.gofile.io/download/.+\.png",
"md5" : r"re:[0-9a-f]{32}",
"mimetype" : "image/png",
"name" : "test-テスト-%22&!.png",
"num" : int,
"parentFolder" : "fafb59f9-a7c7-4fea-a098-b29b8d97b03c",
"serverChoosen": "store5",
"size" : 182,
"thumbnail" : r"re:https://store5.gofile.io/download/.+\.png",
"type" : "file",
},
{
"#url" : "https://gofile.io/d/7fd4a36a-c1dd-49ff-9223-d93f7d24093f",
"#category": ("", "gofile", "folder"),
"#class" : gofile.GofileFolderExtractor,
"#options" : {"website-token": None},
"#sha1_content": "0c8768055e4e20e7c7259608b67799171b691140",
},
)

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hbrowse
__tests__ = (
{
"#url" : "https://www.hbrowse.com/10363/c00000",
"#category": ("", "hbrowse", "chapter"),
"#class" : hbrowse.HbrowseChapterExtractor,
"#sha1_url" : "6feefbc9f4b98e20d8425ddffa9dd111791dc3e6",
"#sha1_metadata": "274996f6c809e5250b6ff3abbc5147e29f89d9a5",
"#sha1_content" : "44578ebbe176c2c27434966aef22945787e2781e",
},
{
"#url" : "https://www.hbrowse.com/10363",
"#category": ("", "hbrowse", "manga"),
"#class" : hbrowse.HbrowseMangaExtractor,
"#sha1_url" : "b89682bfb86c11d2af0dc47463804ec3ac4aadd6",
"#sha1_metadata": "4b15fda1858a69de1fbf5afddfe47dd893397312",
},
)

@ -0,0 +1,74 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hentai2read
__tests__ = (
{
"#url" : "https://hentai2read.com/amazon_elixir/1/",
"#category": ("", "hentai2read", "chapter"),
"#class" : hentai2read.Hentai2readChapterExtractor,
"#sha1_url" : "964b942cf492b3a129d2fe2608abfc475bc99e71",
"#sha1_metadata": "85645b02d34aa11b3deb6dadd7536863476e1bad",
},
{
"#url" : "https://hentai2read.com/popuni_kei_joshi_panic/2.5/",
"#category": ("", "hentai2read", "chapter"),
"#class" : hentai2read.Hentai2readChapterExtractor,
"#pattern" : r"https://hentaicdn\.com/hentai/13088/2\.5y/ccdn00\d+\.jpg",
"#count" : 36,
"author" : "Kurisu",
"chapter" : 2,
"chapter_id" : 75152,
"chapter_minor": ".5",
"count" : 36,
"lang" : "en",
"language" : "English",
"manga" : "Popuni Kei Joshi Panic!",
"manga_id" : 13088,
"page" : int,
"title" : "Popuni Kei Joshi Panic! 2.5",
"type" : "Original",
},
{
"#url" : "https://hentai2read.com/amazon_elixir/",
"#category": ("", "hentai2read", "manga"),
"#class" : hentai2read.Hentai2readMangaExtractor,
"#sha1_url" : "273073752d418ec887d7f7211e42b832e8c403ba",
"#sha1_metadata": "5c1b712258e78e120907121d3987c71f834d13e1",
},
{
"#url" : "https://hentai2read.com/oshikage_riot/",
"#category": ("", "hentai2read", "manga"),
"#class" : hentai2read.Hentai2readMangaExtractor,
"#sha1_url" : "6595f920a3088a15c2819c502862d45f8eb6bea6",
"#sha1_metadata": "a2e9724acb221040d4b29bf9aa8cb75b2240d8af",
},
{
"#url" : "https://hentai2read.com/popuni_kei_joshi_panic/",
"#category": ("", "hentai2read", "manga"),
"#class" : hentai2read.Hentai2readMangaExtractor,
"#pattern" : hentai2read.Hentai2readChapterExtractor.pattern,
"#range" : "2-3",
"chapter" : int,
"chapter_id" : int,
"chapter_minor": ".5",
"lang" : "en",
"language" : "English",
"manga" : "Popuni Kei Joshi Panic!",
"manga_id" : 13088,
"title" : str,
"type" : "Original",
},
)

@ -0,0 +1,45 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hentaicosplays
__tests__ = (
{
"#url" : "https://hentai-cosplays.com/image/---devilism--tide-kurihara-/",
"#category": ("", "hentaicosplays", "gallery"),
"#class" : hentaicosplays.HentaicosplaysGalleryExtractor,
"#pattern" : r"https://static\d?.hentai-cosplays.com/upload/\d+/\d+/\d+/\d+.jpg$",
"count": 18,
"site" : "hentai-cosplays",
"slug" : "---devilism--tide-kurihara-",
"title": "艦 こ れ-devilism の tide Kurihara 憂",
},
{
"#url" : "https://fr.porn-images-xxx.com/image/enako-enako-24/",
"#category": ("", "hentaicosplays", "gallery"),
"#class" : hentaicosplays.HentaicosplaysGalleryExtractor,
"#pattern" : r"https://static\d?.porn-images-xxx.com/upload/\d+/\d+/\d+/\d+.jpg$",
"count": 11,
"site" : "porn-images-xxx",
"title": str,
},
{
"#url" : "https://ja.hentai-img.com/image/hollow-cora-502/",
"#category": ("", "hentaicosplays", "gallery"),
"#class" : hentaicosplays.HentaicosplaysGalleryExtractor,
"#pattern" : r"https://static\d?.hentai-img.com/upload/\d+/\d+/\d+/\d+.jpg$",
"count": 2,
"site" : "hentai-img",
"title": str,
},
)

@ -0,0 +1,152 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hentaifoundry
import datetime
__tests__ = (
{
"#url" : "https://www.hentai-foundry.com/user/Tenpura/profile",
"#category": ("", "hentaifoundry", "user"),
"#class" : hentaifoundry.HentaifoundryUserExtractor,
},
{
"#url" : "https://www.hentai-foundry.com/pictures/user/Tenpura",
"#category": ("", "hentaifoundry", "pictures"),
"#class" : hentaifoundry.HentaifoundryPicturesExtractor,
"#sha1_url": "ebbc981a85073745e3ca64a0f2ab31fab967fc28",
},
{
"#url" : "https://www.hentai-foundry.com/pictures/user/Tenpura/page/3",
"#category": ("", "hentaifoundry", "pictures"),
"#class" : hentaifoundry.HentaifoundryPicturesExtractor,
},
{
"#url" : "https://www.hentai-foundry.com/pictures/user/Evulchibi/scraps",
"#category": ("", "hentaifoundry", "scraps"),
"#class" : hentaifoundry.HentaifoundryScrapsExtractor,
"#sha1_url": "7cd9c6ec6258c4ab8c44991f7731be82337492a7",
},
{
"#url" : "https://www.hentai-foundry.com/pictures/user/Evulchibi/scraps/page/3",
"#category": ("", "hentaifoundry", "scraps"),
"#class" : hentaifoundry.HentaifoundryScrapsExtractor,
},
{
"#url" : "https://www.hentai-foundry.com/user/Tenpura/faves/pictures",
"#category": ("", "hentaifoundry", "favorite"),
"#class" : hentaifoundry.HentaifoundryFavoriteExtractor,
"#sha1_url": "56f9ae2e89fe855e9fe1da9b81e5ec6212b0320b",
},
{
"#url" : "https://www.hentai-foundry.com/user/Tenpura/faves/pictures/page/3",
"#category": ("", "hentaifoundry", "favorite"),
"#class" : hentaifoundry.HentaifoundryFavoriteExtractor,
},
{
"#url" : "https://www.hentai-foundry.com/pictures/recent/2018-09-20",
"#category": ("", "hentaifoundry", "recent"),
"#class" : hentaifoundry.HentaifoundryRecentExtractor,
"#pattern" : r"https://pictures.hentai-foundry.com/[^/]/[^/?#]+/\d+/",
"#range" : "20-30",
},
{
"#url" : "https://www.hentai-foundry.com/pictures/popular",
"#category": ("", "hentaifoundry", "popular"),
"#class" : hentaifoundry.HentaifoundryPopularExtractor,
"#pattern" : r"https://pictures.hentai-foundry.com/[^/]/[^/?#]+/\d+/",
"#range" : "20-30",
},
{
"#url" : "https://www.hentai-foundry.com/pictures/user/Tenpura/407501/shimakaze",
"#category": ("", "hentaifoundry", "image"),
"#class" : hentaifoundry.HentaifoundryImageExtractor,
"#sha1_url" : "fbf2fd74906738094e2575d2728e8dc3de18a8a3",
"#sha1_content": "91bf01497c39254b6dfb234a18e8f01629c77fd1",
"artist" : "Tenpura",
"date" : "dt:2016-02-22 14:41:19",
"description": "Thank you!",
"height" : 700,
"index" : 407501,
"media" : "Other digital art",
"ratings" : [
"Sexual content",
"Contains female nudity",
],
"score" : int,
"tags" : [
"collection",
"kancolle",
"kantai",
"shimakaze",
],
"title" : "shimakaze",
"user" : "Tenpura",
"views" : int,
"width" : 495,
},
{
"#url" : "http://www.hentai-foundry.com/pictures/user/Tenpura/407501/",
"#category": ("", "hentaifoundry", "image"),
"#class" : hentaifoundry.HentaifoundryImageExtractor,
"#pattern" : "http://pictures.hentai-foundry.com/t/Tenpura/407501/",
},
{
"#url" : "https://www.hentai-foundry.com/pictures/user/Tenpura/407501/",
"#category": ("", "hentaifoundry", "image"),
"#class" : hentaifoundry.HentaifoundryImageExtractor,
},
{
"#url" : "https://pictures.hentai-foundry.com/t/Tenpura/407501/Tenpura-407501-shimakaze.png",
"#category": ("", "hentaifoundry", "image"),
"#class" : hentaifoundry.HentaifoundryImageExtractor,
},
{
"#url" : "https://www.hentai-foundry.com/stories/user/SnowWolf35",
"#category": ("", "hentaifoundry", "stories"),
"#class" : hentaifoundry.HentaifoundryStoriesExtractor,
"#count" : ">= 35",
"author" : "SnowWolf35",
"chapters" : int,
"comments" : int,
"date" : datetime.datetime,
"description": str,
"index" : int,
"rating" : int,
"ratings" : list,
"status" : r"re:(Inc|C)omplete",
"title" : str,
"user" : "SnowWolf35",
"views" : int,
"words" : int,
},
{
"#url" : "https://www.hentai-foundry.com/stories/user/SnowWolf35/26416/Overwatch-High-Chapter-Voting-Location",
"#category": ("", "hentaifoundry", "story"),
"#class" : hentaifoundry.HentaifoundryStoryExtractor,
"#sha1_url": "5a67cfa8c3bf7634c8af8485dd07c1ea74ee0ae8",
"title": "Overwatch High Chapter Voting Location",
},
)

@ -0,0 +1,108 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hentaifox
__tests__ = (
{
"#url" : "https://hentaifox.com/gallery/56622/",
"#category": ("", "hentaifox", "gallery"),
"#class" : hentaifox.HentaifoxGalleryExtractor,
"#pattern" : r"https://i\d*\.hentaifox\.com/\d+/\d+/\d+\.jpg",
"#count" : 24,
"#sha1_metadata": "bcd6b67284f378e5cc30b89b761140e3e60fcd92",
},
{
"#url" : "https://hentaifox.com/gallery/630/",
"#comment" : "'split_tag' element (#1378)",
"#category": ("", "hentaifox", "gallery"),
"#class" : hentaifox.HentaifoxGalleryExtractor,
"artist" : [
"beti",
"betty",
"magi",
"mimikaki",
],
"characters": [
"aerith gainsborough",
"tifa lockhart",
"yuffie kisaragi",
],
"count" : 32,
"gallery_id": 630,
"group" : ["cu-little2"],
"parody" : [
"darkstalkers | vampire",
"final fantasy vii",
],
"tags" : [
"femdom",
"fingering",
"masturbation",
"yuri",
],
"title" : "Cu-Little Bakanya~",
"type" : "doujinshi",
},
{
"#url" : "https://hentaifox.com/gallery/35261/",
"#comment" : "email-protected title (#4201)",
"#category": ("", "hentaifox", "gallery"),
"#class" : hentaifox.HentaifoxGalleryExtractor,
"gallery_id": 35261,
"title" : "ManageM@ster!",
"artist" : ["haritama hiroki"],
"group" : ["studio n.ball"],
},
{
"#url" : "https://hentaifox.com/parody/touhou-project/",
"#category": ("", "hentaifox", "search"),
"#class" : hentaifox.HentaifoxSearchExtractor,
},
{
"#url" : "https://hentaifox.com/character/reimu-hakurei/",
"#category": ("", "hentaifox", "search"),
"#class" : hentaifox.HentaifoxSearchExtractor,
},
{
"#url" : "https://hentaifox.com/artist/distance/",
"#category": ("", "hentaifox", "search"),
"#class" : hentaifox.HentaifoxSearchExtractor,
},
{
"#url" : "https://hentaifox.com/search/touhou/",
"#category": ("", "hentaifox", "search"),
"#class" : hentaifox.HentaifoxSearchExtractor,
},
{
"#url" : "https://hentaifox.com/group/v-slash/",
"#category": ("", "hentaifox", "search"),
"#class" : hentaifox.HentaifoxSearchExtractor,
},
{
"#url" : "https://hentaifox.com/tag/heterochromia/",
"#category": ("", "hentaifox", "search"),
"#class" : hentaifox.HentaifoxSearchExtractor,
"#pattern" : hentaifox.HentaifoxGalleryExtractor.pattern,
"#count" : ">= 60",
"url" : str,
"gallery_id": int,
"title" : str,
},
)

@ -0,0 +1,57 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hentaihand
__tests__ = (
{
"#url" : "https://hentaihand.com/en/comic/c75-takumi-na-muchi-choudenji-hou-no-aishi-kata-how-to-love-a-super-electromagnetic-gun-toaru-kagaku-no-railgun-english",
"#category": ("", "hentaihand", "gallery"),
"#class" : hentaihand.HentaihandGalleryExtractor,
"#pattern" : r"https://cdn.hentaihand.com/.*/images/37387/\d+.jpg$",
"#count" : 50,
"artists" : ["Takumi Na Muchi"],
"date" : "dt:2014-06-28 00:00:00",
"gallery_id" : 37387,
"lang" : "en",
"language" : "English",
"parodies" : ["Toaru Kagaku No Railgun"],
"relationships": list,
"tags" : list,
"title" : r"re:\(C75\) \[Takumi na Muchi\] Choudenji Hou ",
"title_alt" : r"re:\(C75\) \[たくみなむち\] 超電磁砲のあいしかた",
"type" : "Doujinshi",
},
{
"#url" : "https://hentaihand.com/en/artist/takumi-na-muchi",
"#category": ("", "hentaihand", "tag"),
"#class" : hentaihand.HentaihandTagExtractor,
"#pattern" : hentaihand.HentaihandGalleryExtractor.pattern,
"#count" : ">= 6",
},
{
"#url" : "https://hentaihand.com/en/tag/full-color",
"#category": ("", "hentaihand", "tag"),
"#class" : hentaihand.HentaihandTagExtractor,
},
{
"#url" : "https://hentaihand.com/fr/language/japanese",
"#category": ("", "hentaihand", "tag"),
"#class" : hentaihand.HentaihandTagExtractor,
},
{
"#url" : "https://hentaihand.com/zh/category/manga",
"#category": ("", "hentaihand", "tag"),
"#class" : hentaihand.HentaihandTagExtractor,
},
)

@ -0,0 +1,65 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hentaihere
__tests__ = (
{
"#url" : "https://hentaihere.com/m/S13812/1/1/",
"#category": ("", "hentaihere", "chapter"),
"#class" : hentaihere.HentaihereChapterExtractor,
"#sha1_url" : "964b942cf492b3a129d2fe2608abfc475bc99e71",
"#sha1_metadata": "0207d20eea3a15d2a8d1496755bdfa49de7cfa9d",
},
{
"#url" : "https://hentaihere.com/m/S23048/1.5/1/",
"#category": ("", "hentaihere", "chapter"),
"#class" : hentaihere.HentaihereChapterExtractor,
"#pattern" : r"https://hentaicdn\.com/hentai/23048/1\.5/ccdn00\d+\.jpg",
"#count" : 32,
"author" : "Shinozuka Yuuji",
"chapter" : 1,
"chapter_id" : 80186,
"chapter_minor": ".5",
"count" : 32,
"lang" : "en",
"language" : "English",
"manga" : "High School Slut's Love Consultation",
"manga_id" : 23048,
"page" : int,
"title" : "High School Slut's Love Consultation + Girlfriend [Full Color]",
"type" : "Original",
},
{
"#url" : "https://hentaihere.com/m/S13812",
"#category": ("", "hentaihere", "manga"),
"#class" : hentaihere.HentaihereMangaExtractor,
"#sha1_url" : "d1ba6e28bb2162e844f8559c2b2725ba0a093559",
"#sha1_metadata": "5c1b712258e78e120907121d3987c71f834d13e1",
},
{
"#url" : "https://hentaihere.com/m/S7608",
"#category": ("", "hentaihere", "manga"),
"#class" : hentaihere.HentaihereMangaExtractor,
"#sha1_url": "6c5239758dc93f6b1b4175922836c10391b174f7",
"chapter" : int,
"chapter_id" : int,
"chapter_minor": "",
"lang" : "en",
"language" : "English",
"manga" : "Oshikake Riot",
"manga_id" : 7608,
"title" : r"re:Oshikake Riot( \d+)?",
"type" : "Original",
},
)

@ -0,0 +1,136 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hiperdex
__tests__ = (
{
"#url" : "https://hiperdex.com/manga/domestic-na-kanojo/154-5/",
"#category": ("", "hiperdex", "chapter"),
"#class" : hiperdex.HiperdexChapterExtractor,
"#pattern" : r"https://(1st)?hiperdex\d?.(com|net|info)/wp-content/uploads/WP-manga/data/manga_\w+/[0-9a-f]{32}/\d+\.webp",
"#count" : 9,
"artist" : "Sasuga Kei",
"author" : "Sasuga Kei",
"chapter" : 154,
"chapter_minor": ".5",
"description" : r"re:Natsuo Fujii is in love with his teacher, ",
"genre" : list,
"manga" : "Domestic na Kanojo",
"release" : 2014,
"score" : float,
"type" : "Manga",
},
{
"#url" : "https://1sthiperdex.com/manga/domestic-na-kanojo/154-5/",
"#category": ("", "hiperdex", "chapter"),
"#class" : hiperdex.HiperdexChapterExtractor,
},
{
"#url" : "https://hiperdex2.com/manga/domestic-na-kanojo/154-5/",
"#category": ("", "hiperdex", "chapter"),
"#class" : hiperdex.HiperdexChapterExtractor,
},
{
"#url" : "https://hiperdex.net/manga/domestic-na-kanojo/154-5/",
"#category": ("", "hiperdex", "chapter"),
"#class" : hiperdex.HiperdexChapterExtractor,
},
{
"#url" : "https://hiperdex.info/manga/domestic-na-kanojo/154-5/",
"#category": ("", "hiperdex", "chapter"),
"#class" : hiperdex.HiperdexChapterExtractor,
},
{
"#url" : "https://hiperdex.com/manga/1603231576-youre-not-that-special/",
"#category": ("", "hiperdex", "manga"),
"#class" : hiperdex.HiperdexMangaExtractor,
"#pattern" : hiperdex.HiperdexChapterExtractor.pattern,
"#count" : 51,
"artist" : "Bolp",
"author" : "Abyo4",
"chapter" : int,
"chapter_minor": "",
"description" : r"re:I didnt think much of the creepy girl in ",
"genre" : list,
"manga" : "Youre Not That Special!",
"release" : 2019,
"score" : float,
"status" : "Completed",
"type" : "Manhwa",
},
{
"#url" : "https://hiperdex.com/manga/youre-not-that-special/",
"#category": ("", "hiperdex", "manga"),
"#class" : hiperdex.HiperdexMangaExtractor,
},
{
"#url" : "https://1sthiperdex.com/manga/youre-not-that-special/",
"#category": ("", "hiperdex", "manga"),
"#class" : hiperdex.HiperdexMangaExtractor,
},
{
"#url" : "https://hiperdex2.com/manga/youre-not-that-special/",
"#category": ("", "hiperdex", "manga"),
"#class" : hiperdex.HiperdexMangaExtractor,
},
{
"#url" : "https://hiperdex.net/manga/youre-not-that-special/",
"#category": ("", "hiperdex", "manga"),
"#class" : hiperdex.HiperdexMangaExtractor,
},
{
"#url" : "https://hiperdex.info/manga/youre-not-that-special/",
"#category": ("", "hiperdex", "manga"),
"#class" : hiperdex.HiperdexMangaExtractor,
},
{
"#url" : "https://1sthiperdex.com/manga-artist/beck-ho-an/",
"#category": ("", "hiperdex", "artist"),
"#class" : hiperdex.HiperdexArtistExtractor,
},
{
"#url" : "https://hiperdex.net/manga-artist/beck-ho-an/",
"#category": ("", "hiperdex", "artist"),
"#class" : hiperdex.HiperdexArtistExtractor,
},
{
"#url" : "https://hiperdex2.com/manga-artist/beck-ho-an/",
"#category": ("", "hiperdex", "artist"),
"#class" : hiperdex.HiperdexArtistExtractor,
},
{
"#url" : "https://hiperdex.info/manga-artist/beck-ho-an/",
"#category": ("", "hiperdex", "artist"),
"#class" : hiperdex.HiperdexArtistExtractor,
},
{
"#url" : "https://hiperdex.com/manga-author/viagra/",
"#category": ("", "hiperdex", "artist"),
"#class" : hiperdex.HiperdexArtistExtractor,
"#pattern" : hiperdex.HiperdexMangaExtractor.pattern,
"#count" : ">= 6",
},
)

@ -0,0 +1,139 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hitomi
__tests__ = (
{
"#url" : "https://hitomi.la/galleries/867789.html",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
"#pattern" : r"https://[a-c]a\.hitomi\.la/webp/\d+/\d+/[0-9a-f]{64}\.webp",
"#count" : 16,
"#sha1_metadata": "86af5371f38117a07407f11af689bdd460b09710",
},
{
"#url" : "https://hitomi.la/galleries/1401410.html",
"#comment" : "download test",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
"#range" : "1",
"#sha1_content": "d75d5a3d1302a48469016b20e53c26b714d17745",
},
{
"#url" : "https://hitomi.la/galleries/733697.html",
"#comment" : "Game CG with scenes (#321)",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
"#count" : 210,
},
{
"#url" : "https://hitomi.la/galleries/1045954.html",
"#comment" : "fallback for galleries only available through /reader/ URLs",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
"#count" : 1413,
},
{
"#url" : "https://hitomi.la/cg/scathacha-sama-okuchi-ecchi-1291900.html",
"#comment" : "gallery with 'broken' redirect",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
"#options" : {"format": "original"},
"#pattern" : r"https://[a-c]b\.hitomi\.la/images/\d+/\d+/[0-9a-f]{64}\.jpg",
"#count" : 10,
},
{
"#url" : "https://hitomi.la/cg/1615823.html",
"#comment" : "no tags",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
"#options" : {"format": "avif"},
"#pattern" : r"https://[a-c]a\.hitomi\.la/avif/\d+/\d+/[0-9a-f]{64}\.avif",
"#count" : 22,
},
{
"#url" : "https://hitomi.la/manga/amazon-no-hiyaku-867789.html",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
},
{
"#url" : "https://hitomi.la/manga/867789.html",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
},
{
"#url" : "https://hitomi.la/doujinshi/867789.html",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
},
{
"#url" : "https://hitomi.la/cg/867789.html",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
},
{
"#url" : "https://hitomi.la/gamecg/867789.html",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
},
{
"#url" : "https://hitomi.la/reader/867789.html",
"#category": ("", "hitomi", "gallery"),
"#class" : hitomi.HitomiGalleryExtractor,
},
{
"#url" : "https://hitomi.la/tag/screenshots-japanese.html",
"#category": ("", "hitomi", "tag"),
"#class" : hitomi.HitomiTagExtractor,
"#pattern" : hitomi.HitomiGalleryExtractor.pattern,
"#count" : ">= 35",
},
{
"#url" : "https://hitomi.la/artist/a1-all-1.html",
"#category": ("", "hitomi", "tag"),
"#class" : hitomi.HitomiTagExtractor,
},
{
"#url" : "https://hitomi.la/group/initial%2Dg-all-1.html",
"#category": ("", "hitomi", "tag"),
"#class" : hitomi.HitomiTagExtractor,
},
{
"#url" : "https://hitomi.la/series/amnesia-all-1.html",
"#category": ("", "hitomi", "tag"),
"#class" : hitomi.HitomiTagExtractor,
},
{
"#url" : "https://hitomi.la/type/doujinshi-all-1.html",
"#category": ("", "hitomi", "tag"),
"#class" : hitomi.HitomiTagExtractor,
},
{
"#url" : "https://hitomi.la/character/a2-all-1.html",
"#category": ("", "hitomi", "tag"),
"#class" : hitomi.HitomiTagExtractor,
},
)

@ -0,0 +1,96 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import nijie
import datetime
__tests__ = (
{
"#url" : "https://horne.red/members.php?id=58000",
"#category": ("Nijie", "horne", "user"),
"#class" : nijie.NijieUserExtractor,
},
{
"#url" : "https://horne.red/members_illust.php?id=58000",
"#category": ("Nijie", "horne", "illustration"),
"#class" : nijie.NijieIllustrationExtractor,
"#pattern" : r"https://pic\.nijie\.net/\d+/horne/\d+/\d+/\d+/illust/\d+_\d+_[0-9a-f]+_[0-9a-f]+\.png",
"#range" : "1-20",
"#count" : 20,
"artist_id" : 58000,
"artist_name": "のえるわ",
"date" : datetime.datetime,
"description": str,
"image_id" : int,
"num" : int,
"tags" : list,
"title" : str,
"url" : str,
"user_id" : 58000,
"user_name" : "のえるわ",
},
{
"#url" : "https://horne.red/members_dojin.php?id=58000",
"#category": ("Nijie", "horne", "doujin"),
"#class" : nijie.NijieDoujinExtractor,
},
{
"#url" : "https://horne.red/user_like_illust_view.php?id=58000",
"#category": ("Nijie", "horne", "favorite"),
"#class" : nijie.NijieFavoriteExtractor,
"#range" : "1-5",
"#count" : 5,
"user_id" : 58000,
"user_name": "のえるわ",
},
{
"#url" : "https://horne.red/history_nuita.php?id=58000",
"#category": ("Nijie", "horne", "nuita"),
"#class" : nijie.NijieNuitaExtractor,
},
{
"#url" : "https://horne.red/like_user_view.php",
"#category": ("Nijie", "horne", "feed"),
"#class" : nijie.NijieFeedExtractor,
},
{
"#url" : "https://horne.red/like_my.php",
"#category": ("Nijie", "horne", "followed"),
"#class" : nijie.NijiefollowedExtractor,
},
{
"#url" : "https://horne.red/view.php?id=8716",
"#category": ("Nijie", "horne", "image"),
"#class" : nijie.NijieImageExtractor,
"#count" : 4,
"artist_id" : 58000,
"artist_name": "のえるわ",
"date" : "dt:2018-02-04 14:47:24",
"description": "ノエル「そんなことしなくても、言ってくれたら咥えるのに・・・♡」",
"image_id" : 8716,
"tags" : [
"男の娘",
"フェラ",
"オリキャラ",
"うちのこ",
],
"title" : "ノエル「いまどきそんな、恵方巻ネタなんてやらなくても・・・」",
"user_id" : 58000,
"user_name" : "のえるわ",
},
)

@ -0,0 +1,104 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import hotleak
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://hotleak.vip/kaiyakawaii/photo/1617145",
"#category": ("", "hotleak", "post"),
"#class" : hotleak.HotleakPostExtractor,
"#pattern" : r"https://hotleak\.vip/storage/images/3625/1617145/fefdd5988dfcf6b98cc9e11616018868\.jpg",
"id" : 1617145,
"creator" : "kaiyakawaii",
"type" : "photo",
"filename" : "fefdd5988dfcf6b98cc9e11616018868",
"extension": "jpg",
},
{
"#url" : "https://hotleak.vip/lilmochidoll/video/1625538",
"#category": ("", "hotleak", "post"),
"#class" : hotleak.HotleakPostExtractor,
"#pattern" : r"ytdl:https://cdn8-leak\.camhdxx\.com/1661/1625538/index\.m3u8",
"id" : 1625538,
"creator" : "lilmochidoll",
"type" : "video",
"filename" : "index",
"extension": "mp4",
},
{
"#url" : "https://hotleak.vip/kaiyakawaii",
"#category": ("", "hotleak", "creator"),
"#class" : hotleak.HotleakCreatorExtractor,
"#range" : "1-200",
"#count" : 200,
},
{
"#url" : "https://hotleak.vip/stellaviolet",
"#category": ("", "hotleak", "creator"),
"#class" : hotleak.HotleakCreatorExtractor,
"#count" : "> 600",
},
{
"#url" : "https://hotleak.vip/doesnotexist",
"#category": ("", "hotleak", "creator"),
"#class" : hotleak.HotleakCreatorExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://hotleak.vip/photos",
"#category": ("", "hotleak", "category"),
"#class" : hotleak.HotleakCategoryExtractor,
"#pattern" : hotleak.HotleakPostExtractor.pattern,
"#range" : "1-50",
"#count" : 50,
},
{
"#url" : "https://hotleak.vip/videos",
"#category": ("", "hotleak", "category"),
"#class" : hotleak.HotleakCategoryExtractor,
},
{
"#url" : "https://hotleak.vip/creators",
"#category": ("", "hotleak", "category"),
"#class" : hotleak.HotleakCategoryExtractor,
"#pattern" : hotleak.HotleakCreatorExtractor.pattern,
"#range" : "1-50",
"#count" : 50,
},
{
"#url" : "https://hotleak.vip/hot",
"#category": ("", "hotleak", "category"),
"#class" : hotleak.HotleakCategoryExtractor,
},
{
"#url" : "https://hotleak.vip/search?search=gallery-dl",
"#category": ("", "hotleak", "search"),
"#class" : hotleak.HotleakSearchExtractor,
"#count" : 0,
},
{
"#url" : "https://hotleak.vip/search?search=hannah",
"#category": ("", "hotleak", "search"),
"#class" : hotleak.HotleakSearchExtractor,
"#count" : "> 30",
},
)

@ -0,0 +1,77 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import gelbooru_v02
__tests__ = (
{
"#url" : "https://hypnohub.net/index.php?page=post&s=list&tags=gonoike_biwa",
"#category": ("gelbooru_v02", "hypnohub", "tag"),
"#class" : gelbooru_v02.GelbooruV02TagExtractor,
"#sha1_url": "fe662b86d38c331fcac9c62af100167d404937dc",
},
{
"#url" : "https://hypnohub.net/index.php?page=pool&s=show&id=61",
"#category": ("gelbooru_v02", "hypnohub", "pool"),
"#class" : gelbooru_v02.GelbooruV02PoolExtractor,
"#count" : 3,
"#sha1_url": "d314826280073441a2da609f70ee814d1f4b9407",
},
{
"#url" : "https://hypnohub.net/index.php?page=favorites&s=view&id=43546",
"#category": ("gelbooru_v02", "hypnohub", "favorite"),
"#class" : gelbooru_v02.GelbooruV02FavoriteExtractor,
"#count" : 3,
},
{
"#url" : "https://hypnohub.net/index.php?page=post&s=view&id=1439",
"#category": ("gelbooru_v02", "hypnohub", "post"),
"#class" : gelbooru_v02.GelbooruV02PostExtractor,
"#options" : {
"tags" : True,
"notes": True,
},
"#pattern" : r"https://hypnohub\.net/images/90/24/90245c3c5250c2a8173255d3923a010b\.jpg",
"#sha1_content": "5987c5d2354f22e5fa9b7ee7ce4a6f7beb8b2b71",
"tags_artist" : "brokenteapot",
"tags_character": "hsien-ko",
"tags_copyright": "capcom darkstalkers",
"tags_general" : str,
"tags_metadata" : "dialogue text translated",
"notes" : [
{
"body" : "Master Master Master Master Master Master",
"height": 83,
"id" : 10577,
"width" : 129,
"x" : 259,
"y" : 20,
},
{
"body" : "Response Response Response Response Response Response",
"height": 86,
"id" : 10578,
"width" : 125,
"x" : 126,
"y" : 20,
},
{
"body" : "Obedience Obedience Obedience Obedience Obedience Obedience",
"height": 80,
"id" : 10579,
"width" : 98,
"x" : 20,
"y" : 20,
},
],
},
)

@ -0,0 +1,55 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import idolcomplex
__tests__ = (
{
"#url" : "https://idol.sankakucomplex.com/?tags=lyumos",
"#category": ("booru", "idolcomplex", "tag"),
"#class" : idolcomplex.IdolcomplexTagExtractor,
"#pattern" : r"https://is\.sankakucomplex\.com/data/[^/]{2}/[^/]{2}/[^/]{32}\.\w+\?e=\d+&m=[^&#]+",
"#range" : "18-22",
"#count" : 5,
},
{
"#url" : "https://idol.sankakucomplex.com/?tags=order:favcount",
"#category": ("booru", "idolcomplex", "tag"),
"#class" : idolcomplex.IdolcomplexTagExtractor,
"#range" : "18-22",
"#count" : 5,
},
{
"#url" : "https://idol.sankakucomplex.com/?tags=lyumos+wreath&page=3&next=694215",
"#category": ("booru", "idolcomplex", "tag"),
"#class" : idolcomplex.IdolcomplexTagExtractor,
},
{
"#url" : "https://idol.sankakucomplex.com/pool/show/145",
"#category": ("booru", "idolcomplex", "pool"),
"#class" : idolcomplex.IdolcomplexPoolExtractor,
"#count" : 3,
},
{
"#url" : "https://idol.sankakucomplex.com/post/show/694215",
"#category": ("booru", "idolcomplex", "post"),
"#class" : idolcomplex.IdolcomplexPostExtractor,
"#options" : {"tags": True},
"#sha1_content": "694ec2491240787d75bf5d0c75d0082b53a85afd",
"tags_character": "shani_(the_witcher)",
"tags_copyright": "the_witcher",
"tags_idol" : str,
"tags_medium" : str,
"tags_general" : str,
},
)

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import gelbooru_v01
__tests__ = (
{
"#url" : "https://illusioncards.booru.org/index.php?page=post&s=list&tags=koikatsu",
"#category": ("gelbooru_v01", "illusioncardsbooru", "tag"),
"#class" : gelbooru_v01.GelbooruV01TagExtractor,
"#range" : "1-25",
"#count" : 25,
},
{
"#url" : "https://illusioncards.booru.org/index.php?page=favorites&s=view&id=84887",
"#category": ("gelbooru_v01", "illusioncardsbooru", "favorite"),
"#class" : gelbooru_v01.GelbooruV01FavoriteExtractor,
"#count" : 2,
},
{
"#url" : "https://illusioncards.booru.org/index.php?page=post&s=view&id=82746",
"#category": ("gelbooru_v01", "illusioncardsbooru", "post"),
"#class" : gelbooru_v01.GelbooruV01PostExtractor,
"#sha1_url" : "3f9cd2fadf78869b90bc5422f27b48f1af0e0909",
"#sha1_content": "159e60b92d05597bd1bb63510c2c3e4a4bada1dc",
},
)

@ -0,0 +1,78 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagebam
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://www.imagebam.com/gallery/adz2y0f9574bjpmonaismyrhtjgvey4o",
"#category": ("", "imagebam", "gallery"),
"#class" : imagebam.ImagebamGalleryExtractor,
"#sha1_url" : "76d976788ae2757ac81694736b07b72356f5c4c8",
"#sha1_metadata": "b048478b1bbba3072a7fa9fcc40630b3efad1f6c",
"#sha1_content" : "596e6bfa157f2c7169805d50075c2986549973a8",
},
{
"#url" : "http://www.imagebam.com/gallery/op9dwcklwdrrguibnkoe7jxgvig30o5p",
"#category": ("", "imagebam", "gallery"),
"#class" : imagebam.ImagebamGalleryExtractor,
"#count" : 107,
"#sha1_url": "32ae6fe5dc3e4ca73ff6252e522d16473595d1d1",
},
{
"#url" : "http://www.imagebam.com/gallery/gsl8teckymt4vbvx1stjkyk37j70va2c",
"#category": ("", "imagebam", "gallery"),
"#class" : imagebam.ImagebamGalleryExtractor,
"#exception": exception.HttpError,
},
{
"#url" : "https://www.imagebam.com/view/GA3MT1",
"#comment" : "/view/ path (#2378)",
"#category": ("", "imagebam", "gallery"),
"#class" : imagebam.ImagebamGalleryExtractor,
"#sha1_url" : "35018ce1e00a2d2825a33d3cd37857edaf804919",
"#sha1_metadata": "3a9f98178f73694c527890c0d7ca9a92b46987ba",
},
{
"#url" : "https://www.imagebam.com/image/94d56c502511890",
"#category": ("", "imagebam", "image"),
"#class" : imagebam.ImagebamImageExtractor,
"#sha1_url" : "5e9ba3b1451f8ded0ae3a1b84402888893915d4a",
"#sha1_metadata": "2a4380d4b57554ff793898c2d6ec60987c86d1a1",
"#sha1_content" : "0c8768055e4e20e7c7259608b67799171b691140",
},
{
"#url" : "http://images3.imagebam.com/1d/8c/44/94d56c502511890.png",
"#category": ("", "imagebam", "image"),
"#class" : imagebam.ImagebamImageExtractor,
},
{
"#url" : "https://www.imagebam.com/image/0850951366904951",
"#comment" : "NSFW (#1534)",
"#category": ("", "imagebam", "image"),
"#class" : imagebam.ImagebamImageExtractor,
"#sha1_url": "d37297b17ed1615b4311c8ed511e50ce46e4c748",
},
{
"#url" : "https://www.imagebam.com/view/ME8JOQP",
"#comment" : "/view/ path (#2378)",
"#category": ("", "imagebam", "image"),
"#class" : imagebam.ImagebamImageExtractor,
"#sha1_url" : "4dca72bbe61a0360185cf4ab2bed8265b49565b8",
"#sha1_metadata": "15a494c02fd30846b41b42a26117aedde30e4ceb",
"#sha1_content" : "f81008666b17a42d8834c4749b910e1dc10a6e83",
},
)

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagechest
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://imgchest.com/p/3na7kr3by8d",
"#category": ("", "imagechest", "gallery"),
"#class" : imagechest.ImagechestGalleryExtractor,
"#pattern" : r"https://cdn\.imgchest\.com/files/\w+\.(jpg|png)",
"#count" : 3,
"#sha1_url" : "7328ca4ec2459378d725e3be19f661d2b045feda",
"#sha1_content": "076959e65be30249a2c651fbe6090dc30ba85193",
"count" : 3,
"gallery_id": "3na7kr3by8d",
"num" : int,
"title" : "Wizardry - Video Game From The Mid 80's",
},
{
"#url" : "https://imgchest.com/p/9p4n3q2z7nq",
"#comment" : "'Load More Files' button (#4028)",
"#category": ("", "imagechest", "gallery"),
"#class" : imagechest.ImagechestGalleryExtractor,
"#pattern" : r"https://cdn\.imgchest\.com/files/\w+\.(jpg|png)",
"#count" : 52,
"#sha1_url": "f5674e8ba79d336193c9f698708d9dcc10e78cc7",
},
{
"#url" : "https://imgchest.com/p/xxxxxxxxxxx",
"#category": ("", "imagechest", "gallery"),
"#class" : imagechest.ImagechestGalleryExtractor,
"#exception": exception.NotFoundError,
},
)

@ -0,0 +1,191 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagefap
__tests__ = (
{
"#url" : "https://www.imagefap.com/gallery/7102714",
"#category": ("", "imagefap", "gallery"),
"#class" : imagefap.ImagefapGalleryExtractor,
"#pattern" : r"https://cdnh?\.imagefap\.com/images/full/\d+/\d+/\d+\.jpg",
"#sha1_metadata": "bdcb75b1e4b9dddc718f3d66e1a58afa9d81a38b",
"#sha1_content" : "694a0a57385980a6f90fbc296cadcd6c11ba2dab",
},
{
"#url" : "https://www.imagefap.com/gallery/7876223",
"#category": ("", "imagefap", "gallery"),
"#class" : imagefap.ImagefapGalleryExtractor,
"#pattern" : r"https://cdnh?\.imagefap\.com/images/full/\d+/\d+/\d+\.jpg",
"#count" : 44,
"categories" : [
"Asses",
"Softcore",
"Pornstars",
],
"count" : 44,
"description": "",
"gallery_id" : 7876223,
"image_id" : int,
"num" : int,
"tags" : [
"big ass",
"panties",
"horny",
"pussy",
"exposed",
"outdoor",
],
"title" : "Kelsi Monroe in lingerie",
"uploader" : "BdRachel",
},
{
"#url" : "https://www.imagefap.com/gallery/6180555",
"#comment" : "description (#3905)",
"#category": ("", "imagefap", "gallery"),
"#class" : imagefap.ImagefapGalleryExtractor,
"#range" : "1",
"categories" : [
"Amateur",
"Softcore",
"Homemade",
],
"count" : 36,
"description": "Nude and dressed sluts showing off the goods",
"gallery_id" : 6180555,
"image_id" : int,
"num" : int,
"tags" : [],
"title" : "Dressed or Undressed MG*",
"uploader" : "splitopen",
},
{
"#url" : "https://www.imagefap.com/pictures/7102714",
"#category": ("", "imagefap", "gallery"),
"#class" : imagefap.ImagefapGalleryExtractor,
},
{
"#url" : "https://www.imagefap.com/gallery.php?gid=7102714",
"#category": ("", "imagefap", "gallery"),
"#class" : imagefap.ImagefapGalleryExtractor,
},
{
"#url" : "https://beta.imagefap.com/gallery.php?gid=7102714",
"#category": ("", "imagefap", "gallery"),
"#class" : imagefap.ImagefapGalleryExtractor,
},
{
"#url" : "https://www.imagefap.com/photo/1962981893",
"#category": ("", "imagefap", "image"),
"#class" : imagefap.ImagefapImageExtractor,
"#pattern" : r"https://cdnh?\.imagefap\.com/images/full/65/196/1962981893\.jpg",
"date" : "21/08/2014",
"gallery_id": 7876223,
"height" : 1600,
"image_id" : 1962981893,
"title" : "Kelsi Monroe in lingerie",
"uploader" : "BdRachel",
"width" : 1066,
},
{
"#url" : "https://beta.imagefap.com/photo/1962981893",
"#category": ("", "imagefap", "image"),
"#class" : imagefap.ImagefapImageExtractor,
},
{
"#url" : "https://www.imagefap.com/organizer/409758",
"#category": ("", "imagefap", "folder"),
"#class" : imagefap.ImagefapFolderExtractor,
"#pattern" : r"https://www\.imagefap\.com/gallery/7876223",
"#count" : 1,
"#sha1_url": "37822523e6e4a56feb9dea35653760c86b44ff89",
},
{
"#url" : "https://www.imagefap.com/usergallery.php?userid=1981976&folderid=409758",
"#category": ("", "imagefap", "folder"),
"#class" : imagefap.ImagefapFolderExtractor,
"#sha1_url": "37822523e6e4a56feb9dea35653760c86b44ff89",
},
{
"#url" : "https://www.imagefap.com/usergallery.php?user=BdRachel&folderid=409758",
"#category": ("", "imagefap", "folder"),
"#class" : imagefap.ImagefapFolderExtractor,
"#sha1_url": "37822523e6e4a56feb9dea35653760c86b44ff89",
},
{
"#url" : "https://www.imagefap.com/profile/BdRachel/galleries?folderid=-1",
"#category": ("", "imagefap", "folder"),
"#class" : imagefap.ImagefapFolderExtractor,
"#pattern" : imagefap.ImagefapGalleryExtractor.pattern,
"#range" : "1-40",
},
{
"#url" : "https://www.imagefap.com/usergallery.php?userid=1981976&folderid=-1",
"#category": ("", "imagefap", "folder"),
"#class" : imagefap.ImagefapFolderExtractor,
"#pattern" : imagefap.ImagefapGalleryExtractor.pattern,
"#range" : "1-40",
},
{
"#url" : "https://www.imagefap.com/usergallery.php?user=BdRachel&folderid=-1",
"#category": ("", "imagefap", "folder"),
"#class" : imagefap.ImagefapFolderExtractor,
"#pattern" : imagefap.ImagefapGalleryExtractor.pattern,
"#range" : "1-40",
},
{
"#url" : "https://www.imagefap.com/profile/BdRachel",
"#category": ("", "imagefap", "user"),
"#class" : imagefap.ImagefapUserExtractor,
"#pattern" : imagefap.ImagefapFolderExtractor.pattern,
"#count" : ">= 18",
},
{
"#url" : "https://www.imagefap.com/usergallery.php?userid=1862791",
"#category": ("", "imagefap", "user"),
"#class" : imagefap.ImagefapUserExtractor,
"#pattern" : r"https://www\.imagefap\.com/profile/LucyRae/galleries\?folderid=-1",
"#count" : 1,
},
{
"#url" : "https://www.imagefap.com/profile/BdRachel/galleries",
"#category": ("", "imagefap", "user"),
"#class" : imagefap.ImagefapUserExtractor,
},
{
"#url" : "https://www.imagefap.com/profile.php?user=BdRachel",
"#category": ("", "imagefap", "user"),
"#class" : imagefap.ImagefapUserExtractor,
},
{
"#url" : "https://beta.imagefap.com/profile.php?user=BdRachel",
"#category": ("", "imagefap", "user"),
"#class" : imagefap.ImagefapUserExtractor,
},
)

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagehosts
__tests__ = (
{
"#url" : "https://imagetwist.com/f1i2s4vhvbrq/test.png",
"#category": ("imagehost", "imagetwist", "image"),
"#class" : imagehosts.ImagetwistImageExtractor,
"#sha1_url" : "8d5e168c0bee30211f821c6f3b2116e419d42671",
"#sha1_metadata": "d1060a4c2e3b73b83044e20681712c0ffdd6cfef",
"#sha1_content" : "0c8768055e4e20e7c7259608b67799171b691140",
},
{
"#url" : "https://www.imagetwist.com/f1i2s4vhvbrq/test.png",
"#category": ("imagehost", "imagetwist", "image"),
"#class" : imagehosts.ImagetwistImageExtractor,
},
{
"#url" : "https://phun.imagetwist.com/f1i2s4vhvbrq/test.png",
"#category": ("imagehost", "imagetwist", "image"),
"#class" : imagehosts.ImagetwistImageExtractor,
},
{
"#url" : "https://imagehaha.com/f1i2s4vhvbrq/test.png",
"#category": ("imagehost", "imagetwist", "image"),
"#class" : imagehosts.ImagetwistImageExtractor,
},
{
"#url" : "https://www.imagehaha.com/f1i2s4vhvbrq/test.png",
"#category": ("imagehost", "imagetwist", "image"),
"#class" : imagehosts.ImagetwistImageExtractor,
},
)

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagehosts
__tests__ = (
{
"#url" : "https://www.imagevenue.com/ME13LS07",
"#category": ("imagehost", "imagevenue", "image"),
"#class" : imagehosts.ImagevenueImageExtractor,
"#pattern" : r"https://cdn-images\.imagevenue\.com/10/ac/05/ME13LS07_o\.png",
"#sha1_metadata": "ae15d6e3b2095f019eee84cd896700cd34b09c36",
"#sha1_content" : "cfaa8def53ed1a575e0c665c9d6d8cf2aac7a0ee",
},
{
"#url" : "https://www.imagevenue.com/view/o?i=92518_13732377annakarina424200712535AM_122_486lo.jpg&h=img150&l=loc486",
"#category": ("imagehost", "imagevenue", "image"),
"#class" : imagehosts.ImagevenueImageExtractor,
"#sha1_url": "8bf0254e29250d8f5026c0105bbdda3ee3d84980",
},
{
"#url" : "http://img28116.imagevenue.com/img.php?image=th_52709_test_122_64lo.jpg",
"#category": ("imagehost", "imagevenue", "image"),
"#class" : imagehosts.ImagevenueImageExtractor,
"#sha1_url": "f98e3091df7f48a05fb60fbd86f789fc5ec56331",
},
)

@ -0,0 +1,72 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imgbb
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://ibb.co/album/i5PggF",
"#category": ("", "imgbb", "album"),
"#class" : imgbb.ImgbbAlbumExtractor,
"#range" : "1-80",
"#sha1_url" : "70afec9fcc3a6de62a6b644b487d892d8d47cf1a",
"#sha1_metadata": "569e1d88ebdd27655387559cdf1cd526a3e1ab69",
},
{
"#url" : "https://ibb.co/album/i5PggF?sort=title_asc",
"#category": ("", "imgbb", "album"),
"#class" : imgbb.ImgbbAlbumExtractor,
"#range" : "1-80",
"#sha1_url" : "afdf5fc95d8e09d77e8f44312f3e9b843987bb5a",
"#sha1_metadata": "f090e14d0e5f7868595082b2c95da1309c84872d",
},
{
"#url" : "https://ibb.co/album/kYKpwF",
"#comment" : "no user data (#471)",
"#category": ("", "imgbb", "album"),
"#class" : imgbb.ImgbbAlbumExtractor,
"#sha1_url": "ac0abcfcb89f4df6adc2f7e4ff872f3b03ef1bc7",
"user": "",
},
{
"#url" : "https://ibb.co/album/hqgWrF",
"#comment" : "private",
"#category": ("", "imgbb", "album"),
"#class" : imgbb.ImgbbAlbumExtractor,
"#exception": exception.HttpError,
},
{
"#url" : "https://folkie.imgbb.com",
"#category": ("", "imgbb", "user"),
"#class" : imgbb.ImgbbUserExtractor,
"#pattern" : r"https?://i\.ibb\.co/\w+/[^/?#]+",
"#range" : "1-80",
},
{
"#url" : "https://ibb.co/fUqh5b",
"#category": ("", "imgbb", "image"),
"#class" : imgbb.ImgbbImageExtractor,
"#pattern" : r"https://i\.ibb\.co/g3kvx80/Arundel-Ireeman-5\.jpg",
"#sha1_content": "c5a0965178a8b357acd8aa39660092918c63795e",
"id" : "fUqh5b",
"title" : "Arundel Ireeman 5",
"url" : "https://i.ibb.co/g3kvx80/Arundel-Ireeman-5.jpg",
"width" : 960,
"height" : 719,
"user" : "folkie",
"extension": "jpg",
},
)

@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imgbox
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://imgbox.com/g/JaX5V5HX7g",
"#category": ("", "imgbox", "gallery"),
"#class" : imgbox.ImgboxGalleryExtractor,
"#sha1_url" : "da4f15b161461119ee78841d4b8e8d054d95f906",
"#sha1_metadata": "4b1e62820ac2c6205b7ad0b6322cc8e00dbe1b0c",
"#sha1_content" : "d20307dc8511ac24d688859c55abf2e2cc2dd3cc",
},
{
"#url" : "https://imgbox.com/g/cUGEkRbdZZ",
"#category": ("", "imgbox", "gallery"),
"#class" : imgbox.ImgboxGalleryExtractor,
"#sha1_url" : "76506a3aab175c456910851f66227e90484ca9f7",
"#sha1_metadata": "fb0427b87983197849fb2887905e758f3e50cb6e",
},
{
"#url" : "https://imgbox.com/g/JaX5V5HX7h",
"#category": ("", "imgbox", "gallery"),
"#class" : imgbox.ImgboxGalleryExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://imgbox.com/qHhw7lpG",
"#category": ("", "imgbox", "image"),
"#class" : imgbox.ImgboxImageExtractor,
"#sha1_url" : "ee9cdea6c48ad0161c1b5f81f6b0c9110997038c",
"#sha1_metadata": "dfc72310026b45f3feb4f9cada20c79b2575e1af",
"#sha1_content" : "0c8768055e4e20e7c7259608b67799171b691140",
},
{
"#url" : "https://imgbox.com/qHhw7lpH",
"#category": ("", "imgbox", "image"),
"#class" : imgbox.ImgboxImageExtractor,
"#exception": exception.NotFoundError,
},
)

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagehosts
__tests__ = (
{
"#url" : "http://imgclick.net/4tbrre1oxew9/test-_-_.png.html",
"#category": ("imagehost", "imgclick", "image"),
"#class" : imagehosts.ImgclickImageExtractor,
"#sha1_url" : "140dcb250a325f2d26b2d918c18b8ac6a2a0f6ab",
"#sha1_metadata": "6895256143eab955622fc149aa367777a8815ba3",
"#sha1_content" : "0c8768055e4e20e7c7259608b67799171b691140",
},
)

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagehosts
__tests__ = (
{
"#url" : "https://imgspice.com/nwfwtpyog50y/test.png.html",
"#category": ("imagehost", "imgspice", "image"),
"#class" : imagehosts.ImgspiceImageExtractor,
"#sha1_url" : "b8c30a8f51ee1012959a4cfd46197fabf14de984",
"#sha1_metadata": "100e310a19a2fa22d87e1bbc427ecb9f6501e0c0",
"#sha1_content" : "0c8768055e4e20e7c7259608b67799171b691140",
},
)

@ -0,0 +1,34 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imgth
__tests__ = (
{
"#url" : "https://imgth.com/gallery/37/wallpaper-anime",
"#category": ("", "imgth", "gallery"),
"#class" : imgth.ImgthGalleryExtractor,
"#pattern" : r"https://imgth\.com/images/2009/11/25/wallpaper-anime_\w+\.jpg",
"#sha1_url": "4ae1d281ca2b48952cf5cca57e9914402ad72748",
"count" : 12,
"date" : "dt:2009-11-25 18:21:00",
"extension" : "jpg",
"filename" : r"re:wallpaper-anime_\w+",
"gallery_id": 37,
"num" : int,
"title" : "Wallpaper anime",
"user" : "celebrities",
},
{
"#url" : "https://www.imgth.com/gallery/37/wallpaper-anime",
"#category": ("", "imgth", "gallery"),
"#class" : imgth.ImgthGalleryExtractor,
},
)

@ -0,0 +1,367 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imgur
from gallery_dl import exception
import datetime
__tests__ = (
{
"#url" : "https://imgur.com/21yMxCS",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
"#sha1_url" : "6f2dcfb86815bdd72808c313e5f715610bc7b9b2",
"#sha1_content": "0c8768055e4e20e7c7259608b67799171b691140",
"account_id" : 0,
"comment_count" : int,
"cover_id" : "21yMxCS",
"date" : "dt:2016-11-10 14:24:35",
"description" : "",
"downvote_count": int,
"duration" : 0,
"ext" : "png",
"favorite" : False,
"favorite_count": 0,
"has_sound" : False,
"height" : 32,
"id" : "21yMxCS",
"image_count" : 1,
"in_most_viral" : False,
"is_ad" : False,
"is_album" : False,
"is_animated" : False,
"is_looping" : False,
"is_mature" : False,
"is_pending" : False,
"mime_type" : "image/png",
"name" : "test-テスト",
"point_count" : int,
"privacy" : "",
"score" : int,
"size" : 182,
"title" : "Test",
"upvote_count" : int,
"url" : "https://i.imgur.com/21yMxCS.png",
"view_count" : int,
"width" : 64,
},
{
"#url" : "http://imgur.com/0gybAXR",
"#comment" : "gifv/mp4 video",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
"#sha1_url" : "a2220eb265a55b0c95e0d3d721ec7665460e3fd7",
"#sha1_content": "a3c080e43f58f55243ab830569ba02309d59abfc",
},
{
"#url" : "https://imgur.com/XFfsmuC",
"#comment" : "missing title in API response (#467)",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
"title": "Tears are a natural response to irritants",
},
{
"#url" : "https://imgur.com/1Nily2P",
"#comment" : "animated png",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
"#pattern" : "https://i.imgur.com/1Nily2P.png",
},
{
"#url" : "https://imgur.com/zzzzzzz",
"#comment" : "not found",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
"#exception": exception.HttpError,
},
{
"#url" : "https://m.imgur.com/r/Celebs/iHJ7tsM",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://www.imgur.com/21yMxCS",
"#comment" : "www",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://m.imgur.com/21yMxCS",
"#comment" : "mobile",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://imgur.com/zxaY6",
"#comment" : "5 character key",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://imgur.io/zxaY6",
"#comment" : ".io",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://i.imgur.com/21yMxCS.png",
"#comment" : "direct link",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://i.imgur.io/21yMxCS.png",
"#comment" : "direct link .io",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://i.imgur.com/21yMxCSh.png",
"#comment" : "direct link thumbnail",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://i.imgur.com/zxaY6.gif",
"#comment" : "direct link (short)",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://i.imgur.com/zxaY6s.gif",
"#comment" : "direct link (short; thumb)",
"#category": ("", "imgur", "image"),
"#class" : imgur.ImgurImageExtractor,
},
{
"#url" : "https://imgur.com/a/TcBmP",
"#category": ("", "imgur", "album"),
"#class" : imgur.ImgurAlbumExtractor,
"#sha1_url": "ce3552f550a5b5316bd9c7ae02e21e39f30c0563",
"album" : {
"account_id" : 0,
"comment_count" : int,
"cover_id" : "693j2Kr",
"date" : "dt:2015-10-09 10:37:50",
"description" : "",
"downvote_count": 0,
"favorite" : False,
"favorite_count": 0,
"id" : "TcBmP",
"image_count" : 19,
"in_most_viral" : False,
"is_ad" : False,
"is_album" : True,
"is_mature" : False,
"is_pending" : False,
"privacy" : "private",
"score" : int,
"title" : "138",
"upvote_count" : int,
"url" : "https://imgur.com/a/TcBmP",
"view_count" : int,
"virality" : int,
},
"account_id" : 0,
"count" : 19,
"date" : datetime.datetime,
"description": "",
"ext" : "jpg",
"has_sound" : False,
"height" : int,
"id" : str,
"is_animated": False,
"is_looping" : False,
"mime_type" : "image/jpeg",
"name" : str,
"num" : int,
"size" : int,
"title" : str,
"type" : "image",
"updated_at" : None,
"url" : str,
"width" : int,
},
{
"#url" : "https://imgur.com/a/eD9CT",
"#comment" : "large album",
"#category": ("", "imgur", "album"),
"#class" : imgur.ImgurAlbumExtractor,
"#sha1_url": "de748c181a04d18bef1de9d4f4866ef0a06d632b",
},
{
"#url" : "https://imgur.com/a/RhJXhVT/all",
"#comment" : "7 character album hash",
"#category": ("", "imgur", "album"),
"#class" : imgur.ImgurAlbumExtractor,
"#sha1_url": "695ef0c950023362a0163ee5041796300db76674",
},
{
"#url" : "https://imgur.com/a/TcBmQ",
"#category": ("", "imgur", "album"),
"#class" : imgur.ImgurAlbumExtractor,
"#exception": exception.HttpError,
},
{
"#url" : "https://imgur.com/a/pjOnJA0",
"#comment" : "empty, no 'media' (#2557)",
"#category": ("", "imgur", "album"),
"#class" : imgur.ImgurAlbumExtractor,
"#count" : 0,
},
{
"#url" : "https://www.imgur.com/a/TcBmP",
"#comment" : "www",
"#category": ("", "imgur", "album"),
"#class" : imgur.ImgurAlbumExtractor,
},
{
"#url" : "https://imgur.io/a/TcBmP",
"#comment" : ".io",
"#category": ("", "imgur", "album"),
"#class" : imgur.ImgurAlbumExtractor,
},
{
"#url" : "https://m.imgur.com/a/TcBmP",
"#comment" : "mobile",
"#category": ("", "imgur", "album"),
"#class" : imgur.ImgurAlbumExtractor,
},
{
"#url" : "https://imgur.com/gallery/zf2fIms",
"#comment" : "non-album gallery (#380)",
"#category": ("", "imgur", "gallery"),
"#class" : imgur.ImgurGalleryExtractor,
"#pattern" : "https://imgur.com/zf2fIms",
},
{
"#url" : "https://imgur.com/gallery/eD9CT",
"#category": ("", "imgur", "gallery"),
"#class" : imgur.ImgurGalleryExtractor,
"#pattern" : "https://imgur.com/a/eD9CT",
},
{
"#url" : "https://imgur.com/t/unmuted/26sEhNr",
"#category": ("", "imgur", "gallery"),
"#class" : imgur.ImgurGalleryExtractor,
},
{
"#url" : "https://imgur.com/t/cat/qSB8NbN",
"#category": ("", "imgur", "gallery"),
"#class" : imgur.ImgurGalleryExtractor,
},
{
"#url" : "https://imgur.io/t/cat/qSB8NbN",
"#comment" : ".io",
"#category": ("", "imgur", "gallery"),
"#class" : imgur.ImgurGalleryExtractor,
},
{
"#url" : "https://imgur.com/user/Miguenzo",
"#category": ("", "imgur", "user"),
"#class" : imgur.ImgurUserExtractor,
"#pattern" : r"https://imgur\.com(/a)?/\w+$",
"#range" : "1-100",
"#count" : 100,
},
{
"#url" : "https://imgur.com/user/Miguenzo/posts",
"#category": ("", "imgur", "user"),
"#class" : imgur.ImgurUserExtractor,
},
{
"#url" : "https://imgur.com/user/Miguenzo/submitted",
"#category": ("", "imgur", "user"),
"#class" : imgur.ImgurUserExtractor,
},
{
"#url" : "https://imgur.com/user/Miguenzo/favorites",
"#category": ("", "imgur", "favorite"),
"#class" : imgur.ImgurFavoriteExtractor,
"#pattern" : r"https://imgur\.com(/a)?/\w+$",
"#range" : "1-100",
"#count" : 100,
},
{
"#url" : "https://imgur.com/user/mikf1/favorites/folder/11896757/public",
"#category": ("", "imgur", "favorite-folder"),
"#class" : imgur.ImgurFavoriteFolderExtractor,
"#pattern" : r"https://imgur\.com(/a)?/\w+$",
"#count" : 3,
},
{
"#url" : "https://imgur.com/user/mikf1/favorites/folder/11896741/private",
"#category": ("", "imgur", "favorite-folder"),
"#class" : imgur.ImgurFavoriteFolderExtractor,
"#pattern" : r"https://imgur\.com(/a)?/\w+$",
"#count" : 5,
},
{
"#url" : "https://imgur.com/r/pics",
"#category": ("", "imgur", "subreddit"),
"#class" : imgur.ImgurSubredditExtractor,
"#pattern" : r"https://imgur\.com(/a)?/\w+$",
"#range" : "1-100",
"#count" : 100,
},
{
"#url" : "https://imgur.com/t/animals",
"#category": ("", "imgur", "tag"),
"#class" : imgur.ImgurTagExtractor,
"#pattern" : r"https://imgur\.com(/a)?/\w+$",
"#range" : "1-100",
"#count" : 100,
},
{
"#url" : "https://imgur.com/search?q=cute+cat",
"#category": ("", "imgur", "search"),
"#class" : imgur.ImgurSearchExtractor,
"#pattern" : r"https://imgur\.com(/a)?/\w+$",
"#range" : "1-100",
"#count" : 100,
},
)

@ -0,0 +1,65 @@
# -*- coding: utf-8 -*-
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
from gallery_dl.extractor import imagehosts
from gallery_dl import exception
__tests__ = (
{
"#url" : "https://imx.to/i/1qdeva",
"#comment" : "new-style URL",
"#category": ("imagehost", "imxto", "image"),
"#class" : imagehosts.ImxtoImageExtractor,
"#sha1_url" : "ab2173088a6cdef631d7a47dec4a5da1c6a00130",
"#sha1_content": "0c8768055e4e20e7c7259608b67799171b691140",
"size" : 18,
"width" : 64,
"height": 32,
"hash" : "94d56c599223c59f3feb71ea603484d1",
},
{
"#url" : "https://imx.to/img-57a2050547b97.html",
"#comment" : "old-style URL",
"#category": ("imagehost", "imxto", "image"),
"#class" : imagehosts.ImxtoImageExtractor,
"#sha1_url" : "a83fe6ef1909a318c4d49fcf2caf62f36c3f9204",
"#sha1_content": "54592f2635674c25677c6872db3709d343cdf92f",
"size" : 5284,
"width" : 320,
"height": 160,
"hash" : "40da6aaa7b8c42b18ef74309bbc713fc",
},
{
"#url" : "https://img.yt/img-57a2050547b97.html",
"#comment" : "img.yt domain",
"#category": ("imagehost", "imxto", "image"),
"#class" : imagehosts.ImxtoImageExtractor,
"#sha1_url": "a83fe6ef1909a318c4d49fcf2caf62f36c3f9204",
},
{
"#url" : "https://imx.to/img-57a2050547b98.html",
"#category": ("imagehost", "imxto", "image"),
"#class" : imagehosts.ImxtoImageExtractor,
"#exception": exception.NotFoundError,
},
{
"#url" : "https://imx.to/g/ozdy",
"#category": ("imagehost", "imxto", "gallery"),
"#class" : imagehosts.ImxtoGalleryExtractor,
"#pattern" : imagehosts.ImxtoImageExtractor.pattern,
"#count" : 40,
"title": "untitled gallery",
},
)

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save