keiyoushi / extensions-source

Source code of extensions for Tachiyomi/Mihon and variants.
https://keiyoushi.github.io/
Apache License 2.0
2.21k stars 491 forks source link

[Mangahere] java.lang.IllegalStateException: No language for id regex found. Supported languages are: [js] #6221

Open gdamoreira opened 11 hours ago

gdamoreira commented 11 hours ago

Source information

Mangahere

Source language

English

Steps to reproduce

I just had a manga configured: Manga name: Nano Machine Source: https://www.mangahere.cc/manga/nano_machine/c234/1.html#ipg1 After trying to open a chapter: Screenshot 2024-11-22 at 18 00 55

Expected behavior

To open the chapter with all images

Actual behavior

Shows error and don't list the images

Mihon/Tachiyomi version

Suwayomi v1.1.1-r1633

Android version

N/A

Other details

2024-11-22 16:55:49.416 [DefaultDispatcher-worker-7] WARN  io.javalin.Javalin - Uncaught exception
app.cash.quickjs.QuickJsException: java.lang.IllegalStateException: No language for id regex found. Supported languages are: [js]
    at app.cash.quickjs.QuickJs.evaluate(QuickJs.java:35)
    at eu.kanade.tachiyomi.extension.en.mangahere.Mangahere.extractSecretKey(Unknown Source)
    at eu.kanade.tachiyomi.extension.en.mangahere.Mangahere.pageListParse(Unknown Source)
    at eu.kanade.tachiyomi.source.online.ParsedHttpSource.pageListParse(ParsedHttpSource.kt:177)
    at eu.kanade.tachiyomi.source.online.HttpSource.fetchPageList$lambda$16(HttpSource.kt:314)
    at eu.kanade.tachiyomi.source.online.HttpSource.fetchPageList$lambda$17(HttpSource.kt:313)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69)
    at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:101)
    at eu.kanade.tachiyomi.network.OkHttpExtensionsKt$asObservable$1$requestArbiter$1.request(OkHttpExtensions.kt:39)
    at rx.Subscriber.setProducer(Subscriber.java:211)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102)
    at rx.Subscriber.setProducer(Subscriber.java:205)
    at eu.kanade.tachiyomi.network.OkHttpExtensionsKt.asObservable$lambda$0(OkHttpExtensions.kt:57)
    at rx.Observable.unsafeSubscribe(Observable.java:10327)
    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
    at rx.Observable.unsafeSubscribe(Observable.java:10327)
    at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:48)
    at rx.internal.operators.OnSubscribeMap.call(OnSubscribeMap.java:33)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    at rx.Observable.subscribe(Observable.java:10423)
    at rx.Observable.subscribe(Observable.java:10390)
    at suwayomi.tachidesk.manga.impl.util.lang.RxCoroutineBridgeKt.awaitOne(RxCoroutineBridge.kt:28)
    at suwayomi.tachidesk.manga.impl.util.lang.RxCoroutineBridgeKt.awaitSingle(RxCoroutineBridge.kt:22)
    at eu.kanade.tachiyomi.source.online.HttpSource.getPageList$suspendImpl(HttpSource.kt:306)
    at eu.kanade.tachiyomi.source.online.HttpSource.getPageList(HttpSource.kt)
    at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownload.fetchPageList(ChapterForDownload.kt:116)
    at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownload.asDownloadReady(ChapterForDownload.kt:73)
    at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownloadKt.getChapterDownloadReady(ChapterForDownload.kt:37)
    at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownloadKt.getChapterDownloadReady$default(ChapterForDownload.kt:30)
    at suwayomi.tachidesk.manga.impl.chapter.ChapterForDownloadKt.getChapterDownloadReadyByIndex(ChapterForDownload.kt:45)
    at suwayomi.tachidesk.manga.controller.MangaController$chapterRetrieve$2$1$1.invokeSuspend(MangaController.kt:316)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
    at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:113)
    at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:589)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:823)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:720)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:707)
