GithubHelp home page GithubHelp logo

nonomal / nas-tools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nastool/nas-tools

0.0 0.0 0.0 14.87 MB

电影、电视剧自动PT下载、聚合搜索、智能识别重命名、硬链接媒体库整理、PT保种签到等

Dockerfile 0.04% Python 94.00% JavaScript 0.76% HTML 4.99% Shell 0.14% CSS 0.07%

nas-tools's Introduction

NAS媒体库资源自动搜刮整理工具

GitHub stars GitHub issues

Docker:https://hub.docker.com/repository/docker/jxxghp/nas-tools

群晖套件:https://github.com/jxxghp/nas-tools/releases/tag/Synology

TG交流:https://t.me/nastool_chat

功能:

1、PT自动检索下载

  • PT站RSS订阅,配置想追的电影电视剧名称实现PT资源自动检索追新。

  • 通过微信或者WEB界面聚合检索各PT站检索资源并择优下载,热门或最新电影电视剧一键搜索或者订阅。

  • 加入豆瓣收藏的电影电视剧,后台自动检索下载。

2、媒体识别和重命名

  • 监控下载软件,下载完成后自动识别真实名称,硬链接到媒体库并重命名。

  • 对目录进行监控,目录下新增了影视文件时,自动识别媒体信息硬链接到媒体库并重命名。

  • 支持国产剧集,针对PT站种子名称优化,整理后的媒体库Emby/Plex识别率大幅提升。

3、消息服务

  • 支持ServerChan、微信、Telegram、Bark等图文消息通知,直接在手机上控制。

4、其它

  • PT站自动签到、Emby播放状态通知等等。

更新日志

