Giter Site home page Giter Site logo

suwayomi / suwayomi-server Goto Github PK

View Code? Open in Web Editor NEW
3.8K 52.0 197.0 46.29 MB

A rewrite of Tachiyomi for the Desktop

License: Mozilla Public License 2.0

Kotlin 32.86% Java 66.51% HTML 0.16% Shell 0.37% PowerShell 0.10% Batchfile 0.01% Makefile 0.01%
tachiyomi manga-reader mangareader tachidesk tachidesk-server manga desktop manga-downloader kotlin javalin

suwayomi-server's People

Contributors

akabhirav avatar animeavi avatar arbuilder avatar ariamoradi avatar brianmakesthings avatar cabo40 avatar chancez avatar dattatreyareddy avatar ff2400t avatar forgenn avatar fumovite avatar kolbyml avatar kraxen72 avatar mahor1221 avatar manchewable avatar mangacrushteam avatar marcoebbinghaus avatar martinek avatar ntbm avatar ratcornu avatar robonau avatar schroda avatar she11sh0cked avatar syer10 avatar tachimanga avatar txtsd avatar vedantmgoyal9 avatar voltrare avatar vuhe avatar xhzhe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

suwayomi-server's Issues

[Feature Request] Pre-downloading chapters

What feature should be added to Tachidesk?

Tachiyomi allows for scanning source comic updates and downloading manga series in one click. Bonus points if the "animal version/mirror duplicates" issues are solved.

Why/Project's Benefit/Existing Problem

In case someone were to go offline from WiFi, this would have been a god-send.

[Bug] Inconsistent image sizes, and lack of dual-page reads

Device information

  • Tachidesk version: (Example: v0.2.7-r312-win32)
  • Server/Client Operating System: Win10
  • Server JVM version: bundled with win32
  • Client Web Browser: Brave browser

Steps to reproduce

  1. Download MangaPark
  2. Open "Strawberry Panic"
  3. Pick a chapter

Expected behavior

Scrolling images with dynamic navigation should be consistent

Actual behavior

None of the scanned pages is the same size, leading to misalignment

Other details

It would be useful if the screen can display two pages at once in a consistent manner

Edge counter-case: Images that are two pages in one (many scan sites have them), and long art strips from webtoons and tapas.io

[Bug][webUI] Manga grid is unusable when covers are missing


Device information

  • Tachidesk version: latest preview
  • Server Operating System: Ubuntu 20.04 wsl
  • Server Desktop Environment: Docker
  • Server JVM version: openjdk 16
  • Client Operating System: win 10
  • Client Web Browser: Google Chrome latest

Expected behavior

In case covers are missing manga grid shouldn’t become unusable. Maybe some placeholder until cover image are available.
685FF513-1EBA-47E2-82F7-40134C8AC247

[Feature Request] Able to read local files and change save locations

  1. Is it possible to implement function to read local files from PC? (possible formats jpg, png, zip, cbz similar to tachiyomi from a local source option)

Because I use tachiyomi a lot, I could just copy the downloads I make in my phone to PC or vice versa rather than downloading multiple times.

  1. Currently, if I run tachidesk, the images of each and every single manga I browse or read from whatever I search gets stored at my C drive. Its a huge problem for me because there is hardly any space in it. Possible solutions of what I think would be best:
    a. Option to change the directory.
    b. Option to periodically clean sweep the thumbnails and other folders.

  2. (This one is out of curiosity) Could you not open Tachidesk as a separate application window?

I get that you are trying with link to a browser. Like maybe open up Tachidesk as a different profile (I use multiple chrome profiles so they open up separate but not sure of other browsers) but thanks for the hard work so far you all put into!!

[Bug] Unable to read manga.


Device information

  • Tachidesk version: (Tachidesk-v0.2.7-r312-win32)
  • Server Operating System: (Windows 10)
  • Server Desktop Environment: N/A or (None)
  • Server JVM version: bundled with win32 or (bundled with win32)
  • Client Operating System:
  • Client Web Browser: ( Google Chrome Version 89.0.4389.114 (Official Build) (64-bit))

Steps to reproduce

  1. First Step
    Click any manga from any source
  2. Second Step
    Try reading

Expected behavior

It should load and let me read...I presume.

Actual behavior

It either goes to a completely white screen or infinitely loads the manga.

Other details

