Commit Graph

6876 Commits

Author SHA1 Message Date
Mike Fährmann
0a6e58b8ba [actions] add 'flag' action 2025-07-14 21:29:40 +02:00
Mike Fährmann
50cec2fb0c [util] add 'error()' function to global scope (#7814) 2025-07-14 20:05:20 +02:00
Mike Fährmann
d9a650d547 [options] add '--compat' command-line option 2025-07-14 18:52:39 +02:00
Mike Fährmann
bbe7faed21 [iwara] update
- add 'include' docs
- simplify code for different result types
- provide 'count' and 'num' metadata
- remove 'search_type' metadata
2025-07-14 18:47:14 +02:00
Mike Fährmann
fca1cd51f5 [gelbooru] improve error for 401 responses (#7674) 2025-07-14 16:54:21 +02:00
Mike Fährmann
df946faf40 [scripts/init] fix extra blank line without copyright
1686f32a0d (commitcomment-162021403)
2025-07-14 16:54:21 +02:00
NecRaul
089f815560 [motherless] Add group support (#7774 #7787)
* [motherless] Add group support
* [motherless] Update old unit tests
* [motherless] Add new unit tests
* [motherless] Update docs
2025-07-14 16:50:07 +02:00
Appu
75582e38e9 [VSCO] Fix JSON returned by VSCO (#7821)
* [VSCO] Fix JSON returned by VSCO

The JSON returned contains multiple `undefined` values that aren't valid
JSON, changing these values to `null` fixes the issue.

* [VSCO] Make JSON fix more targeted

Change only occurrences that are values of a key-value
2025-07-14 15:29:22 +02:00
NecRaul
a7ebb835ea [iwara] Add support (#2652 #5840 #7785)
* [iwara] Add initial support
* [iwara] Add search support
* [iwara] Code cleanup
* [iwara] Small fixes and additions
* [iwara] Add tag support
* [iwara] Add mime-type to metadata
* [iwara] Refactor patterns/matching using urllib
* [iwara] Add unit tests
* [iwara] Update docs
* [iwara] Fix linting on older Python versions
* [iwara] update 'IwaraAPI' interface class
    - define endpoints inside methods
    - implement and use _call() and _pagination()
    - cache auth tokens
* [iwara] split and rename 'profile' extractor
    TODO:
    - update test results
    - simplify code
* [iwara] simplify '_user_params()' usage
* [iwara] update 'video' extractor
    and move user data extraction into 'yield_video'
* [iwara] update 'image' extractor
    and move user info extraction into 'yield_image()'
* [iwara] update 'playlist' extractor
* [iwara] update 'search' extractor
* [iwara] update 'tag' extractor
* [iwara] simplify 'yield_image' usage
    perform API calls to get full 'files' list inside the function
* [iwara] add video "image" test
* [iwara] provide 'date' metadata
* [iwara] simplify 'source()'
    remove urllib.parse usage
* [iwara] small optimizations
    * get("key", {}) -> get("key") or {}
    * split("…", 1) -> partition("…")
    * use f-strings for all patterns
* [iwara] add missing 'keyarg=1' to profile() memcache decorator
* [tests/iwara] update results
* [iwara] extract more 'user' metadata
* [iwara] update default format strings
    include 'date' in filenames to order them chronologically
* [iwara] restructure image/video handling
    - use less generators
    - make processing individual media items non-fatal
* [iwara] fix login and token handling
* [iwara] add 'favorite' extractor
* [iwara] add 'following' and 'followers' extractors

---------

Co-authored-by: Mike Fährmann <mike_faehrmann@web.de>
2025-07-13 21:30:25 +02:00
Mike Fährmann
1686f32a0d [scripts/init] split into separate scripts
- init.py:
    - generate initial extractor module code and test result file
    - insert new entries into modules list and site names
- generate_test_result.py:
    - generate test result for a given URL
    - insert it into the test result file generated by init.py
      (or an already existing one)
2025-07-12 21:14:29 +02:00
Mike Fährmann
fc968ebf20 [artstation] support downloading '.mview' files (#7812) 2025-07-12 20:53:16 +02:00
Mike Fährmann
518c771e21 [instagram] provide 'post_url' for stories and highlights (#7810)
fixes regression introduced in 25c63deebf
2025-07-12 17:30:06 +02:00
Mike Fährmann
98895b732f [reddit] improve archive IDs of fallback files (#7760)
prevent 'DASH...' and 'HLS...' entries
2025-07-11 22:59:44 +02:00
Mike Fährmann
755434600e [signals] implement stopping the current download with Ctrl+C (#1861)
{
    "signals-actions": {
        "SIGINT": "download:fail"
    }
}
2025-07-11 22:29:08 +02:00
Mike Fährmann
d8a370da0b [signals] update FLAGS handling 2025-07-11 22:28:26 +02:00
Mike Fährmann
2d3b6155eb [erome] restructure extractor hierarchy (#7804) 2025-07-11 22:28:26 +02:00
Mike Fährmann
2ccb9acf1a [pinterest] support 'pin.it' board redirects (#7805) 2025-07-11 22:28:26 +02:00
Mike Fährmann
8e40ea2fe2 [pinterest] match board URLs with query strings (#7805) 2025-07-11 22:28:26 +02:00
Mike Fährmann
e68dc960c2 [pixiv] add workaround for 'novel-*' includes (#7746) 2025-07-11 22:27:45 +02:00
Mike Fährmann
267661680c add 'pixiv-novel' compat categories (#7746) 2025-07-11 11:00:19 +02:00
Mike Fährmann
096bc6f784 replace more '.format(…)' calls with f-strings (#7671) 2025-07-10 21:17:17 +02:00
Mike Fährmann
a619638178 [mangadex] allow 'ratings' to be a (comma-separated) string (#7799) 2025-07-10 16:46:18 +02:00
Mike Fährmann
25c63deebf [instagram] provide better 'video_dash_manifest' URLs (#7631) 2025-07-10 15:34:50 +02:00
Mike Fährmann
0210ffcdd8 initial 'signals-actions' implementation (#6582)
https://github.com/mikf/gallery-dl/issues/6582#issuecomment-2973285775

To stop gracefully after the current file finishes processing when
Ctrl+C was pressed, or after the current post finishes processing when
SIGUSR1 was received:

{
    "signals-actions": {
        "SIGINT" : "file",
        "SIGUSR1": "post"
    }
}
2025-07-09 23:02:23 +02:00
Mike Fährmann
4dfa8a75c0 update InputFileError constructor calls 2025-07-09 23:02:04 +02:00
Mike Fährmann
d8ef1d693f rename 'StopExtraction' to 'AbortExtraction'
for cases where StopExtraction was used to report errors
2025-07-09 21:07:28 +02:00
Mike Fährmann
f17ed0569a [common] raise ChallengeError for CF & DDG challenges (#1945)
this sets bit 0x08 in the exit status bitmask
2025-07-09 18:58:21 +02:00
Mike Fährmann
0fba5c98cb [exception] update exception hierarchy
- add InputError and ControlException base classes
- add ChallengeError, LoginRequired, AbortExtraction
- change code of NotFoundError from 8 to 4
  and NoExtractorError from 64 to 32
2025-07-09 18:56:50 +02:00
Mike Fährmann
b77e18317b [skeb] fix "KeyError - 'frame_rate'" (#7798) 2025-07-09 12:40:37 +02:00
Mike Fährmann
4e9cb428d6 [pp] implement shortcuts for 'mode' and 'event' options
This makes it possible to specify 'mode' and/or 'event' options of a
postprocessor in its 'name' as
"NAME/MODE@EVENT" or "NAME/MODE" or "NAME@EVENT"

For example
"postprocessors": "metadata/jsonl@file,skip"

is equivalent to
"postprocessors": {
    "name" : "metadata",
    "mode" : "jsonl",
    "event": ["file", "skip"]
}
2025-07-09 12:40:37 +02:00
Mike Fährmann
cfafbc0675 [twitter] extract 'sensitive_flags' metadata (#2523)
a list of 'sensitive_media_warning' flags per file
and a combination of all file flags per Tweet
2025-07-09 12:39:23 +02:00
Mike Fährmann
b6bd675a9e [scripts/pre-commit] disable user site-packages when running flake8 2025-07-07 15:07:56 +02:00
Mike Fährmann
321141ba56 merge #7789: [readcomiconline] fix extraction (#7606) 2025-07-07 12:15:16 +02:00
Mike Fährmann
ad84e72fda [civitai] implement retrieving 'post' metadata (#7548) 2025-07-07 11:48:21 +02:00
Mike Fährmann
d25b1f22f3 [civitai] always provide 'file[…]' metadata (#7548)
wrap most top-level values of (single) image results into a 'file' object
2025-07-07 11:45:49 +02:00
Mike Fährmann
8452a018ac [civitai] fix '403 Forbidden' errors for searches
update Authorization header
2025-07-07 10:20:19 +02:00
Mike Fährmann
1aa8fe7c10 [e621] support 'e621.cc/posts' URLs (#6809)
https://github.com/mikf/gallery-dl/issues/6809#issuecomment-3043180010
2025-07-07 08:44:31 +02:00
enduser420
8c1628ea4e [readcomiconline] fix extraction 2025-07-07 02:32:23 +05:30
Mike Fährmann
0dfe7e25a5 [util] slightly improve 'filter' performance 2025-07-06 19:46:34 +02:00
Mike Fährmann
05b0a25120 [common] update 'browser' user-agents and headers
support Firefox 140 ESR and Chrome/Chromium 138
2025-07-06 19:41:37 +02:00
Mike Fährmann
ed64b484ff [ytdl] use '__gdl_initialize' key to trigger init code 2025-07-06 18:29:00 +02:00
Mike Fährmann
13ef48f04a [dl:ytdl] implement dynamic download 'rate' limits (#7638) 2025-07-05 23:07:42 +02:00
Mike Fährmann
1bbacba4ed [common] introduce 'status' attribute to Extractors
allows reporting error codes for exceptions that are not handled
by the Job.run() try-except block

- fixes Job.status being 0 in certain situations even when errors occurred
- fixes some URLs not getting written to -e/--error-file (#7758)
2025-07-05 21:33:01 +02:00
Mike Fährmann
d349c248c0 merge #7777: [warosu] HTML attribute fix 2025-07-04 21:47:32 +02:00
Mike Fährmann
1f1a3edd3e [patreon] fix campaign_id extraction from Next.js 13 creator pages (#7773) 2025-07-04 21:41:08 +02:00
Mike Fährmann
22ec687d54 [aryion] fix 'favorite' extractor (#7775) 2025-07-04 20:23:27 +02:00
Mike Fährmann
82891b4d0c [pixiv] move 'novel' extractors to a 'pixiv-novel' category (#7746)
TODO:
- restore full 'include' functionality
- allow remapping category:subcategory pairs
2025-07-04 20:13:19 +02:00
NecRaul
9dde853fc5 [warosu] HTML attribute fix 2025-07-04 03:17:20 +04:00
Mike Fährmann
e7922ababd [naver] change categories (#7746)
- 'naver'        -> 'naver-blog'
- 'chzzk'        -> 'naver-chzzk'
- 'naverwebtoon' -> 'naver-webtoon'
2025-07-02 23:20:40 +02:00
Mike Fährmann
a4fb9e6d33 [furaffinity] fix 'submissions' results for new layout (#7759) 2025-06-30 19:05:19 +02:00