manga-download / hakuneko

Manga & Anime Downloader for Linux, Windows & MacOS
https://hakuneko.download
The Unlicense
4.61k stars 461 forks source link

[MangaDex] Connector not working #7032

Closed MarqFJA87 closed 4 months ago

MarqFJA87 commented 4 months ago

Is there an existing issue for this connector?

Did you read the troubleshooting guide ?

Is the website of the connector working properly ?

Make sure to try Nightly Build

What kind of issue are you encountering

Manga list isn't refreshing

Describe the bug

Ever since MangaDex underwent maintenance yesterday, HakuNeko became unable to connect at all to the site.

  1. All of the bookmarked mangas' chapter lists are empty of anything but previously downloaded chapters, and refuse to update no matter what.

    getUpdatedChaptersFromWebsite Error: ERR_FAILED https://mangadex.org/
    at Request.mjs:394
    at CallbacksRegistry.apply (callbacks-registry.ts:46)
    at remote.js:297
    at EventEmitter.<anonymous> (remote.js:277)
    at EventEmitter.emit (events.js:210)
    at Object.onMessage (init.ts:51)
    (anonymous) @ Manga.mjs:153
    Promise.catch (async)
    _getUpdatedChaptersFromWebsite @ Manga.mjs:151
    (anonymous) @ Manga.mjs:98
    Promise.then (async)
    getChapters @ Manga.mjs:94
    onSelectedMangaChanged @ chapters.html:244
    runObserverEffect @ property-effects.html:217
    runEffectsForProperty @ property-effects.html:162
    runEffects @ property-effects.html:128
    _propertiesChanged @ property-effects.html:1662
    _flushProperties @ properties-changed.html:341
    _flushProperties @ property-effects.html:1510
    __enableOrFlushClients @ property-effects.html:1555
    _flushClients @ property-effects.html:1530
    _propertiesChanged @ property-effects.html:1658
    _flushProperties @ properties-changed.html:341
    _flushProperties @ property-effects.html:1510
    _invalidateProperties @ property-effects.html:1482
    runNotifyEffects @ property-effects.html:261
    _propertiesChanged @ property-effects.html:1665
    _flushProperties @ properties-changed.html:341
    _flushProperties @ property-effects.html:1510
    _invalidateProperties @ property-effects.html:1482
    set @ property-effects.html:1817
    onMangaClicked @ mangas.html:263
    handler @ template-stamp.html:96
    (anonymous) @ templatize.html:149
    remote.js:224 Uncaught Error: Object has been destroyed
    at electron/js2c/browser_init.js:6863
    at IpcMainImpl.<anonymous> (electron/js2c/browser_init.js:6706)
    at IpcMainImpl.emit (events.js:210)
    at WebContents.<anonymous> (electron/js2c/browser_init.js:3930)
    at WebContents.emit (events.js:210)
    exception @ remote.js:224
    metaToValue @ remote.js:228
    descriptor.get @ remote.js:147
    (anonymous) @ Request.mjs:372
    apply @ callbacks-registry.ts:46
    (anonymous) @ remote.js:297
    (anonymous) @ remote.js:277
    emit @ events.js:210
    onMessage @ init.ts:51
    callbacks-registry.ts:46 Uncaught (in promise) Error: ERR_FAILED (-2) loading 'https://mangadex.org/'
    at rejectAndCleanup (electron/js2c/browser_init.js:6126)
    at WebContents.failListener (electron/js2c/browser_init.js:6136)
    at WebContents.emit (events.js:215)
    apply @ callbacks-registry.ts:46
    (anonymous) @ remote.js:297
    (anonymous) @ remote.js:277
    emit @ events.js:210
    onMessage @ init.ts:51
    Request.mjs:388 Uncaught (in promise) Error: Object has been destroyed
    at electron/js2c/browser_init.js:6863
    at IpcMainImpl.<anonymous> (electron/js2c/browser_init.js:6706)
    at IpcMainImpl.emit (events.js:210)
    at WebContents.<anonymous> (electron/js2c/browser_init.js:3930)
    at WebContents.emit (events.js:210)
  2. Copy-pasting the manga's link doesn't do anything to help.

    CLIPBOARD: https://mangadex.org/title/40aafcb8-2649-4f9c-94fe-a7b4ce9ebd9a/clinic-of-horrors Error: ERR_FAILED https://mangadex.org/
    at Request.mjs:394
    at CallbacksRegistry.apply (callbacks-registry.ts:46)
    at remote.js:297
    at EventEmitter.<anonymous> (remote.js:277)
    at EventEmitter.emit (events.js:210)
    at Object.onMessage (init.ts:51)
    (anonymous) @ ClipboardConnector.mjs:66
    async function (async)
    (anonymous) @ ClipboardConnector.mjs:64
    _getMangaList @ ClipboardConnector.mjs:48
    updateMangas @ ClipboardConnector.mjs:28
    onUpdateMangaListClick @ mangas.html:233
    onPasteClick @ mangas.html:340
    handler @ template-stamp.html:96
    remote.js:224 Uncaught Error: Object has been destroyed
    at electron/js2c/browser_init.js:6863
    at IpcMainImpl.<anonymous> (electron/js2c/browser_init.js:6706)
    at IpcMainImpl.emit (events.js:210)
    at WebContents.<anonymous> (electron/js2c/browser_init.js:3930)
    at WebContents.emit (events.js:210)
    exception @ remote.js:224
    metaToValue @ remote.js:228
    descriptor.get @ remote.js:147
    (anonymous) @ Request.mjs:372
    apply @ callbacks-registry.ts:46
    (anonymous) @ remote.js:297
    (anonymous) @ remote.js:277
    emit @ events.js:210
    onMessage @ init.ts:51
    callbacks-registry.ts:46 Uncaught (in promise) Error: ERR_FAILED (-2) loading 'https://mangadex.org/'
    at rejectAndCleanup (electron/js2c/browser_init.js:6126)
    at WebContents.failListener (electron/js2c/browser_init.js:6136)
    at WebContents.emit (events.js:215)
    apply @ callbacks-registry.ts:46
    (anonymous) @ remote.js:297
    (anonymous) @ remote.js:277
    emit @ events.js:210
    onMessage @ init.ts:51
    Request.mjs:388 Uncaught (in promise) Error: Object has been destroyed
    at electron/js2c/browser_init.js:6863
    at IpcMainImpl.<anonymous> (electron/js2c/browser_init.js:6706)
    at IpcMainImpl.emit (events.js:210)
    at WebContents.<anonymous> (electron/js2c/browser_init.js:3930)
    at WebContents.emit (events.js:210)
  3. And when I try to refresh the manga list itself, I receive "Failed to update manga list for MangaDex" as the error message, and the following log from the console.

    remote.js:224 Uncaught Error: Object has been destroyed
    at electron/js2c/browser_init.js:6863
    at IpcMainImpl.<anonymous> (electron/js2c/browser_init.js:6706)
    at IpcMainImpl.emit (events.js:210)
    at WebContents.<anonymous> (electron/js2c/browser_init.js:3930)
    at WebContents.emit (events.js:210)
    exception @ remote.js:224
    metaToValue @ remote.js:228
    descriptor.get @ remote.js:147
    (anonymous) @ Request.mjs:372
    apply @ callbacks-registry.ts:46
    (anonymous) @ remote.js:297
    (anonymous) @ remote.js:277
    emit @ events.js:210
    onMessage @ init.ts:51
    callbacks-registry.ts:46 Uncaught (in promise) Error: ERR_FAILED (-2) loading 'https://mangadex.org/'
    at rejectAndCleanup (electron/js2c/browser_init.js:6126)
    at WebContents.failListener (electron/js2c/browser_init.js:6136)
    at WebContents.emit (events.js:215)
    apply @ callbacks-registry.ts:46
    (anonymous) @ remote.js:297
    (anonymous) @ remote.js:277
    emit @ events.js:210
    onMessage @ init.ts:51
    Request.mjs:388 Uncaught (in promise) Error: Object has been destroyed
    at electron/js2c/browser_init.js:6863
    at IpcMainImpl.<anonymous> (electron/js2c/browser_init.js:6706)
    at IpcMainImpl.emit (events.js:210)
    at WebContents.<anonymous> (electron/js2c/browser_init.js:3930)
    at WebContents.emit (events.js:210)

