Code Monkey home page Code Monkey logo

mangadesk's Introduction

mangadesk ๐Ÿ“–

Top Language License Go Report Downloads

Note: Maintenance mode. Only severe bugs may be fixed.

The ultimate MangaDex terminal client!

demo.gif

Features โœจ

  • Download chapters straight to your computer.
  • Login to keep track of your followed manga.
  • Download multiple chapters together.
  • Searching!
  • (Yes, you can use this to scrape manga).
  • Written in Golang :)

Works for Windows/Linux/macOS.

Installation ๐Ÿ”ง

This application runs as a standalone executable, and does not need to be installed.

Check out the Releases Page for new releases. To update, just download the latest release.

For bleeding edge ๐Ÿ—ก updates, you may also compile from source:

$ git clone https://github.com/darylhjd/mangadesk.git
$ cd mangadesk
$ go get -d ./...
$ go build

Arch Linux

Mangadesk is available through the AUR and may be installed as such (thanks @AmaanHUB!). It may be installed manually or with your preferred AUR helper:

$ paru -S mangadesk

Ubuntu

Mangadesk is available through the MPR and can be installed manually or with your preferred MPR helper:

$ una install mangadesk

Void Linux

Mangadesk is available through the official Void repositories and can be installed via XBPS:

$ xbps-install -S mangadesk

Uninstall โŒ

To uninstall, simply delete the executable and its related folders and files.

Your downloads will not be removed by deleting the executable.

Arch Linux

Uninstall with an AUR helper or with pacman:

$ pacman -R mangadesk

Ubuntu

Uninstall with a MPR helper or with APT:

$ una remove mangadesk

Void Linux

Uninstall with XBPS:

$ xbps-remove -R mangadesk

Usage โœ

To run the application, navigate to the directory where you stored the executable, and run the following command:

$ ./mangadesk

Steps may differ for different OSes. For example, in Windows, use a backslash \ instead.

Keybindings โŒจ

Operation Binding
Login/Logout Ctrl + L
Keybindings/Help Ctrl + K
Search Ctrl + S
Next/Prev Page Ctrl + F/B
Escape Esc
Select a chapter Ctrl + E
Toggle select all chapters Ctrl + A
Toggle chapter(s) read status

*Note: You can select multiple chapters to toggle!
Ctrl + R
Toggle manga following Ctrl + Q

Settings โš™

Refer to this document for configurable settings.

Issues โ˜ 

Check out the Issues page for current issues/feature requests.

Contributing ๐Ÿค

Always welcome and appreciated :)

Please take some time to familiarise yourself with the contributing guidelines.

Learning Points ๐Ÿง 

  • Creating TUIs with tview/tcell.
  • Working with the filesystem in Golang.
  • Goroutines & Context.
  • Go project structure.

mangadesk's People

Contributors

amaanhub avatar clyhtsuriva avatar darylhjd avatar enoumy avatar henry726 avatar hiddeninthesand avatar jsaurusrex avatar pdxchristian 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

mangadesk's Issues

[Feature Request] Directory option, page numbering

Is it possible to add an option to specify the directory where mangas are downloaded ?
Edit : Sorry for all the renames :/ If possible, what about page numbering ? Instead of having these bizarre filenames, is it possible to implement automatic page numbering ?
Last question, don't work on this one if you don't like it : Is it possible to have vim keybindings ?

[BUG] Not all follows retrieved

Issue

When logged in, only the first 50 followed manga are fetched from Mangadex

Expected behaviour: After logging in, all followed manga are retrieved
Actual behaviour: After logging in, only 50 followed manga are retrieved
Steps to reproduce: Log in to an account with > 50 followed manga
Additional info: Looks like you're only sending one request to the server with limit=50. Instead, you should read the 'total' token returned at the end of the list of manga and loop the fetch with offset = offset + limit each time.

Example

<log in>
<start of req sequence>
Req 0: /user/follows/manga?limit=50
Resp 0: <Manga[0..49]>, total: 812, limit: 50, offset: 0
Req 1: /user/follows/manga?limit=50&offset=50
Resp: <Manga[50..99]>, total: 812, limit: 50, offset: 50
Req 2: /user/follows/manga?limit=50&offset=100
Resp 2: <Manga[100..149]>, total:812, limit: 50, offset: 100
...
Req 15: /user/follows/manga?limit=50&offset=750
Resp 15: <Manga[750..799]>, total:812, limit: 50, offset:750
Req 16: /user/follows/manga?limit=12&offset=800
Resp 16:  <Manga[800..811]>, total: 812, limit: 12, offset: 800
<end of sequence>