I've tried everything listed IIRC and it has happened with the previous version as well, I have never had it work so last time I thought it would be fixed in a newer version.

[Meta] Extensions known that don't work

  • Komga -> needs support for extension SharedPreferences
  • TsukiMangás(PT) -> needs support for extension SharedPreferences
  • LANraragi -> needs support for extension SharedPreferences
  • Cubari -> needs expansion of AndroidCompat for android.os.Looper.getMainLooper ref: eu.kanade.tachiyomi.extension.all.cubari.RemoteStorageUtils.handler
  • Manga Plus -> needs investigation

[Feature Request] <When back button is hit, the page stays at scrolled position instead of top of page.>

PLEASE READ THIS

I acknowledge that:

  • I have updated to the latest version of the app.
  • I have tried the troubleshooting guide described in README.md
  • If this is a request for adding/changing an extension it should be brought up to Tachiyomi: https://github.com/tachiyomiorg/tachiyomi-extensions/issues/new/choose
  • If this is an issue with some extension not working properly, It does work in Tachiyomi application as intended.
  • I have searched the existing issues and this is a new ticket NOT a duplicate or related to another open issue
  • I will fill out the title and the information in this template

Note that the issue will be automatically closed if you do not fill out the title or requested information.

DELETE THIS SECTION IF YOU HAVE READ AND ACKNOWLEDGED IT


What feature should be added to Tachidesk?

Explain What the feature is and how it should work in detail

Why/Project's Benefit/Existing Problem

Explain why this should be added

[Feature Request] Save chapter as CBZ

What feature should be added to Tachidesk?

Explain What the feature is and how it should work in detail

Could you add an option save chapter as cbz ?

Why/Project's Benefit/Existing Problem

Explain why this should be added

Saving as CBZ will save place when downloading chaters

[Feature Request] Api should have manga genre as a json array

What feature should be added to Tachidesk?

Change the genre from a string to a list of strings.

Why/Project's Benefit/Existing Problem

In the API currently the genre is shared as a string, with each genre separated by a ", ", this can be handled by the API to allow easier usage in the clients.

Milestone #1: Absolutely Essential features

super early state

  • prototyping ability to run extensions
  • back-end server project
  • react UI project

essential feature set

  • extensions page
    • list extensions
      • API
      • UI
      • UI functionality
    • install extensions
      • API
      • UI
      • UI functionality
  • source list page
    • API
    • UI
    • UI functionality
  • popular/latest mangas page
    • API
    • UI
    • UI functionality
      • infinite scrolling to fetch pages beyond 1
  • manga page
    • API
      • manga details
      • chapter list
    • UI
    • UI functionality
  • chapter page reader
    • API
    • pages reader
      • UI
      • UI functionality
  • manga search
    • API
    • UI

optional/quality of life feature set

  • extensions page
    • offline fast loading
      • API
      • UI functionality
    • online slow loading
      • API
      • UI functionality
    • loading animation
      • UI
      • UI functionality
    • group by language
      • UI
      • UI functionality
  • chapter reader page
    • vertical all pages reader
      • UI
      • UI functionality

Replacing "wait" with a proper loading icon

The waiting screen is with only the word "wait" instead of specifying what you are waiting for, which is very uncanny.
It is better to give clearer hints as to what it is waiting for, or if not, a loading icon e.g. spinner.

[Feature Request] Bundle download of Plugins

PLEASE READ THIS

What feature should be added to Tachidesk?

Since https://github.com/tachiyomiorg/tachiyomi-extensions/issues/5672 is in progress, it would be useful if one can download multiple extensions based on a keyword (e.g. English, anything that does not have "Manhua", webcomics)...

Why/Project's Benefit/Existing Problem

As a composite problem to https://github.com/Suwayomi/Tachidesk/issues/27, it would be useful to search niche manga through this method. If Tachiyomi is removing this feature due to bad implementations, Tachidesk can make this concept viable again.

[Feature Request] <When back button is hit, the page stays at scrolled position instead of top of page.>

PLEASE READ THIS

I acknowledge that:

  • I have updated to the latest version of the app.
  • I have tried the troubleshooting guide described in README.md
  • If this is a request for adding/changing an extension it should be brought up to Tachiyomi: https://github.com/tachiyomiorg/tachiyomi-extensions/issues/new/choose
  • If this is an issue with some extension not working properly, It does work in Tachiyomi application as intended.
  • I have searched the existing issues and this is a new ticket NOT a duplicate or related to another open issue
  • I will fill out the title and the information in this template

