Giter VIP home page Giter VIP logo

mangodl's Introduction

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

  • Go compiler (if you want to build from source)
  • Linux, Windows or Mac

Installation

Linux

Download the files mangodl and install.sh from the latest Linux version in the Releases

# 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/liamtoaldo/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

Download the executable (mangodl.exe) from the latest Windows version in the Releases
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
Installing via brew (assuming that /usr/local/bin is already in the $PATH variable):

brew tap liamtoaldo/mangodl
brew install --build-from-source mangodl

macOS (alternative)

Download the executable mangodl-darwin from the latest macOS version in the Releases

# rename the executable
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 10 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 "$HOME/Downloaded Manga/" and the Desktop for Windows
-v, --version			prints the version number (this was implemented from v1.6)

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 -D "Martial Peak" -cr 1 99 will download chapters from 1 to 99 (included)
-o, --output			used to specify the file output of the pages (img, pdf or cbz), e.g. mangodl -D "Tokyo Revengers" -o pdf will create a pdf for every chapter. By default, it's images.
                                Remember that this flag and any other flags must be used before the chapter selection flag, otherwise they wouldn't be detected
-s, --special			used to download "special" chapters too, the ones with floating point values (13.1, 14.7, 99.3, etc). Makes the downloads slower, so use this only if needed
-f, --first			used to skip the selection phase and select the first manga found. (e.g. mangodl -D "Chainsaw" -f)

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 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/liamtoaldo/mangodl

Acknowledgements

mangodl's People

Contributors

delta-official avatar liamtoaldo 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

mangodl's Issues

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

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] Unable to connect to website

Here's a full output of the error:

Searching the manga
2021/06/18 02:07:57 Unable to connect to website, error:  Get "https://ww.mangakakalot.tv/search/we%20want%20to%20talk%20about%20kaguya": dial tcp [2606:4700:3031::6815:316f]:443: connect: no route to host
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x40 pc=0x12c632c]

goroutine 1 [running]:
mangodl/utils.search(0xa)
	/home/liam/go/src/mangodl-git/utils/utils.go:203 +0x14c
mangodl/utils.Execute()
	/home/liam/go/src/mangodl-git/utils/utils.go:444 +0x53c
main.main()
	/home/liam/go/src/mangodl-git/main.go:7 +0x25

Failed after running this command: mangodl -S "we want to talk about kaguya"

Doesn't Work on macOS

It's throwing this in the terminal output

install: /usr/bin/mangodl: Read-only file system

Choose download location

Would it be possible to customize the download location? maybe through a command line option, or something like that?

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.

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

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.

[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

url

Any way I can download with a url instead of the name. If is possible what are the supported websites?

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?

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.