mansuf / mangadex-downloader

A command-line tool to download manga from MangaDex, written in Python.
https://mangadex-dl.mansuf.link/
MIT License
511 stars 43 forks source link

"Unhandled Exception, OperationalError: database is locked" error when --path is set to mounted Samba file server #52

Closed Annihilator6000 closed 1 year ago

Annihilator6000 commented 1 year ago

What happened ?

When trying to download new or update existing manga series that are located on my Samba file server, mangadex-dl throws the error "[ERROR] Unhandled exception, OperationalError: database is locked"

Console output from trying to update existing manga on Samba server:

mangadex-dl -lang "en" --save-as "cbz" --path "/mnt/W/Manga/Manga/" --group "all" https://mangadex.org/title/de9e3b62-eac5-4c0a-917d-ffccad694381/sometimes-even-reality-is-a-lie
[INFO] Checking url = https://mangadex.org/title/de9e3b62-eac5-4c0a-917d-ffccad694381/sometimes-even-reality-is-a-lie
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga Sometimes Even Reality Is a Lie!
[INFO] File exist and replace is False, cancelling download...
[INFO] Download directory is set to "/mnt/W/Manga/Manga/Sometimes Even Reality Is a Lie!"
[INFO] Using cbz format
[ERROR] Unhandled exception, OperationalError: database is locked
Traceback (most recent call last):
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/__init__.py", line 73, in _main
    download(args)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/download.py", line 33, in download
    url(args, args.type)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/url.py", line 161, in __call__
    self.func(self.id, args)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/url.py", line 95, in download_manga
    dl_manga(*args)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/main.py", line 163, in download
    download_manga(manga, base_path)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/main.py", line 123, in download_manga
    m.tracker = get_tracker(save_as, path)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/tracker/__init__.py", line 156, in get_tracker
    return _migrate_legacy_tracker(fmt, path)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/tracker/__init__.py", line 92, in _migrate_legacy_tracker
    new_tracker = DownloadTrackerSQLite(fmt, path)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/tracker/sqlite.py", line 59, in __init__
    self._load()
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/tracker/sqlite.py", line 296, in _load
    cur.execute(cmd_script)
sqlite3.OperationalError: database is locked

Just to note - my Samba file server runs Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-204-generic x86_64)

Permissions for the directories that the above manga resides:

Linux Mint ls -l in /mnt/W/Manga/: drwxrwxrwx 2 x x 0 Feb 25 10:02 Manga Linux Mint ls -l in /mnt/W/Manga/Manga/: drwxrwxrwx 2 x x 0 Feb 28 14:39 'Sometimes Even Reality Is a Lie!'

Ubuntu Server ls -l for the same directories: drwxr-sr-x 23 x x 4096 Feb 25 10:02 Manga drwxr-sr-x 2 x x 4096 Feb 28 14:39 'Sometimes Even Reality Is a Lie!' I have create mask = 0777 set in smb.conf, so folder perms shouldn't be an issue here.

After running mangadex-dl and getting the error, there is an empty download.db file (0B) that is created in the download directory: -rwxrwxrwx 1 x x 0 Feb 28 14:39 download.db


The above error only happens when setting the path to my file server. Saving locally still works perfectly fine. This was a local successful test (initial download):

