[e621] support e621.cc and e621.anthro.fr frontend URLs (#6809)

This commit is contained in:
Mike Fährmann
2025-01-15 14:35:37 +01:00
parent 843a39a6c6
commit 6e919a3695
4 changed files with 47 additions and 2 deletions

View File

@@ -1184,7 +1184,7 @@ Consider all listed sites to potentially be NSFW.
<tr>
<td>e621</td>
<td>https://e621.net/</td>
<td>Favorites, Pools, Popular Images, Posts, Tag Searches</td>
<td>Favorites, Pools, Popular Images, Posts, Tag Searches, Frontends</td>
<td>Supported</td>
</tr>
<tr>

View File

@@ -8,7 +8,7 @@
"""Extractors for https://e621.net/ and other e621 instances"""
from .common import Message
from .common import Extractor, Message
from . import danbooru
from ..cache import memcache
from .. import text, util
@@ -156,3 +156,20 @@ class E621FavoriteExtractor(E621Extractor):
def posts(self):
return self._pagination("/favorites.json", self.query)
class E621FrontendExtractor(Extractor):
"""Extractor for alternative e621 frontends"""
basecategory = "E621"
category = "e621"
subcategory = "frontend"
pattern = r"(?:https?://)?e621\.(?:cc/\?tags|anthro\.fr/\?q)=([^&#]*)"
example = "https://e621.cc/?tags=TAG"
def initialize(self):
pass
def items(self):
url = "https://e621.net/posts?tags=" + self.groups[0]
data = {"_extractor": E621TagExtractor}
yield Message.Queue, url, data

View File

@@ -578,6 +578,9 @@ def build_extractor_list():
default["wikifeetx"] = default["wikifeet"]
domains["wikifeetx"] = "https://www.wikifeetx.com/"
# add extra e621 extractors
categories["E621"]["e621"].extend(default.pop("e621", ()))
return categories, domains

25
test/results/E621.py Normal file
View File

@@ -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 e621
__tests__ = (
{
"#url" : "https://e621.cc/?tags=rating:safe",
"#category": ("E621", "e621", "frontend"),
"#class" : e621.E621FrontendExtractor,
"#urls" : "https://e621.net/posts?tags=rating:safe",
},
{
"#url" : "https://e621.anthro.fr/?q=rating:safe",
"#category": ("E621", "e621", "frontend"),
"#class" : e621.E621FrontendExtractor,
"#urls" : "https://e621.net/posts?tags=rating:safe",
},
)