Yes, I am using Nightly build. I even reinstalled it from the given link and reattempted all the above just to be sure (though I have no idea how a release from four years ago would be helpful).

To Reproduce

  1. Use MangaDex
  2. Try to open any title's chapter list
  3. Try to copy-paste a title's URL
  4. Try to update MangaDex's manga list
  5. All error messages have been provided in the problem's description above
MikeZeDev commented 4 months ago

(though I have no idea how a release from four years ago would be helpful).

Maybe reading would help? :D

image

Last update was 3 days ago. 😏

image

Anyway let me repeat: if you have "Failed to update manga list for MangaDex" then you probably ARENT using nightly as nightly fetch a cached mangalist from mangadex. Precisely to avoid your error message. The alternative is to set throttle to 5k in settings and wait a few hours.

https://github.com/manga-download/hakuneko/blob/1be496912cc0f219b3eab97dcd347fb2a6f63691/src/web/mjs/connectors/MangaDex.mjs#L72

As for finding nightly build link, its right here, when you filled the issue . image https://github.com/manga-download/hakuneko/releases

And i am sorry but pasting 'https://mangadex.org/title/40aafcb8-2649-4f9c-94fe-a7b4ce9ebd9a/clinic-of-horrors' actually works.

image

I don't understand what's going on but its on your end 🤷 . Gotta check if you can access to mangadex outside Hakuneko?

