Skip to main content

使用来自 anidb.net 的信息自动对动漫进行排序

项目描述

pyAniSort
=========

pyAniSort 是一个命令行实用程序,可以将动漫
视频文件排序和重命名到以系列名称分隔的文件夹中。

我把它作为练习python的一种方式。文件名匹配不是最准确的,它会覆盖现有文件而不要求确认。我计划最终重写程序,所以我不会再做任何更新了。

用法
-----

| pyAnisort 有两个不同的命令:
| 第一个是“排序”
| 而第二个 ``undo``

排序命令
~~~~~~~~~~~~~~~~

排序命令需要两个参数 from 目录和 to
目录

| 验证选项将在排序前后检查文件的 CRC,
以验证文件完整性
|
``-v, --verify`` 将比较移动前后文件的crc

| 复制选项将复制文件而不是移动它们。复制的文件
不会反映在历史 csv 文件中
| ``-c, --copy`` 将复制文件而不是移动它们(history.csv
不会被更新)

| 静默选项关闭脚本中要求
用户输入的任何部分
| ``-s, --silent`` 关闭控制台交互

| history 参数采用 csv 文件的名称,该文件将存储
重命名历史
| ``--history FILE`` 更改保存历史文件的位置('history.csv'
是默认值)

``$ pyAniSort sort 'from/directory' 'to/directory' -s --history history.csv``

程序将对此进行排序:

::

|-- From Folder/
| | [子组 A] 系列名称 - 01 [ABCD1234].mkv
| | [子组 A] 系列名称 - 02 [ABCD1234].mkv
| | [子组 A] 系列名称 - 03 [ABCD1234].mkv
| | [子组B] 其他系列名称Ep01 [ABCD1234].mkv
| | [B组]其他系列名称Ep02 [ABCD1234].mkv
| | [B组]其他系列名称Ep03 [ABCD1234].mkv
| | [子组B]其他系列名称OP [ABCD1234].mkv
| | [子组 B] 其他系列名称 ED1 [ABCD1234].mkv

To This:

::

|-- To Folder/
| |-- 系列名称/
| | |-- 系列名称 - 01 - title.mkv
| | |-- 系列名称 - 02 - title.mkv
| | |-- 系列名称 - 03 - title.mkv
| |-- 其他系列名称/
| | |-- 其他系列名称 - 01 - title.mkv
| | |-- 其他系列名称 - 02 - title.mkv
| | |-- 其他系列名称 - 03 - title.mkv
| | |-- 其他系列名称- OP01.mkv
| | |-- Other Series Name - ED01.mkv

撤消命令
~~~~~~~~~~~~~~~~

撤消命令将使用history.csv文件撤消排序
操作以防出错. undo 命令

需要两个必需的位置参数


| 验证选项将在排序前后检查文件的 CRC,
以验证文件完整性
|
``-v, --verify`` 将比较移动前后文件的crc

| history 参数采用 csv 文件的名称,该文件将存储
重命名历史
| ``--history FILE`` 更改保存历史文件的位置('history.csv'
是默认值)

``$ pyanisort undo startLine endLine --history history.csv``

| 第一个将告诉程序从文件的哪一行开始,
第二个将告诉它在哪一行结束。
| 这可以更好地控制要撤消的文件

| 运行以下命令将开始撤消存储在

history.csv 从第 30 行到第 40 行,如果少于 40 行,则直到文件末尾。
| ``$ pyanisort 撤消 30 40``

| 下一个命令将撤消存储在 history.csv 文件中的所有
文件。
| ``$ pyanisort 撤消 0 0``

| 以下两个命令只会撤消
history.csv 文件第 44 行的文件
| ``$ pyanisort 撤消 44 44``
| ``$ pyanisort undo 44 0``

使用这些命令中的任何一个后,history.csv 文件将被
修改以反映撤消操作。

日志和其他重要文件
------------------

| 日志和程序数据存储在以下位置:
| 视窗:``%APPDATA%\pyAniSort``
| Linux: ``~/.pyanisort``

| 运行pyAniSort 时会自动创建两个文件

| prefNames.csv 和 history.csv

``prefNames.csv`` - 首选显示名称
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~

| 此文件用于存储有关节目的信息。这有助于
在多次收集演出信息时节省时间。
| csv 文件中存储了三个值,**动漫 ID(辅助)**、
**官方节目名称**和**解析名称**

| **aid** 是anidb 数据库用于演出的唯一ID
| **官方节目名称**是从
anidb中提取的完整系列名称。
| 它也是重命名和排序时将使用的名称
视频文件。
| **parsed name** 是在
排序之前从文件名中提取的名称。

+--------+---------------------------------------- ------------------------------------+------------- ---------+
| 援助| 正式名称 | 解析名称 |
+========+========================================= ======================================+============= =========+
| 9541 | 新记的教人 | 新记的教人 |
+--------+---------------------------------------- ------------------------------------+------------- ---------+
| 9787 | Ore no Nounai Sentakushi ga,学园Lovecome o Zenryoku de Jama Shiteiru | 诺康 |
+--------+---------------------------------------- ------------------------------------+------------- ---------+

这是与表匹配的 prefNames.csv 的内容

::

prefName.csv
9541,Shingeki no Kyojin,Shingeki no Kyojin
9787,"Ore no Nounai Sentakushi ga, Gakuen Lovecome o Zenryoku de Jama Shiteiru",NouCome

--------------像这样

将此信息放在 csv 文件中的一个有用的事情
是可以在程序之外对其进行更改。

