[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">
|
<tr id="cyberfile" title="cyberfile">
|
||||||
<td>CyberFile</td>
|
<td>CyberFile</td>
|
||||||
<td>https://cyberfile.me/</td>
|
<td>https://cyberfile.me/</td>
|
||||||
<td>Files, Folders</td>
|
<td>Files, Folders, Shares</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr id="dandadan" title="dandadan">
|
<tr id="dandadan" title="dandadan">
|
||||||
|
|||||||
@@ -86,6 +86,37 @@ class CyberfileFolderExtractor(CyberfileExtractor):
|
|||||||
resp = self.request_api("/account/ajax/load_files", data)
|
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):
|
class CyberfileFileExtractor(CyberfileExtractor):
|
||||||
subcategory = "file"
|
subcategory = "file"
|
||||||
directory_fmt = ("{category}", "{uploader}", "{folder}")
|
directory_fmt = ("{category}", "{uploader}", "{folder}")
|
||||||
|
|||||||
@@ -265,6 +265,9 @@ SUBCATEGORY_MAP = {
|
|||||||
"discord-server": "",
|
"discord-server": "",
|
||||||
"posts" : "",
|
"posts" : "",
|
||||||
},
|
},
|
||||||
|
"cyberfile": {
|
||||||
|
"shared": "Shares",
|
||||||
|
},
|
||||||
"Danbooru": {
|
"Danbooru": {
|
||||||
"favgroup": "Favorite Groups",
|
"favgroup": "Favorite Groups",
|
||||||
"random" : "Random Posts",
|
"random" : "Random Posts",
|
||||||
|
|||||||
@@ -104,4 +104,24 @@ __tests__ = (
|
|||||||
"#exception": exception.AuthorizationError,
|
"#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