I am no magician, i use the same nightly than everyone, i got no problems at all.

MarqFJA87 commented 4 months ago

Maybe reading would help? :D

Last update was 3 days ago. 😏

Yeah, I did see that already. It's just so outside the norms that I'm used to that I still remained skeptical.

Anyway let me repeat: if you have "Failed to update manga list for MangaDex" then you probably ARENT using nightly as nightly fetch a cached mangalist from mangadex. Precisely to avoid your error message.

That's impossible. I even specifically found and installed it from the same place that you pointed out, just to eliminate that possibility. Ironically, in the process I realized that I already was using it, because when I went to save the installer in the usual folder for such, I found an older one with the exact same file name and size sitting there; but I went and saved over that and reinstalled the app anyway just to be 100% sure. Still, nothing changed.

The alternative is to set throttle to 5k in settings and wait a few hours.

If we're talking about throttling the API requests, I have it set to 10,000 since before I opened this thread, and it's still not working when I opened the app just now.

I don't understand what's going on but its on your end 🤷 . Gotta check if you can access to mangadex outside Hakuneko?

Yes, I can access it just fine on my desktop browser. Why do you think I checked the third item in the list I was presented with when I was writing the OP? I'm not like the other guy that reported a problem with this site yesterday; I made a point of going through every item in the list, in the hope that it could possibly solve the issue.

FWIW, I seem to have no problem connecting to other sites; Webtoon is accessible to me, for one.

I am no magician, i use the same nightly than everyone, i got no problems at all.

I really wish I knew what else I could tell you that may help identify the problem. Do the error messages I've shown you at least give any hints as to what is happening?

And before anyone asks, I never had to fill in the app's proxy rules/authentication entries with the connection that I'm using, so I'm doubtful that's the cause.

MikeZeDev commented 4 months ago

Yes, I can access it just fine on my desktop browser. Why do you think I checked the third item in the list I was presented with when I was writing the OP? I'm not like the other guy that reported a problem with this site yesterday; I made a point of going through every item in the list, in the hope that it could possibly solve the issue.

Sorry, its that everyone is checking boxes without reading i had to make sure, its not against you 😔 Its standard process to make sure you did things right.

If we're talking about throttling the API requests, I have it set to 10,000 since before I opened this thread, and it's still not working when I opened the app just now.

Its a specific Mangadex throttling option, but perhaps you tried it already. Everyone who tired before said 5k was fine. It takes hours but it works in the end. 10000 is overkill o_o

The errors you got are weird. Very weird. I was gonna ask the obvious but if you can access to other websites inside Hakuneko there is no reasons why only mangadex would cause a problem.

That's impossible. I even specifically found and installed it from the same place that you pointed out, just to eliminate that possibility. Ironically, in the process I realized that I already was using it, because when I went to save the installer in the usual folder for such, I found an older one with the exact same file name and size sitting there; but I went and saved over that and reinstalled the app anyway just to be 100% sure. Still, nothing changed.

Weird. The code doesnt lie.

I would have said the obvious, like, try to

Can you try something?

Press F12. Look into the network tab and check which request is sent when you try to update manga list, and eventually if you got an http error.

I also saw that parsing the JSON we provide is using a freaking huge amount of memory but on today systems it wouldnt be a problem.

