[cyberfile] add 'shared' extractor (#8323)
https://github.com/mikf/gallery-dl/issues/8323#issuecomment-3366857916
This commit is contained in:
@@ -220,7 +220,7 @@ Consider all listed sites to potentially be NSFW.
|
||||
<tr id="cyberfile" title="cyberfile">
|
||||
<td>CyberFile</td>
|
||||
<td>https://cyberfile.me/</td>
|
||||
<td>Files, Folders</td>
|
||||
<td>Files, Folders, Shares</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr id="dandadan" title="dandadan">
|
||||
|
||||
@@ -86,6 +86,37 @@ class CyberfileFolderExtractor(CyberfileExtractor):
|
||||
resp = self.request_api("/account/ajax/load_files", data)
|
||||
|
||||
|
||||
class CyberfileSharedExtractor(CyberfileExtractor):
|
||||
subcategory = "shared"
|
||||
pattern = rf"{BASE_PATTERN}/shared/([a-zA-Z0-9]+)"
|
||||
example = "https://cyberfile.me/shared/AbCdEfGhIjK"
|
||||
|
||||
def items(self):
|
||||
# get 'filehosting' cookie
|
||||
url = f"{self.root}/shared/{self.groups[0]}"
|
||||
self.request(url, method="HEAD")
|
||||
|
||||
data = {
|
||||
"pageType" : "nonaccountshared",
|
||||
"nodeId" : "",
|
||||
"pageStart": "1",
|
||||
"perPage" : "500",
|
||||
"filterOrderBy": "",
|
||||
}
|
||||
resp = self.request_api("/account/ajax/load_files", data)
|
||||
|
||||
html = resp["html"]
|
||||
pos = html.find("<!-- /.navbar-collapse -->") + 26
|
||||
|
||||
data = {"_extractor": CyberfileFolderExtractor}
|
||||
for folder in text.extract_iter(html, 'sharing-url="', '"', pos):
|
||||
yield Message.Queue, folder, data
|
||||
|
||||
data = {"_extractor": CyberfileFileExtractor}
|
||||
for file in text.extract_iter(html, 'dtfullurl="', '"', pos):
|
||||
yield Message.Queue, file, data
|
||||
|
||||
|
||||
class CyberfileFileExtractor(CyberfileExtractor):
|
||||
subcategory = "file"
|
||||
directory_fmt = ("{category}", "{uploader}", "{folder}")
|
||||
|
||||
@@ -265,6 +265,9 @@ SUBCATEGORY_MAP = {
|
||||
"discord-server": "",
|
||||
"posts" : "",
|
||||
},
|
||||
"cyberfile": {
|
||||
"shared": "Shares",
|
||||
},
|
||||
"Danbooru": {
|
||||
"favgroup": "Favorite Groups",
|
||||
"random" : "Random Posts",
|
||||
|
||||
@@ -104,4 +104,24 @@ __tests__ = (
|
||||
"#exception": exception.AuthorizationError,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://cyberfile.me/shared/tao35avvfc",
|
||||
"#class" : cyberfile.CyberfileSharedExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://cyberfile.me/shared/l7zoinbctg",
|
||||
"#class" : cyberfile.CyberfileSharedExtractor,
|
||||
"#results" : (
|
||||
"https://cyberfile.me/gb3s",
|
||||
"https://cyberfile.me/gb8m"
|
||||
),
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://cyberfile.me/shared/wqpd9n0si5",
|
||||
"#class" : cyberfile.CyberfileSharedExtractor,
|
||||
"#results" : "https://cyberfile.me/folder/9f611ebab76f363e4b818397c7828a73/CF_DSPRMTRS",
|
||||
},
|
||||
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user