Note that the issue will be automatically closed if you do not fill out the title or requested information.

DELETE THIS SECTION IF YOU HAVE READ AND ACKNOWLEDGED IT


What feature should be added to Tachidesk?

Explain What the feature is and how it should work in detail

Why/Project's Benefit/Existing Problem

Explain why this should be added

[Feature Request] <Load all images at once>

I mean turn off lazy load in reader and load all images at once. Because some sources are very slow and when scroll down to images position to load, it took a long time to wait , it would be great if images were preloaded while reading instead of scrolling down to it to load, like other manga reading websites, all images are loaded in 1 page load !!

[Bug] <short description>

PLEASE READ THIS

I acknowledge that:

  • I have updated to the latest version of the app.
  • I have tried the troubleshooting guide described in README.md
  • If this is a request for adding/changing an extension it should be brought up to Tachiyomi: https://github.com/tachiyomiorg/tachiyomi-extensions/issues/new/choose
  • If this is an issue with some extension not working properly, It does work inside Tachiyomi as intended.
  • I have searched the existing issues and this is a new ticket NOT a duplicate or related to another open issue
  • I will fill out the title and the information in this template

Note that the issue will be automatically closed if you do not fill out the title or requested information.

DELETE THIS SECTION IF YOU HAVE READ AND ACKNOWLEDGED IT


Device information

  • Tachidesk version: v0.2.7-r312-win32
  • Server Operating System: the latest version of Windows 10
  • Server Desktop Environment: N/A
  • Server JVM version: bundled with win32
  • Client Operating System: Same
  • Client Web Browser: lastest version of Brave browser

Steps to reproduce

  1. Download MangaPark
  2. Open "Strawberry Panic"
  3. Pick a chapter

Expected behavior

Scrolling images with dynamic navigation should be consistent

Actual behavior

None of the scanned pages is the same size, leading to misalignment

Other details

It would be useful if the screen can display two pages at once in a consistent manner

Edge counter-case: Images that are two pages in one (many scan sites have them), and long art strips from webtoons and tapas.io

Error when cloning repository

I received this error when trying to clone the repo branch of this repository:

This repository is over its data quota. Account responsible for LFS bandwidth should purchase more data packs to restore access.

I also cannot download the precompiled releases through GitHub. It just downloads a corrupted file.
Are there any other ways for me to mitigate this problem?

[Bug] List yarn as a dependency

I acknowledge that:

  • I have updated to the latest version of the app.
  • I have tried the troubleshooting guide described in README.md
  • If this is a request for adding/changing an extension it should be brought up to Tachiyomi: https://github.com/tachiyomiorg/tachiyomi-extensions/issues/new/choose
  • If this is an issue with some extension not working properly, It does work inside Tachiyomi as intended.
  • I have searched the existing issues and this is a new ticket NOT a duplicate or related to another open issue
  • I will fill out the title and the information in this template

Yarn should be listed as a dependency in the README, as well as having good error logging.

Device information

  • Tachidesk version: latest - N/A
  • Server Operating System: N/A
  • Server JVM version: N/A
  • Client Operating System: N/A
  • Client Web Browser: N/A

Steps to reproduce

  1. Attempt gradle build without yarn installed.
  2. No clear error message.

Expected behavior

There are clear messages in the error log telling you that you must install yarn + yarn is listed as a dependency in the README.

Actual behavior

The error logs aren't clear on what the issue is + yarn is not listed as a dependency in the README.
If you don't feel like fixing the issue with the error logging, at least list it in the README.

Other details