Evidence

Fetched manga (50 counted):
image
Response from the sever using Postman (812 follows total):
image

Can't backspace in login page

If I type my login wrong I can't backspace and fix it because the help page will show up. I can go back with left arrow key and delete, but can't backspace. Not sure if intended?

[BUG] Manga list not showing up when searching

Search not working as intended.
image

Found this comment in the logs when it fails.

json: cannot unmarshal object into Go struct field Manga.data.relationships of type []mangodex.LocalisedStrings

[Bug?] mangadesk_x64 only shows 'reading' manga.

Today I discovered this application, and, on login, I noticed it didn't actually show any manga that I didn't had in the 'reading' category. The thing is, most of my followed manga where in the 'to_read' category, so I was wondering if it is a bug, the intended behavior, or something else happened.

I expected to get more than 100 mangas in that list, instead I got merely 19.

Captura de pantalla de 2021-06-04 19-16-18

[BUG] Guest login - for explicit content, chapter listing not working

Describe the bug
As title states - in guest login it's possible to search for explicit content and respective manga titles will show up in the search result box if you enable the checkbox. So far working as intended. But once you open such a manga to browse through the chapter list you get "no results" even if there should be entries listed.

I tried to open a manga with such content directly in a private browser window to prevent unwanted interaction. It's possible, the website still lets you access explicit (or rather "filtered out") content if you know the manga ID. It will, however, warn you about that and asks for permission to proceed - looks like this:

grafik

Once you confirm you can see the chapters and read/access them like normal. I'm not sure whether this is new behaviour after the recent API change. Normally I'm logged in on the website and won't be bothered by such requesters.

[BUG] Cannot load followed manga

Describe the bug
After logging in I get the error "Error loading followed manga."
If I tweak the code and have it output err instead of the above text I get "&{%!d(string=array) 7671616 219830 %!d(string=MangaAttributes) %!d(string=data.attributes.links)} .
The type appears to be *json.UnmarshalTypeError

To Reproduce
Load app

Expected behavior
A clear and concise description of what you expected to happen.

Additional context
I've got a load of manga watched

Let me know if you need anything else

Update: Narrowed it down to the manga named "Hospitality of Healer". If you add that to your reading list it should exhibit this behaviour.

[BUG] Mangalist not loading

Looks like they changed stuff in the API again during the last few hours.

Mangalist on guest login fails/returns error.
Searching for manga also returns error.

Version 0.7.4

[Feature Request] Toggle Read Status and Follow Manga option

As far as I checked (docs and ctrl+K), there is no way to toggle Read status. If there is then please update the docs and ctrl+K help center in the terminal.

I think it would be beneficial to implement this so it be easier to track read changes via the terminal itself (like using ctrl+R to toggle maybe after selecting using ctrl+E/A).

Mostly suggesting this because volume extras or any kind of bonuses are included in between. Since I periodically delete the downloaded chapters, some nearly got skipped because there is no new update feed in the terminal. So it got me thinking if I can ctrl+A and then ctrl+R, I can track what I download/read even if I delete chapters later.

Search does't seem to find all works

First mangadesk works stable without problems, thanks for that great work.

I do not know if my problem is a bug or simple a missing flag when Mangadesk send a request to the api but i can't find any manga that has the most explicit content rating on Mangadex. Allows the api to search for such titles?

Chapter folder is empty?

Don't know why but for some reason I'm unable to download the pages of the any manga. the program makes the folder of the series and the chapter but the chapter folder is empty? Can anyone tell me what I did wrong.

[Feature] Display images on terminal instead of downloading its

Hi @darylhjd, thanks for your works.

In some cases, instead of persistently stored images locally which could lead to some copyright problems, I guess temporarily store images and let users read directly in their terminal could be a better option.

I think we could use some libraries like pxl or pixterm for image rendering on terminals. The other things left are: to add new showing screens and navigation on that viewing screen. What do you think about it?

Win 10 Trojan

