An easy-to-use cli tool for downloading manga

Contributors Forks Stargazers Issues MIT License


Logo

mangodl

Download and search manga right from the terminal!

Report Bug || Request Feature

Table of Contents

About The Project


An easy-to-use cli tool for downloading manga

example

Built With

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  • golang (if you want to build from source)
  • linux, windows or mac

Installation

Linux

# clone and go into the repository
git clone https://github.com/Gyro7/mangodl.git
cd mangodl

# run the installation script
chmod +x install.sh
./install.sh

Linux (build from source)

# clone and go into the repository
git clone https://github.com/Gyro7/mangodl.git
cd mangodl

# NOW JUST OPEN THE INSTALL.SH SCRIPT AND UNCOMMENT THE COMMENTED LINES
# then run the installation script
chmod +x install.sh
./install.sh

Arch Linux and derivatives

An AUR package is now available.

Just yay -S mangodl or, if you use paru paru -S mangodl

Windows

If you just want to use it without installing it, just run mangodl.exe everytime and skip these steps below

Open start menu,
1. Type Edit environment variables
2. Open the option Edit the system environment variables
3. Click Environment variables... button
4. There you see two boxes, in System Variables box find path variable
5. Click Edit
6. a window pops up, click New
7. Type the Directory path of mangodl.exe (Directory means exclude the file name from path)
8. Click Ok on all open windows and restart the command prompt.

macOS

If you haven't already given the terminal access to the disk, then do it, for further help see THIS

Anyway, this is not tested, so if you have macOS and want to test/fix just create a pull request or an issue.

# clone and go into the repository
git clone https://github.com/Gyro7/mangodl.git
cd mangodl
# remove the linux executable, rename the macos one to mangodl and make it executable
rm mangodl
mv mangodl-darwin mangodl
chmod +x mangodl
# move the executable to the /usr/local/bin/ path, be aware of not deleting the directory!
sudo mv mangodl /usr/local/bin/mangodl

Usage

Usage: mangodl [FLAGS]...

Arguments and flags:

-h, --help			shows this message and exit
Needed (one of them):
-D, --download			downloads the manga specified after -D (e.g. mangodl -D jojo will search for 5 manga with that name and ask you which one to download)
-S, --search			searches for the manga specified after this flag (e.g. mangodl -S "kanojo x kanojo" will search and display the manga found with that name)
-Q, --query			show downloaded manga
-Dir, --directory		sets the default directory to download manga (e.g. mangodl -Dir "$HOME/Documents/manga/"), otherwise the default one would be "~/Downloaded Manga/" and the Desktop for Windows