Here's some code that I use in one of my projects that depends on git being installed:
(It's written for a kotlin gradle buildscript, which is what you use. exit code 127 is the one you care about.)

fun Project.getGitHash(): String {
    val stdout = ByteArrayOutputStream()
    val result = exec {
        isIgnoreExitValue = true
        commandLine = mutableListOf("git", "rev-parse", "--short", "HEAD")
        standardOutput = stdout
    }
    when (result.exitValue) {
        128 -> {
            project.logger.error("You must git clone the repository. You cannot build from a zip/tarball of the sources.")
            result.rethrowFailure().assertNormalExitValue()
        }
        127 -> {
            project.logger.error("Could not find git executable. Please install git. https://git-scm.com/downloads")
            result.rethrowFailure().assertNormalExitValue()
        }
        0 -> { // do nothing
        }
        else -> {
            project.logger.error("An error may or may not have occurred. The exit code was not zero.")
            result.rethrowFailure().assertNormalExitValue()
        }
    }
    return stdout.toString().trim()
}

[Feature Request] Requesting page 0 for popular/latest should throw an error

What feature should be added to Tachidesk?

When requesting page 0 of popular/latest, it should throw a error

Why/Project's Benefit/Existing Problem

Page 0 is a invalid index in the Tachiyomi api, depending on the source, it can error or duplicate results to the next page. I feel the api should throw an error to the client if they try to request this page to allow for easier identification to what the client did wrong

New builds throws exception in ubuntu

using below command on ubuntu 20.04 (WSL2) gives Exception in thread "main" java.io.IOException: Current OS and desktop configuration does not support browsing for a URL

java -jar Tachidesk-v0.2.0-r184.jar

Screenshot 2021-02-13 233717

Earlier non windows specific build were working on ubuntu

[Bug] Test

Device information

  • Tachidesk version: (Example: v0.2.3-r255-win32)
  • Server Operating System: (Example: Ubuntu 20.04)
  • Server JVM version: bundled with win32 or (Example: Java 8 Update 281 or OpenJDK 8u281)
  • Client Operating System:
  • Client Web Browser: (Example: Google Chrome 89.0.4389.82)

Steps to reproduce

  1. First Step
  2. Second Step

Expected behavior

Describe what should have happened

Actual behavior

Describe what happens instead

Other details

Describe additional details If necessary

[Feature Request] Horizontal reader mode

What feature should be added to Tachidesk?

The reader should scroll left to right or right to left

Why/Project's Benefit/Existing Problem

A planned feature from Tachiyomi

[Feature Request] Tachidesk Advanced Backup Support

What feature should be added to Tachidesk?

currently when we click backup it goes to download directory only (from browser). It would be nice to have auto backup with configuration settings like backup location and frequency in the ui.

Features -

  • make an end point that takes the parameters for automatic backup like backup interval, backup save location, maximum backups ( ex only have 1, 2 or 3 backups and delete older backup when new backup is created) and also make the front end code that sets those parameters and also call it from the front end

  • warn the user that if the app is not running, it won't backups anything

  • develop a feature so the app can run as a service or on startup so the user just has to click on the tray icon to open the app at any time

Why/Project's Benefit/Existing Problem

In case we forgot to create manual backup frequently, we have auto backup that can be restored later if something goes wrong

[Bug] GTK errors when running + no window opens

I acknowledge that:

  • I have updated to the latest version of the app.
  • I have tried the troubleshooting guide described in README.md
  • If this is a request for adding/changing an extension it should be brought up to Tachiyomi: https://github.com/tachiyomiorg/tachiyomi-extensions/issues/new/choose
  • If this is an issue with some extension not working properly, It does work inside Tachiyomi as intended.
  • I have searched the existing issues and this is a new ticket NOT a duplicate or related to another open issue
  • I will fill out the title and the information in this template

Yarn should be listed as a dependency in the README, as well as having good error logging.

Device information

  • Tachidesk version: v0.2.5-r256-jar (edit: just confirmed this still occurs on v0.2.6-r273-jar).
  • Server Operating System: Arch Linux 5.11.8-arch1-1
  • Server JVM version: openjdk 11.0.10 2021-01-19, OpenJDK Runtime Environment (build 11.0.10+9)
  • Client Operating System: Arch Linux 5.11.8-arch1-1
  • Client Web Browser: Chromium 89.0.4389.90 Arch Linux (Using the Ungoogled Chromium fork of Chromium)

Steps to reproduce

  1. Download & Run jar
  2. GTK Errors & other stuff is logged. No windows open.
  3. Control + C to exit.

Expected behavior

The application actually works

Actual behavior

It doesn't.

Other details

Here's the log:

$ java -jar Tachidesk-v0.2.5-r256.jar 
[main] INFO Exposed - Preparing create tables statements took 30ms
[main] INFO Exposed - Executing create tables statements took 3ms
[main] INFO Exposed - Extracting table columns took 73ms
[main] INFO Exposed - Extracting column constraints took 15ms
[main] INFO Exposed - Preparing alter table statements took 89ms
[main] INFO Exposed - Executing alter table statements took 0ms
[main] WARN Exposed - Indices exist in database and not mapped in code on class 'CHAPTER':
[main] WARN Exposed - 		Index 'FK_CHAPTER_MANGA_ID_INDEX_5' for 'CHAPTER' on columns ir.armor.tachidesk.database.table.ChapterTable.manga
[main] WARN Exposed - Indices exist in database and not mapped in code on class 'SOURCE':
[main] WARN Exposed - 		Index 'FK_SOURCE_EXTENSION_ID_INDEX_9' for 'SOURCE' on columns ir.armor.tachidesk.database.table.SourceTable.extension
[main] WARN Exposed - Indices exist in database and not mapped in code on class 'PAGE':
[main] WARN Exposed - 		Index 'FK_PAGE_CHAPTER_ID_INDEX_2' for 'PAGE' on columns ir.armor.tachidesk.database.table.PageTable.chapter
[main] WARN Exposed - Indices exist in database and not mapped in code on class 'CATEGORYMANGA':
[main] WARN Exposed - 		Index 'FK_CATEGORYMANGA_CATEGORY_ID_INDEX_C' for 'CATEGORYMANGA' on columns ir.armor.tachidesk.database.table.CategoryMangaTable.category
[main] WARN Exposed - 		Index 'FK_CATEGORYMANGA_MANGA_ID_INDEX_C' for 'CATEGORYMANGA' on columns ir.armor.tachidesk.database.table.CategoryMangaTable.manga
[main] INFO Exposed - Checking mapping consistence took 14ms
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by dorkbox.util.Swt (file:/home/solonovamax/Downloads/Tachidesk-v0.2.5-r256.jar) to method java.lang.ClassLoader.findLoadedClass(java.lang.String)
WARNING: Please consider reporting this to the maintainers of dorkbox.util.Swt
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[main] WARN dorkbox.util.jna.linux.GtkTheme - Unable to get tray image size. Using default.

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.182: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): Gdk-CRITICAL **: 12:13:43.189: gdk_x11_get_xatom_by_name_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