Caused by: org.graalvm.polyglot.PolyglotException: java.lang.IllegalStateException: No language for id regex found. Supported languages are: [js]
    at com.oracle.truffle.polyglot.PolyglotEngineException.illegalState(PolyglotEngineException.java:133)
    at com.oracle.truffle.polyglot.PolyglotEngineImpl.findLanguage(PolyglotEngineImpl.java:909)
    at com.oracle.truffle.polyglot.EngineAccessor$EngineImpl.parseForLanguage(EngineAccessor.java:282)
    at com.oracle.truffle.api.TruffleLanguage$Env.parseInternal(TruffleLanguage.java:2604)
    at com.oracle.truffle.js.runtime.RegexCompilerInterface.validate(RegexCompilerInterface.java:109)
    at com.oracle.truffle.js.parser.GraalJSParserHelper$1.validateLexerToken(GraalJSParserHelper.java:168)
    at com.oracle.js.parser.AbstractParser.getLiteral(AbstractParser.java:572)
    at com.oracle.js.parser.Parser.primaryExpression(Parser.java:4040)
    at com.oracle.js.parser.Parser.memberExpression(Parser.java:4994)
    at com.oracle.js.parser.Parser.leftHandSideExpression(Parser.java:4692)
    at com.oracle.js.parser.Parser.unaryExpression(Parser.java:5958)
    at com.oracle.js.parser.Parser.expression(Parser.java:6268)
    at com.oracle.js.parser.Parser.conditionalExpression(Parser.java:6428)
    at com.oracle.js.parser.Parser.assignmentExpression(Parser.java:6374)
    at com.oracle.js.parser.Parser.argumentList(Parser.java:5199)
    at com.oracle.js.parser.Parser.leftHandSideExpression(Parser.java:4696)
    at com.oracle.js.parser.Parser.unaryExpression(Parser.java:5958)
    at com.oracle.js.parser.Parser.unaryExpression(Parser.java:5934)
    at com.oracle.js.parser.Parser.expression(Parser.java:6268)
    at com.oracle.js.parser.Parser.conditionalExpression(Parser.java:6428)
    at com.oracle.js.parser.Parser.assignmentExpression(Parser.java:6374)
    at com.oracle.js.parser.Parser.expression(Parser.java:6115)
    at com.oracle.js.parser.Parser.expression(Parser.java:6107)
    at com.oracle.js.parser.Parser.expression(Parser.java:6111)
    at com.oracle.js.parser.Parser.ifStatement(Parser.java:2895)
    at com.oracle.js.parser.Parser.statement(Parser.java:1466)
    at com.oracle.js.parser.Parser.statement(Parser.java:1444)
    at com.oracle.js.parser.Parser.sourceElements(Parser.java:1301)
    at com.oracle.js.parser.Parser.functionBody(Parser.java:5727)
    at com.oracle.js.parser.Parser.functionDeclarationOrExpression(Parser.java:5356)
    at com.oracle.js.parser.Parser.functionExpression(Parser.java:5263)
    at com.oracle.js.parser.Parser.memberExpression(Parser.java:4938)
    at com.oracle.js.parser.Parser.leftHandSideExpression(Parser.java:4692)
    at com.oracle.js.parser.Parser.unaryExpression(Parser.java:5958)
    at com.oracle.js.parser.Parser.expression(Parser.java:6268)
    at com.oracle.js.parser.Parser.conditionalExpression(Parser.java:6428)
    at com.oracle.js.parser.Parser.assignmentExpression(Parser.java:6374)
    at com.oracle.js.parser.Parser.parenthesizedExpressionAndArrowParameterList(Parser.java:6173)
    at com.oracle.js.parser.Parser.primaryExpression(Parser.java:4019)
    at com.oracle.js.parser.Parser.memberExpression(Parser.java:4994)
    at com.oracle.js.parser.Parser.leftHandSideExpression(Parser.java:4692)
    at com.oracle.js.parser.Parser.unaryExpression(Parser.java:5958)
    at com.oracle.js.parser.Parser.expression(Parser.java:6268)
    at com.oracle.js.parser.Parser.conditionalExpression(Parser.java:6428)
    at com.oracle.js.parser.Parser.assignmentExpression(Parser.java:6374)
    at com.oracle.js.parser.Parser.expression(Parser.java:6115)
    at com.oracle.js.parser.Parser.expression(Parser.java:6107)
    at com.oracle.js.parser.Parser.expression(Parser.java:6111)
    at com.oracle.js.parser.Parser.expressionStatement(Parser.java:2866)
    at com.oracle.js.parser.Parser.statement(Parser.java:1583)
    at com.oracle.js.parser.Parser.statement(Parser.java:1444)
    at com.oracle.js.parser.Parser.sourceElements(Parser.java:1301)
    at com.oracle.js.parser.Parser.program(Parser.java:1188)
    at com.oracle.js.parser.Parser.parse(Parser.java:536)
    at com.oracle.js.parser.Parser.parse(Parser.java:447)
    at com.oracle.truffle.js.parser.GraalJSParserHelper.parseSource(GraalJSParserHelper.java:132)
    at com.oracle.truffle.js.parser.GraalJSParserHelper.parseScript(GraalJSParserHelper.java:91)
    at com.oracle.truffle.js.parser.JavaScriptTranslator.translateScript(JavaScriptTranslator.java:96)
    at com.oracle.truffle.js.parser.JavaScriptTranslator.translateScript(JavaScriptTranslator.java:78)
    at com.oracle.truffle.js.parser.GraalJSEvaluator.parseScript(GraalJSEvaluator.java:252)
    at com.oracle.truffle.js.lang.JavaScriptLanguage.parseScript(JavaScriptLanguage.java:314)
    at com.oracle.truffle.js.lang.JavaScriptLanguage.parse(JavaScriptLanguage.java:216)
    at com.oracle.truffle.api.TruffleLanguage$ParsingRequest.parse(TruffleLanguage.java:1200)
    at com.oracle.truffle.api.TruffleLanguage.parse(TruffleLanguage.java:1594)
    at com.oracle.truffle.api.LanguageAccessor$LanguageImpl.parse(LanguageAccessor.java:299)
    at com.oracle.truffle.polyglot.PolyglotSourceCache.parseImpl(PolyglotSourceCache.java:108)
    at com.oracle.truffle.polyglot.PolyglotSourceCache$WeakCache.lookup(PolyglotSourceCache.java:275)
    at com.oracle.truffle.polyglot.PolyglotSourceCache.parseCached(PolyglotSourceCache.java:87)
    at com.oracle.truffle.polyglot.PolyglotLanguageContext.parseCached(PolyglotLanguageContext.java:365)
    at com.oracle.truffle.polyglot.PolyglotContextImpl.eval(PolyglotContextImpl.java:1698)
    at com.oracle.truffle.polyglot.PolyglotContextDispatch.eval(PolyglotContextDispatch.java:60)
    at org.graalvm.polyglot.Context.eval(Context.java:402)
    at org.graalvm.polyglot.Context.eval(Context.java:428)
    at app.cash.quickjs.QuickJs.evaluate(QuickJs.java:32)
    ... 40 common frames omitted
Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: okhttp3.Response.class
    at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:118)
    at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:73)
    ... 34 common frames omitted

Acknowledgements


Add a :+1: reaction to issues you find important.

vetleledaal commented 10 hours ago

This is an issue that only occurs in Suwayomi.

Tested with:

Mangahere (en.mangahere) 1.4.21
Onepunch Man, Ch.001 - One Punch

Mihon 0.17.0-7007 (dev, 36d5ee076, 8, 2024-11-20T11:53:32Z) - OK
Suwayomi-Server Preview v1.1.1-r1633 - java.lang.IllegalStateException: No language for id regex found. Supported languages are: [js]

The error message as shown is from one of these libraries (found via code search):

com.oracle.truffle.api.vm
com.oracle.truffle.espresso
com.oracle.truffle.polyglot
gdamoreira commented 10 hours ago

Hi @vetleledaal thanks for the clarification.

Just tried rollback the version of Suwayomi to v1.1.1-r1599 and now it works.

For my understading they changed the linux image to a different source. It may be not a problem in the extension, but in the Suwayomi server itself, I'll create another bug issue there and track a possible solution from them.