Terminal client for MangaDex 📖

mangadesk - Terminal client for MangaDex 📖

Download manga directly from your terminal to read!

This client retrieves information straight from MangaDex v5's API.
As the API is still a WIP, some changes (probably breaking) might be expected.

Features

  • Download chapters straight to your computer.
  • Login to keep track of your followed manga.
  • Keep track of already downloaded manga.
  • Download multiple chapters together.
  • Searching!
  • Responsive UI (kind of)
  • Written in Golang :)

Works for Windows/Linux/macOS.

Usage

Simply choose the chapters you want to read to download.

By default, all downloads are stored in a folder titled downloads, relative to where you run the application.

However, you can change this by changing the downloadDir field in the usr/usr_config.json file (this file only appears after running the application at least once!)

Keybindings

  • Ctrl + L : Login/Logout
  • Ctrl + K : Keybindings/Help
  • Ctrl + S : Search
  • Ctrl + E : Select multiple chapters
  • Esc : Going back

Installation 🔧

Check out the releases page for relevant files.

For bleeding edge 🗡 updates, you may compile from source:

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

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.
  • Go Project structure.
Comments
  • [BUG] Mangadesk fails to load images

    [BUG] Mangadesk fails to load images

    There seems to be a new issue at the moment.

    Until yesterday everything was fine, but when I try downloading mangas now I get a lot of "failed" messages. When looking into it, I noticed that it's somehow related to the image size. At least according to my observation. Images below 1 MB in size are downloaded without trouble. Images around 1.5 MB may cause issues but you might succeed on retry. But if there's any image beyond 2.2 MB it fails downloading for sure. Mangadesk will download images up to that troublesome image, then stop. It will fail on redo until the retry limit is reached.

    I tried checking by redownloading a chapter with larger images that I already downloaded some days ago. There was no issue then, now it fails and the images won't load. I also tried on a system with a different ISP, same result.

    When accessing chapters through the website, it works, the images will load and they can be saved manually to hard disk one by one, so it's not that the chapters are broken.

    Currently using the latest Mangadesk version (0.7.7)

    I guess you can check things with any manga title, but if you want one that fails for me, then try this: https://mangadex.org/title/265da069-ca97-434a-ba54-d118ed9b6e7f For me, it fail to download chapter 87 completely - first image is over 3MB in size. On the website it's working just fine.

  • [Feature] Display images on terminal instead of downloading its

    [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?

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

    [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"

  • Chapter folder is empty?

    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.

  • [BUG] Read Status not updated immediately on toggle.

    [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.

  • [Feature Request] Toggle Read Status and Follow Manga option

    [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.

  • Configuration File location depending on OS

    Configuration File location depending on OS

    Created a new function for this, and made all the subsequent changes across all the relevant files to take into account the function/name change. Updated README. md with the new information.

    I'm unable to test on MacOS and Windows, since I only use Linux though it appears to be working for me!

    I've cleaned up as best as I can, though this is my first time using Go so do let me know if anything needs changing.

  • [Feature Request] Search using Manga ID

    [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.

  • Can't backspace in login page

    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] Not all follows retrieved

    [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

  • [BUG] Issue with Chapter Download

    [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,

  • [Feature Request] Sorting Followed Manga

    [Feature Request] Sorting Followed Manga

    The reason is similar to #69. Its difficult to find manga in a large list. Ability to switch between "A to Z" and "Latest updated" would be useful (for my case it be easier to narrow down my followed manga search).

Terminal client for SimpleNote

GoNote - Terminal client for SimpleNote GoNote is a simple utility for managing notes in your SimpleNote account. It allows basic operations like crea

Nov 22, 2022
YouTube client on your terminal

MeowTube YouTube client on your terminal Table of Contents About Getting Started Usage Contributing About MeowTube is a CLI (Command Line Interface) t

Jul 29, 2022
lazyhub - Terminal UI Client for GitHub using gocui.
lazyhub - Terminal UI Client for GitHub using gocui.

lazyhub - Terminal UI Client for GitHub using gocui.

Dec 14, 2022
📱🥴 TikTok terminal client for browsing & downloading videos
📱🥴 TikTok terminal client for browsing & downloading videos

tiktik ?? ?? - TikTok Terminal Client Name inspiration - this yt vid Huge Thanks to Egor who wrote the parsing part Installation ?? go get -u github.c

Dec 3, 2022
The Discord terminal client you never knew you wanted.
The Discord terminal client you never knew you wanted.

I AM CLOSING DOWN THE CORDLESS PROJECT Hey, so I know this is somewhat of a bummer, but I got banned because of ToS violation today. This seemed to be

Jan 7, 2023
Visp is a Vi-like Spotify client for terminal users.
Visp is a Vi-like Spotify client for terminal users.

Visp Visp is an interactive console client for Spotify, written in Go. Its interface is similar to Vim, and aims to be fast, configurable, and practic

Dec 31, 2022
Slack client for your terminal
Slack client for your terminal

slack-term A Slack client for your terminal. Installation Binary installation Download a compatible binary for your system. For convenience, place sla

Dec 30, 2022
Lightweight Discord terminal client
Lightweight Discord terminal client

discordo Lightweight Discord terminal client Features Lightweight: Discordo is designed to have a low memory footprint and low CPU usage, overall a lo

Jan 6, 2023
TScli - a very simple terminal-based client for TSWeb online judge

TScli TScli - a very simple terminal-based client for TSWeb online judge. It supports submitting problems and receiving feedback on them. Installation

Oct 24, 2021
Gocheat - Golang terminal client for cht.sh that uses charm.sh's bubbletea project

Go Cheat.sh install gotext go get -u golang.org/x/text/cmd/gotext go generate

Jun 3, 2022
gomerge is a tool to quickly bulk merge several pull requests from your terminal.
gomerge is a tool to quickly bulk merge several pull requests from your terminal.

Gomerge is a tool to quickly enable you to bulk merge Github pull requests from your terminal. The intention of this tool is to simplfy, and eventually automate the merging of github pull requests. This tool should be able to run on most systems.

Dec 28, 2022
`tmax` is a powerful tool to help you get terminal cmd directly.
`tmax`  is a powerful tool to help you get terminal cmd directly.

The positioning of tmax is a command line tool with a little artificial intelligence. If you frequently deal with the terminal daily, tmax will greatly improve your work efficiency.

Oct 15, 2022
🎄 A Christmas tree right from your terminal!
🎄 A Christmas tree right from your terminal!

ctree ?? A Christmas tree right from your terminal! ?? Demo ⌛ No Refresh Don't want the tree to refresh every 2 seconds? Easy! Just add the --no-refre

Dec 20, 2022
progress_bar creates a single customizable progress bar for Linux terminal.
progress_bar creates a single customizable progress bar for Linux terminal.

progress_bar Go Progress Bar Features progress_bar creates a single customizable progress bar for Linux terminal. Installation go get -u github.com/er

Aug 12, 2022
A terminal based typing test.
A terminal based typing test.

What A terminal based typing test. Installation Linux sudo curl -L https://github.com/lemnos/tt/releases/download/v0.4.0/tt-linux -o /usr/local/bin/tt

Dec 28, 2022
Raspberry Pi terminal based activity monitor
Raspberry Pi terminal based activity monitor

pitop Raspberry Pi terminal based activity monitor Yes I know there are plenty of solutions already available, but I wanted to build my own terminal b

Dec 11, 2022
❓🖼 Find the anime scene by image using your terminal
❓🖼 Find the anime scene by image using your terminal

What Anime CLI ❓ ?? > This application is basically a ?? wrapper around trace.moe PREVIEW Usage ?? Get Anime By Image File ?? what-anime file anime.jp

Jan 2, 2023
Terminal stock ticker with live updates and position tracking
Terminal stock ticker with live updates and position tracking

Ticker Terminal stock watcher and stock position tracker Features Live stock price quotes Track value of your stock positions Support for multiple cos

Jan 8, 2023
A modern and intuitive terminal-based text editor
A modern and intuitive terminal-based text editor

micro is a terminal-based text editor that aims to be easy to use and intuitive, while also taking advantage of the capabilities of modern terminals

Jan 7, 2023