MarqFJA87 commented 4 months ago

Well, it was at 3000 originally (I think I had problems with MD getting triggered by too many requests), and I bumped it to 5000 in ultimately vain hope that it would work, then I decided to just escalate to 10K with the idea of gradually downgrading from there if it does the trick (it didn't, obviously). And IINM it's measured in microseconds, so setting it to 10K amounts to just 10 seconds. Is that really overkill, at least for the sake of seeing if it helps with the problem?

Anyway, I did as I you asked. This is what I got.

Added Network Seeds '[ https://uploads.mangadex.org/data/, https://cache.ayaya.red/mdah/data/, https://cache.ayaya.red/mdah/data/ ]' to MangaDex
remote.js:224 Uncaught Error: Object has been destroyed
    at electron/js2c/browser_init.js:6863
    at IpcMainImpl.<anonymous> (electron/js2c/browser_init.js:6706)
    at IpcMainImpl.emit (events.js:210)
    at WebContents.<anonymous> (electron/js2c/browser_init.js:3930)
    at WebContents.emit (events.js:210)
exception @ remote.js:224
metaToValue @ remote.js:228
descriptor.get @ remote.js:147
(anonymous) @ Request.mjs:372
apply @ callbacks-registry.ts:46
(anonymous) @ remote.js:297
(anonymous) @ remote.js:277
emit @ events.js:210
onMessage @ init.ts:51
callbacks-registry.ts:46 Uncaught (in promise) Error: ERR_FAILED (-2) loading 'https://mangadex.org/'
    at rejectAndCleanup (electron/js2c/browser_init.js:6126)
    at WebContents.failListener (electron/js2c/browser_init.js:6136)
    at WebContents.emit (events.js:215)
apply @ callbacks-registry.ts:46
(anonymous) @ remote.js:297
(anonymous) @ remote.js:277
emit @ events.js:210
onMessage @ init.ts:51
Request.mjs:388 Uncaught (in promise) Error: Object has been destroyed
    at electron/js2c/browser_init.js:6863
    at IpcMainImpl.<anonymous> (electron/js2c/browser_init.js:6706)
    at IpcMainImpl.emit (events.js:210)
    at WebContents.<anonymous> (electron/js2c/browser_init.js:3930)
    at WebContents.emit (events.js:210)
(anonymous) @ Request.mjs:388
async function (async)
(anonymous) @ Request.mjs:376
apply @ callbacks-registry.ts:46
(anonymous) @ remote.js:297
(anonymous) @ remote.js:277
emit @ events.js:210
onMessage @ init.ts:51

I can't tell if there's an HTTP error there. Does any of it help?

MikeZeDev commented 4 months ago

I was talking about Network tab

image

MarqFJA87 commented 4 months ago

O_O Okay, I am missing both of the "boxes" in the middle. This is what it looks like to me.

image

MarqFJA87 commented 4 months ago

@MikeZeDev Okay, I just tried one last thing that I hadn't thought of before until Pixiv suddenly went down for me (and numerous other users around the world, but strangely not for others) a few hours ago. Namely, I activated ProtonVPN to spoof my geolocation.

Lo and behold, it worked. I've tested HakuNeko with and without the VPN masking, and concluded that whatever the problem is, it seems to be tied to the regional location from which HakuNeko is accessing the site (in my specific case, I'm connecting from Arabia; ProtonVPN spoofed it to look like I'm in Europe instead). Of course, like I said earlier, this issue doesn't happen at all on desktop.

Update: GoodbyeDPI is also working as a solution after I added the site's domain to the blacklist, before deactivating and then reactivating the app.

MikeZeDev commented 4 months ago

There is no difference between Hakuneko and your regular browser when it comes to use your internet connexion afaik.

And i didnt mention the VPN solution because you said mangadex was working in your browser.

Anyway, glad you got it working. And take care of yourself, if you got this kind of censorship its never good news.

MarqFJA87 commented 4 months ago

Honestly, I don't think it's censorship per se (especially because pages censored by the local media watchdogs generate a very distinct "this site/page is blocked" message page that I've more or less memorized by now), since it seems to suspiciously coincide with MangaDex's maintenance; I'm pretty sure HakuNeko was working fine earlier that day.

Anyway, thanks for at least trying to help despite being unable to reproduce the bug on your end.