* [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 = 🌎