ardakilic / dizici
一个最小化的系列CLI应用程序,用于将TVMaze中的系列和剧集同步到数据库中,旨在实现统一排序
Requires
- php: >=5.5.4
- guzzlehttp/guzzle: ^6.1
- illuminate/database: ^5.2
- symfony/console: ^3.0
- symfony/yaml: ^3.0
Suggests
- doctrine/dbal: Required to rename columns and drop SQLite columns (~2.4).
- fzaninotto/faker: Required to use the eloquent factory builder (~1.4).
This package is auto-updated.
Last update: 2024-09-12 15:28:52 UTC
README
____ _ _ _
| _ \(_)___(_) ___(_)
| | | | |_ / |/ __| |
| |_| | |/ /| | (__| |
|____/|_/___|_|\___|_|
Dizici
Dizici(dee-zee-ghee)是一个简单的PHP CLI工具,可以从TVMaze API将系列和剧集同步到本地数据库。
为什么?
让我给你举一个简短的例子
我是一个 Stargate 粉丝,它包含3个电视剧和几部电影。正确的观看顺序很混乱。你必须先看某个电视剧的几集,然后再切换到另一个,以防止剧透并按顺序了解所有细节。甚至还有一些 Reddit 帖子 讨论电视剧应该按什么顺序观看。
现在我正在看 Doctor Who,我想起它也与 Torchwood 有关,这个问题在这个电视剧中也是如此。
简而言之,我需要一个系统,它能显示场景上相互关联的统一系列,并按此排序
这是Stargate系列的观看顺序,包括电影和3个电视剧。
* 01 - Stargate movie
* 02 - Stargate SG-1, episodes 1.1 to 8.2
* 03 - Stargate Atlantis, episodes 1.1 to 1.15
* 04 - Stargate SG-1, episodes 8.3 to 8.20
* 05 - Stargate Atlantis, episodes 1.16 to 2.1
* 06 - Stargate SG-1, episodes 9.1 to 10.2
* 07 - Stargate Atlantis, episodes 2.2 to 3.4
* 08 - Stargate SG-1, episodes 10.3 to 10.12
* 09 - Stargate Atlantis, episodes 3.5 to 3.19
* 10 - Stargate SG-1, episodes 10.13 to 10.20
* 11 - Stargate: The Ark of Truth
* 12 - Stargate Atlantis, episodes 3.20 to 5.1
* 13 - Stargate: Continuum
* 14 - Stargate Atlantis, episodes 5.2 onwards.
* 15 - Stargate Universe, All
我找不到提供这种服务(显示多个电视剧,按播出日期排序剧集,统一列出并制作列表)的服务。
这个简单的PHP CLI工具旨在解决这个问题。
要求
- PHP 5.6.4或更高版本
- Composer
- 数据库引擎,如MySQL、Postgres、SQLite或SQL Server(由illuminate/database支持)
- 如果您想自动同步剧集,则需要Cron
- 必须安装最新版本的cURL
安装(从分发版)
有几种方法可以获得分发版 .phar
文件
最简单的方法是从 Composer 安装
composer global require ardakilic/dizici
现在已经安装了。
- 您还可以从 GitHub Releases页面 手动下载最新稳定版本
- 或者,您可以通过克隆此存储库来获取最新的边缘分发版本,这将有一个可供您使用的
dist/dizici.phar
文件。
安装(从源代码)
- 克隆存储库
git clone https://github.com/Ardakilic/dizici.git
- 安装依赖项
cd dizici
composer install
- 首次安装后,将在您的家目录内创建一个名为
.dizici
的隐藏文件夹。此文件夹是应用程序存储配置和数据库(如果设置为SQLite)的位置。在本README文件中,我们将将其称为$HOME/.dizici/
。 - 根据需要填写
config.yml
中的凭据。示例连接凭据存储在 此文件中(Laravel)。例如:如果您想使用MySQL,则将连接键填写为 这些键和相应的值。 - 在您的数据库中创建表
dizici migrate:tables
- 现在您需要创建一个“观看列表组”
"观看列表组"是一组电视剧,一个组可以称为“星门捆绑包”、“漫威宇宙”(或任何你喜欢的名称),它包含诸如“星门 SG-1”、“星门亚特兰蒂斯”和“星门宇宙”之类的电视剧。你可以将其视为一个个人列表或电视剧组。
只需运行此命令
dizici create:group -t "Stargate List"
或者
dizici create:group --title="Stargate List"
- 现在您需要将电视剧添加到观看列表中,您可以使用电视剧ID或直接链接
dizici add:show -g "Stargate List" -s 204
或者
dizici add:show --group="Stargate List" --show=204
group
是我们观看列表组的标题。show
是TVMaze电视剧的ID。您可以从URL中获取它。例如:http://www.tvmaze.com/shows/204/stargate-sg-1
您还可以通过直接URL添加电视剧,Dizici会处理其余部分。
diziciadd:show -g "Stargate List" -l http://www.tvmaze.com/shows/204/stargate-sg-1
或者
dizici add:show --group="Stargate List" --link=http://www.tvmaze.com/shows/204/stargate-sg-1
为每个您想添加到观看列表组的电视剧重复此步骤。
- 现在同步所有系列和剧集,一些示例电视剧已在配置文件中添加
- dizici同步
- 可选地,将此命令添加到您的crontab中,以自动按您设定的周期同步。
- 享受吧!😄
构建二进制文件
在存储库中应该已经有一个dist/dizici.phar
文件可用,但出于某些目的,您可能想自己创建.phar
文件。
通过非常简单和简单的步骤,您可以自己创建dizici.phar
文件。
- 下载和/或安装Box2
- 进入
dizici
目录 - 确保您已使用
composer install
安装了依赖项 - 运行
php box.phar build
- 几秒钟后,您将创建一个
dist/dizici.phar
文件。
全局安装Dizici
您可以使用Composer轻松完成此操作
composer global require ardakilic/dizici
安装完成:
您还可以下载.phar存档并手动执行此操作
- 首先,下载dist版本或构建二进制文件。您可以自己下载或构建。
- 将
dizici.phar
移动到您的ENV路径之一。例如
chmod +x dizici.phar mv dizici.phar /usr/local/bin/dizici
- 最后,您可以从终端的任何位置运行
dizici
。
统一列出电视剧
有一个命令行方式可以显示和导出此功能。
首先,确保您已同步
dizici sync
然后运行此命令
dizici episodes Stargate
如果包含多个单词,请使用引号
dizici episodes "Stargate List"
您将得到如下输出
如果您想导出此内容,可以通过shell方式执行此操作
dizici episodes "Stargate List" > output.txt
并打印output.txt
等。
屏幕截图
这是当您运行同步命令时的控制台示例截图
其他许多图像已在readme中提供。
待办事项
分组功能,将多个电视剧捆绑在一起将所有TVMaze ID存储在数据库中,而不是配置文件中控制台输出中的表格- 提供除文本之外如HTML、tsv等格式的输出
- 新的列,如“已观看”、“已收集”等
- 请随时提供问题和拉取请求。我会乐意考虑它们。
版本历史
版本 1.1.0
- 观看列表组:您现在可以创建和命名自定义观看列表,并创建“夏季电视剧”、“漫威宇宙”等列表,将电视剧添加到这些列表中,并按这些名称调用剧集列表。这使您可以更容易地调用命令,并更好地管理。这导致了删除
config.yml
中的series
键。 - 创建观看列表组并将电视剧添加到这些组的命令。
版本 1.0.1
- NPM提交以简化安装
版本 1.0.0
此版本的目标是将Dizici尽可能制作成便携式。
- SQLite现在是默认连接
- 配置文件现在为 YAML 格式。使用 Symfony Yaml 组件 解析
.yml
文件 - 创建独立的 .phar 归档,使用了 Box-project 的 Box2
- 配置路径现在为
$HOME/.dizici/
。这样,应用程序旨在成为一个单个归档,更易于携带
版本 0.2.0
- 命令行应用程序的名称从
series
更改为dizici
- 实现了命令行表格输出
版本 0.1.0
- 首次发布
许可证
MIT 许可证