Commit Graph

193 Commits

Author SHA1 Message Date
KirinRaikage 99539e261e
Epsilon Scans: Update domains (#3855) 2024-07-14 14:40:55 +01:00
Vetle Ledaal e5f63b46c7
Add Etheral Radiance (#3714) 2024-07-14 14:40:55 +01:00
Vetle Ledaal bfbdf30ab9
Add Toon FR (#3705) 2024-07-14 14:40:49 +01:00
KirinRaikage 5e93a65f4d
Raijin Scans: Update domain (#3673) 2024-07-14 14:40:48 +01:00
AwkwardPeak7 b6c20bf147
fix page list (#3564) 2024-07-14 14:39:17 +01:00
Chopper ae52c158c3
LegacyScans: Migrate to HttpSource (#3451)
* Migrate LegacyScans to HttpSource

* Fix searchMangaParse

* Remove invalid genre

* Refactoring

* Fix offsets

* Fix lint
2024-07-14 14:39:16 +01:00
AwkwardPeak7 eb6b5d39d7
update selector (#3457)
* JapScan: update selector

* hello mr japscan, hope you are having fun
2024-07-14 14:39:16 +01:00
Mylloon f29eb16762
fix: Scan VF (#3395)
* fix Scan VF

* increase version code

* override function
2024-07-14 14:39:16 +01:00
AwkwardPeak7 be806a0771 Japscan: update chapter data selector (#3275) 2024-06-03 05:44:48 +01:00
Chopper 611cf69a39 FRScan: Fix pages loading (#3230)
* Fix pages loading

* Change group name

* Remove variable

* Remove parseAs function and add page url
2024-06-03 05:44:48 +01:00
Vetle Ledaal 608a2c5d2a Japscan: fix browse, thumbnail, pagination (#3157)
Also removed the 'page number' filter - would have to reimplement it
with the new format, which seems like effort. Also, such features are
better suited for the app to implement directly.
2024-06-03 05:44:47 +01:00
KirinRaikage 47af581f6d Raijin Scans: Update domain (#3056)
Raijin Scans: Update URL
2024-06-03 05:43:53 +01:00
Vetle Ledaal c84a1acd0b Add Hentai Origines (#2839) 2024-06-03 05:43:47 +01:00
Chopper 4c8950ffb2 Add LunarScansHentai (#2737) 2024-06-03 05:43:24 +01:00
kana-shii 19532c2f33 Lunar Scans [FR] (#2669)
add lunar scans
2024-06-03 05:43:23 +01:00
KirinRaikage 22469d8a51 Add Astrames (#2588) 2024-06-03 05:42:15 +01:00
KirinRaikage 4abf193718 Add Rimu Scans (#2586) 2024-06-03 05:42:15 +01:00
KirinRaikage 226766fdd0 Add Mangas Scans (#2581) 2024-06-03 05:42:15 +01:00
KirinRaikage 653b4af574 Scan Hentai Menu -> X-Manga: Update logo and domain (#2487)
Scan Hentai Menu: Update logo and domain
2024-04-26 01:46:50 +01:00
bapeey ad0d859a87 HeanCMS: Fix filters and fetch genres from api (#2312)
Fix filters
2024-04-10 01:26:52 +01:00
AwkwardPeak7 340edf19dc FuzzyDoodle: Make CloudRecess a multisrc and add/fix some sources (#2290)
* CloudRecess multisrc

* ScyllaScans: move to cloudrecess multisrc

* FleksyScans: new source

* remove baseUrl

* simplify popular

always use /manga which isn't technically popular but list of all manga which is good enough

* HentaiSlayer (ar): move to cloudrecess

* remove CloudRecess (en): site appears to be dead

* small change

* rename

* review changes

why do I forget headers

* add alternative titles to description

* parse filters from popular and search response

avoid extra call

* remove placeholder author/artist

* LelscanVF: move to FuzzyDoodle

also improve date parsing

* add icons to lelscanvf

* flexyScans: change icon

other one is of Aksy Scan which also posts on the site
2024-04-10 01:26:52 +01:00
Secozzi 6b238a0e09 add starbound scans (#2278) 2024-04-06 23:50:56 +01:00
KirinRaikage 8bbc841b7d Add Soft Epsilon Scan (#2266)
* Add Soft Epsilon Scan V2

* Add new chapter endpoint parameter
2024-04-06 23:50:56 +01:00
Secozzi ec8c080c75 Add edscanlation (#2162) 2024-03-30 22:04:18 +00:00
Secozzi 8f16b6c06d Add anteikuscan (#2161) 2024-03-30 22:04:18 +00:00
KirinRaikage 471e4d3190 Cleanup dead sources (#2121) 2024-03-30 22:04:18 +00:00
bapeey 455f57d209 Update HeanCMS theme (#1969)
* i hate this theme

* bump

* remove useless slug update

* lint

* Update series slug on chapter list update

This was made for sources that changed slugs constantly.

Currently no one uses it, but who knows if they enable that again

* what an unstable experience

* Remove empty lines

* Fix intl

* newline

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

* why my build took 5 minutes

* I hate iguanas

---------

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>
2024-03-24 21:13:54 +00:00
KirinRaikage f5ec446f74 Banana-Scan: Rename to Harmony-Scan and migrate to Madara (#1754)
* Banana-Scan: Rename to Harmony-Scan and migrate to Madara

* Add Banana Scan ID
2024-03-12 19:55:31 +00:00
KirinRaikage 58b5aa2f3d FMTeam: Migrate to PizzaReader (#1668)
* FMTeam: Migrate to PizzaReader

* Add missing trailing commas
2024-03-06 06:25:46 +00:00
bapeey f6cb65688d Epsilon Scan: Move to Madara (#1582)
CI / Prepare job (push) Successful in 6s Details
CI / Build individual modules (push) Successful in 5m6s Details
CI / Publish repo (push) Successful in 48s Details
* Save

* Move to Madara
2024-02-27 20:53:54 +00:00
AwkwardPeak7 30b13498b0 Madara refactor (#1292)
* remove randomua from madara

* don't use page path for page=1

* add back `madara_load_more`

* cleanup i18n and filters

* load more in a new source

* move back the filters

not worth it

* fix build

* altname to i18n as well

* utf-8

* Revert "utf-8"

This reverts commit 1335bc1b478da54d3a5eb6333ac1a26e3ee2825b.

* utf-8

* autodetect load_more_request

* load genres in background

* make genre classes protected

remove unnecessary change

* fetch genres changes

* launchIO countviews

* don't explicitly optin

* cleanup some request overrides

* make `useLoadMoreRequest` enum to be able to disable autodection where necessary

* fix logic

bruh

* use state variables

* defer countViews in overrides as well

* lint

* select().first -> selectFirst

* `load_more` search as well

* detect in search as well

* remove slipped override

* move detection to the function

* remove fetchGenreFailed

* don't use GlobalScope

* tweak load_more_request parameters

* remove ancient connectTimeout/readTimeout

already present in the client provided by the app

* small cleanup
2024-02-27 20:53:28 +00:00
stevenyomi 205d95cc07 Migrate to lib-multisrc (#1237)
* adjustments

* Run generator

* Remove multisrc project

* add lib dependencies

* Remove multisrc from build scripts

* Remove build condition
2024-02-18 20:10:37 +00:00
beerpsi 873a88cbbb Add scanvf.org (#985)
* Add scanvf

* move stuff

* fr.scanvf already exists (under mmrcms)

* insert ending newline
2024-02-06 22:44:06 +00:00
stevenyomi 12e864f85f Remove placeholder manifest files (#790) 2024-01-30 22:11:47 +00:00
Mike 968d1cb0ac Remove lirescan.me (#609) 2024-01-30 22:07:13 +00:00
beerpsi 0bb60c35a6 Add JapScan (again) (#510)
* Add JapScan (again)

* remove unusued dep

* fix search thumbnails
2024-01-30 22:07:01 +00:00
Draff 5c8cb75e9a come up to date with keiyoushi builds
CI / Prepare job (push) Successful in 3s Details
CI / Build multisrc modules (push) Successful in 8m10s Details
CI / Build individual modules (push) Successful in 38s Details
CI / Publish repo (push) Successful in 1m39s Details
2024-01-22 21:19:41 +00:00
AwkwardPeak7 c5f82e6aeb Move plugin section to common.gradle (#281)
* move apply plugins to common.gradle

* update CONTRIBUTING.md

* remove whitespace

* move common.gradle apply above in multisrc

* move kotlinter

* newlines
2024-01-16 02:49:40 +00:00
stevenyomi 4c8c21596b Remove message in UnsupportedOperationException (#277) 2024-01-16 02:47:22 +00:00
KirinRaikage f0c7a740ba
Remove Japscan due to cat and mouse game (#17892)
* Remove Japscan due to cat and mouse game

* [skip ci] Add to REMOVED_SOURCED.md
2023-09-10 18:05:12 -03:00
Smiley32 2e05db2316
AralosBD: Added support for latest, better search and new icon (#17630)
* 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
2023-08-24 15:25:56 -03:00
arkon 2a7801e876
Move package namespace declarations out of manifests (#17581) 2023-08-18 08:58:52 -04:00
Kyrela 3060d919f2
FMTeam: complete rewrite (#17183) (#17387)
* FMTeam: complete rewrite (#17183)

* FMTeam: chapter open in webview fix

* FMTeam: versionId bump

* FMTeam: refactor code

* FMTeam: date safety

* FMTeam: unused fields in DTO removal

* FMTeam: avoid fetchMangaDetails call

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

* FMTeam: page map refactor

Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>

* FMTeam: pages useless manual `chapter_number` set removal

---------

Co-authored-by: AwkwardPeak7 <48650614+AwkwardPeak7@users.noreply.github.com>
Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com>
2023-08-06 13:32:45 -03:00
Kyrela c3c09bfe86
AralosBD: false supportsLatest (#17389) 2023-08-06 13:09:02 -03:00
KirinRaikage 6f64c12a6d
Change URL for Furyosquad (#17382)
Change URL from Furyosquad to Furyosciety
2023-08-05 10:31:01 -03:00
beerpsi 37a4b20ef2
JapScan: Use lib-synchrony to deobfuscate code (#17329) 2023-07-31 14:37:56 -03:00
zormy111 a3543bf2b2
update of the japscan extension - the complete reverse of the JS (#17181)
* 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
2023-07-21 18:57:53 -04:00
RGFRv2 28f5a08ac7
Bentomanga fix chapters (#17057)
* Exclude url with style='display:none' who breaks everything

* Update gradle version
2023-07-09 10:13:18 -04:00
Rajh a70b186815
Update Japscan (#16908)
* Update Japscan.kt

Japscan splitted tables, fast fix for it
Closes #16898

* Remove Log.d messages

---------

Co-authored-by: Rajh <Rajh>
2023-07-01 10:07:17 -04:00
RGFRv2 4f1bbcdee9
Add an UserAgent on headersBuilder() to bypass Cloudflare error (#16761)
* 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
2023-06-20 12:10:53 -04:00