Optional:
For -D:
-c, --chapter			used to specify the chapter to download (if omitted it will download them all)
-cr, --chapterrange		used to specify a range of chapters to download (e.g. mangodl -S -M "Martial Peak" -cr 1 99 will download chapters from 1 to 99 (included)

For -S:
-n, --noplot		do not print the plot of searched manga	

Reading

To read the downloaded pages, I really suggest this free piece of software, which is lightweight and flexible:

OpenComic

OpenComic Demonstration

You can simply add the folder "Downloaded Manga" to OpenComic, which is the most recommended thing to do.
And then it'll open all your manga, divided into chapters.

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GPL 3.0 License. See LICENSE for more information.

Contact

Me - [email protected]

Project Link: https://github.com/Gyro7/mangodl

Acknowledgements

Owner
A busy programmer and student who tries to upload his projects weekly. Hope u'll enjoy them <3
null
Comments
  • [SUGGESTION] Include a tarball (tar.gz file) in the release version

    [SUGGESTION] Include a tarball (tar.gz file) in the release version

    After searching on how to make formulaes it's apparently needed to have a tarball file inside the release so brew can build from source (so no pre-compiled executables!) it must follow a naming convention like this:

    mangodl-1.3.tag.gz
    

    i request that @Gyro7 adds this

  • Leading 0 in names

    Leading 0 in names

    Would it be possible to have leading 0s in the page filenames? that way they would get sorted properly when creating archives. This would also come in handy for folder names of long running titles with over 100 chapters.

  • Downloading bug; directory created, no command output or files downladed.

    Downloading bug; directory created, no command output or files downladed.

    On some manga (yuri hime collections, "my slave is way too cheerful," and maybe others I'm forgetting) after making the decision on what to download, the command with end with an exit code of 0. No verbose errors are printed, and no download info shown. I'm running on EndeavourOS (arch with helpful bash scripts), latest zen kernel, and installed via yay and the good ol AUR.

    Besides that, also wanted to say that the tool has been very useful. Nowhere near as over complicated, outdated, and outright broken so many other things i've tried have been.

  • [REQUEST] Add release version for MacOS with .dmg file attached for homebrew compatibility

    [REQUEST] Add release version for MacOS with .dmg file attached for homebrew compatibility

    I want to add mangodl to homebrew casks but I am currently unable because there is simply no release with a .dmg file

    This must help: https://askubuntu.com/a/1142276

  • Flat Directory

    Flat Directory

    Hey, Since I output to .cbz, having each individual cbz file in a folder is quite annoying and i've had to run a command on each one to get every chapter in one folder. Could you add a flag that allows the user to place everything in the one folder without subfolders?

  • Unable to download some manga past the 5th option listed with -S

    Unable to download some manga past the 5th option listed with -S

    Some manga, when searched for, show more than 5 options, but when you use -D, only 5 options are listed. However, when trying to narrow down the download by using the exact listed name, it is sometimes still not listed, as it is still past option 5 in the download list.

    An example of this, is trying to download Ichido dake demo, Koukai Shitemasu. This brings up the correct manga at number 8, under its English name: Even If It Was Just Once, I Regret It However, if you do a search with Even If It Was Just Once, I Regret It, it shows up at number 10. This means you can not download it, as -D only lists the first 5 options to download.

  • [BUG] Proper manga doesn't show up in the list with [-D] flag

    [BUG] Proper manga doesn't show up in the list with [-D] flag

    Title explains it all, here's a video

    https://user-images.githubusercontent.com/64544951/121824151-b356fe80-ccb2-11eb-88e5-1ead1e54f3ac.mp4

    (I can provide more info if it's needed)

  • [FEATURE] Option to get the manga as .cbr

    [FEATURE] Option to get the manga as .cbr

    I basically do my reading through YacReader, since all comics are in .cbr format. It would be grate to have an option that outputs the manga as .cbr format, just like it exist as .pdf. An easy work around can be done by hand but i think it would make for a great feature.

    Thank you and best regards.

  • Double pages get cut when downloading as pdf

    Double pages get cut when downloading as pdf

  • [Feature] Add the option to set a default output format

    [Feature] Add the option to set a default output format

    I read all my mangas on cbz format, so I will always have to use -o cbz. While is not too difficult, sometimes I write the chapter before and the output format is not applied.

    I saw that using the -Dir flag changes the default directory. Could something similar be made for the output format?

  • [Improvement] Simplfy cli for better automation

    [Improvement] Simplfy cli for better automation

    add and exact option that would only select matching titles so the selection menu can be skiped as it gets in the way of my attempts make a systemd timer

  • [Improvement] Ensure that perfect match is always the first result

    [Improvement] Ensure that perfect match is always the first result

    When doing -D or -S, ensure that, if there is a perfect match for the query, it shows up as the first result. This already happen often enough to be semi-reliable (for example, if if run mangodl -D "Dragon Ball Super", the manga called "Dragon Ball Super" is the first result, but this doesn't always happen.

    Enforcing that would streamline scripting a lot.

  • Update install.sh

    Update install.sh

    https://unix.stackexchange.com/questions/8656/usr-bin-vs-usr-local-bin-on-linux

    When I tried using install.sh on MacOS 12.3.1 it kept denying me access:

    • to /usr/bin/ directly
      • I would have to disable MacOS's SIP for that to work

    Instead: used a workaround

    • to install to /usr/local/bin/
      • which also works fine on linux

    install-where

CLI to support with downloading and compiling terraform providers for Mac with M1 chip

m1-terraform-provider-helper A CLI to help with managing the installation and compilation of terraform providers when running a new M1 Mac. Motivation

Jan 2, 2023
A very simple command line tool for downloading YouTube videos.

GoTube Overview This repository contains a single-file implementation of YouTube video downloader written in Go. It does not require any third-party p

Dec 20, 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
"steal" NFTs by downloading them via OpenSea api ;)

go-NFThief "steal" NFTs by downloading them via OpenSea api. now you don't have to manually screenshot them ;) Options to: download a collection via c

Apr 11, 2022
An easy to use menu structure for cli applications that prompts users to make choices.
An easy to use menu structure for cli applications that prompts users to make choices.

WMenu Package wmenu creates menus for cli programs. It uses wlog for its interface with the command line. It uses os.Stdin, os.Stdout, and os.Stderr w

Dec 26, 2022
Easy to use CLI for cryptography

EDH (Encryption, Decryption, Hashing) Utility that aims to improve efficiency of encryption, decryption and hashing by making a simple to use CLI Writ

Nov 4, 2021
Easy to use library and CLI utility to generate Go struct from CSV files.

csv2struct Easy to use library and CLI utility to generate Go struct from CSV files. As a benefit, it's fully compatible with csvutil. So, structs gen

Nov 7, 2022
Simple, lightweight, and easy to use gopacket wrapper cli

gniffer Simple, lightweight, and easy to use gopacket wrapper cli Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About

Dec 25, 2021
This tool is a CLI-interactive tool for TA who use eeclass platform

NTHU eeclass TA helper. This tool is a CLI-interactive tool for TA who use eeclass platform. It helps TA to download all the submitted homework, and use CSV to record the score and comment, and upload CSV score directly to the eeclass platform with just 2 Enter key!

Dec 11, 2021
Nebula Diagnosis CLI Tool is an information diagnosis cli tool for the nebula service and the node to which the service belongs.

Nebula Diagnosis CLI Tool is an information diagnosis cli tool for the nebula service and the node to which the service belongs.

Jan 12, 2022
Go-file-downloader-ftctl - A file downloader cli built using golang. Makes use of cobra for building the cli and go concurrent feature to download files.

ftctl This is a file downloader cli written in Golang which uses the concurrent feature of go to download files. The cli is built using cobra. How to

Jan 2, 2022
A CLI tool that you can use create regular backups of your Notion.so Pages.

notion-offliner A CLI tool that you can use create regular backups of your Notion.so Pages. Perfect for disaster scenarios and offline usage. MacOS an

Jan 3, 2023
sg is the CLI tool that Sourcegraph developers can use to develop Sourcegraph.

sg is the CLI tool that Sourcegraph developers can use to develop Sourcegraph.

Dec 14, 2022
A simple CLI tool to use the _simulate API of elasticsearch to quickly test pipelines

elasticsearch-pipeline-tester A simple CLI tool to use the _simulate API of elasticsearch to quickly test pipelines usage: pipelinetester [<flags>] <p

Oct 19, 2021
A very basic cli keyring tool to use accross various OS.

A very basic cli keyring tool to use accross various OS.

Dec 14, 2022
Simple and easy to use command line application written in Go for cleaning unnecessary XCode files.

xcclear Say hello to a few extra gigabytes of space on your Mac with xcclear, a simple and easy to use command line application written in Go for clea

Dec 16, 2022
An easy to use go program to download videos from Reddit

Gedditsave Download videos from reddit from the command line. Use guide geddit -

Oct 17, 2022
An easy to use go program to download videos from Reddit.
An easy to use go program to download videos from Reddit.

Gettit Download videos from reddit from the command line. Use guide gettit -u post_url Example : gettit -u https://www.reddit.com/r/programminghorror/

Dec 30, 2022