* feat: Create SlimeRead base
* feat: Implement popular manga page
* feat: Implement latest manga page
* feat: Implement search manga page
* feat: Implement manga details page
* feat: Implement chapter list
* feat: Parse page list
* fix: Revert chapter list
* chore: Apply rate-limit in the source API
* chore: Add Origin header to API requests
* chore: Add source icon
* chore: Add isNsfw flag
* Added next page to all
Copied implementation from `Chapters` to all other extensions. New pages load when scrolling now
* Update DynastyDoujins.kt
Circumvent `IndexOutOfBoundsException` when section has no chapters
* Update build.gradle
* Moved functionality to base class
* Update DynastyDoujins.kt
Lazy implementation to load all chapters for `Dynasty Doujins`
* Update build.gradle
* Update src/en/dynasty/src/eu/kanade/tachiyomi/extension/en/dynasty/DynastyDoujins.kt
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
* Fix exceeding max retry behavior
* Remove retry logic
* Update DynastyDoujins.kt
---------
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
* create super mega extension
* change SUPER MEGA ext name
* fix build errors in SUPER MEGA extension
* reverse chapter order super mega ext
* revert settings.gradle.kts file
---------
Co-authored-by: az4521 <az4521@users.noreply.github.com>
* refactor(reportErrorToUser): enhance reportErrorToUser
* refactor(DataExtractor): add unexpectedErrorCatchingLazy
Makes it easier to quickly find and fix unexpected errors
* refactor(BookDetail): attempt at making BookDetail more extensible
Also fixes a rare bug that would throw a NoSuchElementException when the status or origin fields weren't found in the details table.
* refactor(mangaDetailsParse): refactor mangaDetailsParse to follow BookDetail's refactor
* chore(reportErrorToUser): Review reportErrorToUser messages
* refactor(Search): completely separate simple and smart search
create SmartBookSearchHandler as an attempt to speed up search by wasting less resources on unnecessary multiple normalization and reinitialization of resources via ThreadLocal
* chore(build): bumped extVersionCode to 3
* refactor(activities): Add activities to handle /book and /read URLs
Create a MangasPage with only a single Manga present (unfortunately needs to fetch manga details as title can't be inferred just by bookid)
Group activities in "activities" package for clarity
* fix(KDoc): fix Cannot resolve symbol
* chore: Update README and CHANGELOG
* chore: Add a bit of documentation to SmartBookSearchHandler
* feat: Handle /book and /read urls as search query
* chore(CHANGELOG): entries incorrectly listed as PUBLISHING_FINISHED now are correctly listed as COMPLETED
* chore(README): expanded README
* fix: Fix chapter list & prevent future trolling
* refactor: Minor refactoration for fun
* chore: Bump version
* fix: Prevent NPE in manga details
Didn't happen to me in my tests, but better be safe than sorry.
Thumbnails aren't really worth a (rare but possible?) NPE anyway
* fix: Add rate limit to prevent HTTP 429
* fix: Fix chapter list
* feat: Update search API
* refactor: Use URLs from constants
* refactor: Minor refactoration
* feat: Show more info in manga details page
* chore: Bump version
* fix: Apply suggestion - Use URL Builder in search
Thx alessandrojean!
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
---------
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* feat(src/en): Create Kiutaku base
* feat: Implement popular entries page
* feat: Implement latest updates page
* feat: Implement search
* feat: Implement entry details page
* feat: Implement chapter list page
* feat: Parse page list
* chore: Add source (fav)icon
The source doesn't seems to have a logo, so I'm considering the favicon used by
the site as their icon.
* Update build.gradle
remove jwt lib
* Update Picacomic.kt
Remove the effect of jwt library to fix the conflict from GSON
* Update Picacomic.kt
remove redundant code
* Update build.gradle
bump extension version
* Make it more prescriptive
* Improved compatibility with older versions
* 1.switch to android.util.Base64 API to improved compatibility with older versions
2.Convert the literal constant named leeway from a method parameter to a private member constant, this will improve performance a bit...
* build(gradle)!: Migrate ProjectSuki build.gradle to kotlin dsl
* feat: Add PathPattern
* feat: Add DataExtractor
* feat: Add ProjectSukiAPI
* feat: Add ProjectSukiFilters
* refactor!: migrate to new API and cleanup extension
Completely replace NormalizedURL with HttpUrl, remove PS.kt, PSBook.kt and PSFilters.kt
* chore(naming): rename pattern properties to be consistent
* refactor(preferences): Centralize and cleanup preferences
* chore(preferences): remove Android Preference import
* refactor(everything): Fix most of everything
Now apk builds, and correctly fetches books, chapters and images, including thumbnails.
* revert(gradle): revert to build.gradle.kts to be consistent with other extensions as context receivers are still unusable
* feat(url-activity): enhance
Needs to be tested, got distracted
* feat(preferences): Enhance preferences by providing more robust constructs
* feat(filters): Update and enhance filters
* feat(site-api): add search request data request and response parse
* refactor: replace require and error with reportErrorToUser in PathPattern
* refactor(core): Enhance everything
Now extension will show browse results on popular, main page on latest, will default to actually-useful search (with naive option on older devices) while still allowing old search.
Enhance user interaction by capturing or preventing almost all errors and alerting the user on what went wrong and what to do.
* chore: Suppress warnings
* docs: Document everything
Add documentation and revise pretty much everything.
* docs: Add CHANGELOG.md
* docs: Add README.md
* refactor(search-mode): Combine Naive/Full Site/Strict search options into single filter
* revert(manifest): Remove android:icon
it's set in the core AndroidManifest.xml
* chore(lang): switch extension language to "all"
explicitly set id: 8965918600406781666
* fix(preferences): fix blacklisted languages id
was the same as whitelisted
* fix: Fix bugs and more
Change Naive to Simple, provide more understandable description, make it possible to use Simple mode on any Android version if one wishes to do so.
Provide better regex for Simple search.
Test chapter filtering, download (single chapters and multiple), all searches, chapter view.
* docs: Update README and CHANGELOG
* refactor(url-activity): Refactor Url Activity from kotlin to java
Process kept complaining about java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
* revert(url-activity): Avoid kotlin Intrinsics
* Finish migration to filters v2
* Implementation for smart filters
* Subtle cleanup
* Localization tests
* Fix 404 for latest update
* Filter out epubs
* Fixed Filter out epubs and optimization of 20 results per page
* Changelog and bump version
* Localization implementation
* Add localization keys
* Fix pub status not displaying. Closes#16318
Co-authored-by: FYannK <fanch.kerguelen@gmail.com>
* Hande exceptions and add version requirements
* Make fetch implementation with error handler.
Added/improved some comments
Added some more translation
* Update changelog
* Updated localization
---------
Co-authored-by: FYannK <fanch.kerguelen@gmail.com>
* Update YM to use their API directly.
* Skip a redirect in the popular manga list.
Co-authored-by: Vetle Ledaal <vetle.ledaal@gmail.com>
* Skip a redirect in the latest manga list.
Co-authored-by: Vetle Ledaal <vetle.ledaal@gmail.com>
---------
Co-authored-by: Vetle Ledaal <vetle.ledaal@gmail.com>
* MyReadingManga: Add WebP image support
Fix issue where manga published with webp images can not displayed correctly in Tachiyomi.
* MyReadingManga: Fix older release images does not parsed
* MyReadingManga: Bump version
* Add setting for Score positioning
Localization support for settings
* Simplify score position evaluation
Reformat code
* Include backup domain in Manifest
* Refine logic for picking the first volume cover
* Officially moved their main TLD
* Fallback to default value instead of empty string
* Avoid stray hyphen on chapter title if it has no name
* Fix typo and add explanation to README
Remove CHANGELOG
* Check and ignore empty string passed as Volume number
* Split Fansubs.cat into two sites (SFW and NSFW), update API calls, and implement search filters
* Unify Fansubs.cat and Fansubs.cat Hentai extensions into a single multisrc theme
* Add missing trailing comma
* Explicitly name custom argument
* Explicitly keep the pkgName for the main extension
* Remove unneeded workaround
* Add Score to the description
Add option to keep the first cover
* Check to prevent the extra call
* Swap from ★☆ to ●◐○ to make use of the half-symbol
Because the half-star character (⯪) is too new and doesn't show up properly
* Missing Override
* Back to the stars on rating.
No half-symbols but makes more sense and is consistent with the site's usage of the ⭐ star emoji
* format the code and change the throw exception
* fix nekopost search
* switch to HttpSource
use request/parse instead of fetch
* Remove commented code.
* update urls again
* small update to filters
* remove unnecessary function and add short title preference
short title stolen from Nhentai ext
* default off
* add magazine info to description
* add description from site
* unify popular and search parsing
* auto update cdn url
* projectsuki initial commit
* update preferences
* non-lazy client
* buildMap -> mapOf
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* inline constants
* switched from custom NormalizedURL to HttpUrl
* band-aid fix for "No results found"
Has edge case where current page has 30 results and next page has 0 results.
* update remote & strip debug Log statements
---------
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Simplify Manifest data entries
* Map MD and MU tags to genres
* Switch separator for Ignored Groups setting
From comma to newlines for better readability
* Make MU Tags optional via preferences
Because they might contain spoilers.
- Include demographic \ target audience into genres
* Switch from flattening list to a builder
* Remove unneeded Listener
* Switch migration check to preference boolean
Rename muTags parameter to includeMuTags
* Rename a couple variables
More in line with their context
* New Source: One Piece Berwarna
* Filter attr by css selector
* Hardcode author & artist name
Co-Authored-By: Luqman <16263232+Riztard@users.noreply.github.com>
* Fix reversed chapter list
* Filter ads with css selector
Co-Authored-By: Luqman <16263232+Riztard@users.noreply.github.com>
* hardcode manga details
* Use the proper methods for chapter parsing
Co-Authored-By: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
---------
Co-authored-by: Riztard Lanthorn <riyanluqman@gmail.com>
Co-authored-by: Luqman <16263232+Riztard@users.noreply.github.com>
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* BacaKomik: fix title, tweak series info
- remove string from title
- add series type
- remove string from description
* title first
* fix pages not found & add some rate limit
Closes#18686
* fix spelling for villainess in en translations
* custom user agent + more md@h logging
adds a custom user agent setting primarily intended for testing
do note that spoofing to be a different browser might fetch you trouble
as MangaDex's new hotlink/bot abusers can kick in action
also add logging to figure out which MD@H node users are hitting
as currently, the fallback was not observed to be changing even after
a while; leading to user's keep failing to fetch images
* more improvements
make the `Extra` header more verbose
use a `customUserAgent` sharedpreferences variable so that code looks
cleaner
move the useragent logic into an interceptor so that there is no
need for restarting the app after every useragent change
* completely switch to useragent interceptor
removes builder header modification
remove additional logging while testing (didn't really work as
expected since I kept hitting uploads.mangadex.org anyhow,
+ the interceptor logs weren't useful otherwise)
switch to hardcoding version code in header since it wasn't working
as expected...
add linting from android studio gradle release build
* increment extVersionCode
* oopsie be careful of comments
* properly close unsuccessful requests to mdah node
need to ensure this so that it doesn't crash (which has happened before)
inb4 this is why the fallback url never works....
* [RU]Remanga filter only the last non-purchased chapters
* detect LICENSED when metadata not updated (when update library chapters)
* simplify not paid
* naver: fix author parsing
* simplify joinToString
* handle on hiatus status
* use when expression
* adjust order of checks for status
i have found a couple entries that have both rest and finished set to true.
those entires are all definitely on hiatus so let's give the rest flag prio
* Add support to URL guess and add harsh rate limit on GM.
* Fix the checks and add more paths.
* Remove the log statement.
* Use their current URL as of this moment.
---------
Co-authored-by: Alessandro Jean <alessandrojean@users.noreply.github.com>
* Add ComicFury Extension
Signed-off-by: Theray Tharow <TharowT@Tharow.net>
* Change pt to pt-BR as per alessandrojean
Updated Request Builders as per alessandrojean
added fun getMangaUrl to point to the archive page instead of the detail page to help with nfsw comic requiring to click accept on the archive page to allow tachiyomi to read the chapter/comic list
Signed-off-by: Theray Tharow <TharowT@Tharow.net>
* Use new siteLang as override for lang code for Manga Search as suggested by alessandrojean
Change notext lang to No-Text as commented by alessandrojean
Signed-off-by: Theray Tharow <TharowT@Tharow.net>
* Change No-Text lang to other-notext as suggested by alessandrojean
now shows up as Other (NOTEXT)
Signed-off-by: Theray Tharow <TharowT@Tharow.net>
* correct implementation misunderstanding and use extraName for the No text source, based on https://github.com/tachiyomiorg/tachiyomi-extensions/pull/6337
Signed-off-by: Theray Tharow <TharowT@Tharow.net>
---------
Signed-off-by: Theray Tharow <TharowT@Tharow.net>
Co-authored-by: Theray Tharow <TharowT@Tharow.net>
* Add Collected Curios to Tachiyomi extensions.
Still to do:
* Add additional pages like Spider and Scorpion, Portfolio, etc.
* More refactoring.
* * Redone Icon in Android Asset Studio.
* Update src/en/collectedcurios/AndroidManifest.xml
Fixed AndroidManifest as in draft.
Co-authored-by: arkon <arkon@users.noreply.github.com>
* Update src/en/collectedcurios/build.gradle
extVersionCode 1 is enough.
Co-authored-by: arkon <arkon@users.noreply.github.com>
* Update Collectedcurios.kt
Addressed Arkons suggestions. Further refactoring needed.
* Update src/en/collectedcurios/build.gradle
* Shorten source to just itself.
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Apply suggestions from code review
Accept all suggestions by alessandrojean.
* Exchange blank "date" for "Chapter".
* Remove date_upload as not needed.
* Restructure when condition in imageUrlParse.
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
---------
Co-authored-by: arkon <arkon@users.noreply.github.com>
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* AralosBD: Added support for latest, better support for search and popular, new icons
* AralosBD: used the right icon generator to follow the partern used by other extensions icons
* AralosBD: updated icon to use squared version
* Fixed ShingekiNoShoujo
Changed url
Fixed the code for the new site
* Changed build.gradle
* Fixed ShingekiNoShoujo
Modified the endpoints and the selectors because they modified the website
* Fixes to the code
* Deleted ShingekiNoShoujo.kt
Closes#17043
* increment extVersionCode
closes https://github.com/tachiyomiorg/tachiyomi-extensions/issues/17456
* add filtering to `list:`
* prefer using the constant instead
* revert to fallback url if MD@H node fails
* handle edge case in accessing list entries
mostly just to ensure the Retry message doesn't happen
* finish off TODO as manga redirects work fine nowadays
* linting
* add missing headers
this helps add the necessary tachiyomi ua and other stuff
* fix getMangaUrl
* Novelcool
very shit source
* use better selector to filter novels
* fix genre fetching in search
* add parsing logic for popular/latest as well
in case they break the app api
* HentaiVN: Support mobile site
* mobile: Parse title from cover alt before making a request
* mobile: Fix nextPageSelector
* Fix covers not loading in advanced search
* Add support to better internationalization with a new lib.
* Add info about `lib-i18n` in the contributing guide.
* Use lib-i18n in M+ as well.
* Change properties files to UTF-8.
* use the assets/ folder instead of the res/ folder
files under assets/ are addressible by name
* mangadex: add string invalid_manga_id
* M+: Add translations for Vietnamese
* m+: Add Vietnamese to list of available languages
* mangadex: remove duplicate declarations
---------
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Update Japscan.kt
I completely changed the way to find the keys allowing the decryption of the base64 which contains the information of the images to be recovered. Before there was a recovery by regex, but this was not reliable because the location of these strings changes places and the order is important because it allows to reconstitute the two decryption keys. To succeed in recovering them correctly and in the right order, I debugged the javascript, which allowed me to understand how obfuscation works.
I understood that the base64 encryption file, the zjs, was not the same file when we had a mobile useragent and a PC useragent, it is however the same key, just that they are placed at different other place
at the end of the file we have the JS which assembles the keys directly as parameters of a function:
a0_0x39cacb('0x13d') + a0_0x39cacb('0x130') + a0_0x39cacb('0x118') + '6N', a0_0x39cacb('0x145') + a0_0x39cacb('0x116') + a0_0x39cacb('0x10f') + 'oe'
we have another function here:
return a0_0x46c1 = function(_0x46c1ab, _0x5a3fac) {
_0x46c1ab = _0x46c1ab - 0x105;
let _0x5c76b5 = _0xd80153[_0x46c1ab];
return _0x5c76b5;
}
which call string array which contains the key chunks
0 : "laretiLesrap"
1 : "gnp.600/sgmi/"
2 : "atad"
3 : "daol"
4 : "8ceABpX"
..
_0x46c1ab = _0x46c1ab - 0x105;
this operation allows to know the shift in the table, for example
By subtracting 0x105 from '0x13d', we get:
317 - 261 = 56
at location 56, so at index 55 of the array we have: "ohcVEMDTYO7FpBA20zRg"
so here: a0_0x39cacb('0x13d') + a0_0x39cacb('0x130') + a0_0x39cacb('0x118') + '6N'
we replace a0_0x39cacb('0x13d')
by this chain
"ohcVEMDTYO7FpBA20zRg" + a0_0x39cacb('0x130') + a0_0x39cacb('0x118') + '6N'
and that gives us the beginning of the key
and then reverse it
and that gives us the right key
* Update build.gradle
Update build version
* Update Japscan.kt - Completely reverse JavaScript
My modification was missing part of the javascript code to reverse, this modification brings greater stability.
In the JS is decrypts the data, there is a table of character string, this table is the most important element of the decryption because it is used in almost all the functions.
What the algorithm does in a nutshell:
- he shuffles the board until he arrives at a precise position, he pushes all the elements backwards until he finds the right combination. The correct combination is determined by the sum of the digits in the character strings with a more or less complex calculation.
- It calls the table in a "hidden" way with a function that takes a hexadecimal as a parameter (which corresponds to the index in the table)
- once all the keys have been retrieved from the character string table, it assembles them, then reverses them to give the complete key
How I proceeded:
- For the correct position in the table I perform almost the same calculation as the JS but I simplify, this to a tiny margin of error. In the calculation in the JS it parses the INTs in the chain and makes calculations with it, to simplify my task I only check if ALL the elements used contain INTs, I did several debug tests and they are obliged to contain them when the position is good. So starting from this principle I would almost certainly fall on the right position.
- Once my array is correctly sorted, I can with a simple calculation managed to recover the requested element with the hexadecimal
- I reverse the keys and I test the two positions of the keys to decipher the base64
* Update Japscan.kt
Added the possibility to have the parseInt in negative
* Update Japscan.kt
Modification needed to take into account the wider possibility of script changes
* Update Japscan.kt - Add comments
Ajout des commentaires
* latisbooks: fix page parsing
Likely from a preprocessor change on the site's end, the element
containing the images had changed.
* latisbooks: fix cover art
The cover art being used for the comic is pulled from the "latest page"
preview on the archive page, which is a square image that tends to not
represent the comic very well. Additionally, recently it has failed to
load properly for whatever reason. As a remedy, I chose page 198 to be
the proper cover. I chose it as it is an interstitial cover page
featuring the main character, with no text or elements that tie it to a
specific arc.
* latisbooks: version bump
* lib-randomua
* NHentai: Random mobile ua
* Madara random UA overhaul
* MangaThemesia random UA overhaul
* MangaHub random UA overhaul
* build errors and warnings
* remove preference from Constellar
* change to singleton object
* network.client
* fix copy paste and chapter deep link
* exit early
* use data class and enum options
* missing import
* suggested changes
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
* re-add empty check to filters
* convert to interceptor
* update comment
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* update error message
* initialize client by lazy
* dont check on excluded Filters
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
* newlines
* move preference helper function into lib
* move preference helper function into lib x2
* move check to lib too
* move defaultRandomUserAgentType to constructor
* rename the interceptor
* organize the interceptor and preference stuff in different files
* hide custom ua setting when random ua is enabled
* English
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
* catch specific exception
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
* setVisible()
fresh stuff
* setVisible()
fresh stuff
* change summary
* workaround
* Update error message
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Update comment
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
---------
Co-authored-by: AntsyLich <59261191+AntsyLich@users.noreply.github.com>
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Update BacaKomik.kt
change target document.select for fix page not found
* update extVersionCode to 5
* update bacakomik from document.select to document.getElementsByTag with cdnUrl
* Add support to better internationalization with a new lib.
* Add info about `lib-i18n` in the contributing guide.
* Use lib-i18n in M+ as well.
* Change properties files to UTF-8.
* fix RS
Co-authored-by: Henrik <22085664+henrik9999@users.noreply.github.com>
* fake cf turnstile key
* use Beerpsi's algorithm for random key
* bruh
* use imgAttr
---------
Co-authored-by: Henrik <22085664+henrik9999@users.noreply.github.com>
* Add an UserAgent on headersBuilder() to bypass Cloudflare error
* Add choice to set a custom UA
* Update header for imageRequest function
* Fix headers setup + remove function on setupPreferenceScreen
* [Mangadex] Add setting to show alternative titles in manga description
Uses same-language and romanized titles only
* [Mangadex] Bump build.gradle for previous
* Only include romanized version of originalLanguage
* Optimize
* Miskey
* Use BigDecimal.stripTrailingZeros
* Use JsonPrimitive instead Float
* Set token on init
* Remove init due to app don't recognize extension
* Creation/modification of the japanread source which became
bentomanga
I left the name and the image because it's the same source
with a new interface and name (people know japanread)
* rename and udpate lib of the japanread source which became
bentomanga
+
update of build.gradle
* add old id of japanread
* Update src/fr/japanread/build.gradle
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Update src/fr/japanread/build.gradle
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Update src/fr/japanread/src/eu/kanade/tachiyomi/extension/fr/japanread/bentomanga.kt
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Update src/fr/japanread/src/eu/kanade/tachiyomi/extension/fr/japanread/bentomanga.kt
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* renaming file to BentoManga
* Attempt to avoid triggering cloudflare
Can make the source slower.
* Attempt to avoid triggering cloudflare
Can make the source slower.
---------
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Fixed ShingekiNoShoujo
Changed url
Fixed the code for the new site
* Changed build.gradle
* Fixed ShingekiNoShoujo
Modified the endpoints and the selectors because they modified the website
* Fixes to the code
* Tachidesk: Implement pagination
* Added pagination to improve performance on large libraries
* Route `popular` functions through `search`
* Avoids significant code duplication
* * Implemented sorting
* Can now sort by title, author/artist, date added, no. of chapters
* Issues with unread chapters and date updated
* Server doesn't seem to return a last updated time
* Server returns unread regardless of local read status
* * Added "All" category
* Added a category that shows all manga across all categories
* Removed "toggle global search" button (now redundant)
* Search now more intuitive as a result
* * Added tag-based filtering
* * Stop using reflection to get the property to sort by
* Comment cleanup
* [RU]Remanga fix sorting tome 10+
* fix detect last exmanga chapter individual branches
* alt selector for alt free servers
* just hidden content
* WebView = 🌎
* Updated Kavita to pass apiKey for image apis as this is required in v0.7.1.33+. Non-breaking change for Stable branch users.
* Updated Kavita to pass apiKey for image apis as this is required in v0.7.1.33+. Non-breaking change for Stable branch users.
* Bumped version number
* Updated the Changelog with changes and corrected a dupe version number
* Crossover-events handle, chapter naming cleanup
* Crossover-events handle, chapter naming cleanup
* Add reading order numbers to all comics events, add a note to the comic description.
* [RU]Remanga optional User-Agent - fix 403 again
* optimization settings
* more
* fix no change // changes state to opposite (no static true > false)
* detect status setting
* full clear
* no one understands what the settings hiding under ⚙ in basic tachi
* 403 can be as 500
* current domain
* description layout
* setting indicate
* change condition setting indicate
* simple solution to bypass captcha that occurs only on the api
* simple solution addition
* precaution more domain
* Hentaidexy: rebuild with new api
* small changes
* image url patch
* bunch of refactoring
* remove from Madara
* lint
* add alternative names
* make some things nullable
* revert some eff7f06 changes
still keeping the cookiestuff
* Update build.gradle
* remove commented out code
* Revert indentation changes. and readd back comma
* [RU]Remanga native exclude_bookmarks
* string
* popularMangaRequest and latestUpdatesRequest
* no empty manga
* priority to the main source
* fix unnecessary requests
* User-Agent Tachiyomi
* update User-Agent
* IOException
* saved no successful url
* notification about the obsolescence of the list of chapters
* no redirect
* [RU]Remanga alt free img server
* right injecting
* minFix
* fix header load
* LimitHost
* authorization breaks exManga
* separation of paid and ex manga chapters + crutch for search rus chapters
* do not disrupt the operation of the main source
* alt domain exmanga
* fix bookmarks
* callback request for update outside the library
* no need fixLink
* exremanga icon
* notify - no hide chapters
* notify long
* fix mangaID
* low ping low stress
* getChapterUrl
* notify of non-availability
* Fix
* Use body.string()
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Use data() instead html()
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Use selectFirst()
* Migrate MhwLatino to Madara
* Add ID
* Remove ID xd
---------
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Tachidesk (Suwayomi): Implement search
* Update extVersionCode
* Tachidesk: Move search logic
* Move retrieval and filtering from searchMangaRequest to searchMangaParse
* Remove fetchSearchManga override
* Tachidesk: Implement PR suggestions
* Import and use proper json encode method for search results
* Removed redundant gzip handling
* Moved query from header to fragment
* Switched to extension-lib GET instead of Request.Builder
* Improved and reduced null/empty checks
* Tachidesk: Toggle global search
* Adds an option to search only the current category
* Default behaviour is to search whole catalog
* Switched from URL fragment to query params for search info embed
* Minor cleanup
* Tachidesk: Clean up
* Removed redundant code path in `searchMangaRequest`
* Moved search/filter stuff to the "Filters & Search" section
* Creation/modification of the japanread source which became
bentomanga
I left the name and the image because it's the same source
with a new interface and name (people know japanread)
* rename and udpate lib of the japanread source which became
bentomanga
+
update of build.gradle
* add old id of japanread
* Update src/fr/japanread/build.gradle
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Update src/fr/japanread/build.gradle
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Update src/fr/japanread/src/eu/kanade/tachiyomi/extension/fr/japanread/bentomanga.kt
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* Update src/fr/japanread/src/eu/kanade/tachiyomi/extension/fr/japanread/bentomanga.kt
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* renaming file to BentoManga
---------
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
* 1.Add rate limit 2. Add filter search all 3. Add page filters author, 4. Add search elements so that when using search filters and search ids do not show thumbnails and name 5. Update version ext
* Update PageListparse
* Code formating
* Remove brackets
Co-authored-by: beerpsi <92439990+beerpiss@users.noreply.github.com>
Co-authored-by: beerpsi <92439990+beerpiss@users.noreply.github.com>
Co-authored-by: Carlos <2092019+CarlosEsco@users.noreply.github.com>
* [BlogTruyen] Clean title from chapter name, add manga metadata to description
* add intent processing for author and team
* add uploader
* only accept what we can process
* undelete url activity
* [Japscan] Rate limit
* idk
* handle cloudflare shenanigans leading to not finding zjs strings
* translate exceptions
* add number of lookup strings found
* Mangaku rewrite
* fix: trim chapter names that start with -
* replace android.net.Uri.decode with something simpler
* small fixes + found culprit of lag
* fix: decryption not taking 20 seconds anymore
* use different hyphen character
* in case they start changing around stuff now that tachi got their nose
* BlogTruyen rewrite
- feat: Added URL intent filter
- feat: count chapter views
- fix: use the `title` attr to prevent stuff like "One Piece chap 1020"
in the title
- fix: multi-paragraph descriptions are processed properly
* move to ajax endpoint for latest updates
* script.html() -> script.data()
* tweak fetching images from script
* fix: return original response if cannot parse as ErrorResponseDto
* fix: make YuriNekoUrlActivity not die from lack of kotlin
* fix: add trailing slash to referer
* accept suggestion
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
Co-authored-by: stevenyomi <95685115+stevenyomi@users.noreply.github.com>
* unyeet MangaFox
* change string concat to template strings
* I SPENT ONE MORNING FOR NOTHING BECAUSE I FORGOT THEY HAD A MOBILE PAGE
* remove trailing slash from mobile url
* simplify pagelistrequest
* chore: remove dependency on :lib-unpacker
* Update issue_moderator.yml
* Update MangaFox.kt
* update genres
Co-authored-by: Carlos <2092019+CarlosEsco@users.noreply.github.com>
* unyeet
* make regex lazy
* what was that
* remove from autocloser and removed_sources.md
* add filters
* suggestions
* chore: bump version code
* more selectFirsts
* QManga
* move to ParsedHttpSource
* chore: format androidmanifest
* I DIDN'T REALIZE THEY WERE TABS 😭
* more shenanigans
* Update AndroidManifest.xml
* move TextInterceptor to `lib`
to be used for author notes, image alt texts and what not
* refactor Tapastic to use `lib:extensions-lib`
* Refactor Webtoons to use `:lib-textinterceptor`
this turned out to be more complicated than I thought it'd be
TextInterceptor was used for Author Notes which, looking at previous messages,
was only intended to be added to Webtoons Source and not the entire webtoons
multisrc (i.e. WebtoonsTranslate and DongmanManhua don't seem to be making use
of the Show Author's Notes setting). This was in my favor, since having
to deal with additional.gradle to add dependencies to multisrc files doesn't
seem to work... I'll ask previous contributors just in case
* Fix `json` access
missed this while copying over code from `generated-src` to `multisrc/{overrides,src}`
* remove unused import
* make HOST name more clear
couldve used a better schema but that's something for some other time
also put the HOST in the lib itself so that one doesn't lose track of it in the extensions
* use android provided methods instead of hardcoding
based on https://github.com/tachiyomiorg/tachiyomi-extensions/pull/13859/files#r996276738
that suggested the following SO answer: https://github.com/tachiyomiorg/tachiyomi-extensions/pull/13859/files
* remove unused import
* move url generation to helper function
* fix error
oops sorry for that
happened when I was copy pasting back and forth between two sources and one generated source
Co-authored-by: Navaneeth M Nambiar <nmnambiar@hornbill>
* Updated ComickFun API URL
Addresses #14788 . Does not yet implement the slug and hid changes
* Filters out null urls from the API
Fixes#14786
* Bumped version
* Updated to new API search and hid
Will need to be re-visited to change the internal url stored by tachiyomi to use the hid instead of slugs once ext-lib 1.4 is released.
* Reverted a bug in fetchMangaDetails
* Updated to use kotlinx.serialization
* Renamed the slug fetching method
* new multisrc theme: A3MangaTheme
* move NgonPhong into A3MangaTheme
* fix: ignore scanlation groups from search result
* chore: fix lint issues
* rename A3MangaTheme to A3Manga, resolve a bunch of suggestions
* fix: remove references of theme in the configuration
* fix: change the activity name in manifest
* fix: final newline
* chore: remove gradle file (not used)
* fix: rename ngonphong icons
* chore: add ocumeo icons
* LXHentai
* fix: wrong sort state for latestUpdatesRequest
* fix: manga description selector
* remove random newline
* Revert "remove random newline"
This reverts commit b1f0202aea80b37f524944b8dad8be5d78602235.
* Update LxHentai.kt
* New source: Cứu Truyện
* chore: add more background info on `coordinates`
* Add UrlActivity
* more documentation on cuudrm_bg shenanigans
* fix: close evaluation contexts to prevent memory leak
* that wasnt needed
most data in dex should be more stable than when this code was written
this is also how their Front-end does it
next refactor will be when the alt-title/title rework
* LANraragi: 0.8.8 support
Basic fix for API key change while supporting pre-0.8.8. In the future this could be done with the Archive model.
Remove irrelevant draw key.
* LANraragi: Improve var usage
* LANraragi: Consolidate New Only's default value
* LANraragi: Encode the API Key once
* LANraragi: Refactor checkbox + Clear New toggle
Previous behavior was always clear. Now it can be toggled.
* Revert "LANraragi: Encode the API Key once"
This reverts commit 17128421cf7754cffd143a80cebbdf48281112d7.
* LANraragi: Redundant comment
* pageListRequest now returns a correct url
This method was apparently not called in previous versions but it does now in the preview version (r5254) when downloading thus failing because was returning a wrong url.
* Changelog and bumped version
* Fixed Title display for BL and GL
* Fixed Discrepancies in Some Title Parsing
* Fixed status for on Hiatus titles.
Co-authored-by: Abhay Singh <sinnghabhay80@gmail.com>
* Update MangaDex to use API v5.7.5.
* Remove unused line.
* Fix list type string.
* Make usage of `authorOrArtist` in deeplink.
* Use proper custom serializer for `LocalizedString`.
* Use actual enums for manga properties.
* Fix list search not working.
Co-authored-by: nicki <72807749+curche@users.noreply.github.com>
Co-authored-by: nicki <72807749+curche@users.noreply.github.com>
* Add option to attempt to use first volume cover on MangaDex.
* Fix missing first volume covers and remove logical symbols.
* Reinforce isOneShot check and reword preference.
* update site url
* Parse mobile site version
Fix a lot if error
* Fix detail cover load
* Add sort by chapter name(server return sorted by upload date)
* fix warnings and date parse in some case
* Another date fix
* replace client.newCall to chapterListParse as @alessandrojean requested https://github.com/tachiyomiorg/tachiyomi-extensions/pull/13914#discussion_r999480012
* version code change
* Force mobile site version in webview
* Move cookie set to class init
* Remove sort by chapter name
It create more problem than solve
User can choose sort by chapter number in app when necessary
* Auto generate id for chapter list requests
* fix search
* Bump Version
* Refactor chapterListParse to immediately return if there's only 1 page
Avoids an error that occurs if a series has no chapters
* update site url
* Parse mobile site version
Fix a lot if error
* Fix detail cover load
* Add sort by chapter name(server return sorted by upload date)
* fix warnings and date parse in some case
* Another date fix
* replace client.newCall to chapterListParse as @alessandrojean requested https://github.com/tachiyomiorg/tachiyomi-extensions/pull/13914#discussion_r999480012
* version code change