mangadex-dl -lang "en" --save-as "cbz" --path "/home/x/Documents/Mangas/" --group "all" https://mangadex.org/title/91d7344d-04ff-43a9-a871-0727bb00663f/godzilla-vs-spacegodzilla
[INFO] Checking url = https://mangadex.org/title/91d7344d-04ff-43a9-a871-0727bb00663f/godzilla-vs-spacegodzilla
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga Godzilla vs. SpaceGodzilla
file_sizes: 100%|████████████████████████████| 208k/208k [00:00<00:00, 3.29MB/s]
[INFO] Download directory is set to "/home/x/Documents/Mangas/Godzilla vs. SpaceGodzilla"
[INFO] Using cbz format
[INFO] Preparing to download...
[INFO] Getting images from chapter 1
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 1
file_sizes: 100%|████████████████████████████| 181k/181k [00:00<00:00, 2.83MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 2
file_sizes: 100%|████████████████████████████| 258k/258k [00:00<00:00, 8.13MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 3
file_sizes: 100%|████████████████████████████| 181k/181k [00:00<00:00, 2.41MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 4
file_sizes: 100%|████████████████████████████| 214k/214k [00:00<00:00, 27.3MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 5
file_sizes: 100%|████████████████████████████| 143k/143k [00:00<00:00, 57.9MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 6
file_sizes: 100%|████████████████████████████| 197k/197k [00:00<00:00, 9.66MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 7
file_sizes: 100%|████████████████████████████| 164k/164k [00:00<00:00, 25.6MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 8
file_sizes: 100%|████████████████████████████| 120k/120k [00:00<00:00, 18.0MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 9
file_sizes: 100%|████████████████████████████| 124k/124k [00:00<00:00, 56.1MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 10
file_sizes: 100%|████████████████████████████| 140k/140k [00:00<00:00, 47.4MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 11
file_sizes: 100%|████████████████████████████| 127k/127k [00:00<00:00, 46.3MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 12
file_sizes: 100%|████████████████████████████| 138k/138k [00:00<00:00, 98.4MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 13
file_sizes: 100%|████████████████████████████| 115k/115k [00:00<00:00, 49.0MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 14
file_sizes: 100%|████████████████████████████| 115k/115k [00:00<00:00, 17.8MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 15
file_sizes: 100%|████████████████████████████| 154k/154k [00:00<00:00, 38.6MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 16
file_sizes: 100%|████████████████████████████| 117k/117k [00:00<00:00, 32.5MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 17
file_sizes: 100%|████████████████████████████| 146k/146k [00:00<00:00, 42.9MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 18
file_sizes: 100%|████████████████████████████| 160k/160k [00:00<00:00, 46.0MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 19
file_sizes: 100%|████████████████████████████| 151k/151k [00:00<00:00, 33.8MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 20
file_sizes: 100%|████████████████████████████| 137k/137k [00:00<00:00, 53.9MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 21
file_sizes: 100%|████████████████████████████| 168k/168k [00:00<00:00, 7.76MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 22
file_sizes: 100%|████████████████████████████| 131k/131k [00:00<00:00, 33.4MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 23
file_sizes: 100%|████████████████████████████| 120k/120k [00:00<00:00, 6.25MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 24
file_sizes: 100%|████████████████████████████| 110k/110k [00:00<00:00, 6.25MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 1 page 25
file_sizes: 100%|████████████████████████████| 119k/119k [00:00<00:00, 44.1MB/s]
[INFO] [Chinatown KM] Vol. 1 Ch. 1 has finished download, converting to cbz...
cbz_progress: 100%|█████████████████████████| 25/25 [00:00<00:00, 1780.08item/s]
[INFO] Getting images from chapter 2
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 1
file_sizes: 100%|████████████████████████████| 217k/217k [00:00<00:00, 31.9MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 2
file_sizes: 100%|████████████████████████████| 128k/128k [00:00<00:00, 16.6MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 3
file_sizes: 100%|████████████████████████████| 163k/163k [00:00<00:00, 9.53MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 4
file_sizes: 100%|████████████████████████████| 234k/234k [00:00<00:00, 14.2MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 5
file_sizes: 100%|████████████████████████████| 130k/130k [00:00<00:00, 70.8MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 6
file_sizes: 100%|████████████████████████████| 124k/124k [00:00<00:00, 53.7MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 7
file_sizes: 100%|████████████████████████████| 139k/139k [00:00<00:00, 55.1MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 8
file_sizes: 100%|████████████████████████████| 165k/165k [00:00<00:00, 27.7MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 9
file_sizes: 100%|████████████████████████████| 152k/152k [00:00<00:00, 25.8MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 10
file_sizes: 100%|████████████████████████████| 158k/158k [00:00<00:00, 9.42MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 11
file_sizes: 100%|████████████████████████████| 296k/296k [00:00<00:00, 15.1MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 12
file_sizes: 100%|████████████████████████████| 149k/149k [00:00<00:00, 42.1MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 13
file_sizes: 100%|█████████████████████████████| 133k/133k [00:00<00:00, 161kB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 14
file_sizes: 100%|████████████████████████████| 159k/159k [00:00<00:00, 16.2MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 15
file_sizes: 100%|████████████████████████████| 139k/139k [00:00<00:00, 40.5MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 16
file_sizes: 100%|████████████████████████████| 122k/122k [00:00<00:00, 46.0MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 17
file_sizes: 100%|████████████████████████████| 122k/122k [00:00<00:00, 37.2MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 2 page 18
file_sizes: 100%|████████████████████████████| 287k/287k [00:00<00:00, 17.3MB/s]
[INFO] [Chinatown KM] Vol. 1 Ch. 2 has finished download, converting to cbz...
cbz_progress: 100%|█████████████████████████| 18/18 [00:00<00:00, 1385.76item/s]
[INFO] Getting images from chapter 3
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 1
file_sizes: 100%|████████████████████████████| 217k/217k [00:00<00:00, 15.7MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 2
file_sizes: 100%|████████████████████████████| 136k/136k [00:00<00:00, 50.6MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 3
file_sizes: 100%|████████████████████████████| 178k/178k [00:00<00:00, 61.8MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 4
file_sizes: 100%|████████████████████████████| 136k/136k [00:00<00:00, 37.6MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 5
file_sizes: 100%|████████████████████████████| 131k/131k [00:00<00:00, 8.88MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 6
file_sizes: 100%|████████████████████████████| 138k/138k [00:00<00:00, 19.0MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 7
file_sizes: 100%|████████████████████████████| 153k/153k [00:00<00:00, 15.8MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 8
file_sizes: 100%|████████████████████████████| 128k/128k [00:00<00:00, 56.3MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 9
file_sizes: 100%|████████████████████████████| 150k/150k [00:00<00:00, 16.2MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 10
file_sizes: 100%|████████████████████████████| 137k/137k [00:00<00:00, 53.4MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 11
file_sizes: 100%|████████████████████████████| 181k/181k [00:00<00:00, 60.6MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 12
file_sizes: 100%|████████████████████████████| 133k/133k [00:00<00:00, 9.21MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 13
file_sizes: 100%|████████████████████████████| 139k/139k [00:00<00:00, 9.26MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 14
file_sizes: 100%|████████████████████████████| 169k/169k [00:00<00:00, 50.0MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 15
file_sizes: 100%|████████████████████████████| 148k/148k [00:00<00:00, 17.6MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 16
file_sizes: 100%|████████████████████████████| 149k/149k [00:00<00:00, 39.7MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 17
file_sizes: 100%|████████████████████████████| 143k/143k [00:00<00:00, 54.4MB/s]
[INFO] Downloading [Chinatown KM] Volume. 1 Chapter. 3 page 18
file_sizes: 100%|████████████████████████████| 145k/145k [00:00<00:00, 60.8MB/s]
[INFO] [Chinatown KM] Vol. 1 Ch. 3 has finished download, converting to cbz...
cbz_progress: 100%|█████████████████████████| 18/18 [00:00<00:00, 1863.08item/s]
[INFO] Waiting for chapter read marker to finish
[INFO] Download finished for manga "Godzilla vs. SpaceGodzilla"
[INFO] Cleaning up...

Re-running the command (update):

mangadex-dl -lang "en" --save-as "cbz" --path "/home/x/Documents/Mangas/" --group "all" https://mangadex.org/title/91d7344d-04ff-43a9-a871-0727bb00663f/godzilla-vs-spacegodzilla
[INFO] Checking url = https://mangadex.org/title/91d7344d-04ff-43a9-a871-0727bb00663f/godzilla-vs-spacegodzilla
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga Godzilla vs. SpaceGodzilla
[INFO] File exist and replace is False, cancelling download...
[INFO] Download directory is set to "/home/x/Documents/Mangas/Godzilla vs. SpaceGodzilla"
[INFO] Using cbz format
[INFO] Preparing to download...
[INFO] '[Chinatown KM] Vol. 1 Ch. 1.cbz' is verified and no need to re-download
[INFO] '[Chinatown KM] Vol. 1 Ch. 2.cbz' is verified and no need to re-download
[INFO] '[Chinatown KM] Vol. 1 Ch. 3.cbz' is verified and no need to re-download
[INFO] Waiting for chapter read marker to finish
[INFO] Download finished for manga "Godzilla vs. SpaceGodzilla"
[INFO] Cleaning up...

What did you expect to happen ?

The expected result was for mangadex-dl to download/update comic series located on the file server like the local test above.

Versions 2.7.x would save to the file server without issue.

OS version

Linux Mint 20.3 Cinnamon

Full System Info

App version

Release v2.8.0

No development versions have been installed or used.

Installation origin

Other

Installation origin (other sources)

mangadex-dl was initially installed via PyPI 3 versions ago (v.2.7.0 I believe). Updated to v2.8.0 today via the 'mangadex-dl --update' command. Had to manually update 'requests-doh' and 'requests' via PIP after update.

Reproducible command

mangadex-dl -lang "en" --save-as "cbz" --path "/mnt/W/Manga/Manga/" --group "all" https://mangadex.org/title/de9e3b62-eac5-4c0a-917d-ffccad694381/sometimes-even-reality-is-a-lie

Additional context

mangadex-dl --update console output from today, including PIP requirements errors that required manual updates:

Collecting mangadex-downloader
  Downloading mangadex_downloader-2.8.0-py3-none-any.whl (3.1 MB)
     |████████████████████████████████| 3.1 MB 1.3 MB/s 
Requirement already satisfied, skipping upgrade: Pillow==9.3.0 in /home/x/.local/lib/python3.8/site-packages (from mangadex-downloader) (9.3.0)
Requirement already satisfied, skipping upgrade: requests[socks] in /usr/lib/python3/dist-packages (from mangadex-downloader) (2.22.0)
Requirement already satisfied, skipping upgrade: pathvalidate in /home/x/.local/lib/python3.8/site-packages (from mangadex-downloader) (2.5.2)
Requirement already satisfied, skipping upgrade: tqdm in /home/x/.local/lib/python3.8/site-packages (from mangadex-downloader) (4.64.1)
Requirement already satisfied, skipping upgrade: beautifulsoup4 in /usr/lib/python3/dist-packages (from mangadex-downloader) (4.8.2)
Collecting requests-doh==0.3.0
  Downloading requests_doh-0.3.0-py3-none-any.whl (9.4 kB)
Requirement already satisfied, skipping upgrade: packaging in /usr/lib/python3/dist-packages (from mangadex-downloader) (20.3)
Requirement already satisfied, skipping upgrade: pyjwt in /usr/lib/python3/dist-packages (from mangadex-downloader) (1.7.1)
Requirement already satisfied, skipping upgrade: PySocks!=1.5.7,>=1.5.6 in /home/x/.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader) (1.7.1)
Collecting dnspython[doh]==2.3.0
  Downloading dnspython-2.3.0-py3-none-any.whl (283 kB)
     |████████████████████████████████| 283 kB 48.4 MB/s 
Requirement already satisfied, skipping upgrade: requests-toolbelt<0.11.0,>=0.9.1; extra == "doh" in /home/x/.local/lib/python3.8/site-packages (from dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (0.9.1)
Requirement already satisfied, skipping upgrade: httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh" in /home/x/.local/lib/python3.8/site-packages (from dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (0.23.3)
Requirement already satisfied, skipping upgrade: h2>=4.1.0; python_full_version >= "3.6.2" and extra == "doh" in /home/x/.local/lib/python3.8/site-packages (from dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (4.1.0)
Requirement already satisfied, skipping upgrade: sniffio in /home/x/.local/lib/python3.8/site-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (1.3.0)
Requirement already satisfied, skipping upgrade: certifi in /usr/lib/python3/dist-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (2019.11.28)
Requirement already satisfied, skipping upgrade: rfc3986[idna2008]<2,>=1.3 in /home/x/.local/lib/python3.8/site-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (1.5.0)
Requirement already satisfied, skipping upgrade: httpcore<0.17.0,>=0.15.0 in /home/x/.local/lib/python3.8/site-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (0.16.3)
Requirement already satisfied, skipping upgrade: hpack<5,>=4.0 in /home/x/.local/lib/python3.8/site-packages (from h2>=4.1.0; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (4.0.0)
Requirement already satisfied, skipping upgrade: hyperframe<7,>=6.0 in /home/x/.local/lib/python3.8/site-packages (from h2>=4.1.0; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (6.0.1)
Requirement already satisfied, skipping upgrade: idna; extra == "idna2008" in /usr/lib/python3/dist-packages (from rfc3986[idna2008]<2,>=1.3->httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (2.8)
Requirement already satisfied, skipping upgrade: h11<0.15,>=0.13 in /home/x/.local/lib/python3.8/site-packages (from httpcore<0.17.0,>=0.15.0->httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (0.14.0)
Requirement already satisfied, skipping upgrade: anyio<5.0,>=3.0 in /home/x/.local/lib/python3.8/site-packages (from httpcore<0.17.0,>=0.15.0->httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader) (3.6.2)
ERROR: requests-doh 0.3.0 has requirement requests==2.28.2, but you'll have requests 2.22.0 which is incompatible.
Installing collected packages: dnspython, requests-doh, mangadex-downloader
  Attempting uninstall: dnspython
    Found existing installation: dnspython 2.2.1
    Uninstalling dnspython-2.2.1:
      Successfully uninstalled dnspython-2.2.1
  Attempting uninstall: requests-doh
    Found existing installation: requests-doh 0.2.3
    Uninstalling requests-doh-0.2.3:
      Successfully uninstalled requests-doh-0.2.3
  Attempting uninstall: mangadex-downloader
    Found existing installation: mangadex-downloader 2.7.2
    Uninstalling mangadex-downloader-2.7.2:
      Successfully uninstalled mangadex-downloader-2.7.2
Successfully installed dnspython-2.3.0 mangadex-downloader-2.8.0 requests-doh-0.3.0

requests-doh and requests threw an incompatibility error (version mismatch) during the update. I had to update them manually using python3 -m pip install --force-reinstall requests==2.28.1 and python3 -m pip install --force-reinstall requests-doh==0.3.0


/etc/fstab entry in Linux Mint for the file server: //192.168.1.93/ga7pesh2 /mnt/W cifs username=x,password=xxxxxxxxxx,uid=1000,gid=1000,iocharset=utf8,rw,file_mode=0777,dir_mode=0777,sec=ntlmv2,nounix 0 0

mansuf commented 1 year ago

Hmmmmm, can you try execute this code ? it's basically test to see if writing sqlite database with nolock parameter is working on your samba directory

import sqlite3
con = sqlite3.connect("file:/mnt/W/some_test_folder_in_samba_dir/test.db?nolock=1", check_same_thread=False, uri=True)
con.execute('CREATE TABLE "test" ("name" TEXT NOT NULL);')
con.commit()
con.close()

If it's still not working, maybe this answer could help https://stackoverflow.com/a/4695262. NOTE: You might need to backup your files before doing this.

Annihilator6000 commented 1 year ago

The sqlite test was successful:

Python 3.8.10 (default, Nov 14 2022, 12:59:47) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> con = sqlite3.connect("file:/mnt/W/sqlite3_test_folder/test.db?nolock=1", check_same_thread=False, uri=True)
>>> con.execute('CREATE TABLE "test" ("name" TEXT NOT NULL);')
<sqlite3.Cursor object at 0x7f8bf40e5ab0>
>>> con.commit()
>>> con.close()
>>> quit()

It created an empty test.db file when sqlite3.connect was run. It increased to 8KB after the commit.

x@x-Mint:/mnt/W/sqlite3_test_folder$ ls -l
total 1024
-rwxrwxrwx 1 x x 8192 Mar  1 00:53 test.db

adding the nobrl option to my /etc/fstab mount entry for my file server did fix the issue though!

My fstab line now looks like this: //192.168.1.93/ga7pesh2 /mnt/W cifs username=x,password=xxxxxxxxxx,uid=1000,gid=1000,iocharset=utf8,rw,file_mode=0777,dir_mode=0777,sec=ntlmv2,nounix,nobrl 0 0

I rebooted my computer after saving that and downloads/updates seem to work just fine now:

x@x-Mint:~$ mangadex-dl -lang "en" --save-as "cbz" --path "/mnt/W/Manga/Manga/" --group "all" https://mangadex.org/title/de9e3b62-eac5-4c0a-917d-ffccad694381/sometimes-even-reality-is-a-lie
[INFO] Checking url = https://mangadex.org/title/de9e3b62-eac5-4c0a-917d-ffccad694381/sometimes-even-reality-is-a-lie
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga Sometimes Even Reality Is a Lie!
[INFO] File exist and replace is False, cancelling download...
[INFO] Download directory is set to "/mnt/W/Manga/Manga/Sometimes Even Reality Is a Lie!"
[INFO] Using cbz format
[INFO] Legacy download tracker detected, migrating to new one...
[WARNING] Do not turn it off while migrating or the migration will be failed and download tracker data will be lost
progress: 100%|████████████████████████████| 157/157 [02:02<00:00,  1.28files/s]
[INFO] Preparing to download...
[INFO] '[Moe and Friends] Ch. 1.cbz' is verified and no need to re-download

  <repetitive lines snipped>

[INFO] '[Moe and Friends] Ch. 143.cbz' is verified and no need to re-download
[INFO] Waiting for chapter read marker to finish
[INFO] Download finished for manga "Sometimes Even Reality Is a Lie!"
[INFO] Cleaning up...
x@x-Mint:~$ 

I made sure to test a few comics (around ten) and there were no errors. Everything worked as it should.

I did try searching for the error, but didn't think to include sqlite3 in the search terms. Sorry my web search skills weren't on par tonight.

Thank you for the help though!

mansuf commented 1 year ago

I have made PR #53 about this, so users should not experience errors like this and do the nobrl way. If you can test it, i would be grateful 👍 (because i don't have samba server)

Make sure you testing on new manga, not on existing manga and don't forget to remove nobrl from /etc/fstab before testing this

Installation:

python3 -m pip install git+https://github.com/mansuf/mangadex-downloader.git@744c4496156ea0bcd32fc2182215c13e5e1b1398
Annihilator6000 commented 1 year ago

I don't mind testing it at all.

I just removed nobrl from my /etc/fstab and rebooted.

After that, I attempted to download a new test manga to my Samba server with the existing install of mangadex-dl just to verify that it is still behaving the same way it was prior to adding nobrl, which it was.

x@x-Mint:~$ mangadex-dl -lang "en" --save-as "cbz" --path "/mnt/W/Manga/Manga/" --group "all" https://mangadex.org/title/8283a222-48df-4474-b52a-938444368fb3/false-child
[INFO] Checking url = https://mangadex.org/title/8283a222-48df-4474-b52a-938444368fb3/false-child
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga False Child
file_sizes: 100%|█████████████████████████████| 567k/567k [00:02<00:00, 257kB/s]
[INFO] Download directory is set to "/mnt/W/Manga/Manga/False Child"
[INFO] Using cbz format
[ERROR] Unhandled exception, OperationalError: database is locked
Traceback (most recent call last):
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/__init__.py", line 73, in _main
    download(args)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/download.py", line 33, in download
    url(args, args.type)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/url.py", line 161, in __call__
    self.func(self.id, args)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/url.py", line 95, in download_manga
    dl_manga(*args)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/main.py", line 163, in download
    download_manga(manga, base_path)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/main.py", line 123, in download_manga
    m.tracker = get_tracker(save_as, path)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/tracker/__init__.py", line 158, in get_tracker
    return DownloadTrackerSQLite(fmt, path)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/tracker/sqlite.py", line 59, in __init__
    self._load()
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/tracker/sqlite.py", line 296, in _load
    cur.execute(cmd_script)
sqlite3.OperationalError: database is locked
x@x-Mint:~$ 

Next, I installed the fixed version via your command above, though I had to modify it because pip kept using the cached v.2.8.0 to reinstall itself. I needed to add --no-cache-dir --upgrade to the command. Sorry about all of the lines below, I used ultra-mega-verbosity to help figure out why it wasn't installing the fixed version.

x@x-Mint:~$ python3 -m pip install --no-cache-dir --upgrade -vvv git+https://github.com/mansuf/mangadex-downloader.git@744c4496156ea0bcd32fc2182215c13e5e1b1398
User install by explicit request
Created temporary directory: /tmp/pip-ephem-wheel-cache-vnk54ypf
Created temporary directory: /tmp/pip-req-tracker-xbwnc1gq
Initialized build tracking at /tmp/pip-req-tracker-xbwnc1gq
Created build tracker: /tmp/pip-req-tracker-xbwnc1gq
Entered build tracker: /tmp/pip-req-tracker-xbwnc1gq
Created temporary directory: /tmp/pip-install-b312y1qx
Collecting git+https://github.com/mansuf/mangadex-downloader.git@744c4496156ea0bcd32fc2182215c13e5e1b1398
  Created temporary directory: /tmp/pip-req-build-y_99uxjl
  Cloning https://github.com/mansuf/mangadex-downloader.git (to revision 744c4496156ea0bcd32fc2182215c13e5e1b1398) to /tmp/pip-req-build-y_99uxjl
  Running command git clone -q https://github.com/mansuf/mangadex-downloader.git /tmp/pip-req-build-y_99uxjl
  Running command git show-ref 744c4496156ea0bcd32fc2182215c13e5e1b1398
  Running command git rev-parse HEAD
  e0062182de450184d17f091b0f537ea644c6b95b
  Running command git checkout -q 744c4496156ea0bcd32fc2182215c13e5e1b1398
  Added git+https://github.com/mansuf/mangadex-downloader.git@744c4496156ea0bcd32fc2182215c13e5e1b1398 to build tracker '/tmp/pip-req-tracker-xbwnc1gq'
    Running setup.py (path:/tmp/pip-req-build-y_99uxjl/setup.py) egg_info for package from git+https://github.com/mansuf/mangadex-downloader.git@744c4496156ea0bcd32fc2182215c13e5e1b1398
    Running command python setup.py egg_info
    running egg_info
    creating /tmp/pip-req-build-y_99uxjl/pip-egg-info/mangadex_downloader.egg-info
    writing /tmp/pip-req-build-y_99uxjl/pip-egg-info/mangadex_downloader.egg-info/PKG-INFO
    writing dependency_links to /tmp/pip-req-build-y_99uxjl/pip-egg-info/mangadex_downloader.egg-info/dependency_links.txt
    writing entry points to /tmp/pip-req-build-y_99uxjl/pip-egg-info/mangadex_downloader.egg-info/entry_points.txt
    writing requirements to /tmp/pip-req-build-y_99uxjl/pip-egg-info/mangadex_downloader.egg-info/requires.txt
    writing top-level names to /tmp/pip-req-build-y_99uxjl/pip-egg-info/mangadex_downloader.egg-info/top_level.txt
    writing manifest file '/tmp/pip-req-build-y_99uxjl/pip-egg-info/mangadex_downloader.egg-info/SOURCES.txt'
    reading manifest file '/tmp/pip-req-build-y_99uxjl/pip-egg-info/mangadex_downloader.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file '/tmp/pip-req-build-y_99uxjl/pip-egg-info/mangadex_downloader.egg-info/SOURCES.txt'
  Source in /tmp/pip-req-build-y_99uxjl has version 2.8.0, which satisfies requirement mangadex-downloader==2.8.0 from git+https://github.com/mansuf/mangadex-downloader.git@744c4496156ea0bcd32fc2182215c13e5e1b1398
  Removed mangadex-downloader==2.8.0 from git+https://github.com/mansuf/mangadex-downloader.git@744c4496156ea0bcd32fc2182215c13e5e1b1398 from build tracker '/tmp/pip-req-tracker-xbwnc1gq'
Requirement already satisfied, skipping upgrade: Pillow==9.3.0 in ./.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (9.3.0)
Requirement already satisfied, skipping upgrade: beautifulsoup4 in /usr/lib/python3/dist-packages (from mangadex-downloader==2.8.0) (4.8.2)
Requirement already satisfied, skipping upgrade: packaging in /usr/lib/python3/dist-packages (from mangadex-downloader==2.8.0) (20.3)
Requirement already satisfied, skipping upgrade: pathvalidate in ./.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (2.5.2)
Requirement already satisfied, skipping upgrade: pyjwt in /usr/lib/python3/dist-packages (from mangadex-downloader==2.8.0) (1.7.1)
Requirement already satisfied, skipping upgrade: requests-doh==0.3.0 in ./.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (0.3.0)
Requirement already satisfied, skipping upgrade: requests[socks] in ./.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (2.28.2)
  Installing extra requirements: 'socks'
Requirement already satisfied, skipping upgrade: tqdm in ./.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (4.64.1)
Requirement already satisfied, skipping upgrade: dnspython[doh]==2.3.0 in ./.local/lib/python3.8/site-packages (from requests-doh==0.3.0->mangadex-downloader==2.8.0) (2.3.0)
  Installing extra requirements: 'doh'
Requirement already satisfied, skipping upgrade: urllib3<1.27,>=1.21.1 in ./.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (1.26.14)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in ./.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (2022.12.7)
Requirement already satisfied, skipping upgrade: charset-normalizer<4,>=2 in ./.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (3.0.1)
Requirement already satisfied, skipping upgrade: idna<4,>=2.5 in ./.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (3.4)
Requirement already satisfied, skipping upgrade: PySocks!=1.5.7,>=1.5.6; extra == "socks" in ./.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (1.7.1)
Requirement already satisfied, skipping upgrade: h2>=4.1.0; python_full_version >= "3.6.2" and extra == "doh" in ./.local/lib/python3.8/site-packages (from dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (4.1.0)
Requirement already satisfied, skipping upgrade: requests-toolbelt<0.11.0,>=0.9.1; extra == "doh" in ./.local/lib/python3.8/site-packages (from dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (0.9.1)
Requirement already satisfied, skipping upgrade: httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh" in ./.local/lib/python3.8/site-packages (from dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (0.23.3)
Requirement already satisfied, skipping upgrade: hpack<5,>=4.0 in ./.local/lib/python3.8/site-packages (from h2>=4.1.0; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (4.0.0)
Requirement already satisfied, skipping upgrade: hyperframe<7,>=6.0 in ./.local/lib/python3.8/site-packages (from h2>=4.1.0; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (6.0.1)
Requirement already satisfied, skipping upgrade: httpcore<0.17.0,>=0.15.0 in ./.local/lib/python3.8/site-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (0.16.3)
Requirement already satisfied, skipping upgrade: sniffio in ./.local/lib/python3.8/site-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (1.3.0)
Requirement already satisfied, skipping upgrade: rfc3986[idna2008]<2,>=1.3 in ./.local/lib/python3.8/site-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (1.5.0)
  Installing extra requirements: 'idna2008'
Requirement already satisfied, skipping upgrade: h11<0.15,>=0.13 in ./.local/lib/python3.8/site-packages (from httpcore<0.17.0,>=0.15.0->httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (0.14.0)
Requirement already satisfied, skipping upgrade: anyio<5.0,>=3.0 in ./.local/lib/python3.8/site-packages (from httpcore<0.17.0,>=0.15.0->httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (3.6.2)
Building wheels for collected packages: mangadex-downloader
  Created temporary directory: /tmp/pip-wheel-d1akjwtz
  Building wheel for mangadex-downloader (setup.py) ...   Destination directory: /tmp/pip-wheel-d1akjwtz
  Running command /usr/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-y_99uxjl/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-y_99uxjl/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-d1akjwtz
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib
  creating build/lib/mangadex_downloader
  copying mangadex_downloader/group.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/utils.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/update.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/artist_and_author.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/tag.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/errors.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/user.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/filters.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/language.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/fetcher.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/__main__.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/__init__.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/range.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/forums.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/manga.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/main.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/downloader.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/mdlist.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/chapter.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/cover.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/iterator.py -> build/lib/mangadex_downloader
  copying mangadex_downloader/network.py -> build/lib/mangadex_downloader
  creating build/lib/mangadex_downloader/config
  copying mangadex_downloader/config/env.py -> build/lib/mangadex_downloader/config
  copying mangadex_downloader/config/utils.py -> build/lib/mangadex_downloader/config
  copying mangadex_downloader/config/__init__.py -> build/lib/mangadex_downloader/config
  copying mangadex_downloader/config/auth_cache.py -> build/lib/mangadex_downloader/config
  copying mangadex_downloader/config/config.py -> build/lib/mangadex_downloader/config
  creating build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/comic_book.py -> build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/pdf.py -> build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/utils.py -> build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/tachiyomi.py -> build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/sevenzip.py -> build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/__init__.py -> build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/raw.py -> build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/epub.py -> build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/chinfo.py -> build/lib/mangadex_downloader/format
  copying mangadex_downloader/format/base.py -> build/lib/mangadex_downloader/format
  creating build/lib/mangadex_downloader/tracker
  copying mangadex_downloader/tracker/legacy.py -> build/lib/mangadex_downloader/tracker
  copying mangadex_downloader/tracker/utils.py -> build/lib/mangadex_downloader/tracker
  copying mangadex_downloader/tracker/sqlite.py -> build/lib/mangadex_downloader/tracker
  copying mangadex_downloader/tracker/__init__.py -> build/lib/mangadex_downloader/tracker
  creating build/lib/mangadex_downloader/auth
  copying mangadex_downloader/auth/legacy.py -> build/lib/mangadex_downloader/auth
  copying mangadex_downloader/auth/__init__.py -> build/lib/mangadex_downloader/auth
  copying mangadex_downloader/auth/oauth2.py -> build/lib/mangadex_downloader/auth
  copying mangadex_downloader/auth/base.py -> build/lib/mangadex_downloader/auth
  creating build/lib/mangadex_downloader/cli
  copying mangadex_downloader/cli/command.py -> build/lib/mangadex_downloader/cli
  copying mangadex_downloader/cli/utils.py -> build/lib/mangadex_downloader/cli
  copying mangadex_downloader/cli/update.py -> build/lib/mangadex_downloader/cli
  copying mangadex_downloader/cli/auth.py -> build/lib/mangadex_downloader/cli
  copying mangadex_downloader/cli/url.py -> build/lib/mangadex_downloader/cli
  copying mangadex_downloader/cli/__init__.py -> build/lib/mangadex_downloader/cli
  copying mangadex_downloader/cli/config.py -> build/lib/mangadex_downloader/cli
  copying mangadex_downloader/cli/download.py -> build/lib/mangadex_downloader/cli
  copying mangadex_downloader/cli/args_parser.py -> build/lib/mangadex_downloader/cli
  creating build/lib/mangadex_downloader/tracker/info_data
  copying mangadex_downloader/tracker/info_data/legacy.py -> build/lib/mangadex_downloader/tracker/info_data
  copying mangadex_downloader/tracker/info_data/sqlite.py -> build/lib/mangadex_downloader/tracker/info_data
  copying mangadex_downloader/tracker/info_data/__init__.py -> build/lib/mangadex_downloader/tracker/info_data
  running egg_info
  creating mangadex_downloader.egg-info
  writing mangadex_downloader.egg-info/PKG-INFO
  writing dependency_links to mangadex_downloader.egg-info/dependency_links.txt
  writing entry points to mangadex_downloader.egg-info/entry_points.txt
  writing requirements to mangadex_downloader.egg-info/requires.txt
  writing top-level names to mangadex_downloader.egg-info/top_level.txt
  writing manifest file 'mangadex_downloader.egg-info/SOURCES.txt'
  reading manifest file 'mangadex_downloader.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  writing manifest file 'mangadex_downloader.egg-info/SOURCES.txt'
  creating build/lib/mangadex_downloader/fonts
  creating build/lib/mangadex_downloader/fonts/GNU FreeFont
  copying mangadex_downloader/fonts/GNU FreeFont/AUTHORS -> build/lib/mangadex_downloader/fonts/GNU FreeFont
  copying mangadex_downloader/fonts/GNU FreeFont/COPYING -> build/lib/mangadex_downloader/fonts/GNU FreeFont
  copying mangadex_downloader/fonts/GNU FreeFont/CREDITS -> build/lib/mangadex_downloader/fonts/GNU FreeFont
  copying mangadex_downloader/fonts/GNU FreeFont/README -> build/lib/mangadex_downloader/fonts/GNU FreeFont
  creating build/lib/mangadex_downloader/fonts/GNU FreeFont/otf
  copying mangadex_downloader/fonts/GNU FreeFont/otf/FreeSans.otf -> build/lib/mangadex_downloader/fonts/GNU FreeFont/otf
  copying mangadex_downloader/fonts/GNU FreeFont/otf/FreeSansBold.otf -> build/lib/mangadex_downloader/fonts/GNU FreeFont/otf
  copying mangadex_downloader/fonts/GNU FreeFont/otf/FreeSansBoldOblique.otf -> build/lib/mangadex_downloader/fonts/GNU FreeFont/otf
  copying mangadex_downloader/fonts/GNU FreeFont/otf/FreeSansOblique.otf -> build/lib/mangadex_downloader/fonts/GNU FreeFont/otf
  creating build/lib/mangadex_downloader/fonts/GNU FreeFont/ttf
  copying mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSans.ttf -> build/lib/mangadex_downloader/fonts/GNU FreeFont/ttf
  copying mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSansBold.ttf -> build/lib/mangadex_downloader/fonts/GNU FreeFont/ttf
  copying mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSansBoldOblique.ttf -> build/lib/mangadex_downloader/fonts/GNU FreeFont/ttf
  copying mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSansOblique.ttf -> build/lib/mangadex_downloader/fonts/GNU FreeFont/ttf
  creating build/lib/mangadex_downloader/images
  copying mangadex_downloader/images/mangadex-logo.png -> build/lib/mangadex_downloader/images
  creating build/lib/mangadex_downloader/tracker/sql_files
  copying mangadex_downloader/tracker/sql_files/create_ch_info.sql -> build/lib/mangadex_downloader/tracker/sql_files
  copying mangadex_downloader/tracker/sql_files/create_file_info.sql -> build/lib/mangadex_downloader/tracker/sql_files
  copying mangadex_downloader/tracker/sql_files/create_img_info.sql -> build/lib/mangadex_downloader/tracker/sql_files
  installing to build/bdist.linux-x86_64/wheel
  running install
  running install_lib
  creating build/bdist.linux-x86_64
  creating build/bdist.linux-x86_64/wheel
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/group.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/config
  copying build/lib/mangadex_downloader/config/env.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/config
  copying build/lib/mangadex_downloader/config/utils.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/config
  copying build/lib/mangadex_downloader/config/__init__.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/config
  copying build/lib/mangadex_downloader/config/auth_cache.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/config
  copying build/lib/mangadex_downloader/config/config.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/config
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/comic_book.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/pdf.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/utils.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/tachiyomi.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/sevenzip.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/__init__.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/raw.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/epub.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/chinfo.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/format/base.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/format
  copying build/lib/mangadex_downloader/utils.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/update.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/artist_and_author.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/tag.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/errors.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/user.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker
  copying build/lib/mangadex_downloader/tracker/legacy.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker
  copying build/lib/mangadex_downloader/tracker/utils.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker
  copying build/lib/mangadex_downloader/tracker/sqlite.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker
  copying build/lib/mangadex_downloader/tracker/__init__.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker/info_data
  copying build/lib/mangadex_downloader/tracker/info_data/legacy.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker/info_data
  copying build/lib/mangadex_downloader/tracker/info_data/sqlite.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker/info_data
  copying build/lib/mangadex_downloader/tracker/info_data/__init__.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker/info_data
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker/sql_files
  copying build/lib/mangadex_downloader/tracker/sql_files/create_file_info.sql -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker/sql_files
  copying build/lib/mangadex_downloader/tracker/sql_files/create_img_info.sql -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker/sql_files
  copying build/lib/mangadex_downloader/tracker/sql_files/create_ch_info.sql -> build/bdist.linux-x86_64/wheel/mangadex_downloader/tracker/sql_files
  copying build/lib/mangadex_downloader/filters.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/language.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/auth
  copying build/lib/mangadex_downloader/auth/legacy.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/auth
  copying build/lib/mangadex_downloader/auth/__init__.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/auth
  copying build/lib/mangadex_downloader/auth/oauth2.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/auth
  copying build/lib/mangadex_downloader/auth/base.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/auth
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/CREDITS -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/AUTHORS -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/otf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/otf/FreeSansOblique.otf -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/otf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/otf/FreeSansBoldOblique.otf -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/otf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/otf/FreeSansBold.otf -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/otf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/otf/FreeSans.otf -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/otf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/COPYING -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/ttf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSansBold.ttf -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/ttf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSans.ttf -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/ttf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSansBoldOblique.ttf -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/ttf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSansOblique.ttf -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont/ttf
  copying build/lib/mangadex_downloader/fonts/GNU FreeFont/README -> build/bdist.linux-x86_64/wheel/mangadex_downloader/fonts/GNU FreeFont
  copying build/lib/mangadex_downloader/fetcher.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/__main__.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/__init__.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/range.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/forums.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/manga.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/main.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/images
  copying build/lib/mangadex_downloader/images/mangadex-logo.png -> build/bdist.linux-x86_64/wheel/mangadex_downloader/images
  copying build/lib/mangadex_downloader/downloader.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/mdlist.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/chapter.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/cover.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  copying build/lib/mangadex_downloader/iterator.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/cli/command.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/cli/utils.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/cli/update.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/cli/auth.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/cli/url.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/cli/__init__.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/cli/config.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/cli/download.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/cli/args_parser.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader/cli
  copying build/lib/mangadex_downloader/network.py -> build/bdist.linux-x86_64/wheel/mangadex_downloader
  running install_egg_info
  Copying mangadex_downloader.egg-info to build/bdist.linux-x86_64/wheel/mangadex_downloader-2.8.0.egg-info
  running install_scripts
  adding license file "LICENSE" (matched pattern "LICEN[CS]E*")
  creating build/bdist.linux-x86_64/wheel/mangadex_downloader-2.8.0.dist-info/WHEEL
  creating '/tmp/pip-wheel-d1akjwtz/mangadex_downloader-2.8.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
  adding 'mangadex_downloader/__init__.py'
  adding 'mangadex_downloader/__main__.py'
  adding 'mangadex_downloader/artist_and_author.py'
  adding 'mangadex_downloader/chapter.py'
  adding 'mangadex_downloader/cover.py'
  adding 'mangadex_downloader/downloader.py'
  adding 'mangadex_downloader/errors.py'
  adding 'mangadex_downloader/fetcher.py'
  adding 'mangadex_downloader/filters.py'
  adding 'mangadex_downloader/forums.py'
  adding 'mangadex_downloader/group.py'
  adding 'mangadex_downloader/iterator.py'
  adding 'mangadex_downloader/language.py'
  adding 'mangadex_downloader/main.py'
  adding 'mangadex_downloader/manga.py'
  adding 'mangadex_downloader/mdlist.py'
  adding 'mangadex_downloader/network.py'
  adding 'mangadex_downloader/range.py'
  adding 'mangadex_downloader/tag.py'
  adding 'mangadex_downloader/update.py'
  adding 'mangadex_downloader/user.py'
  adding 'mangadex_downloader/utils.py'
  adding 'mangadex_downloader/auth/__init__.py'
  adding 'mangadex_downloader/auth/base.py'
  adding 'mangadex_downloader/auth/legacy.py'
  adding 'mangadex_downloader/auth/oauth2.py'
  adding 'mangadex_downloader/cli/__init__.py'
  adding 'mangadex_downloader/cli/args_parser.py'
  adding 'mangadex_downloader/cli/auth.py'
  adding 'mangadex_downloader/cli/command.py'
  adding 'mangadex_downloader/cli/config.py'
  adding 'mangadex_downloader/cli/download.py'
  adding 'mangadex_downloader/cli/update.py'
  adding 'mangadex_downloader/cli/url.py'
  adding 'mangadex_downloader/cli/utils.py'
  adding 'mangadex_downloader/config/__init__.py'
  adding 'mangadex_downloader/config/auth_cache.py'
  adding 'mangadex_downloader/config/config.py'
  adding 'mangadex_downloader/config/env.py'
  adding 'mangadex_downloader/config/utils.py'
  adding 'mangadex_downloader/fonts/GNU FreeFont/AUTHORS'
  adding 'mangadex_downloader/fonts/GNU FreeFont/COPYING'
  adding 'mangadex_downloader/fonts/GNU FreeFont/CREDITS'
  adding 'mangadex_downloader/fonts/GNU FreeFont/README'
  adding 'mangadex_downloader/fonts/GNU FreeFont/otf/FreeSans.otf'
  adding 'mangadex_downloader/fonts/GNU FreeFont/otf/FreeSansBold.otf'
  adding 'mangadex_downloader/fonts/GNU FreeFont/otf/FreeSansBoldOblique.otf'
  adding 'mangadex_downloader/fonts/GNU FreeFont/otf/FreeSansOblique.otf'
  adding 'mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSans.ttf'
  adding 'mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSansBold.ttf'
  adding 'mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSansBoldOblique.ttf'
  adding 'mangadex_downloader/fonts/GNU FreeFont/ttf/FreeSansOblique.ttf'
  adding 'mangadex_downloader/format/__init__.py'
  adding 'mangadex_downloader/format/base.py'
  adding 'mangadex_downloader/format/chinfo.py'
  adding 'mangadex_downloader/format/comic_book.py'
  adding 'mangadex_downloader/format/epub.py'
  adding 'mangadex_downloader/format/pdf.py'
  adding 'mangadex_downloader/format/raw.py'
  adding 'mangadex_downloader/format/sevenzip.py'
  adding 'mangadex_downloader/format/tachiyomi.py'
  adding 'mangadex_downloader/format/utils.py'
  adding 'mangadex_downloader/images/mangadex-logo.png'
  adding 'mangadex_downloader/tracker/__init__.py'
  adding 'mangadex_downloader/tracker/legacy.py'
  adding 'mangadex_downloader/tracker/sqlite.py'
  adding 'mangadex_downloader/tracker/utils.py'
  adding 'mangadex_downloader/tracker/info_data/__init__.py'
  adding 'mangadex_downloader/tracker/info_data/legacy.py'
  adding 'mangadex_downloader/tracker/info_data/sqlite.py'
  adding 'mangadex_downloader/tracker/sql_files/create_ch_info.sql'
  adding 'mangadex_downloader/tracker/sql_files/create_file_info.sql'
  adding 'mangadex_downloader/tracker/sql_files/create_img_info.sql'
  adding 'mangadex_downloader-2.8.0.dist-info/LICENSE'
  adding 'mangadex_downloader-2.8.0.dist-info/METADATA'
  adding 'mangadex_downloader-2.8.0.dist-info/WHEEL'
  adding 'mangadex_downloader-2.8.0.dist-info/entry_points.txt'
  adding 'mangadex_downloader-2.8.0.dist-info/top_level.txt'
  adding 'mangadex_downloader-2.8.0.dist-info/RECORD'
  removing build/bdist.linux-x86_64/wheel
done
  Created wheel for mangadex-downloader: filename=mangadex_downloader-2.8.0-py3-none-any.whl size=3067622 sha256=ff0ca8a4a530e68309d9836954e7d0fc205e5c57b5a68d93be0d2e5ed54c1f94
  Stored in directory: /tmp/pip-ephem-wheel-cache-vnk54ypf/wheels/5d/d8/8f/534cb5d13aafa1bf04ca83a6a092bee2462527ce33cb67c97e
Successfully built mangadex-downloader
Installing collected packages: mangadex-downloader
  Attempting uninstall: mangadex-downloader
    Found existing installation: mangadex-downloader 2.8.0
    Uninstalling mangadex-downloader-2.8.0:
      Created temporary directory: /tmp/pip-uninstall-zkp7nibf
      Removing file or directory /home/x/.local/bin/mangadex-dl
      Removing file or directory /home/x/.local/bin/mangadex-downloader
      Created temporary directory: /home/x/.local/lib/python3.8/site-packages/~angadex_downloader-2.8.0.dist-info
      Removing file or directory /home/x/.local/lib/python3.8/site-packages/mangadex_downloader-2.8.0.dist-info/
      Successfully uninstalled mangadex-downloader-2.8.0
  Created temporary directory: /tmp/pip-unpacked-wheel-acsuqlvl

  changing mode of /home/x/.local/bin/mangadex-dl to 775
  changing mode of /home/x/.local/bin/mangadex-downloader to 775
Successfully installed mangadex-downloader-2.8.0
Cleaning up...
  Removing source in /tmp/pip-req-build-y_99uxjl
Removed build tracker: '/tmp/pip-req-tracker-xbwnc1gq'
x@x-Mint:~$ 

Success! The fix seems to have worked:

x@x-Mint:~$ mangadex-dl -lang "en" --save-as "cbz" --path "/mnt/W/Manga/Manga/" --group "all" https://mangadex.org/title/8283a222-48df-4474-b52a-938444368fb3/false-child
[INFO] Checking url = https://mangadex.org/title/8283a222-48df-4474-b52a-938444368fb3/false-child
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga False Child
[INFO] File exist and replace is False, cancelling download...
[INFO] Download directory is set to "/mnt/W/Manga/Manga/False Child"
[INFO] Using cbz format
[INFO] Preparing to download...
[INFO] Getting images from chapter 1
[INFO] Downloading [What's Typesetting] Chapter. 1 page 1
file_sizes: 100%|██████████████████████████| 2.40M/2.40M [00:00<00:00, 2.68MB/s]

  <repetitive lines snipped>

[INFO] Downloading [What's Typesetting] Chapter. 6 page 17
file_sizes: 100%|██████████████████████████| 1.15M/1.15M [00:00<00:00, 3.36MB/s]
[INFO] [What's Typesetting] Ch. 6 has finished download, converting to cbz...
cbz_progress: 100%|███████████████████████████| 17/17 [00:00<00:00, 51.79item/s]
[INFO] Waiting for chapter read marker to finish
[INFO] Download finished for manga "False Child"
[INFO] Cleaning up...
x@x-Mint:~$ 

Folders/files created:

x@x-Mint:/mnt/W/Manga/Manga$ ls -ld $PWD/False*
drwxrwxrwx 2 x x 0 Mar  1 22:36 '/mnt/W/Manga/Manga/False Child'
x@x-Mint:/mnt/W/Manga/Manga/False Child$ ls -l
total 142336
-rwxrwxrwx 1 x x   566909 Mar  1 21:45  cover.jpg
-rwxrwxrwx 1 x x    20480 Mar  1 22:36  download.db
-rwxrwxrwx 1 x x 28780953 Mar  1 22:35 '[What'\''s Typesetting] Ch. 1.cbz'
-rwxrwxrwx 1 x x 13582504 Mar  1 22:35 '[What'\''s Typesetting] Ch. 2.cbz'
-rwxrwxrwx 1 x x 30305346 Mar  1 22:36 '[What'\''s Typesetting] Ch. 3.cbz'
-rwxrwxrwx 1 x x 27551451 Mar  1 22:36 '[What'\''s Typesetting] Ch. 4.cbz'
-rwxrwxrwx 1 x x 26264294 Mar  1 22:36 '[What'\''s Typesetting] Ch. 5.cbz'
-rwxrwxrwx 1 x x 14319643 Mar  1 22:36 '[What'\''s Typesetting] Ch. 6.cbz'

Since I attempted to download that one with the old version before the update, I also tested one that has never been on the Samba server.

x@x-Mint:~/Documents$ mangadex-dl -lang "en" --save-as "cbz" --path "/mnt/W/Manga/Manga/" --group "all" https://mangadex.org/title/abb54d0d-82e9-4c9e-b80f-3987b5c98184/assault-lily-last-bullet-secret-garden-dreamy-memoria
[INFO] Checking url = https://mangadex.org/title/abb54d0d-82e9-4c9e-b80f-3987b5c98184/assault-lily-last-bullet-secret-garden-dreamy-memoria
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga Assault Lily: Last Bullet - Secret Garden ~ Dreamy Memoria ~
file_sizes: 100%|██████████████████████████| 2.26M/2.26M [00:00<00:00, 7.52MB/s]
[INFO] Download directory is set to "/mnt/W/Manga/Manga/Assault Lily Last Bullet - Secret Garden ~ Dreamy Memoria ~"
[INFO] Using cbz format
[INFO] Preparing to download...
[INFO] Getting images from chapter 1
[INFO] Downloading [CClaw Translation] Chapter. 1 page 1
file_sizes: 100%|██████████████████████████| 1.36M/1.36M [00:00<00:00, 10.5MB/s]

  <repetitive lines snipped>

[INFO] Downloading [CClaw Translation] Chapter. 2 page 22
file_sizes: 100%|██████████████████████████| 1.08M/1.08M [00:00<00:00, 1.59MB/s]
[INFO] [CClaw Translation] Ch. 2 has finished download, converting to cbz...
cbz_progress: 100%|███████████████████████████| 22/22 [00:00<00:00, 76.48item/s]
[INFO] Waiting for chapter read marker to finish
[INFO] Download finished for manga "Assault Lily: Last Bullet - Secret Garden ~ Dreamy Memoria ~"
[INFO] Cleaning up...
x@x-Mint:~/Documents$ 

Files/folders created:

x@x-Mint:/mnt/W/Manga/Manga$ ls -ld $PWD/Assault*
drwxrwxrwx 2 x x 0 Mar  1 23:01 '/mnt/W/Manga/Manga/Assault Lily Last Bullet - Secret Garden ~ Dreamy Memoria ~'
x@x-Mint:/mnt/W/Manga/Manga/Assault Lily Last Bullet - Secret Garden ~ Dreamy Memoria ~$ ls -l
total 30720
-rwxrwxrwx 1 x x 14840448 Mar  1 23:01 '[CClaw Translation] Ch. 1.cbz'
-rwxrwxrwx 1 x x 10628727 Mar  1 23:01 '[CClaw Translation] Ch. 2.cbz'
-rwxrwxrwx 1 x x  2255547 Mar  1 23:01  cover.jpg
-rwxrwxrwx 1 x x    20480 Mar  1 23:01  download.db

Just to be thorough, I made sure that it could still download successfully to the local (OS) drive, though I didn't have any reason to think that it wouldn't:

x@x-Mint:~$ mangadex-dl -lang "en" --save-as "cbz" --path "/home/x/Documents/Mangas/" --group "all" https://mangadex.org/title/8283a222-48df-4474-b52a-938444368fb3/false-child
[INFO] Checking url = https://mangadex.org/title/8283a222-48df-4474-b52a-938444368fb3/false-child
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga False Child
file_sizes: 100%|████████████████████████████| 567k/567k [00:00<00:00, 9.21MB/s]
[INFO] Download directory is set to "/home/x/Documents/Mangas/False Child"
[INFO] Using cbz format
[INFO] Preparing to download...
[INFO] Getting images from chapter 1
[INFO] Downloading [What's Typesetting] Chapter. 1 page 1
file_sizes: 100%|██████████████████████████| 2.40M/2.40M [00:00<00:00, 23.8MB/s]

  <repetitive lines snipped>

[INFO] Downloading [What's Typesetting] Chapter. 6 page 17
file_sizes: 100%|██████████████████████████| 1.15M/1.15M [00:00<00:00, 79.9MB/s]
[INFO] [What's Typesetting] Ch. 6 has finished download, converting to cbz...
cbz_progress: 100%|██████████████████████████| 17/17 [00:00<00:00, 504.03item/s]
[INFO] Waiting for chapter read marker to finish
[INFO] Download finished for manga "False Child"
[INFO] Cleaning up...
x@x-Mint:~$ 

Success was short lived... After a little more testing, I did come across a likely related issue. There is now a database lock error that only shows up for comics with an existing download.db database when new chapters are downloaded, which then looks like it triggers a database update to include data about the latest download that subsequently fails.

[INFO] Checking url = https://mangadex.org/title/1bd78711-2fe0-412d-8570-cea963c50a92/the-time-mage-s-strong-new-game-i-returned-to-the-past-to-rewrite-it-as-the-world-s-strongest
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga The Time Mage's Strong New Game ~I Returned to the Past to Rewrite It as the World's Strongest
[INFO] File exist and replace is False, cancelling download...
[INFO] Download directory is set to "/mnt/W/Manga/Manga/The Time Mage's Strong New Game ~I Returned to the Past to Rewrite It as the World's Strongest"
[INFO] Using cbz format
[INFO] Preparing to download...
[INFO] Getting images from chapter 2.2
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 1
file_sizes: 100%|██████████████████████████| 1.09M/1.09M [00:00<00:00, 7.33MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 2
file_sizes: 100%|████████████████████████████| 804k/804k [00:00<00:00, 21.1MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 3
file_sizes: 100%|████████████████████████████| 885k/885k [00:00<00:00, 1.77MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 4
file_sizes: 100%|██████████████████████████| 1.03M/1.03M [00:00<00:00, 16.8MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 5
file_sizes: 100%|████████████████████████████| 822k/822k [00:00<00:00, 8.87MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 6
file_sizes: 100%|████████████████████████████| 880k/880k [00:00<00:00, 1.35MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 7
file_sizes: 100%|████████████████████████████| 741k/741k [00:00<00:00, 16.6MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 8
file_sizes: 100%|████████████████████████████| 948k/948k [00:00<00:00, 26.6MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 9
file_sizes: 100%|██████████████████████████| 1.04M/1.04M [00:00<00:00, 20.5MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 10
file_sizes: 100%|█████████████████████████████| 931k/931k [00:01<00:00, 558kB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 11
file_sizes: 100%|████████████████████████████| 902k/902k [00:00<00:00, 15.9MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 12
file_sizes: 100%|████████████████████████████| 691k/691k [00:00<00:00, 3.41MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 13
file_sizes: 100%|████████████████████████████| 877k/877k [00:00<00:00, 2.66MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 14
file_sizes: 100%|████████████████████████████| 801k/801k [00:00<00:00, 12.9MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 15
file_sizes: 100%|████████████████████████████| 768k/768k [00:00<00:00, 6.14MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 16
file_sizes: 100%|████████████████████████████| 830k/830k [00:00<00:00, 1.62MB/s]
[INFO] Downloading [Animated Glitched Scans] Chapter. 2.2 page 17
file_sizes: 100%|██████████████████████████| 1.36M/1.36M [00:00<00:00, 24.1MB/s]
[INFO] [Animated Glitched Scans] Ch. 2.2 has finished download, converting to cbz...
cbz_progress: 100%|███████████████████████████| 17/17 [00:00<00:00, 61.15item/s]
[ERROR] We have problem in queue worker
Traceback (most recent call last):
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/utils.py", line 214, in run
    job()
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/format/base.py", line 369, in <lambda>
    job = lambda: self._add_fi_job(*args, **kwargs)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/format/base.py", line 344, in _add_fi_job
    self.manga.tracker.remove_file_info_from_name(name)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/tracker/sqlite.py", line 171, in remove_file_info_from_name
    self.db.commit()
sqlite3.OperationalError: database is locked
Stack (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 890, in _bootstrap
    self._bootstrap_inner()
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/utils.py", line 216, in run
    log.error("We have problem in queue worker", exc_info=err, stack_info=True)
[ERROR] Unhandled exception, OperationalError: database is locked
Traceback (most recent call last):
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/__init__.py", line 73, in _main
    download(args)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/download.py", line 33, in download
    url(args, args.type)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/url.py", line 161, in __call__
    self.func(self.id, args)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/cli/url.py", line 95, in download_manga
    dl_manga(*args)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/main.py", line 163, in download
    download_manga(manga, base_path)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/main.py", line 133, in download_manga
    fmt.main()
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/format/base.py", line 447, in main
    self.download_chapters(worker, chapters)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/format/comic_book.py", line 218, in download_chapters
    self.add_fi(chap_name, chap_class.id, chapter_zip_path)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/format/base.py", line 370, in add_fi
    self.tracker_worker.submit(job, blocking=True)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/utils.py", line 196, in submit
    raise err
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/utils.py", line 214, in run
    job()
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/format/base.py", line 369, in <lambda>
    job = lambda: self._add_fi_job(*args, **kwargs)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/format/base.py", line 344, in _add_fi_job
    self.manga.tracker.remove_file_info_from_name(name)
  File "/home/x/.local/lib/python3.8/site-packages/mangadex_downloader/tracker/sqlite.py", line 171, in remove_file_info_from_name
    self.db.commit()
sqlite3.OperationalError: database is locked

It makes it further in the process now at least, instead of throwing an error right at the beginning of the download like it did before.

mansuf commented 1 year ago

There is now a database lock error that only shows up for comics with an existing download.db database when new chapters are downloaded, which then looks like it triggers a database update to include data about the latest download that subsequently fails.

The connection to sqlite3 database is opened up with lock enabled if the database file (download.db) is exist. I made fix in the PR, so it should be fixed now.

New installation:

python3 -m pip install --no-cache-dir --upgrade git+https://github.com/mansuf/mangadex-downloader.git@0cb9bebbd87e828914b6791843c233bc3e5fee89
Annihilator6000 commented 1 year ago

The update installed successfully:

x@x-Mint:~/Documents$ python3 -m pip install --no-cache-dir --upgrade git+https://github.com/mansuf/mangadex-downloader.git@0cb9bebbd87e828914b6791843c233bc3e5fee89
Collecting git+https://github.com/mansuf/mangadex-downloader.git@0cb9bebbd87e828914b6791843c233bc3e5fee89
  Cloning https://github.com/mansuf/mangadex-downloader.git (to revision 0cb9bebbd87e828914b6791843c233bc3e5fee89) to /tmp/pip-req-build-gbup41wg
  Running command git clone -q https://github.com/mansuf/mangadex-downloader.git /tmp/pip-req-build-gbup41wg
  Running command git checkout -q 0cb9bebbd87e828914b6791843c233bc3e5fee89
Requirement already satisfied, skipping upgrade: Pillow==9.3.0 in /home/x/.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (9.3.0)
Requirement already satisfied, skipping upgrade: beautifulsoup4 in /usr/lib/python3/dist-packages (from mangadex-downloader==2.8.0) (4.8.2)
Requirement already satisfied, skipping upgrade: packaging in /usr/lib/python3/dist-packages (from mangadex-downloader==2.8.0) (20.3)
Requirement already satisfied, skipping upgrade: pathvalidate in /home/x/.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (2.5.2)
Requirement already satisfied, skipping upgrade: pyjwt in /usr/lib/python3/dist-packages (from mangadex-downloader==2.8.0) (1.7.1)
Requirement already satisfied, skipping upgrade: requests-doh==0.3.0 in /home/x/.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (0.3.0)
Requirement already satisfied, skipping upgrade: requests[socks] in /home/x/.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (2.28.2)
Requirement already satisfied, skipping upgrade: tqdm in /home/x/.local/lib/python3.8/site-packages (from mangadex-downloader==2.8.0) (4.64.1)
Requirement already satisfied, skipping upgrade: dnspython[doh]==2.3.0 in /home/x/.local/lib/python3.8/site-packages (from requests-doh==0.3.0->mangadex-downloader==2.8.0) (2.3.0)
Requirement already satisfied, skipping upgrade: idna<4,>=2.5 in /home/x/.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (3.4)
Requirement already satisfied, skipping upgrade: charset-normalizer<4,>=2 in /home/x/.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (3.0.1)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /home/x/.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (2022.12.7)
Requirement already satisfied, skipping upgrade: urllib3<1.27,>=1.21.1 in /home/x/.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (1.26.14)
Requirement already satisfied, skipping upgrade: PySocks!=1.5.7,>=1.5.6; extra == "socks" in /home/x/.local/lib/python3.8/site-packages (from requests[socks]->mangadex-downloader==2.8.0) (1.7.1)
Requirement already satisfied, skipping upgrade: requests-toolbelt<0.11.0,>=0.9.1; extra == "doh" in /home/x/.local/lib/python3.8/site-packages (from dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (0.9.1)
Requirement already satisfied, skipping upgrade: h2>=4.1.0; python_full_version >= "3.6.2" and extra == "doh" in /home/x/.local/lib/python3.8/site-packages (from dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (4.1.0)
Requirement already satisfied, skipping upgrade: httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh" in /home/x/.local/lib/python3.8/site-packages (from dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (0.23.3)
Requirement already satisfied, skipping upgrade: hyperframe<7,>=6.0 in /home/x/.local/lib/python3.8/site-packages (from h2>=4.1.0; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (6.0.1)
Requirement already satisfied, skipping upgrade: hpack<5,>=4.0 in /home/x/.local/lib/python3.8/site-packages (from h2>=4.1.0; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (4.0.0)
Requirement already satisfied, skipping upgrade: httpcore<0.17.0,>=0.15.0 in /home/x/.local/lib/python3.8/site-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (0.16.3)
Requirement already satisfied, skipping upgrade: sniffio in /home/x/.local/lib/python3.8/site-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (1.3.0)
Requirement already satisfied, skipping upgrade: rfc3986[idna2008]<2,>=1.3 in /home/x/.local/lib/python3.8/site-packages (from httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (1.5.0)
Requirement already satisfied, skipping upgrade: h11<0.15,>=0.13 in /home/x/.local/lib/python3.8/site-packages (from httpcore<0.17.0,>=0.15.0->httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (0.14.0)
Requirement already satisfied, skipping upgrade: anyio<5.0,>=3.0 in /home/x/.local/lib/python3.8/site-packages (from httpcore<0.17.0,>=0.15.0->httpx>=0.21.1; python_full_version >= "3.6.2" and extra == "doh"->dnspython[doh]==2.3.0->requests-doh==0.3.0->mangadex-downloader==2.8.0) (3.6.2)
Building wheels for collected packages: mangadex-downloader
  Building wheel for mangadex-downloader (setup.py) ... done
  Created wheel for mangadex-downloader: filename=mangadex_downloader-2.8.0-py3-none-any.whl size=3067715 sha256=cc314c0c93359d056c8889e6e51ae1c0c1fbbfb713bf1c16ef3db265ee16e79d
  Stored in directory: /tmp/pip-ephem-wheel-cache-fs3d23kp/wheels/b9/f3/26/4d7a07ca829b7d9713b881e41f597d09eb37b8f5fca61687a2
Successfully built mangadex-downloader
Installing collected packages: mangadex-downloader
  Attempting uninstall: mangadex-downloader
    Found existing installation: mangadex-downloader 2.8.0
    Uninstalling mangadex-downloader-2.8.0:
      Successfully uninstalled mangadex-downloader-2.8.0
Successfully installed mangadex-downloader-2.8.0
x@x-Mint:~/Documents$ 

Next, to test it quick, I deleted a chapter from one of the mangas that I used for previous testing so it would force a re-download and database update:

x@x-Mint:~/Documents$ mangadex-dl -lang "en" --save-as "cbz" --path "/mnt/W/Manga/Manga/" --group "all" https://mangadex.org/title/8283a222-48df-4474-b52a-938444368fb3/false-child
[INFO] Checking url = https://mangadex.org/title/8283a222-48df-4474-b52a-938444368fb3/false-child
[INFO] Using English language
[INFO] Fetching all chapters...
[INFO] Downloading cover manga False Child
[INFO] File exist and replace is False, cancelling download...
[INFO] Download directory is set to "/mnt/W/Manga/Manga/False Child"
[INFO] Using cbz format
[INFO] Preparing to download...
[INFO] '[What's Typesetting] Ch. 1.cbz' is verified and no need to re-download
[INFO] '[What's Typesetting] Ch. 2.cbz' is verified and no need to re-download
[INFO] '[What's Typesetting] Ch. 3.cbz' is verified and no need to re-download
[INFO] '[What's Typesetting] Ch. 4.cbz' is verified and no need to re-download
[INFO] '[What's Typesetting] Ch. 5.cbz' is verified and no need to re-download
[WARNING] '[What's Typesetting] Ch. 6.cbz' is missing or unverified (hash is not matching)
[WARNING] Found 1 missing or unverified chapters, re-downloading 1 chapters...
[INFO] Getting images from chapter 6
[INFO] Downloading [What's Typesetting] Chapter. 6 page 1
file_sizes: 100%|█████████████████████████████| 582k/582k [00:01<00:00, 502kB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 2
file_sizes: 100%|████████████████████████████| 941k/941k [00:00<00:00, 2.65MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 3
file_sizes: 100%|██████████████████████████| 1.28M/1.28M [00:00<00:00, 6.69MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 4
file_sizes: 100%|██████████████████████████| 1.23M/1.23M [00:00<00:00, 8.07MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 5
file_sizes: 100%|████████████████████████████| 522k/522k [00:00<00:00, 8.40MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 6
file_sizes: 100%|████████████████████████████| 542k/542k [00:00<00:00, 7.99MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 7
file_sizes: 100%|████████████████████████████| 629k/629k [00:00<00:00, 8.46MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 8
file_sizes: 100%|████████████████████████████| 590k/590k [00:18<00:00, 32.0kB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 9
file_sizes: 100%|█████████████████████████████| 645k/645k [00:01<00:00, 536kB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 10
file_sizes: 100%|████████████████████████████| 788k/788k [00:00<00:00, 2.85MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 11
file_sizes: 100%|████████████████████████████| 895k/895k [00:00<00:00, 8.00MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 12
file_sizes: 100%|████████████████████████████| 975k/975k [00:00<00:00, 3.72MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 13
file_sizes: 100%|██████████████████████████| 1.14M/1.14M [00:00<00:00, 10.4MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 14
file_sizes: 100%|██████████████████████████| 1.12M/1.12M [00:00<00:00, 9.82MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 15
file_sizes: 100%|████████████████████████████| 796k/796k [00:00<00:00, 9.83MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 16
file_sizes: 100%|████████████████████████████| 504k/504k [00:00<00:00, 9.26MB/s]
[INFO] Downloading [What's Typesetting] Chapter. 6 page 17
file_sizes: 100%|██████████████████████████| 1.15M/1.15M [00:00<00:00, 9.84MB/s]
[INFO] [What's Typesetting] Ch. 6 has finished download, converting to cbz...
cbz_progress: 100%|███████████████████████████| 17/17 [00:00<00:00, 58.12item/s]
[INFO] Waiting for chapter read marker to finish
[INFO] Download finished for manga "False Child"
[INFO] Cleaning up...
x@x-Mint:~/Documents$ 

That worked perfectly, so I did a full run to update 54 MangaDex mangas. At least 75% of them converted the old database to the new database format. There were 9 of the 54 that downloaded at least 1 new chapter. There were no database lock errors during the entire run.

I put the huge amount of output on 0bin in case you would like to verify, though please note that I used a bash script to parse a text list of mangas to download. Because of this, the mangadex-dl command itself is run from the script and is not output to the console and I have extra extra information from the script that outputs to the console.

So, the database locking issue when saving to a Samba file server seems to now be completely fixed. Thank you for the time and effort you put in to fix this! I would have been happy enough with keeping the nobrl workaround in /etc/fstab.

mansuf commented 1 year ago

Nice, the PR has been merged and will be released soon in v2.8.1. Thank you for your contribution 💖