Hello,
today, Win 10 integrated Antivirus reported to me that "Mangadesk_win64.exe" is a Trojan.
I have used this app before without any Problem since today.
The Massage is in German, but I think it is clear.
image

[BUG]

Does not work on Mac. You have specified a Mac file in the release page. After downloading, a document is downloaded. Thats it? Is there more procedure to install it properly. pls specify more

[Feature Request] Ability to set a downloads folder outside the mangadesk directory

Is your feature request related to a problem? Please describe.
Currently if you change the DownloadDir the directory you set will always be inside the mangadesk folder. This makes it harder to organize big collections in one folder.

Describe the solution you'd like
It would be nice if DownloadDir used ~/Pictures/Mangas for example instead of creating a ~/Pictures/Mangas folder in its own folder.

[Feature] Configure manga download folder

Rather than hardcoding paths, relative or absolute, the program should allow the user to configure where they'd like the manga to be stored. This could read from an environment variable, a command line argument, a config file or all three - but this program would be more robust if it didn't use the hardcoded downloads relative path!

DownloadFolder = "downloads"

If you aren't interested in making this configurable, I'd appreciate it if the folder could be something discrete, like $HOME/.mangadesk/{files}, so that the files aren't easily visible when not using mangadesk.

[BUG] Guest Login, start page and search currently show "no results"

Describe the bug
When you open the program with guest login it normally shows the list of popular manga. This page is currently blank stating "no results". Also searching for manga titles does not work, regardless of what you search, you get no results. Everything was fine Friday last week, when I last used Mangadesk. Then I opened Mangadex with a browser on the same machine, that works just fine. Did they change something in the API during weekend?

I don't have a screenshot right now, but it should be self-explanatory.

Windows 8.1 x64
Version: 0.5.7

Not related and only a minor issue, but maybe you can fix this as well:

manga titles that end with one (or more) dots "." won't download on Windows machines, producing an error. Windows automatically removes all dots from the end when you create a folder. Result is that Mangadesk cannot find the target folder to download to and returns an error stating the target is inaccessible. My suggestion is to either treat those dots as illegal characters or replace them with an underline.

Download everything?

Would there be an easy way to queue up everything on mangadex and keep track of new releases?

[BUG] Issue with Chapter Download

Currently there seems to be a minor problem when downloading chapters. From my experience, you cannot download a second time from the same manga title without closing and reopening the chapter list first.

Check for yourself... just open a random manga with several chapters and download one of them, doesn't matter which. You can also select multiple chapters. This download will work just fine. Now, once the queue is finished, select another chapter and try to download that one. Everything looks normal and Mangadesk seems to work, it will also tell you that the second download is okay after some time, but when you look in the manga folder there won't be a new subfolder for the second download. This behavior persists until you close the chapter list in Mangadesk and reopen it,

Cannot download chapters from mangas that have ":" in their name

I tried to download "JoJo's Bizarre Adventure Part 6: Stone Ocean (Colored)", and I think that since it has a colon in it's name, it cannot create the folder so it cannot download the pages.

Screenshot_64
I think a patch for this would be to check if the manga name or chapter name contains a colon and if it does, it changes it to a dash.

Thanks.

[BUG] Chapters missing for solo leveling

Chapters are skipped from 5 to 65 for solo leveling checked mangadex.tv and all the chapters are there. Wondering if its because I am not a member?
Screenshot from 2021-05-24 10-13-09

Reproduce: open solo leveling and check the chapter list
expected: chapters 6-64 should be present
actual: chapter 6-64 are missing

[BUG] Manga titles on certain manga not displayed & issue with storing decimal chapters

  1. Bug
    Certain Manga titles fail to display when you search for them.
    The title column is left blank. As a result, downloading chapters will work, but Mangadesk won't create a subfolder for the manga. Instead Chapters are stored in the downloads folder. This potentially creates a mess, when you download more than one of such title at a time.

  2. Bug
    Chapter download, folder naming issue
    Since some time Mangadex allows uploaders to use decimal chapter numbers, e.g. Chapter 8.5. You can see them as such in Mangadesk. When you download such a chapter, this important dot gets removed, so in the folder the chapter is now named like "Chapter85". Now imagine what happens when you have a manga title with tons of decimal chapter... this creates a mess unless you rename the folders manually - which would lead to the download marker being removed.

