• Stars
    star
    107
  • Rank 317,262 (Top 7 %)
  • Language
    Python
  • License
    Other
  • Created about 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

MAL: A MyAnimeList Command Line Interface [BROKEN: BLAME MyAnimeList]

mal - MyAnimeList Command Line Interface

Build Status codecov PyPi version PyPi License PyPI pyversions PyPI status

Description

mal is a command-line client for MyAnimeList, via the official API.

One of the major design goals of this project is to avoid the use of web-scraping, which means it should work indefinitely. Other projects that scrape the website tend to break whenever MyAnimeList has an update, rarely ever recovering from the needed maintenance as a result.

Development is currently in alpha. New ideas are welcome! But please check CONTRIBUTING.md before you submit that pull request.

This project is an unofficial fork of pushrax/mal, which seems to have fallen out of maintenance.

Features

  • Search your anime list.
  • Fetch your anime list.
  • List animes by their status (e.g. watching).
  • Increment or decrement episode watch count.
  • Add anime to your Plan To Watch list.
  • Edit anime metadata (currently tags, status and score) using your favorite text editor.
  • Print your MAL stats! Just like you do on MyAnimeList.

More features are currently being developed!

If you have a suggestion for a new feature, a bug to report or something else, you can submit an issue.

Please note that as this project is still in alpha development, pretty much everything is subject to change.

TL;DR | Demos

Main Usage

Listing Animes By Status

Requirements

See requirements.txt for detailed version information.

Installation

Preface

Ensure that you are using Python 3 before attempting to install.

It's common for systems to have both Python 2 and 3, so if necessary, use pip3 or python3 -m pip.

If your system has both python2 and python3, replace all instances of python and pip with python3 and pip3 (or python3 -m pip).

Install via pip

From the command line, run:

$ pip install --user mal

This will install the latest stable build of mal from the PyPi repository.

Manual Installation

If you want the absolute latest, bleeding-edge version, you'll have to install manually.

Clone this project and run pip:

$ git clone https://github.com/ryukinix/mal
$ cd mal
$ sudo pip install --user .

Note: If installing in a virtualenv, the sudo is not necessary.

It's also possible to install with the makefile (sudo make install) and the setup script (sudo python3 ./setup.py install), but we strongly recommend pip, as it tracks dependencies, and can uninstall. It is a package manager, after all.

Finally, if you want to update after having already installed, you can do this:

$ git pull origin master
$ sudo pip install --user .

On Arch Linux

This project has been packaged and uploaded to the AUR as python-mal-git in case you're using Arch Linux or a similar distro (like Manjaro).

Troubleshooting

If you just can't get mal to run because it's crashing upon startup, make sure that everything is using python3

$ head -1 $(which mal)
#!/usr/bin/python
$ sudo ed $(which mal) <<< $'1s/python$/python3\nwq'
28
#!/usr/bin/python3
29
$ head -1 $(which mal)
#!/usr/bin/python3

You might have to go through a few files to get it to work, but usually, editing the launcher is enough. Failing that, delete the launcher, re-clone the repo, and try again in a virtualenv. If it works there, be careful to follow the above steps and make sure you're using python3 for everything.

Usage

Authenticating

For some reason, the MAL API requires a username and password for most actions... including searching the main database. Thus, mal needs your MAL login to be useful. To prevent this from being a headache, mal stores your credentials in your OS's default config path (e.g. ~/.config/mal/myanimelist.ini for Linux). Your username and password are stored unencrypted in plain text in that file. If you haven't already authenticated (mal login), the program will ask for your credentials when needed.

Currently, there is an open issue hoping to resolve the whole "plain text password" kerfuffle.

The format of myanimelist.ini is as follows:

[mal]
username = your_username
password = your_password

Using The Interface

When mal is executed without any arguments, a help message is displayed:

$ mal
usage: mal [-h] [-v]
           {search,filter,increase,inc,decrease,dec,login,list,config,drop,stats,add,edit}
           ...

MyAnimeList command line client.

positional arguments:
  {search,filter,increase,inc,decrease,dec,login,list,config,drop,stats,add,edit}
                        commands
    search              search an anime
    filter              find anime in users list
    increase (inc)      increase anime's watched episodes by one
    decrease (dec)      decrease anime's watched episodes by one
    login               save login credentials
    list                list animes
    config              Print current config file and its path
    drop                Put a selected anime on drop list
    stats               Show anime watch stats
    add                 add an anime to the list
    edit                edit entry

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show the version of mal

You can also use the -h or --help options with mal or any of its subcommands to see specific help messages.

$ mal list -h
usage: mal list [-h] [--extend] [--user USER] [section]

positional arguments:
  section      section to display, can be one of: [all, watching, completed,
               on hold, dropped, plan to watch, rewatching] (default: all)

optional arguments:
  -h, --help   show this help message and exit
  --extend     display extra info such as start/finish dates and tags
  --user USER  choose which users list to show

Contributing

See CONTRIBUTING.md

License

GPLv3

More Repositories

1

decorating

decorating: Literally decorating your terminal with decorators
Python
250
star
2

lisp-chat

An experimental minimal chat written in Common Lisp
Common Lisp
169
star
3

discrete-mathematics

A computational way to study discrete mathematics using Haskell
Haskell
55
star
4

