ScudLee / anime-lists

148 stars 105 forks source link

Anime Lists

Anime mapping lists used by the AniDb.net [MOD] scrapers for Kodi.

These lists map information between AniDb.net, theTVDB.com, and themoviedb.org.

The Lists

animetitles.xml

Copy of the animetitles.xml available from AniDb.net. This is used by the scraper to search for matching titles.

anime-movieset-list.xml

This list contains groupings of anime titles that are suitable as movie sets (includes movies, TV specials, and one-shot OVAs).

anime-list-master.xml

This list contains entries for every title on AniDb.net and serves as a template from which all the remaining lists are derived.

anime-list.xml

The default list used by the scraper. Contains all entries from the master list that are not empty or marked as "unknown".

anime-list-full.xml

Alternative list for the scraper. Contains all entries from the master list that are not empty (but includes "unknown" titles).

anime-list-unknown.xml

Maintenance list containing all entries that are marked as "unknown". Any of these titles may potentially become "known" if they are added to theTVDB.com or themoviedb.org.

anime-list-todo.xml

All empty entries from the master list. Literally a to-do list.

Format

anime-list-master.xml

A typical entry in anime-list-master.xml:

<anime anidbid="23" tvdbid="76885" defaulttvdbseason="1" episodeoffset="" tmdbid="" imdbid="">
  <name>Cowboy Bebop</name>
  <mapping-list>
    <mapping anidbseason="0" tvdbseason="0">;1-2;</mapping>
  </mapping-list>
  <supplemental-info>
    <studio>Sunrise</studio>
  </supplemental-info>
</anime>

Each entry consists of an anime node with the following attributes:

Within the anime node are any of the following nodes

mapping-list

The mapping-list node consists of one or more mapping nodes with the following attributes:

supplemental-info

The supplemental-info node may contain an optional attribute of replace="true", in which case the information will replace that supplied by AniDb.net, otherwise it is just added to (and prioritised over) the AniDb.net information.

Any of the following nodes are allowed multiple times in a supplemental-info node:

The fanart node consists of thumb nodes that contain the URL of the fanart to use.

Each fanart thumb node has the following attributes:

anime-movieset-list.xml

A typical entry in anime-movieset-list.xml:

<set>
  <anime anidbid="61">Koukaku Kidoutai</anime>
  <anime anidbid="890">Innocence</anime>
  <anime anidbid="6122">Koukaku Kidoutai 2.0</anime>
  <titles>
    <title type="main" xml:lang="x-jat">Koukaku Kidoutai Collection</title>
    <title type="official" xml:lang="en">Ghost in the Shell Collection</title>
  </titles>
</set>

Each entry consists of a set node containing two or more anime nodes, and a single titles node that in turn contains one or more title nodes.

Each anime node consists of an anidbid attribute that corresponds to the AniDb.net id, and contains the "main" title (as taken from the animetitles.xml).

Each title node consists of two attributes, either type="main" xml:lang="x-jat" or type="official" xml:lang="xx" where xx is one of en, de, fr, it, cs, sk, hu, pl, ru, ja, zh (these are the only languages settable in the scraper).

The "main" title is always present and is derived from an appropriate "main" (romaji) title on AniDb.net, while the "official" titles are derived from the corresponding "official" titles in the relevant languages. Unofficial translations are not used.

Batch Files

The Windows batch files are used to automate the updating of the lists. They require the following programs to work:

curl and xsltproc (and dependencies) should either be in the folder or added somewhere in the Windows PATH.

update.bat

Downloads the latest animetitles.xml, sorts it, updates anime-list-master.xml, and calls generate-lists.bat.

update.sh

Same as update.bat but for POSIX platforms.

generate-lists.bat

Generates all the other lists based on anime-list-master.xml, and updates/sorts anime-movieset-list.xml.

generate-lists.sh

Same as generate-lists.bat but for POSIX platforms. As most POSIX style systems already have xsl and xml tools installed, this is just a shell script to generate the xml files.

generate-lists.groovy

Same as generate-lists.bat but for all platforms. It requires Groovy and Java and works on Windows, Linux and Mac OS X.

Contributing

There are a couple of ways to contribute updates:

The simplest way is to just post the details of the update, either in the XBMC forum thread or as an Issue on GitHub, and they will be dealt with when noticed.

Or you can post a Pull Request:

  1. Fork the repo
  2. Create a new branch (git checkout -b new_branch)
  3. Edit either the anime-list-master.xml or anime-movieset-list.xml (or both)
  4. Commit your changes (git commit -am "Added some titles")
  5. Push to the branch (git push origin new_branch)
  6. Submit the Pull Request
  7. ???
  8. Profit

Do not edit any other lists as they are automatically generated after your Pull Request was merged.

Likewise, the anime names and the sort order in anime-movieset-list.xml will be automatically fixed based on the anidbids, so don't be overly concerned about getting them exactly right (but obviously do get the title nodes right).