To Reproduce
Bug 1:
search for "9999" - currently bugs out on on first entry, The manga title is missing. You can acces the manga.
search for "Tenkosuka" - one result, manga title is blank.

I'm not sure, what causes this. I suspect the titles might being to long or contain nasty characters

Bug 2:
download any manga with decimal chapters, e.g. search for "Kumo desu ga, nani ka"

[BUG] Read Status not updated immediately on toggle.

Earlier Toggle Read gave an error (at the time the API was not fixed). At the moment the endpoint was supposedly fixed
image
We get no errors but Ctrl + R is unresponsive and does not toggle. I even checked via website that the read status of chapters I tested were not updated.

Copy and Paste

Would you allow me to be able to copy and paste in the password and the username.

[Question] Authentication error

While I tried to log in again on my account via the terminal app I currently get this error.
image

Is this due to a failure at my end or due to a change on their apis end?

[BUG] Error loading manga list!

Unable to find any mangas when searching for them and also get the same issue if you use it as a guest.

how to reproduce:

  1. Log in as guest
    If logged in as a user:
  2. Go to search window
  3. Search for any manga (ex. ubel blatt)

Expected behavior
Gives a list of mangas with the same name or containing the words in the search bar.
when logged in as guest you should see various manga titles.

Screenshots
image

Environment (please complete the following information):

  • OS: Ubuntu
  • Version: 20.04.1

[BUG]cant change language

solved, thanks darylhjd!
"if you are migrating from an old version of this app, make sure you edit the correct config file. It will be in "%AppData%/mangadesk" folder (on Windows)."

Describe the bug
no matter how I change the ISO code in usr_config.json
still can only show en manga

[Feature Request] Option to download failed chapters

Sometimes when downloading, certain chapters fail to download due to some reason. When having large number of chapters, downloading failed chapters by clicking manually takes time.

An option to reattempt to download option when the failed download message pop up might remove this hassle.

[Feature Request] Generate & Embed ComicInfo.xml when creating cbz/zip files

Is your feature request related to a problem? Please describe.
I read manga through Komga, at present none of the information about the manga is saved into the zip/cbz file created.

Describe the solution you'd like
Would it be possible to create and embed a ComicInfo.xml (if a zip is selected to be made). Obviously this would need to be created by parsing the information coming back from mangadex's API but this seems like it should be possible.

Additional context
I've already downloaded quite a few manga so something that could tag existing files would be great but might be outside the scope of what this application does.

I'm a programmer myself and I've considered adding this myself but I've no experience in go so I figured I'd ask and see if this is something that would be hard to add

[Custom Command] Added my own selection command

I don't really know if I implemented it correctly since I had to try to teach myself Go from nothing just to make it in only like, a day. But I found the whole, Cmd+E, next, Cmd+E, tedious and wanted to implement a Select All. I found a work around, I think maybe someone would find it useful or you could implement yourself in a more robust way. Anyways, this is it,

