Name | weltschmerz JSON |
Version |
0.0.1rc1
JSON |
| download |
home_page | None |
Summary | local anime file database with deduplication and sorting |
upload_time | 2024-09-29 18:39:11 |
maintainer | zerimond |
docs_url | None |
author | None |
requires_python | >=3.6 |
license | None |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# weltschmerz
Maintain a (local) database for anime files.
Contains scripts to hash and sort anime files,
as well as looking up files in AniDB utilizing the `yumemi` Python module.
This project is licensed under the terms of the MIT license. These third-party files are included:
* `pyselect.py`: Copyright 2013 Matthew Behrens, under the terms of the MIT license.
* `sorttable.js`: Copyright 2007 Stuart Langridge, under the terms of the X11/MIT license.
See also [LICENSE.md](./LICENSE.md)
## Requirements
* Python 3 (>=3.6)
* [yumemi](https://pypi.org/project/yumemi/) Python module (optional, for interacting with AniDB)
* SQL database
* PostgreSQL works, and is recommended
* SQLite3 works, but does not support the `numeric` collation, edit `anime.py`: `ep = Column(String(collation="numeric"))` => `ep = Column(String)`
## Configuration file
Copy `weltschmerz.cfg.example` to `weltschmerz.cfg` or `$HOME/.config/weltschmerz/weltschmerz.cfg` and adjust as necessary.
## Import AniDB MyMist export
It is recommended to import your MyList first, as that will populate the Anime, Episode, and File tables.
1. Request an `xml-plain-full` export of your MyList at [AniDB - MyList Export](https://anidb.net/user/export)
1. Download export file
1. Extract the export file:`tar xf <mylist_export>.tgz`
1. Parse the export and populate the local database: `./parse_mylist_export.py --mylist-xml-files anime/a*.xml`
## Hash local files
`weltschmerz files hash --folder /anime/by-id/00/00/01/ --folder /anime/by-id/00/00/02/`
## Add files to your AniDB MyList
Lookup the local files in AniDB and add them to your MyList, if they are present in AniDB.
`weltschmerz anidb lookup-files --folder /anime/by-id/00 --folder /anime/by-id/01 --debug --online --add-to-mylist --mylist-state 4`
## Deduplicate local files
Interactively deduplicate local files, as well as set the modified time of duplicate files to the oldest one.
`weltschmerz files remove-duplicates --preferred-directory-pattern /anime/by-id`
## Sort local files
Sort/Move files, this will put the files into folders according to their anime ids (padded to 6 digits) from AniDB.
e.g. files for [Seikai no Monshou (anime id 1)](https://anidb.net/anime/1) will be put in `<target_basedir>/by-id/00/00/01`.
`weltschmerz files sort --source-basedir /anime/unsorted --target-basedir /anime`
## Create symlinks for local anime folders
To be able to look for local anime by name, create symlinks to point to the folders created by "Sort local files".
This creates a `by-name` folder under the target basedir.
1. Download anime titles dump (XML) from AniDB, see [AniDB Wiki - API/Anime Titles](https://wiki.anidb.net/API#Anime_Titles) for instructions.
1. Decompress the title dump: `gunzip anime-titles.xml.gz`
1. Run script to create the symlinks: `./animetitle.py anime-titles.xml /anime/`
Raw data
{
"_id": null,
"home_page": null,
"name": "weltschmerz",
"maintainer": "zerimond",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/20/57/f874b5c5ae31004caf1e7cc7a827452c871aec75590c28fe2610173d0ff4/weltschmerz-0.0.1rc1.tar.gz",
"platform": null,
"description": "# weltschmerz\n\nMaintain a (local) database for anime files.\nContains scripts to hash and sort anime files,\nas well as looking up files in AniDB utilizing the `yumemi` Python module.\n\nThis project is licensed under the terms of the MIT license. These third-party files are included:\n\n* `pyselect.py`: Copyright 2013 Matthew Behrens, under the terms of the MIT license.\n* `sorttable.js`: Copyright 2007 Stuart Langridge, under the terms of the X11/MIT license.\n\nSee also [LICENSE.md](./LICENSE.md)\n\n## Requirements\n\n* Python 3 (>=3.6)\n* [yumemi](https://pypi.org/project/yumemi/) Python module (optional, for interacting with AniDB)\n* SQL database\n * PostgreSQL works, and is recommended\n * SQLite3 works, but does not support the `numeric` collation, edit `anime.py`: `ep = Column(String(collation=\"numeric\"))` => `ep = Column(String)`\n\n## Configuration file\n\nCopy `weltschmerz.cfg.example` to `weltschmerz.cfg` or `$HOME/.config/weltschmerz/weltschmerz.cfg` and adjust as necessary.\n\n## Import AniDB MyMist export\n\nIt is recommended to import your MyList first, as that will populate the Anime, Episode, and File tables.\n\n1. Request an `xml-plain-full` export of your MyList at [AniDB - MyList Export](https://anidb.net/user/export)\n1. Download export file\n1. Extract the export file:`tar xf <mylist_export>.tgz`\n1. Parse the export and populate the local database: `./parse_mylist_export.py --mylist-xml-files anime/a*.xml`\n\n## Hash local files\n\n`weltschmerz files hash --folder /anime/by-id/00/00/01/ --folder /anime/by-id/00/00/02/`\n\n## Add files to your AniDB MyList\n\nLookup the local files in AniDB and add them to your MyList, if they are present in AniDB.\n`weltschmerz anidb lookup-files --folder /anime/by-id/00 --folder /anime/by-id/01 --debug --online --add-to-mylist --mylist-state 4`\n\n## Deduplicate local files\n\nInteractively deduplicate local files, as well as set the modified time of duplicate files to the oldest one.\n`weltschmerz files remove-duplicates --preferred-directory-pattern /anime/by-id`\n\n## Sort local files\n\nSort/Move files, this will put the files into folders according to their anime ids (padded to 6 digits) from AniDB.\ne.g. files for [Seikai no Monshou (anime id 1)](https://anidb.net/anime/1) will be put in `<target_basedir>/by-id/00/00/01`.\n\n`weltschmerz files sort --source-basedir /anime/unsorted --target-basedir /anime`\n\n## Create symlinks for local anime folders\n\nTo be able to look for local anime by name, create symlinks to point to the folders created by \"Sort local files\".\nThis creates a `by-name` folder under the target basedir.\n\n1. Download anime titles dump (XML) from AniDB, see [AniDB Wiki - API/Anime Titles](https://wiki.anidb.net/API#Anime_Titles) for instructions.\n1. Decompress the title dump: `gunzip anime-titles.xml.gz`\n1. Run script to create the symlinks: `./animetitle.py anime-titles.xml /anime/`\n",
"bugtrack_url": null,
"license": null,
"summary": "local anime file database with deduplication and sorting",
"version": "0.0.1rc1",
"project_urls": {
"Homepage": "https://codeberg.org/zeromind/weltschmerz",
"Issues": "https://codeberg.org/zeromind/weltschmerz/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cacd4b9826b4688abea9c37987c5c1a858c6e077cb8d53e1265a292401423f4a",
"md5": "bb35596bea5933594903f6538e6db1b6",
"sha256": "34595284a1cf95a45dcfa0e5ee626006386e779747654c5066d9860f57afa1ab"
},
"downloads": -1,
"filename": "weltschmerz-0.0.1rc1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bb35596bea5933594903f6538e6db1b6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 22645,
"upload_time": "2024-09-29T18:39:09",
"upload_time_iso_8601": "2024-09-29T18:39:09.214428Z",
"url": "https://files.pythonhosted.org/packages/ca/cd/4b9826b4688abea9c37987c5c1a858c6e077cb8d53e1265a292401423f4a/weltschmerz-0.0.1rc1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2057f874b5c5ae31004caf1e7cc7a827452c871aec75590c28fe2610173d0ff4",
"md5": "eeb164c29838c14d32989f6f738f692e",
"sha256": "ac08beddc7e9e89aebd4bbe089ca1203aa44805e349d05d7db9d81f3220b1321"
},
"downloads": -1,
"filename": "weltschmerz-0.0.1rc1.tar.gz",
"has_sig": false,
"md5_digest": "eeb164c29838c14d32989f6f738f692e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 18999,
"upload_time": "2024-09-29T18:39:11",
"upload_time_iso_8601": "2024-09-29T18:39:11.340757Z",
"url": "https://files.pythonhosted.org/packages/20/57/f874b5c5ae31004caf1e7cc7a827452c871aec75590c28fe2610173d0ff4/weltschmerz-0.0.1rc1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-29 18:39:11",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": true,
"codeberg_user": "zeromind",
"codeberg_project": "weltschmerz",
"lcname": "weltschmerz"
}