1676 Commits

Author SHA1 Message Date
AwkwardPeak7
d773d2692b
Webtoons.com: add rate limit & handle chapter count reset on new season (#9593)
* Webtoons: ratelimit chapters fetch api

closes https://github.com/keiyoushi/extensions-source/issues/9570

* handle season number reset

closes https://github.com/keiyoushi/extensions-source/issues/9495

* edge case bug

* bump
2025-07-25 05:47:29 +01:00
ilona
b860b15286
Feat/pixiv deeplink (#9457)
* Pixiv: added deeplink and ID search (#9452)

Direct ID search is triggered by prefixing the item's ID with with `aid:` for artworks/illustrations, `sid:` for series, and `user:` for users. The former two are meant only for use in deeplinks, while the latter may also be useful for actual users and therefore has a more exposable name. (All of these prefixes are subject to change)

* Pixiv: bandaid fix for API not returning needed values (#9452)

Apparently depending on the circumstances, the API doesn't return the user ID to which a series belongs. This user ID is instead placed in the outer Illustration object. This very basic (and subject to a larger refactoring) fix ensures that the user ID is always present when needed to construct the link (it isn't required for anything else in the API)

* Pixiv: ensured that only exact matches to the deeplink patterns are handled specially (#9452)

The exact pattern is: `<type>:<ID consisting of digits>`. By ensuring that only digits and nothing else afterwards are allowed by the pattern matching (otherwise falling back to regular search), we further decrease the likelihood of users accidentally triggering this functionality (it sadly can't be entirely avoided, since deeplinks need to share an interface with the regular search queries)

* Pixiv: changed Deeplink system to use URL

Instead of complex parsing logic in the (deliberately lightweight and kotlin-wise handicapped) Deeplink Activity, the captured URL can just be passed to the search directly and handled there. The ability for the search to understand full Pixiv URLs is useful (and half-expected) either way, and it will not interfere with regular search function.

* Pixiv: fixed IndexOOB when query is empty/not a valid URI

* Pixiv: Applied suggestion to use OkHttp Urls
2025-07-25 05:47:28 +01:00
Nam Anh
b7b69b73fa
MayoTune: Change to multi language (#9431) 2025-07-25 05:47:28 +01:00
scb261
63ff937ae4
Holonometria: update URL and other fixes (#9400)
* Holonometria: update URL and other fixes

* Review suggestions
2025-07-25 05:47:28 +01:00
AwkwardPeak7
e84d87a883
Hitomi: retry on stream reset exception with internal error from server (#9414)
* retry with delay on internal_error from server

* bump

* else
2025-07-25 05:47:28 +01:00
AwkwardPeak7
dd47332ab9
Webtoons.com: fixes (#9349)
* better compatibility with old urls

* use index for chapter number as fallback

* better chapter number logic

* escape chapter names

* fix deep link for canvas

* Update build.gradle

* bgm

* deeplink

* i + 1
2025-07-25 05:47:28 +01:00
AwkwardPeak7
621dc6c121
Remove kdt & add Armageddon (#9346)
remove kdt & add Armageddon
2025-07-25 05:47:28 +01:00
Troy Liu
6ee4ab2521
lanraragi: FIX: 404 error when baseurl contains additional path (#9340) 2025-07-25 05:47:28 +01:00
AwkwardPeak7
4d61698687
Webtoons.com: use api to get chapters (#9332)
* Webtoons.com: use api to get chapters

* completed status

* rename
2025-07-25 05:47:27 +01:00
FlaminSarge
8a9231c5af
Mangadex: Handle missing isUnavailable chapter field (#9301)
* Mangadex: Handle missing isUnavailable chapter field

* Update build.gradle

* Switch from nullable bool to bool for isUnavailable, with default false

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>

---------

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>
2025-07-25 05:47:27 +01:00
peakedshout
6af9f2d853
SakuraManhwa: Added support for SakuraManhwa source (#9195)
New: Added support for SakuraManhwa source
2025-07-25 05:47:27 +01:00
heddxh
8e7146ec24
Fix Comic Growl (#9009)
* fetch popular mangas

* fetch pages

* descramble image

* clean code

* fix date time parse

* get all chapters

* add dto for page response

* move dto and descrambler into separate files

* happily use parseAs

* add dummy url for missing chapters

* set different icons for lock and pay chapters

* search and latest

* get all authors

* clean code

* remove comment and unneeded json field

* fix incorrectly http url conversion
2025-07-25 05:47:27 +01:00
AwkwardPeak7
5fb99e11eb
webtoons.com (ID), preserve old source id 2025-07-25 05:47:27 +01:00
AwkwardPeak7
a4347e9da1
Webtoons.com: refactor and fix for site changes (#9245)
* Webtoons Translate: move out of multisrc & rework

it basically override everything from the main webtoons class, so split it off

* DongmanManhua: move to individual

* Webtoons: fix and make individual

* remove old multisrc

* use meta og:image

* deeplink fix

* fix deeplink crash & old details thumbnails
2025-07-25 05:47:24 +01:00
kanoou
dd595cca72
EternalMangas: Move to es and change theme (#9243)
move to ES
2025-07-25 05:47:24 +01:00
FlaminSarge
66f2a0ed6e
MangaDex: Add setting to include unavailable chapters in chapter list (#9208)
* MangaDex: Add setting to include unavailable chapters in chapter list

* Remove redundant isUnavailable check
2025-07-25 05:47:24 +01:00
DokterKaj
fcc13a63ed
DeviantArt: Preserve token in multi-image posts (#9151)
* DeviantArt: Preserve token in multi-image posts

* DeviantArt: Use keiyoushi.utils.tryParse

* DeviantArt: Make when block nicer

* DeviantArt: No need for two variables

* DeviantArt: Only find firstImageUrl if needed

* DeviantArt: Use if expression for less indenting
2025-07-25 05:47:24 +01:00
Radon Rosborough
ee40d4e9e4
Migrate from fakeimg.pl to fakeimg.ryd.tools (#9020) 2025-07-25 05:47:23 +01:00
laonhao139
bb92f316fc
Add Xiutaku source (#8949)
* Add Xiutaku source

* Update following comments

* Update timezone

* Update following suggestions

* Update locator

* Update following suggestions
2025-07-25 05:47:22 +01:00
Tejas Sharma
36295f9b69
Comick: option to de-duplicate chapters based on "score" (#8923)
* Adds the ability to automatically filter chapters in comick based on their "score"

* wording update, version bump

* use chapter_ prefix when referring to score filtering

* Update src/all/comickfun/assets/i18n/messages_en.properties

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>

* change syntax for filtering based on PR feedback

* figured out how to make an extension

* updated, thanks!

---------

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>
2025-07-25 05:47:22 +01:00
happywillow0
4fbe372043
Myreadingmanga Fix Chapter Titles (#8838)
* Bump Extension Version Code

* Bump User Agent Version

* Remove Chapter Name Logic

Deprecated: Source no longer provides table of contents with chapter names.

* Update Chapter Name

Chapter list based on page list number and not true chapter number.
2025-05-20 21:27:51 +01:00
marioplus
c44aba3f1a
feat(misskon): split chapters into individual pages (#8800)
* feat(misskon): split chapters into individual pages

- Migrate from single-chapter to per-page architecture
- Fix long loading time issues

* fix(misskon): Remove chapter_number configuration
- Drop deprecated chapter_number field setup
2025-05-20 21:27:51 +01:00
marioplus
d3fa36c82d
feat(buondua): split chapters into individual pages (#8803)
* feat(buondua): split chapters into individual pages

- Migrate from single-chapter to per-page architecture
- Fix long loading time issues

* fix(buondua): Remove chapter_number configuration

- Drop deprecated chapter_number field setup
2025-05-20 21:27:51 +01:00
bapeey
3c91f2a834
EternalMangas: Fix browse (#8780)
* fix

* oops

* use destructor
2025-05-20 21:27:51 +01:00
Vetle Ledaal
adbfe86669
Manhwa18.cc: encode search, add headers, remove redundant override (#8767) 2025-05-20 21:27:49 +01:00
Vetle Ledaal
d3d573fe77
Kiutaku: encode search (#8729) 2025-05-20 21:27:48 +01:00
Vetle Ledaal
aad47bab3c
Komga: encode search, add headers everywhere (#8702) 2025-05-20 21:27:48 +01:00
bapeey
302ac4b0cb
EternalMangas: Fetch regex from external repo (#8674)
* get regex from repo

* bump
2025-05-20 21:27:48 +01:00
bapeey
312747fb1a
EternalMangas: Fix no results and NPE (#8647)
fix
2025-05-20 21:27:45 +01:00
Tim Schneeberger
0da807ff70
feat: add GlobalComix (#8637)
* feat: add GlobalComix

Closes #3726

* fix: parse comic URLs correctly

* style: cleanup

* refactor: rename PageListDataDto to PageDataDto

* fix: sort search results by relevancy

* fix: improve premium chapter detection

* refactor: add chapter number to SChapter

* refactor: remove unused fields and allow some fields to be nullable

* refactor: minor cleanup

* Update src/all/globalcomix/src/eu/kanade/tachiyomi/extension/all/globalcomix/GlobalComix.kt

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>

* Update src/all/globalcomix/src/eu/kanade/tachiyomi/extension/all/globalcomix/GlobalComix.kt

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>

* Update src/all/globalcomix/src/eu/kanade/tachiyomi/extension/all/globalcomix/GlobalComix.kt

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>

* Update src/all/globalcomix/src/eu/kanade/tachiyomi/extension/all/globalcomix/dto/ChapterDto.kt

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>

* refactor: remove CacheControl

* refactor: move constants of out object

* refactor: add new imports & remove 204 check

* refactor: remove chapter list 204 check

---------

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>
2025-05-20 21:27:45 +01:00
Stratzcha
bea0c8897d
Webtoons: Add max quality pref (#8532) 2025-05-20 21:26:58 +01:00
AwkwardPeak7
1c2876f7a5
Kdt Scans: update url (#8543)
update url
2025-05-20 21:26:58 +01:00
marioplus
f7e3684d45
feat(YellowNote): add source 小黄书 (#8485)
* feat(YellowNote): add source 小黄书

* fix(YellowNote): reverse chapter sorting order

* feat(YellowNote): improve domain configuration and URL handling

- Implement dual domain configuration (default + override)
  - Default settings refresh when code updates occur
  - Override settings maintain custom configurations
- Enhance URL processing using HttpUrl
  - Fix encoding issues in query URLs
  - Improve URL parsing reliability

* feat(YellowNote): adapter /amateurs.html
2025-05-20 21:26:57 +01:00
Secozzi
b709f76b96
Comick: add tag exclude to extension settings (#8504)
* feat(all/comick): Add tag exclude to extension settings

* dont add empty tags
2025-05-20 21:26:57 +01:00
AwkwardPeak7
219ceaac1e
MangaPark: fixes & improvements (#8483)
* cover absolute url & uncensored cover for hentai

* utils

* nsfw pref and thumbnail baseurl

* lint

* try upload status when original status is unknown

* include extra info in description

* off by default

* bump

* clean title

* nullable

* status set using nullability

* review changes

* revert

* actually set to off
2025-05-20 21:26:57 +01:00
AwkwardPeak7
877ebd33c7
fix build 2025-05-20 21:26:57 +01:00
marioplus
ae6d455bb8
fix(pornpics): properly configure language settings (#8466)
* fix(pornpics): properly configure language settings

- Implement language configuration via SourceFactory

* fix(pornpics): properly bind ID and language settings

- Associate language codes with correct source IDs
- Use 'all' ID for English (en) language

* fix: remove all lang
2025-05-20 21:26:57 +01:00
DarkOps3
b425b94051
komga: sort genres and tags in alphabetical order (#8427) 2025-05-20 21:26:53 +01:00
DokterKaj
eb9b9b9aee
DeviantArt: Order chapter list chronologically instead of by source (#8407)
Order chapter list chronologically instead of by source
2025-05-20 21:26:53 +01:00
AwkwardPeak7
ac48b271c1
hitomi: handle gifs (#8398) 2025-05-20 21:26:53 +01:00
marioplus
334dd69fab
Add Source PornPics (#8364)
* feat(pornpics): add source pornpics

* feat(pornpics): add i18n support

* fix(pornpics): Default category read error

* fix(pornpics): Content-Type is not set correctly

* fix(pornpics): properly handle searches

* fix(pornpics): properly handle searches

* fix(pornpics): correct next page detection logic.

Add +1 to requested image count per page,Compare actual received count with pageSize to determine next page.

* fix(pornpics): set base language to en

* fix(pornpics): safely handle gallery info parsing

* feat(pornpics): add filter

* chore(pornpics): remove unused dependency

* fix(pornpics): correct category urlPart values.

* refactor(pornpics): simplify category browsing logic

- Remove category unselected
- Treat all non-search requests as category browsing

* refactor(pornpics): make a singelton object and remove comanion object

* refactor(pornpics): put in class to reuse preference

* refactor(pornpics): optimize chapter loading with fetchChapterList

- Replace chapterFromElement with fetchChapterList
- Reduce unnecessary network requests

* fix(pornpics): correct CategoryType initialization

* refactor(pornpics): improve method naming

- Rename `addQueryPageParameter` to `addQueryParameterPage` for clarity

* refactor(pornpics): improve API readability with boolean parameters

- Change `buildMangasPageRequest(page: Int, period: Int)` to:
  `buildMangasPageRequest(page: Int, popular: Boolean)`
- Replace numeric period flag with semantic boolean
- Simplify request building logic

* refactor(pornpics): extract category search logic to dedicated method

- Extract `useSearch` as standalone method
- Add enhanced validation logic for category search

* refactor(pornpics): replace manual parsing with HttpUrl

- Replace custom URL parsing logic with HttpUrl utility

* fix(pornpics): remove invalid category options

* refactor(pornpics): improve JSON error handling

- Throw specific exception type when JSON parsing fails
2025-05-20 21:26:53 +01:00
AwkwardPeak7
47d14b6f29
KdtScans: update url, filter LNs from search, fix date (#8370)
KdtScans: update url & filter LNs fom search
2025-05-20 21:26:53 +01:00
dngonz
85c4793096
Bato.to: Fix manga not recognized from different url entries (#8352)
fix url
2025-05-20 21:26:53 +01:00
bapeey
dd95e39ebc
MangaFire: Fix image coudn't be loaded (#8332)
add referer
2025-05-20 21:26:53 +01:00
Chopper
383d9c5535
MangaHosted: Update domain and api url (#8303)
Update api url
2025-05-20 21:26:52 +01:00
marioplus
fad76bc4b2
feat(BoaBua): add source BaoBua (#8253)
* feat(buondua): add source BaoBua

Refs: #1104

* fix(buondua/search): resolve pagination param forwarding
chore(buondua/search): clean up URL format and flag

* Fix:
  - Add missing pagination parameter propagation
* Maintenance:
  - Remove redundant trailing "/" in pagination URLs
  - Set `supportsLatest` to false (default behavior)

Closes: #1104

* chore(buondua): remove redundant trim() calls

Closes: #1104

* refactor(BaoBua): standardize chapter names and URL handling

- Replace date-based chapter names with static "Gallery" value
- Remove baseUrl from category URLs (construct dynamically when used)

Closes: #1104

* chore(BaoBua): remove unused

Closes: #1104

* chore(BaoBua): revert settings.gradle.kts

Closes: #1104

* chore(BaoBua): remove unused import

Closes: #1104

* chore(BaoBua): remove needless blank line

Closes: #1104

* fix(BaoBua): add unselected Category

Closes: #1104

* refactor(BaoBua): optimize manga details parsing

- Set update_strategy = UpdateStrategy.ONLY_FETCH_ONCE
- Remove unused randomua dependency

Closes: #1104
2025-05-20 21:26:37 +01:00
marioplus
40a9d2ec6a
feat(misskon): add source misskon. (#8225)
* feat(misskon): add source misskon.

refs: #1855

* feat(misskon): Improve network handling and code structure

• Network enhancements:
  - Add headers parameter for `GET` methods
  - Implement standardized query with `HttpUrl`
  - Replace `attr()` with `asbUrl()` for safe path composition

• Structural improvements:
  - Move date regex to companion object
  - Extract SimpleDateFormat as global constant
  - Refactor Filter logic into standalone class

• Robustness upgrades:
  - Remove unsafe non-null assertion(!!) on date_upload
  - Adopt SManga.create().apply  { } chaining pattern

refs: #1855

* feat(misskon): improve code structure and null safety

- Replace `attr()` with `absUrl()` for more reliable URL extraction
- Remove non-null assertion (`!!`) from `thumbnail_url` as it's not critical
- Fix usage of `select()` and `selectFirst()` to properly handle nullable cases

refs: #1855

* chore(MissKon): remove needless blank line

- Fix lint violation (no-consecutive-blank-lines)

Closes: #1855

* refactor(MissKon): optimize URL handling and reuse utils

* Remove baseUrl from category URLs (build dynamically when used)
* Reuse existing utils for:
  - Date parsing
  - Filter queries
* Standardize pagination URL construction

Closes: #1855

* fix(MissKon): Correct URL template, set default gallery name, and unify selectors

Closes: #1855

* refactor(MissKon): fix URL construction and client configuration

- Fix string interpolation in search URL ("$it.url"  → "${it.url}")
- Remove MOBILE user agent restriction
- Remove unused dependency
- Add ONLY_FETCH_ONCE update strategy
- Clean up selector syntax
2025-05-20 21:26:37 +01:00
Vetle Ledaal
98bd2586fb
Koharu: do not use network on main thread (#8255) 2025-05-20 21:26:37 +01:00
marioplus
2723d5d0ca
fix(buondua): enhance Cloudflare challenge bypass (#8249)
* fix(buondua): enhance Cloudflare challenge bypass

- Add rate limiting (max 10 requests/second)
- Implement random User-Agent rotation
- Inject Referer header
- Version bump 2 → 3

refs: #8079

* chore(buondua): replace interceptor with headersBuilder for request headers

- Replace the interceptor with  headersBuilder()
- Move the SimpleDateFormat to the companion object or class variable

Refs: #8079
2025-05-20 21:26:37 +01:00
AwkwardPeak7
77bd833e6a
Hitomi: change cdn domain & fix image url logic (#8204)
* Hitomi: change cdn domain & image url logic

* remove unused

* avifbigtn
2025-03-27 00:02:40 +00:00