I don't know how to use git so I'm probably showing this wrong ๐Ÿ˜…
And also since I'm not experienced in Go I didn't want to do git pull or anything like that (don't know how and might do it wrong), the command is just for personal use and it might be cool if it was proper.

MangaHandler

CustomFunction

functionality.mp4

[Feature Request] Search followed manga

This is useful when having large number of followed manga. Shortcut could be Ctrl+Shift+S maybe or another check box (similar to Explicit content option in the search screen).

No indication of downloading

When downloading manga, there isn't any indication whether it's being downloaded and there is no progress indication

[ Question ] Were the files are supposed to be downloaded?

Just for example, I've tried to download some chapters from the manga "Eight" (the same as the shown on example gif), and I just can't find them anywhere. I've tried to run find / -iname Eight and there's no results found.

Where can I find the downloaded files?

[Feature Request] Search using Manga ID

Certain manga are difficult to search (unless they have a really lengthy name). For example, searching for "Katsu!" manga, I get a big list as shown below (had to scroll down below to find it)
image

This was not the case when I do it in the website itself (pretty much its the first manga).
image

Though I am not sure how difficult would it be to implement a better search algorithm on par with MD, possible solutions are:

1)to check value inputted in search bar is of the form (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - Typical Manga ID form I noticed) then get the manga directly with the ID.
2)or only check against the ID if there are no results (just to skip verifying if its an Manga ID or not part)
3)recognize a weblink (for example https://mangadex.org/title/1d4291f0-8675-427a-9238-dd186375ff0e/katsu or https://mangadex.org/title/1d4291f0-8675-427a-9238-dd186375ff0e) So you get the exact manga immediately.

[BUG] Error getting manga list

Describe the bug
A clear and concise description of what the bug is.
If in doubt, you may copy the log of the latest run (logs are stored in the log folder in mangadesk's configuration folder).
2022-01-02 20-10-50.log

To Reproduce
Steps to reproduce the behavior:

  1. Launch manga desk
  2. Click onguest
  3. Error getting manga list.
  4. check logs for details

Expected behavior
A clear and concise description of what you expected to happen.
To be able to see and search manga
Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

  • OS: Arch Linux
  • Version: 5.15.12-arch1-1

Additional context
Add any other context about the problem here, such as whether you have changed any default settings etc.

[Feature Request] Use a /home/$USER/.config/mangadesk directory instead of usr/ in Linux

Is your feature request related to a problem? Please describe.
The current behaviour is that when mangadesk is run from any directory, it creates a usr/ directory with the settings inside. This isn't particularly a problem when running the binary from the same directory, though it becomes one when one moves the binary to /usr/bin/ so it can be accessed anywhere (like when it is installed through AUR).

Describe the solution you'd like
I would like there to be a way automated behaviour to create a directory in /home/$USER/.config called mangadesk with the configuration file inside (path potentially being /home/$USER/.config/mangadesk/config). This would be read whenever mangadesk is run, rather than creating a usr/ directory in a new place every time.

Describe alternatives you've considered
One could possibly call the usr directory something else such as .mangadesk so that when one is running it from home directory it reads it from there, and it makes a bit more sense what this directory is at a glance.


I don't use this software much, but I'm happy to learn Go and sink my teeth into it if you point me in the right direction, if you are interested.

[BUG] Error loading Manga List

Describe the bug

After logging in as a guest, I get the error "Error loading Manga List".

To Reproduce

  1. Open mangadesk
  2. Log in as a guest

Expected behavior

Gives a list of various manga titles.

Screenshot
mangadexerror

Environment

  • OS: Ubuntu
  • Version: 20.04
  • Mangadesk v0.6.2

Maybe the changed something in the API again.

[Feature Request] Download as CBZ

Would love to have an option to download directly as a cbz or zip. This is because my self-hosted manga library only works with cbz or zip files and image format folders are not contemplated, plus I would argue that for manga and comics in particular cbz (or the lesser used and lesser compatible cbr) are almost a standard.

In my opinion would just shoot up the usability of this application tenfold.
Thank you for your consideration.

Typo in README

\ is called a forward slash instead of a backslash under the usage section of the readme.

image

Chapter not showing up

So... I wanted to download the full Manga of Solo Leveling. But there is a big gap between chapters 5 and 65. Also, the last two Chapters are missing. I didn't check if any of the other chapters are... On Manganato the manga has all chapters from 0 up to 162. Do you have any suggestions why this might happen?

Implementing "paste" shortcut

It be cool if you can have ctrl+v shortcut to paste to avoid typos in the while searching. Also pasting a complete title might help narrow down lengthy searches.

[Feature Request] display the "group" on manga page

The manga page currently has columns for chapter number, language, title, download status and read status

This is sufficient if there's only one group working on a manga, but it's likely to see different groups working on the same series. And not necessarily in succession, so sometimes the same chapter gets uploaded by two or even more groups and if they don't differ in title or don't even have titles at all you cannot tell them apart - currently looks like this:

grafik

Right now, I have to download both chapters to identify which one I want/need.
On the other hand, columns for download status and read status can be narrowed if you have to.

Not sure if it's necessary to also add the group to the target folder name for downloading. I leave that up to your decision.

[Feature Request] Quit & Selection

Probably add a keybinding to quit the application, or mention it if there's one ^^

q would probably be a good choice (intuitive, used in a lot of TUI apps)

Also, why not adding alternatives keybinds (Space for example) to select items, or a "Visual Mode" to select a bunch of them without having to select each one manually ?

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.