| 例如:
| 上面的“NouCome”的正式名称是相当的满口。它也是
占用大量空间,甚至可能使新文件名
在 Windows 上达到 255 个字符的限制。

| 所以如果你能改变这个不是更好吗:
| ``Ore no Nounai Sentakushi ga,Gakuen Lovecome o Zenryoku de Jama Shiteiru``

| 它的简写名称:
| ``NouCome``

你可以通过编辑 ``prefName.csv`` 文件来做到这一点。我建议使用
标准文本编辑器而不是 Excel。Excel 可能会在程序读取文件时弄乱文件并导致
问题。

所以你可以编辑``prefName.csv`` 文件:

::

prefName.csv
9541,Shingeki no Kyojin,Shingeki no Kyojin
9787,"Ore no Nounai Sentakushi ga, Gakuen Lovecome o Zenryoku de Jama Shiteiru",NouCome

To this :

::

prefName.csv
9541,Shingeki no Kyojin,Shingeki no Kyojin
9787,"NouCome",NouCome

现在当程序要重命名您的文件时,它将使用“NouCome”
而不是
“Ore no Nounai Sentakushi ga,Gakuen Lovecome o Zenryoku de Jama Shiteiru````history.csv``

- 文件重命名历史
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~

history.csv 文件有两列。第一个是
视频文件的原始位置,第二个是排序后的
位置

+------------------------------ ----------------------------------------------------+--------- -------------------------------------------------- ---------+
| 原名 | 排序名称 |
+================================================== ======================+============================= ==========================================+
| D:\\test\_files[子组 A] 系列名称 - 01 [ABCD1234].mkv | D:\\动漫\\系列名称\\系列名称 - 01 - title.mkv |
+-------------------------------------------------- ---------------------+---------------------------- ----------------------------------------------------+
| D:\\test\_files[Sub Group B] 其他系列名称 Ep01 [ABCD1234].mkv | D:\\Anime\\其他系列名称\\其他系列名称 - 01 - title.mkv |
+-------------------------------------------------- ---------------------+---------------------------- ----------------------------------------------------+

这是历史内容的一个例子.csv 使用真实文件名

::

history.csv
D:\test_files\[EveTaku] Shingeki no Kyojin - 25 (1280x720 x264-Hi10P AAC)[783716E5].mkv,D:\Anime\Shingeki no Kyojin\Shingeki no Kyojin - 25 - Stohess 区的围墙袭击 (3).mkv
D:\test_files\[Irrational Typesetting Wizardry] NouCome - 01 [F87C6CC0].mkv,"D:\Anime\Ore no Nounai Sentakushi ga, Gakuen Lovecome o Zenryoku de Jama Shiteiru \Ore no Nounai Sentakushi ga,Gakuen Lovecome o Zenryoku de Jama Shiteiru - 01 - That Choice Put My Life in Motion.mkv"

装置
------------

| 链接到 PyPI 页面:https://pypi.python.org/pypi/pyAniSort
| 如果您不想
安装 pip,还有一个 Windows 安装二进制文件。

| 安装时请确保您使用的是 pip 的 python3 版本

| 此程序仅适用于 python3

``$ pip install pyanisort``

| 如果您没有安装 pip,您可以从
终端运行这些命令来获取它
| ``$ sudo curl http://python-distribute.org/distribute_setup.py | 蟒蛇3``
| ``$ sudo curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python3``

可能的错误
---------------

运行此脚本时可能会出现一些可能的错误

被禁止
''''''

``0000-00-00 00:00:00,000 - pyanisort.findtitle - 错误 - findtitle : 62 - 通过缓存解析时出错\0000.xml.gz:禁止``

|
这意味着anidb.net 服务器从机器IP 地址获得了太多请求。
| 它将在接下来的几个小时内拒绝任何更多的连接。

这是服务器实施的一项安全措施,除了等待几个小时再次运行脚本之外,我没有
找到任何其他方法来解决它。联系我----------问题或评论关于“pyAniSort”?给我发一封电子邮件到`jotaro0010@gmail.com <mailto:jotaro0010@gmail.com>`__。pyAniSort 1.0.3(2014 年 2 月 23 日)------------------------------------










- 添加了一个选项来比较文件排序前后的 CRC,
以验证文件传输的完整性
- 让程序复制文件而不是移动文件的选项。
复制的文件不会反映在历史文件中
- 现在将检测文件是开头歌曲还是结尾歌曲并将
相应地重命名
- 如果发生意外错误,将保存带有回溯的文件

pyAniSort 1.0.2(2014 年 2 月 11 日)
- ----------------------------------

- 现在程序文件已创建并保存到 Linux 上的 ~/.pyanisort 和
Windows 上的 %APPDATA%\\pyAniSort
- 下载系列 xml 文件之间的短暂暂停。这将有助于
防止临时禁令 - 2014 年 2 月 12 日
- 修复了在 Linux 上创建程序数据的错误 - 2014 年 2 月 12 日

pyAniSort 1.0.1(2014 年 2 月 9 日)
-------------------------- ---------

- 重组程序,以便可以
通过 Python 包索引下载和安装
- 创建 setup.py 和 init.py
- 程序现在将工作目录更改为程序位置以使用
存储在那里的数据文件

pyAniSort 1.0.0(2014 年 2 月 6 日)
-----------------------------------

- 初始上传

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pyAniSort-1.0.4.tar.gz (23.3 kB 查看哈希)

已上传 source