2022.4.2

  • 支持对识别错误的记录手工重新识别转移
  • 支持自定义分类
  • 支持动漫识别(使用 anitopy

2022.3.27

  • 支持查询识别转移历史记录
  • 对于自动识别失败的记录,支持手工识别转移

2022.3.18

  • 全新的WEB UI,媒体库、搜索、推荐、下载、服务等功能上线

2022.3.13

  • 整合 Qliangw 提供的豆瓣同步部分代码,支持同步豆瓣收藏记录,后台自动下载。

2022.3.9

  • 支持WEB资源检索,手动选种下载

2022.3.4

  • 支持Jackett聚合检索,微信发送关键字直接检索下载

2022.3.3

  • 优化文件名识别策略
  • RSS订阅机制优化
  • Docker启动时自动检查升级
  • 通知推送支持Bark

2022.2.28

  • 支持RSS简单策略选种
  • 优化图文消息推送及媒体识别
  • 删除了原来打算整合的原开源代码

2022.2.26

  • 新增版本号管理
  • 优化目录监控、文件识别、消息推送处理逻辑
  • 优化WEBUI RSS关键字设置操作体验

2022.2.24

  • 新增下载、转移完成支持图文消息(微信、telegram)
  • 目录监控硬链接支持多对多,详情参考配置文件模板注释

2022.2.19

  • 增加存量资源整理工具及说明,将已有的存量资源批量整理成媒体库

安装

1、Docker

教程见 这里

2、本地运行

python3版本

python3 -m pip install -r requirements.txt
export NASTOOL_CONFIG="/xxx/config/config.yaml"
nohup python3 run.py & 

3、群晖套件

仅适用于dsm6,要先安装python3套件(版本大于3.7)。

https://github.com/jxxghp/nas-tools/releases

image

配置

1、申请相关API KEY

  • 申请TMDB用户,在 https://www.themoviedb.org/ 申请用户,得到API KEY,填入rmt_tmdbkey。

  • 申请消息通知服务

    1. 微信(推荐):在 https://work.weixin.qq.com/ 申请企业微信自建应用,获得corpid、corpsecret、agentid,扫描二维码在微信中关注企业自建应用。
    2. Server酱:或者在 https://sct.ftqq.com/ 申请SendKey,填入sckey。
    3. Telegram:关注BotFather申请机器人,关注getuserID拿到chat_id,填入telegram_token、telegram_chat_id。
    4. Bark:安装Bark客户端获得KEY,可以自建Bark服务器或者使用默认的服务器。
  • 申请PT站用户,至少要有1个不然没法玩,点PT的RSS图标获取RSS链接(RSS链接不要用错了,是PT客户端使用的那个)

2、配置文件

  • 确定是用【复制】模式还是【硬链接】模式:复制模式下载做种和媒体库是两份,多占用存储(下载盘大小决定能保多少种),好处是媒体库的盘不用24小时运行可以休眠;硬链接模式不用额外增加存储空间,一份文件两份目录,但需要下载目录和媒体库目录在一个磁盘分区或者存储空间。两者在媒体库使用上是一致的,按自己需要按配置文件模板说明配置。

  • 有两种运行模式:【全功能模式】、【精简模式】。如果需要全部功能,参考 config/config.yaml的配置示例进行配置;如果只需要精简功能,参考config/simple.yaml的配置示例进行配置,配置好后重命名为config.yaml放配置目录下。

    1. 全功能模式:适用于想搭建PT自动下载、保种、媒体识别改名、PT资源搜索、Emby播放、消息通知等全自动化整理媒体库的用户,有WEBUI控制界面,WEB默认用户名密码:admin password,端口:3000。
    2. 精简模式:适用于手工进行PT下载,但是希望能自动进行硬链接和媒体识别改名,同时有消息通知的用户,支持监控下载软件进行硬链接改名以及监控下载目录进行硬链接改名两种方式。
  • docker:需要映射/config目录,并将修改好后的config.yaml放到配置映射目录下;全能模式需要映射WEB访问端口(默认3000,精简模式下不需要);按需映射电影、电视剧及PT下载、资源监控等目录到容器上并与配置一致。

  • 群晖套件:在套件安装界面中设置配置文件路径,比如:/homes/admin/.config/nastool/config.yaml,并将修改好的配置文件【提前】放置在对应路径下。

3、设置Emby媒体库(可选)

  • 在Emby的Webhooks插件中,设置地址为:http(s)://IP:3000/emby,勾选“播放事件”和“用户事件(建议只对管理用户勾选)“
  • 如果启用了默认分类,需按如下的目录结构分别设置好媒体库;如是自定义分类,请按自己的定义建立好媒体库目录,分类定义请参考配置文件模板。

    电影

    精选 华语电影 外语电影

    电视剧

    国产剧 欧美剧 日韩剧 动漫 纪录片 综艺 儿童

4、配置目录监控(可选)

  • 安装resiliosync软件,配置好神KEY(主KEY:BCWHZRSLANR64CGPTXRE54ENNSIUE5SMO,大片抢先看:BA6RXJ7YOAOOFV42V6HD56XH4QVIBL2P6,也可以使用其他的Key),resiliosync同步目录配置到本程序的监控目录中,实现有资源更新自动整理。
  • 其它分散的媒体文件夹,可以过配置目录监控的方式实现文件变化时自动整理到媒体库。

5、配置微信应用消息及菜单(可选)

如果只是使用消息接受服务,则配置好配置文件中的[wechat]前三个参数就可以了,如果需要通过微信进行控制,则需要按如下方式配置(需要有公网IP或域名):

  • 配置微信消息服务:在企业微信自建应用管理页面-》API接收消息 开启消息接收服务,URL填写:http(s)://IP:3000/wechat,Token和EncodingAESKey填入配置文件[wechat]区(配置好后需要先重启服务,然后才在微信页面中点确定)。

  • 配置微信菜单控制:有两种方式,一是直接在聊天窗口中输入命令或者PT下载的链接;二是在https://work.weixin.qq.com/wework_admin/frame#apps 应用自定义菜单页面按如下图所示维护好菜单(条目顺序需要一模一样,如果不一样需要修改config.py中定义的WECHAT_MENU菜单序号定义),菜单内容为发送消息,消息内容为命令。 命令与功能的对应关系:

    命令 功能
    /rss RSS下载
    /ptt PT文件转移
    /ptr PT删种
    /pts PT自动签到
    /rst 资源同步
    /db 豆瓣收藏

    image

6、配置Jackett(可选)

如果你想通过微信发送电影电视剧的名称,后台就自动检索各PT站并自动下载,或者使用WEB页面的PT聚合资源搜索功能,则需要配置Jackett,获取API Key以及Torznab Feed,相关参数填入配置文件。

Jackett的相关配置参考网上的各类教程。

7、整理存量媒体资源(可选)

如果你的存量资源所在的目录与你在配置文件Sync中配置的源路径目的路径相同,则可以通过WEBUI或微信的“资源同步”按钮触发全量同步。 如果不相同则可以按以下说明操作,手工输入命令整理特定目录下的媒体资源。

重要说明:-d 参数为可选,如不输入则会自动区分电影还是电视剧分别存储到配置文件对应的电影电视剧媒体库目录中;-d 参数有输入时则不管是电影还是电视剧,都往-d目录中转移。

  • Docker版本,宿主机上运行以下命令,nas-tools修改为你的docker名称,修改源目录和目的目录参数。
    docker exec -it nas-tools /bin/bash
    python3 /nas-tools/rmt/filetransfer.py -s /from/path -d /to/path
    
  • 群晖套件版本,ssh到后台运行以下命令,同样修改配置文件路径以及源目录、目的目录参数。
    export NASTOOL_CONFIG=/volume1/homes/admin/.config/nastool/config.yaml
    /var/packages/py3k/target/usr/local/bin/python3 /var/packages/nastool/target/rmt/filetransfer.py -s /from/path -d /to/path
    
  • 本地直接运行的,cd 到程序根目录,执行以下命令,修改配置文件、源目录和目的目录参数。
    export NASTOOL_CONFIG=/xxx/config/config.yaml
    python3 rmt/filetransfer.py -s /from/path -d /to/path
    

使用

  1. 3000 端口访问 WEB UI界面,可以修改订阅、搜索资源以及启动服务

  2. 手机端图文通知和控制界面,控制服务运行(输入命令或者点击菜单)

msg photo_2022-03-04_16-27-51

  1. 效果

image

鸣谢

  • 感谢 Qliangw 贡献豆瓣部分的代码
  • 感谢 nevinee 完善docker构建
  • 感谢 PR 代码的所有大佬

nas-tools's People

Contributors

bobo0810 avatar devome avatar jxxghp avatar tbc0309 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.