- - - - - yumeneru - - - - - nemuru - - - - -
- - - - - yumeneru - - - - - nemuru - - - - -
MediaList is my personal replacement for MyAnimeList/Kitsu.io/AniDB/etc. The intention is that there will be various types of programs to fill in all use cases (e.g. CLI, Desktop GUI, Mobile GUI). The heart of all those programs will be the MediaList library. Currently it's only written in the D Programming Language, but will soon have libraries in other languages to support the different platforms. You can view the source code online.
Programs using MediaList will allow you to create and maintain various lists. You can view the documentation for the MediaList library as a PDF. At the moment, the only program using MediaList is medialist-cli.
MediaList doesn't provide any form of configuration, that is left up to the program. As such, the programs on this page use the following configuration format, which you can adopt if you want.
The configuration files are located in the following directories:
$XDG_CONFIG_HOME/medialist/
%AppData%\YumeNeru Software\medialist\config\
You will need to run one of the programs first for the directory to be created.
Within the configuration directory there can be a single file called
medialist.conf
, which will contain all the configuration
for the programs on this page. The format the configuration file uses
is called CNI, which is
quite similar to INI files. The configuration options (and their meaning)
are explained below:
# Settings related to all medialist programs on this page.
[general]
# The directory where lists are stored.
# Below is the default and fallback location for POSIX
directory = $HOME/.local/share/medialist/
# Below is the default and fallback location for Windows
# NOTE: You cannot use Windows-style environment variables
# (e.g. %appdata%). You can, however, use POSIX style
# environment variables (e.g. $appdata).
directory = $appdata\YumeNeru Software\medialist\data\
# Should programs verify when deleting
# items from a list, or when deleting
# an entire list?
verify_delete = no
# Settings pertaining to medialist-cli
[cli]
# Should medialist-cli verify when deleting
# items from a list, or when deleting an
# an entire list?
verify_delete = yes
If you are developing your own program using MediaList, it is not recommended to use this file. Instead, create your own to avoid any duplication or unintentional overwriting of settings.
As the above snippet states, the directory
option does have a default value:
$XDG_DATA_HOME/medialist/
%AppData%\YumeNeru Software\medialist\data
You should also take care in changing this value, as the lists will not automatically be moved — you must move them yourself.
The internal file format used by MediaList programs is mTSV. A mTSV file is quite similar to a normal Tab-Separated Values (TSV) file, with the exception of supporting “comments”. Comments are lines that start with an octothorpe (#) and can be ignored by any parsers. The “MediaList Suite of Programs” (i.e. programs on this page) use these comment lines not only for comments, but also for configuration.
If a line starts with an octothorpe and is followed by a space, then it is ignored. However, if the octothorpe isn't followed by a space (or a new line), then we attempt to treat it as a key-value line for configuration. It would be similar to this:
# normal comment that is ignored
#key=value with spaces
This results in key having the value of "value with spaces". These lines must appear before the first non-comment line, anything after that line is ignored.
A Command-Line Interface (CLI) for MediaList that allows you to create and maintain lists from the CLI. It's possible to run the CLI on both Linux and Windows. For usage instructions it is recommended to read the included manual page (also available by running man medialist-cli after installing), or by running medialist-cli --help for a quick overview.
To install medialist-cli you need the source code, which is available
on OSDN.
You can obtain a local copy of the source code by using git and running:
git clone https://pf.osdn.net/gitroot/n/ne/nemophila/medialist-cli.git
Building medialist-cli requires a compiler for the D Programming Language (versions 2.076 and newer are supported) and either dub or GNU Make. The latest version of medialist-cli at the time of writing is 0.4, which is what we will build. The complete steps are shown below:
Some factors to take note of: Installation (make install) will only work on POSIX systems. A method of installing medialist-cli on Windows is not yet available. The other important piece of information is that the default compiler (when using GNU Make) is GDC. You can, however, choose to use a different compiler with the DC environment variable:
If you want to uninstall medialist-cli, then simply run sudo make uninstall from the cloned repository.
version 0.4 - medialist-cli - April 6, 2023
It's time for another release of MediaList/medialist-cli. It has been a while (over a year!) which was largely unintentional, but that's the life goes. Anyway, for the most part medialist-cli should be complete. There are probably some bugs that need to be discovered and fixed, and there should be better handling of errors; but in terms of features… it's pretty much done. Perhaps some more user-friendly enhancements somewhere. Anyway, here is the list of notable changes:
A full copy of the fossil timeline between 0.3 and 0.4 is provided in the changelogs directory.
The plan from here is to move MediaList in to a separate repository (i.e. medialist-d) and clean up some of the code for medialist-cli. Ideally I would like to begin working on a GUI version of MediaList, which would help refine MediaList.
If you have any issues, please let me know.
This is just a brief overview on how medialist-cli makes use of the
mTSV file comments described earlier. When a line in a mTSV file
begins with an octothorpe and is not followed by a space or
newline, then it is treated as a human-friendly header
.
If the key matches a header in the mTSV file, then the value is
displayed when calling medialist-cli show $listname --show-headers.
coming soon (desktop gnu/linux)
coming soon (mobile gnu/linux)
Last Update: 2022-03-07