diff options
| -rw-r--r-- | CHANGELOG.md | 73 | ||||
| -rw-r--r-- | PKG-INFO | 6 | ||||
| -rw-r--r-- | README.rst | 4 | ||||
| -rw-r--r-- | data/man/gallery-dl.1 | 2 | ||||
| -rw-r--r-- | data/man/gallery-dl.conf.5 | 2 | ||||
| -rw-r--r-- | gallery_dl.egg-info/PKG-INFO | 6 | ||||
| -rw-r--r-- | gallery_dl/extractor/civitai.py | 20 | ||||
| -rw-r--r-- | gallery_dl/extractor/kemono.py | 9 | ||||
| -rw-r--r-- | gallery_dl/extractor/newgrounds.py | 4 | ||||
| -rw-r--r-- | gallery_dl/output.py | 2 | ||||
| -rw-r--r-- | gallery_dl/path.py | 3 | ||||
| -rw-r--r-- | gallery_dl/version.py | 2 |
12 files changed, 49 insertions, 84 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bdbcc7..976f561 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,71 +1,12 @@ -## 1.30.3 - 2025-08-15 +## 1.30.4 - 2025-08-16 ### Extractors #### Additions -- [booth] add support ([#7920](https://github.com/mikf/gallery-dl/issues/7920)) -- [civitai] add `collection` & `user-collections` extractors ([#8005](https://github.com/mikf/gallery-dl/issues/8005)) -- [facebook] add `info` extractor ([#6582](https://github.com/mikf/gallery-dl/issues/6582)) -- [facebook] add `albums` extractor ([#7848](https://github.com/mikf/gallery-dl/issues/7848)) -- [imgdrive] add `image` extractor ([#7976](https://github.com/mikf/gallery-dl/issues/7976)) -- [imgtaxi] add `image` extractor ([#8019](https://github.com/mikf/gallery-dl/issues/8019)) -- [imgwallet] add `image` extractor ([#8021](https://github.com/mikf/gallery-dl/issues/8021)) -- [picstate] add `image` extractor ([#7946](https://github.com/mikf/gallery-dl/issues/7946)) -- [silverpic] add `image` extractor ([#8020](https://github.com/mikf/gallery-dl/issues/8020)) -- [tumblr] add `following` & `followers` extractors ([#8018](https://github.com/mikf/gallery-dl/issues/8018)) -- [xasiat] add support ([#4161](https://github.com/mikf/gallery-dl/issues/4161) [#5929](https://github.com/mikf/gallery-dl/issues/5929) [#7934](https://github.com/mikf/gallery-dl/issues/7934)) +- [civitai] add 'videos' extractor ([#6644](https://github.com/mikf/gallery-dl/issues/6644)) #### Fixes -- [blogger] fix video extraction ([#7892](https://github.com/mikf/gallery-dl/issues/7892)) -- [comick] handle chapters without chapter data ([#7972](https://github.com/mikf/gallery-dl/issues/7972)) -- [comick] handle volume-only chapters ([#8043](https://github.com/mikf/gallery-dl/issues/8043)) -- [comick] fix exception when filtering by translation group ([#8045](https://github.com/mikf/gallery-dl/issues/8045)) -- [deviantart:tiptap] fix `KeyError: 'attrs'` ([#7929](https://github.com/mikf/gallery-dl/issues/7929)) -- [everia] fix image extraction ([#7973](https://github.com/mikf/gallery-dl/issues/7973) [#7977](https://github.com/mikf/gallery-dl/issues/7977)) -- [facebook] fix `avatar` extraction for empty profiles ([#7962](https://github.com/mikf/gallery-dl/issues/7962)) -- [facebook] handle profiles without photos or `set_id` ([#7962](https://github.com/mikf/gallery-dl/issues/7962)) -- [fappic] rewrite thumbnail URLs ([#8013](https://github.com/mikf/gallery-dl/issues/8013)) -- [idolcomplex] update to new domain and interface ([#7559](https://github.com/mikf/gallery-dl/issues/7559) [#8009](https://github.com/mikf/gallery-dl/issues/8009)) -- [kemono][coomer] fix extraction ([#8028](https://github.com/mikf/gallery-dl/issues/8028) [#8031](https://github.com/mikf/gallery-dl/issues/8031)) -- [kemono] update `/creators` endpoint ([#8039](https://github.com/mikf/gallery-dl/issues/8039) [#8040](https://github.com/mikf/gallery-dl/issues/8040)) -- [kemono] don't set error status for posts without comments ([#7961](https://github.com/mikf/gallery-dl/issues/7961)) -- [pixiv] fix `IndexError` for unviewable works ([#7940](https://github.com/mikf/gallery-dl/issues/7940)) -- [pixiv] fix artworks downloads when using expired cookies ([#7987](https://github.com/mikf/gallery-dl/issues/7987)) -- [scrolller] fix NSFW subreddit pagination ([#7945](https://github.com/mikf/gallery-dl/issues/7945)) -- [twitter] fix potential `UnboundLocalError` when `videos` are disabled ([#7932](https://github.com/mikf/gallery-dl/issues/7932)) -- [vsco] disable TLS 1.2 cipher suites by default ([#7984](https://github.com/mikf/gallery-dl/issues/7984) [#7986](https://github.com/mikf/gallery-dl/issues/7986)) -- [wikimedia:wiki] fix `AttributeError: 'subcategories'` ([#7931](https://github.com/mikf/gallery-dl/issues/7931)) +- [civitai] fix posts not returning video files ([#8053](https://github.com/mikf/gallery-dl/issues/8053)) +- [civitai] fix '403 Forbidden' errors for searches +- [kemono] use 'Accept: text/css' for API requests ([#8047](https://github.com/mikf/gallery-dl/issues/8047) [#8057](https://github.com/mikf/gallery-dl/issues/8057)) #### Improvements -- [aibooru] support `general.aibooru.online` & `aibooru.download` -- [comick] add `lang` option ([#7938](https://github.com/mikf/gallery-dl/issues/7938)) -- [hentaifoundry] add `descriptions` option ([#7952](https://github.com/mikf/gallery-dl/issues/7952)) -- [facebook] raise `AuthRequired` for profiles requiring cookies ([#7962](https://github.com/mikf/gallery-dl/issues/7962)) -- [instagram] warn about lower quality image downloads ([#7921](https://github.com/mikf/gallery-dl/issues/7921)) -- [kemono] support `"endpoint": "posts+"` for full metadata ([#8028](https://github.com/mikf/gallery-dl/issues/8028)) -- [misskey] support `misskey.art` ([#7923](https://github.com/mikf/gallery-dl/issues/7923)) -- [motherless] detect `404`/`File not found` pages -- [pixiv] detect suspended/deleted accounts ([#7990](https://github.com/mikf/gallery-dl/issues/7990)) -- [pixiv] improve API error messages -- [pixiv] remove redundant cookies initialization code -- [scrolller] limit `title` length in default filenames -- [skeb] implement `include` option ([#6558](https://github.com/mikf/gallery-dl/issues/6558) [#7267](https://github.com/mikf/gallery-dl/issues/7267)) -- [vk] update default `archive_fmt` ([#8030](https://github.com/mikf/gallery-dl/issues/8030)) -#### Metadata -- [cien] provide `author[id]` metadata ([#6582](https://github.com/mikf/gallery-dl/issues/6582)) -- [dankefuerslesen] extract more metadata ([#7915](https://github.com/mikf/gallery-dl/issues/7915)) -- [dankefuerslesen:manga] fix metadata being overwritten -- [facebook] ensure numeric `user_id` values ([#7953](https://github.com/mikf/gallery-dl/issues/7953)) -- [facebook:set] fix/improve `user_id` extraction ([#7848](https://github.com/mikf/gallery-dl/issues/7848)) -- [fappic] fix `filename` values -#### Common -- [common] implement `"user-agent": "@BROWSER"` ([#7947](https://github.com/mikf/gallery-dl/issues/7947)) -- [common] improve error message for non-Netscape cookie files ([#8014](https://github.com/mikf/gallery-dl/issues/8014)) -### Downloaders -- [ytdl] don't overwrite existing `filename` data ([#7964](https://github.com/mikf/gallery-dl/issues/7964)) +- [newgrounds] add fallback for images with empty 'full_image_text' 'src' ### Miscellaneous -- [docs/configuration] improve `client-id` & `api-key` instructions -- [docs/formatting] update and improve -- [job] apply `extension-map` to `SimulationJob` results ([#7954](https://github.com/mikf/gallery-dl/issues/7954)) -- [job] improve URL `scheme` extraction performance -- [job] split collected DataJob results -- [path] implement `path-convert` option ([#493](https://github.com/mikf/gallery-dl/issues/493) [#6582](https://github.com/mikf/gallery-dl/issues/6582)) -- [scripts] improve and extend `init`, `generate_test_result`, and `pyprint` -- extend `-A`/`--abort` & `"skip": "abort"` functionality ([#7891](https://github.com/mikf/gallery-dl/issues/7891)) -- use more f-strings ([#7671](https://github.com/mikf/gallery-dl/issues/7671)) +- fix accessing methods through 'path-metadata' proxy ([#6582](https://github.com/mikf/gallery-dl/issues/6582)) @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: gallery_dl -Version: 1.30.3 +Version: 1.30.4 Summary: Command-line program to download image galleries and collections from several image hosting sites Home-page: https://github.com/mikf/gallery-dl Download-URL: https://github.com/mikf/gallery-dl/releases/latest @@ -139,9 +139,9 @@ Standalone Executable Prebuilt executable files with a Python interpreter and required Python packages included are available for -- `Windows <https://github.com/mikf/gallery-dl/releases/download/v1.30.3/gallery-dl.exe>`__ +- `Windows <https://github.com/mikf/gallery-dl/releases/download/v1.30.4/gallery-dl.exe>`__ (Requires `Microsoft Visual C++ Redistributable Package (x86) <https://aka.ms/vs/17/release/vc_redist.x86.exe>`__) -- `Linux <https://github.com/mikf/gallery-dl/releases/download/v1.30.3/gallery-dl.bin>`__ +- `Linux <https://github.com/mikf/gallery-dl/releases/download/v1.30.4/gallery-dl.bin>`__ Nightly Builds @@ -79,9 +79,9 @@ Standalone Executable Prebuilt executable files with a Python interpreter and required Python packages included are available for -- `Windows <https://github.com/mikf/gallery-dl/releases/download/v1.30.3/gallery-dl.exe>`__ +- `Windows <https://github.com/mikf/gallery-dl/releases/download/v1.30.4/gallery-dl.exe>`__ (Requires `Microsoft Visual C++ Redistributable Package (x86) <https://aka.ms/vs/17/release/vc_redist.x86.exe>`__) -- `Linux <https://github.com/mikf/gallery-dl/releases/download/v1.30.3/gallery-dl.bin>`__ +- `Linux <https://github.com/mikf/gallery-dl/releases/download/v1.30.4/gallery-dl.bin>`__ Nightly Builds diff --git a/data/man/gallery-dl.1 b/data/man/gallery-dl.1 index 39b88a4..4a0bc92 100644 --- a/data/man/gallery-dl.1 +++ b/data/man/gallery-dl.1 @@ -1,4 +1,4 @@ -.TH "GALLERY-DL" "1" "2025-08-15" "1.30.3" "gallery-dl Manual" +.TH "GALLERY-DL" "1" "2025-08-16" "1.30.4" "gallery-dl Manual" .\" disable hyphenation .nh diff --git a/data/man/gallery-dl.conf.5 b/data/man/gallery-dl.conf.5 index d33a147..b7ab71f 100644 --- a/data/man/gallery-dl.conf.5 +++ b/data/man/gallery-dl.conf.5 @@ -1,4 +1,4 @@ -.TH "GALLERY-DL.CONF" "5" "2025-08-15" "1.30.3" "gallery-dl Manual" +.TH "GALLERY-DL.CONF" "5" "2025-08-16" "1.30.4" "gallery-dl Manual" .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) diff --git a/gallery_dl.egg-info/PKG-INFO b/gallery_dl.egg-info/PKG-INFO index 6787cc9..284a767 100644 --- a/gallery_dl.egg-info/PKG-INFO +++ b/gallery_dl.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: gallery_dl -Version: 1.30.3 +Version: 1.30.4 Summary: Command-line program to download image galleries and collections from several image hosting sites Home-page: https://github.com/mikf/gallery-dl Download-URL: https://github.com/mikf/gallery-dl/releases/latest @@ -139,9 +139,9 @@ Standalone Executable Prebuilt executable files with a Python interpreter and required Python packages included are available for -- `Windows <https://github.com/mikf/gallery-dl/releases/download/v1.30.3/gallery-dl.exe>`__ +- `Windows <https://github.com/mikf/gallery-dl/releases/download/v1.30.4/gallery-dl.exe>`__ (Requires `Microsoft Visual C++ Redistributable Package (x86) <https://aka.ms/vs/17/release/vc_redist.x86.exe>`__) -- `Linux <https://github.com/mikf/gallery-dl/releases/download/v1.30.3/gallery-dl.bin>`__ +- `Linux <https://github.com/mikf/gallery-dl/releases/download/v1.30.4/gallery-dl.bin>`__ Nightly Builds diff --git a/gallery_dl/extractor/civitai.py b/gallery_dl/extractor/civitai.py index fe3b7ed..00400ba 100644 --- a/gallery_dl/extractor/civitai.py +++ b/gallery_dl/extractor/civitai.py @@ -459,6 +459,18 @@ class CivitaiImagesExtractor(CivitaiExtractor): def images(self): params = self._parse_query(self.groups[0]) + params["types"] = ("image",) + return self.api.images(params) + + +class CivitaiVideosExtractor(CivitaiExtractor): + subcategory = "videos" + pattern = BASE_PATTERN + r"/videos(?:/?\?([^#]+))?(?:$|#)" + example = "https://civitai.com/videos" + + def images(self): + params = self._parse_query(self.groups[0]) + params["types"] = ("video",) return self.api.images(params) @@ -521,6 +533,7 @@ class CivitaiUserImagesExtractor(CivitaiExtractor): def __init__(self, match): user, query = match.groups() self.params = self._parse_query(query) + self.params["types"] = ("image",) if self.params.get("section") == "reactions": self.subcategory = "reactions-images" self.images = self._image_reactions @@ -708,7 +721,6 @@ class CivitaiTrpcAPI(): "useIndex" : True, "period" : "AllTime", "sort" : "Newest", - "types" : ("image",), "withMeta" : False, # Metadata Only "fromPlatform" : False, # Made On-Site "browsingLevel": self.nsfw, @@ -899,10 +911,10 @@ class CivitaiSearchAPI(): def __init__(self, extractor): self.extractor = extractor - self.root = "https://search.civitai.com" + self.root = "https://search-new.civitai.com" self.headers = { - "Authorization": "Bearer ab8565e5ab8dc2d8f0d4256d204781cb63fe8b031" - "eb3779cbbed38a7b5308e5c", + "Authorization": "Bearer 8c46eb2508e21db1e9828a97968d91ab1ca1caa5f" + "70a00e88a2ba1e286603b61", "Content-Type": "application/json", "X-Meilisearch-Client": "Meilisearch instant-meilisearch (v0.13.5)" " ; Meilisearch JavaScript (v0.34.0)", diff --git a/gallery_dl/extractor/kemono.py b/gallery_dl/extractor/kemono.py index 46139bc..a5e1f6d 100644 --- a/gallery_dl/extractor/kemono.py +++ b/gallery_dl/extractor/kemono.py @@ -562,6 +562,7 @@ class KemonoAPI(): def __init__(self, extractor): self.extractor = extractor self.root = extractor.root + "/api/v1" + self.headers = {"Accept": "text/css"} def posts(self, offset=0, query=None, tags=None): endpoint = "/posts" @@ -574,8 +575,7 @@ class KemonoAPI(): def creators(self): endpoint = "/creators" - headers = {"Accept": "text/css"} - return self._call(endpoint, headers=headers) + return self._call(endpoint) def creator_posts(self, service, creator_id, offset=0, query=None, tags=None): @@ -644,6 +644,11 @@ class KemonoAPI(): return self._call(endpoint, params) def _call(self, endpoint, params=None, headers=None, fatal=True): + if headers is None: + headers = self.headers + else: + headers = {**self.headers, **headers} + return self.extractor.request_json( f"{self.root}{endpoint}", params=params, headers=headers, encoding="utf-8", fatal=fatal) diff --git a/gallery_dl/extractor/newgrounds.py b/gallery_dl/extractor/newgrounds.py index de96aa0..c42453f 100644 --- a/gallery_dl/extractor/newgrounds.py +++ b/gallery_dl/extractor/newgrounds.py @@ -224,6 +224,10 @@ class NewgroundsExtractor(Extractor): "width" : text.parse_int(full('width="', '"')), "height" : text.parse_int(full('height="', '"')), } + + if not data["url"]: + data["url"] = extr('<a href="', '"') + index = data["url"].rpartition("/")[2].partition("_")[0] data["index"] = text.parse_int(index) data["_index"] = index diff --git a/gallery_dl/output.py b/gallery_dl/output.py index 519a8f4..9e0888b 100644 --- a/gallery_dl/output.py +++ b/gallery_dl/output.py @@ -118,7 +118,7 @@ class PathfmtProxy(): def __getattribute__(self, name): pathfmt = object.__getattribute__(self, "job").pathfmt - return pathfmt.__dict__.get(name) if pathfmt else None + return getattr(pathfmt, name, None) if pathfmt else None def __str__(self): if pathfmt := object.__getattribute__(self, "job").pathfmt: diff --git a/gallery_dl/path.py b/gallery_dl/path.py index eecbd6c..6381622 100644 --- a/gallery_dl/path.py +++ b/gallery_dl/path.py @@ -134,6 +134,9 @@ class PathFormat(): basedir = self.clean_path(basedir) self.basedirectory = basedir + def __str__(self): + return self.realpath + def open(self, mode="wb"): """Open file and return a corresponding file object""" try: diff --git a/gallery_dl/version.py b/gallery_dl/version.py index a6474de..e6913b0 100644 --- a/gallery_dl/version.py +++ b/gallery_dl/version.py @@ -6,5 +6,5 @@ # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. -__version__ = "1.30.3" +__version__ = "1.30.4" __variant__ = None |