(java:343959): dbind-WARNING **: 12:13:43.293: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-6kGghwTyak: No such file or directory
^C^C^C

[Bug] Can’t uninstall extension after viewing manga page

can't uninstall an extension after viewing manga page [http://localhost:4567/manga/1/ http://localhost:4567/manga/2/ etc]

i can uninstall before i view any manga page but after viewing any manga can't uninstall it.

Log

uninstalling tachiyomi-en.mangakakalot-v1.2.1.apk
used cached extension list
[qtp895705623-27] WARN Exposed - Transaction attempt #0 failed: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]. Statement(s): DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ?
org.jetbrains.exposed.exceptions.ExposedSQLException: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]
SQL: [DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ?]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:63)
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:129)
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:115)
at org.jetbrains.exposed.sql.statements.Statement.execute(Statement.kt:29)
at org.jetbrains.exposed.sql.statements.DeleteStatement$Companion.where(DeleteStatement.kt:22)
at org.jetbrains.exposed.sql.QueriesKt.deleteWhere(Queries.kt:57)
at org.jetbrains.exposed.sql.QueriesKt.deleteWhere$default(Queries.kt:56)
at ir.armor.tachidesk.util.ExtensionKt$removeExtension$1.invoke(Extension.kt:144)
at ir.armor.tachidesk.util.ExtensionKt$removeExtension$1.invoke(Extension.kt)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:170)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$2.invoke(ThreadLocalTransactionManager.kt:211)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:219)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:210)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:148)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:219)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:120)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:118)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:117)
at ir.armor.tachidesk.util.ExtensionKt.removeExtension(Extension.kt:141)
at ir.armor.tachidesk.Main$Companion$main$3.handle(Main.kt:77)
at io.javalin.core.security.SecurityUtil.noopAccessManager(SecurityUtil.kt:23)
at io.javalin.http.JavalinServlet$addHandler$protectedHandler$1.handle(JavalinServlet.kt:121)
at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:45)
at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:24)
at io.javalin.http.JavalinServlet$service$1.invoke(JavalinServlet.kt:129)
at io.javalin.http.JavalinServlet$service$2.invoke(JavalinServlet.kt:40)
at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:81)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.javalin.websocket.JavalinWsServlet.service(JavalinWsServlet.kt:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:569)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at io.javalin.core.JavalinServer$start$wsAndHttpHandler$1.doHandle(JavalinServer.kt:49)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:501)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:457)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
at org.h2.message.DbException.get(DbException.java:205)
at org.h2.message.DbException.get(DbException.java:181)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:373)
at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:390)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:265)
at org.h2.table.Table.fireConstraints(Table.java:1020)
at org.h2.table.Table.fireAfterRow(Table.java:1038)
at org.h2.command.dml.Delete.update(Delete.java:129)
at org.h2.command.CommandContainer.update(CommandContainer.java:133)
at org.h2.command.Command.executeUpdate(Command.java:267)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:200)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:154)
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeUpdate(JdbcPreparedStatementImpl.kt:23)
at org.jetbrains.exposed.sql.statements.DeleteStatement.executeInternal(DeleteStatement.kt:9)
at org.jetbrains.exposed.sql.statements.DeleteStatement.executeInternal(DeleteStatement.kt:6)
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:61)
... 59 more
[qtp895705623-27] WARN Exposed - Transaction attempt #1 failed: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]. Statement(s): DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ?
org.jetbrains.exposed.exceptions.ExposedSQLException: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]
SQL: [DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ?]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:63)
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:129)
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:115)
at org.jetbrains.exposed.sql.statements.Statement.execute(Statement.kt:29)
at org.jetbrains.exposed.sql.statements.DeleteStatement$Companion.where(DeleteStatement.kt:22)
at org.jetbrains.exposed.sql.QueriesKt.deleteWhere(Queries.kt:57)
at org.jetbrains.exposed.sql.QueriesKt.deleteWhere$default(Queries.kt:56)
at ir.armor.tachidesk.util.ExtensionKt$removeExtension$1.invoke(Extension.kt:144)
at ir.armor.tachidesk.util.ExtensionKt$removeExtension$1.invoke(Extension.kt)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:170)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$2.invoke(ThreadLocalTransactionManager.kt:211)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:219)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:210)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:148)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:219)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:120)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:118)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:117)
at ir.armor.tachidesk.util.ExtensionKt.removeExtension(Extension.kt:141)
at ir.armor.tachidesk.Main$Companion$main$3.handle(Main.kt:77)
at io.javalin.core.security.SecurityUtil.noopAccessManager(SecurityUtil.kt:23)
at io.javalin.http.JavalinServlet$addHandler$protectedHandler$1.handle(JavalinServlet.kt:121)
at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:45)
at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:24)
at io.javalin.http.JavalinServlet$service$1.invoke(JavalinServlet.kt:129)
at io.javalin.http.JavalinServlet$service$2.invoke(JavalinServlet.kt:40)
at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:81)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.javalin.websocket.JavalinWsServlet.service(JavalinWsServlet.kt:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:569)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at io.javalin.core.JavalinServer$start$wsAndHttpHandler$1.doHandle(JavalinServer.kt:49)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:501)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:457)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
at org.h2.message.DbException.get(DbException.java:205)
at org.h2.message.DbException.get(DbException.java:181)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:373)
at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:390)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:265)
at org.h2.table.Table.fireConstraints(Table.java:1020)
at org.h2.table.Table.fireAfterRow(Table.java:1038)
at org.h2.command.dml.Delete.update(Delete.java:129)
at org.h2.command.CommandContainer.update(CommandContainer.java:133)
at org.h2.command.Command.executeUpdate(Command.java:267)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:200)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:154)
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeUpdate(JdbcPreparedStatementImpl.kt:23)
at org.jetbrains.exposed.sql.statements.DeleteStatement.executeInternal(DeleteStatement.kt:9)
at org.jetbrains.exposed.sql.statements.DeleteStatement.executeInternal(DeleteStatement.kt:6)
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:61)
... 59 more
[qtp895705623-27] WARN Exposed - Transaction attempt #2 failed: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]. Statement(s): DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ?
org.jetbrains.exposed.exceptions.ExposedSQLException: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]
SQL: [DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ?]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:63)
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:129)
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:115)
at org.jetbrains.exposed.sql.statements.Statement.execute(Statement.kt:29)
at org.jetbrains.exposed.sql.statements.DeleteStatement$Companion.where(DeleteStatement.kt:22)
at org.jetbrains.exposed.sql.QueriesKt.deleteWhere(Queries.kt:57)
at org.jetbrains.exposed.sql.QueriesKt.deleteWhere$default(Queries.kt:56)
at ir.armor.tachidesk.util.ExtensionKt$removeExtension$1.invoke(Extension.kt:144)
at ir.armor.tachidesk.util.ExtensionKt$removeExtension$1.invoke(Extension.kt)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:170)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$2.invoke(ThreadLocalTransactionManager.kt:211)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:219)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:210)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:148)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:219)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:120)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:118)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:117)
at ir.armor.tachidesk.util.ExtensionKt.removeExtension(Extension.kt:141)
at ir.armor.tachidesk.Main$Companion$main$3.handle(Main.kt:77)
at io.javalin.core.security.SecurityUtil.noopAccessManager(SecurityUtil.kt:23)
at io.javalin.http.JavalinServlet$addHandler$protectedHandler$1.handle(JavalinServlet.kt:121)
at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:45)
at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:24)
at io.javalin.http.JavalinServlet$service$1.invoke(JavalinServlet.kt:129)
at io.javalin.http.JavalinServlet$service$2.invoke(JavalinServlet.kt:40)
at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:81)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.javalin.websocket.JavalinWsServlet.service(JavalinWsServlet.kt:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:569)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at io.javalin.core.JavalinServer$start$wsAndHttpHandler$1.doHandle(JavalinServer.kt:49)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:501)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:457)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
at org.h2.message.DbException.get(DbException.java:205)
at org.h2.message.DbException.get(DbException.java:181)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:373)
at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:390)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:265)
at org.h2.table.Table.fireConstraints(Table.java:1020)
at org.h2.table.Table.fireAfterRow(Table.java:1038)
at org.h2.command.dml.Delete.update(Delete.java:129)
at org.h2.command.CommandContainer.update(CommandContainer.java:133)
at org.h2.command.Command.executeUpdate(Command.java:267)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:200)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:154)
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeUpdate(JdbcPreparedStatementImpl.kt:23)
at org.jetbrains.exposed.sql.statements.DeleteStatement.executeInternal(DeleteStatement.kt:9)
at org.jetbrains.exposed.sql.statements.DeleteStatement.executeInternal(DeleteStatement.kt:6)
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:61)
... 59 more
[qtp895705623-27] WARN io.javalin.Javalin - Uncaught exception
org.jetbrains.exposed.exceptions.ExposedSQLException: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]
SQL: [Failed on expanding args for DELETE: org.jetbrains.exposed.sql.statements.DeleteStatement@27522944]
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:63)
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:129)
at org.jetbrains.exposed.sql.Transaction.exec(Transaction.kt:115)
at org.jetbrains.exposed.sql.statements.Statement.execute(Statement.kt:29)
at org.jetbrains.exposed.sql.statements.DeleteStatement$Companion.where(DeleteStatement.kt:22)
at org.jetbrains.exposed.sql.QueriesKt.deleteWhere(Queries.kt:57)
at org.jetbrains.exposed.sql.QueriesKt.deleteWhere$default(Queries.kt:56)
at ir.armor.tachidesk.util.ExtensionKt$removeExtension$1.invoke(Extension.kt:144)
at ir.armor.tachidesk.util.ExtensionKt$removeExtension$1.invoke(Extension.kt)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$1.invoke(ThreadLocalTransactionManager.kt:170)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$inTopLevelTransaction$2.invoke(ThreadLocalTransactionManager.kt:211)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:219)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:210)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt$transaction$1.invoke(ThreadLocalTransactionManager.kt:148)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.keepAndRestoreTransactionRefAfterRun(ThreadLocalTransactionManager.kt:219)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:120)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:118)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction$default(ThreadLocalTransactionManager.kt:117)
at ir.armor.tachidesk.util.ExtensionKt.removeExtension(Extension.kt:141)
at ir.armor.tachidesk.Main$Companion$main$3.handle(Main.kt:77)
at io.javalin.core.security.SecurityUtil.noopAccessManager(SecurityUtil.kt:23)
at io.javalin.http.JavalinServlet$addHandler$protectedHandler$1.handle(JavalinServlet.kt:121)
at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:45)
at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:24)
at io.javalin.http.JavalinServlet$service$1.invoke(JavalinServlet.kt:129)
at io.javalin.http.JavalinServlet$service$2.invoke(JavalinServlet.kt:40)
at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:81)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at io.javalin.websocket.JavalinWsServlet.service(JavalinWsServlet.kt:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:569)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at io.javalin.core.JavalinServer$start$wsAndHttpHandler$1.doHandle(JavalinServer.kt:49)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:507)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1292)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:173)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:501)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation: "FK_MANGA_SOURCE_ID: PUBLIC.MANGA FOREIGN KEY(SOURCE) REFERENCES PUBLIC.SOURCE(ID) (2528986671771677900)"; SQL statement:
DELETE FROM "SOURCE" WHERE "SOURCE".EXTENSION = ? [23503-199]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:457)
at org.h2.message.DbException.getJdbcSQLException(DbException.java:427)
at org.h2.message.DbException.get(DbException.java:205)
at org.h2.message.DbException.get(DbException.java:181)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:373)
at org.h2.constraint.ConstraintReferential.checkRowRefTable(ConstraintReferential.java:390)
at org.h2.constraint.ConstraintReferential.checkRow(ConstraintReferential.java:265)
at org.h2.table.Table.fireConstraints(Table.java:1020)
at org.h2.table.Table.fireAfterRow(Table.java:1038)
at org.h2.command.dml.Delete.update(Delete.java:129)
at org.h2.command.CommandContainer.update(CommandContainer.java:133)
at org.h2.command.Command.executeUpdate(Command.java:267)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:200)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:154)
at org.jetbrains.exposed.sql.statements.jdbc.JdbcPreparedStatementImpl.executeUpdate(JdbcPreparedStatementImpl.kt:23)
at org.jetbrains.exposed.sql.statements.DeleteStatement.executeInternal(DeleteStatement.kt:9)
at org.jetbrains.exposed.sql.statements.DeleteStatement.executeInternal(DeleteStatement.kt:6)
at org.jetbrains.exposed.sql.statements.Statement.executeIn$exposed_core(Statement.kt:61)
... 59 more