lisp-inference

An Inference Engine based on Propositional Calculus written in Common Lisp
Common Lisp
38
star
5

fractal-plan

An animation using geometric plan! How we do beautiful and psychedelic things?
Python
32
star
6

tetris

A simple tetris made in Unity
C#
24
star
7

trivial-snake

A trivial snake game written in Common Lisp built on top of trivial-gamekit
Common Lisp
21
star
8

dotfiles

These are my dotfiles. All the config stuff that I use is here.
Common Lisp
15
star
9

lisp-insights

A personal repository of notes about learning lisp patterns
Common Lisp
13
star
10

leraxandria

A personal collection of functions, macros and programs written in Common Lisp
Common Lisp
13
star
11

keybase-hacking

Cracking system to recover my corrupted paper key
Python
9
star
12

audio-effects-matlab

A set of audio effects for audio processing: delay, flanger and distortion. Project of a college course.
MATLAB
9
star
13

cpp-journey

My personal notes/codes about the infernal adventure to learn C++ from HackerRank [pt-br]
C++
9
star
14

c-lists

Data Structures in C: Linked Lists
C
8
star
15

data-structures-ufc

Data Structures at UFC 2017.2
C
8
star
16

adventofcode

Go
7
star
17

lisp-challenge

A personal collection of Common Lisp scripts to solve the problems from www.pythonchallenge.com
Common Lisp
6
star
18

pic-tetris

Tetris Implementation for PIC18F4550
C
6
star
19

emacsd-lite

Lite emacs one file config with sane defaults and fast startup
Emacs Lisp
6
star
20

ant-walking

A stochastic simulation of an ant walking | A college project for the discipline Probability & Statistics
Python
6
star
21

conway-rs

Conway's Game of Life implementation in Rust
Rust
6
star
22

docker-lerax

A lerax-compliant environment docker image
Dockerfile
6
star
23

mr-bolinha

Um jogo que fiz com meus sobrinhos em Common Lisp: Mr Bolinha
Common Lisp
5
star
24

labyrinth-explorer

Random labyrinth maker with visual exploring using Pygame
Python
4
star
25

resume

My academic and professional resume
4
star
26

pysnake-two

Simple classic snake game for two players made with python + pygame
Python
4
star
27

haskell-rank

My solutions of HackerRank written in Haskell
Haskell
4
star
28

mir

mir (Manoel IR): A Remote Controller IR for my personal computer desktop
Python
4
star
29

rentalcar

A software for managing the business of car rentals written in Python. For a college course.
Python
4
star
30

spam-detector

A spam-detector classifier using Naive Bayes
Python
4
star
31

warsaw-openrc

Warsaw Banking Security software known as CaaS (Cancer as a Service) by GAS modified to working fine with OpenRC
Shell
4
star
32

python-chat

Python Chat: A Messaging Protocol over TCP Sockets (server.lerax.me:9999)
Python
4
star
33

lisp-koans-answers

Answers of repository www.github.com/google/lisp-koans
Common Lisp
4
star
34

sqrt-aprox

Numerical solutions using Taylor series to evaluate f(x) = sqrt(x)
C
3
star
35

tree-struct

Implementations of algorithms for tree structures
C
3
star
36

8bit-letter

A prototype of a 8bit letter.
Python
3
star
37

xboxdrv-bin

A PreCompiled xboxdrv PKGBUILD with batteries: Playstation2 config + OpenRC script
Roff
3
star
38

linked-list

Garbage + CancerPlusPlus
C++
2
star
39

ahmes-asm

An assembler for the ISA of the hypothetical machine Ahmes
C
2
star
40

xim

Xim the xi editor frontend terminal minimalist project mirror
Rust
2
star
41

tcc

Segmentação Semi-Supervisionada de Imagens através de Dinâmicas Coletivas em Redes Complexas
TeX
2
star
42

sorting-vector

Some codes of sort algorithm and complexity of algorithms.
C
1
star
43

clap-counter

A Clap Counter as a Service written in Haskell
Haskell
1
star
44

cconway

A Conway Game of Life implementation written in C using SDL2
C
1
star
45

egsis

EGSIS: Exploratory Graph-based Semi-supervised Image Segmentation
Jupyter Notebook
1
star
46

work-at-olist-test

Employee application at Olist: https://github.com/olist/work-at-olist
Python
1
star
47

wps-office-stable

Personal PKGBUILD for a reliable WPS Office build
Shell
1
star
48

symbolic-deriv

Symbolic Differentiation written in Racket
Racket
1
star
49

ryukinix.github.io

My personal blog, portofolio and where I write about my projects
HTML
1
star
50

pyzumbi-amazon

Python
1
star
51

scala-impatient

My solutions for the exercises of Scala For The Impatient Ed2 (2016) book
Scala
1
star
52

exit-joystick

Simple SDL2 application to wait from joystick press event and exit, to be used at raspberry pi 3 b+
C++
1
star
53

artix-news

Artix's news CLI. Give to you a fast summary of the new artix changes [NOT MAINTAINED]
Python
1
star
54

programming-techniques-ufc

A course about Java, Python and Programming Projects at Federal University of Ceará (UFC) on Computer Engineering course.
Java
1
star
55

osa

OSA Real-Time Operating System (mirror)
C
1
star