[Feature Request] <Back to Browse Button on Manga Overview Page>

I think incorporaring a back button on the top left of the manga overview page (similarly to the exit button in the reader) that goes back to browsing the selected source would be such a big quality of life improvement especially if it remembers the browsing location. Right now if I select a manga I have to select the source and browse all over again. BTW I'm using Tachidesk in fullscreen mode so the back arrow isnt shown, and even if I press it, it either doesnt remember the previous location or goes back to the reader if I exited the reader using the top left escape button.

[Bug] browser shows a white screen

Device information

  • Tachidesk version: Tachidesk-v0.2.7-r312-win32
  • Server Operating System: Windows 10
  • Server Desktop Environment: N/A
  • Server JVM version: bundled with win32
  • Client Operating System: N/A
  • Client Web Browser: Google Chrome Version 89.0.4389.114 (Official Build) (64-bit)

Steps to reproduce

  1. First Step
    Click any manga from any source
  2. Second Step
    Try reading

Expected behavior

It should load and let me read...I presume.

Actual behavior

It either goes to a completely white screen or infinitely loads the manga.

Other details

I've tried everything listed IIRC and it has happened with the previous version as well, I have never had it work so last time I thought it would be fixed in a newer version.

[Bug] <short description>


Device information

  • Tachidesk version: (Tachidesk-v0.2.7-r312-win32)
  • Server Operating System: (Windows 10)
  • Server Desktop Environment: N/A or (None)
  • Server JVM version: bundled with win32 or (bundled with win32)
  • Client Operating System:
  • Client Web Browser: ( Google Chrome Version 89.0.4389.114 (Official Build) (64-bit))

Steps to reproduce

  1. First Step
    Click any manga from any source
  2. Second Step
    Try reading

Expected behavior

It should load and let me read...I presume.

Actual behavior

It either goes to a completely white screen or infinitely loads the manga.

Other details

I've tried everything listed IIRC and it has happened with the previous version as well, I have never had it work so last time I thought it would be fixed in a newer version.

[Bug] Manga details can't be stored to database column because exceeds length (4096)

Device information

  • Tachidesk version: Docker arbuild/tachidesk-docker:latest/slim
  • Server Operating System: Win 10 Home
  • Server Desktop Environment: WSL2 Ubuntu 20.04
  • Server JVM version: bundled with docker image
  • Client Web Browser: Google Chrome Version 89.

Steps to reproduce

  1. browse one piece manga page of mangakakalot or manganelo
  2. it hangs and details of manga page doesn't load

Expected behavior

It shouldn't hang

Actual behavior

manga details should load

Other details

screenshot and error log attached below

Screenshot 2021-04-04 061609
error.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.