auto-upload 0.0.92
Upload local resources to PT trackers automatically.
License: MIT Licence
Requires Python: >=3.7.0
Keywords: pip,auto_upload,auto,upload,PT,private tracker

## Auto_Upload

自动将本地资源发布到PT站
Upload local resources to PT trackers automatically.

## 特色

- 最适合发布追更资源，可以自动识别资源集数
- 支持Windows，Linux，Macos系统
- 自由度高，智能识别能力强

## 更新说明
- 20201006 更新抓取资源集数算法
- 20201005 douban简介改为使用doubaninfo接口抓取，支持cookie。并修改了upload tools里面获取链接的bug。  
- 20201005 修改了发布种子后做种可能失败的bug。发布合集后，如果发布失败不再重新制种种子。
- 20201004 允许截图0张，重写了豆瓣info的抓取，变为直接从豆瓣网站抓取，允许cookie
- 20200913 完成HHCLUB的适配
- 20200912 开始种子变成全部发布完成后统一开始
- 20200908 取消使用mktorrent的-f参数，添加制作种子失败原因的提示
- 20200907 尝试修复check参数设置为1但是不停止的bug
- 20200902 增加了发布前手动检查的功能，设置方法参考 [au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml) 中 `basic模块`中 `check参数`
- 20200902 增加了自定义是否在资源文件外部套0day文件夹的功能，设置方法参考 [au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml) 中 `basic模块`中 `new_folder参数`
- 20200902 修复了文件在0day文件夹里找不到的问题
- 20200902 修正了柠檬tracker无法选择https的问题
- 20200902 增加了大量自定义信息，当然这些信息大部分并不需要自己设置，只有当程序无法自动识别时候需要手动设置。设置方法参考 [au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml)
- 20200902 增加了自定义文件夹的功能，外层文件夹随便命名。
- 20200902 修复了发布电视剧需要bgm的bug
- 20200902 目前所有资源发种时候会自动在外层套一个0day名字的文件夹
- 20200825 已支持新图床freeimage，设置方法参考 [au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml) 中 `image hosting模块`
- 20200825 添加了有cookie的情况绕过静态模式登录的功能
- 20200825 在github里面增加了一个install文件夹，里面存放了win下需要下载安装的几个安装包
- 20200825 配置文件实例只保留一个[au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml)
- 20200825 修复登录失败反复登录的bug
- 20200823 优化结果的高亮显示
- 20200821 修复发布合集路径错误的bug,修复mktorrent制作种子概率失败的问题。
- 20200821 优化结果的高亮显示
- 20200821 增加日志写入文件，优化日志显示结果，设置方法参考 [au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml) 中 `basic模块log参数`
- 20200820 修正qb自动管理带来的bug; 增加给资源分类功能，体现在qb的分类里面，设置方法参考 [au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml)
- 20220820 增加对HDFans的支持
- 20220819 优化内存使用，增强标签识别性能，柠檬下载链接改用https
- 20220818 添加从文件名识别类型的功能，添加自动将mediainfo文件路径修改到只剩文件名，pter的info改用hide标签
- 20220818 修正download的拼写错误
- 20220818 增加对wintersakura(冬樱)的支持
- 20220817 增加副标题附加内容
- 20220817 修正find_elements_by_path等问题，并添加柠檬官组识别，下载路径配置功能
- 20220817 修正au.yaml内容丢失的bug并增加提醒
- 20220817 增加用户名密码登录，验证码自动识别功能以及cookie自动备份功能
- 20220817 增加yaml文件备份功能(生成au.yaml.bak文件)，以防文件损坏
- 20220817 增加对于PTNap的支持
- 20220815 增加对于SSD,明教以及CarPT的支持，增加禁转识别,参考 [au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml)
- 20220815 增加对于天空，观众以及柠檬剧集板块的支持
- 20220814 增加直接在命令行获取豆瓣链接/获取视频截图链接的功能
- 20220809 修复找不到bgm豆瓣链接的bug，增加识别发种dupe
- 20220808 增加qb添加种子稳定性、增加qb种子自动开始功能、增加后台运行的选项添加考虑通过url下载站点种子失败的情况的判断增加qb种子自动开始功能、增加后台运行的选项参考 [au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml)
- 20220808 修复Windows系统上对于最终路径有空格等制作种子出错的bug
  但是需要确保在制作种子期间，该 `文件`或者 `文件夹`没有被其他应用占用。仅对Windows系统有这个限制

## 功能说明

### 1.命令行实现将本地图片上传到图床

### 2.命令行实现抓取豆瓣信息

### 3.命令行实现获取本地视频截图链接

### 4.自动检测本地未发布的资源并发布到各个站点，并下载到Qbittorrent进行辅种

全平台支持了以下功能:

- 根据配置文件分析待发布资源的中英文名
- 根据配置文件分析已经发布的资源并自动找到未发布的资源
- 可选是否在资源外层套一个0day名字的文件夹
- 大量参数可以自动抓取也可以自己配置，包括且不限于 视频格式，音频格式，字幕信息，音轨信息等
- 将未发布的资源有序发布
- 自动获取待发布资源的豆瓣链接/动漫资源的bgm链接
- 自动获取待发布资源的豆瓣简介
- 自动获取待发布资源的截图并上传到图床获取bbcode
- 自动获取待发布资源的mediainfo信息
- 自动制作种子
- 根据上述信息自动发布到各个站点（分集发布/打包发布）
- 自动获取下载链接并传递给Qbittorrent自动做种
- 自动记录发布资源信息生成excel表格(csv文件)
- 自动统计目前已发布的总量(可以用来统计每月发种数量)

目前支持的平台:

- MacOS
- Windows
- Linux

目前支持的资源类型:

- 动漫
- 剧集
- 电影

目前支持的站点(排名仅代表支持的时间先后):

- pter
- lemonhd
- hdsky
- audience
- piggo
- ssd
- hdpt(明教)
- carpt
- ptnap
- wintersakura
- hdfans
- hhclub(憨憨)

正在适配的站点(排名不分先后):

- mt
- pthome
- hare

Todolist:

- 使用request发种,开发ing
- GUI（有考虑，需要学）
- 自定义站点（需要考虑做不做和怎么做）

如果有新的站点/资源类型等需求,可以加入QQ群交流(735803201)

## 安装Auto_Upload自动发种机

`Auto_Upload自动发种机`可以在任何具有 `Python`环境的系统上使用，下面讲解下在各个系统上的安装步骤

### Windows(已测试成功)

1.需要本地安装Chrome且升级到最新正式版本

2.安装python3:
[安装Python](https://www.python.org/downloads/)，一般选择最新版本的Python3及对应的Windows installer即可。安装时注意将为所有用户安装和将Python添加到PATH勾上
![安装python1](https://img.picgo.net/2022/08/07/1.png)
打开PowerShell，确认Python安装成功
![安装python2](https://img.picgo.net/2022/08/07/2.png)

以下几个插件的安装包可以去通过下面官方途径下载，也可以前往[Install文件夹](https://github.com/dongshuyan/Auto_Upload/blob/master/install)获取 或者 前往交流群的群文件获取。3.安装 `ffmpeg`，并确认安装正确:

- 下载安装 `ffmpeg` & `ffprobe`：https://github.com/BtbN/FFmpeg-Builds/releases
- 将解压后的 `ffmpeg`文件夹移动到一个相对稳定的文件夹,比如 `D:\Program Files\`
- 将上一步 `ffmpeg\bin`文件夹路径添加到系统PATH我的电脑【右击】 -> 选择 属性 -> 高级系统设置 -> 高级 -> 环境变量  -> 系统变量里面找到'Path',点击编辑 -> 新建 -> 将上一步 `ffmpeg\bin`文件夹路径路径粘贴进去 -> 确定 --> 确定 … 保存即可。一般也是 不需要重启
- 在PowerShell确认ffmpeg和ffprobe安装成功

4.安装 `mktorrent`，并确认安装正确:

- 根据自己电脑下载[64位安装包](https://github.com/q3aql/mktorrent-win/releases/download/v1.1-2/mktorrent-1.1-win-64bit-build2.7z)或者[32位安装包](https://github.com/q3aql/mktorrent-win/releases/download/v1.1-2/mktorrent-1.1-win-32bit-build2.7z)
- 使用[7-zip](http://www.7-zip.org/) or [Winrar](http://www.rarlab.com/)解压文件.
- 将 `mktorrent`文件夹移动到一个相对稳定的文件夹,比如 `D:\Program Files\`
- 将上一步 `mktorrent\bin`文件夹路径添加到系统PATH
  我的电脑【右击】 -> 选择 属性 -> 高级系统设置 -> 高级 -> 环境变量  -> 系统变量里面找到'Path',点击编辑 -> 新建 -> 将上一步 `mktorrent\bin`文件夹路径路径粘贴进去 -> 确定 --> 确定 … 保存即可。一般也是 不需要重启

5.安装 `mediainfo`，并确认安装正确

- 下载[mediainfo-cli](https://mediaarea.net/download/binary/mediainfo/22.06/MediaInfo_CLI_22.06_Windows_x64.zip)：https://mediaarea.net/en/MediaInfo/Download/Windows
- 解压zip文件并解压后的 `Mediainfo_CLIxxx`文件夹移动到一个相对稳定的位置
- 将上一步 `Mediainfo_CLIxxx`文件夹路径添加到系统PATH我的电脑【右击】 -> 选择 属性 -> 高级系统设置 -> 高级 -> 环境变量  -> 系统变量里面找到'Path',点击编辑 -> 新建 -> 将上一步 `Mediainfo_CLIxxx`文件夹路径粘贴进去 -> 确定 --> 确定 … 保存即可。一般也是 不需要重启。
- 在PowerShell确认 `mediainfo`安装成功

```bash
mediainfo -h
```

6.安装 `Auto_Upload`，在以管理员身份打开 `Windows PowerShell`中输入:

```bash
python3 -m pip install auto_upload  -i https://pypi.tuna.tsinghua.edu.cn/simple/
auto_upload -h
```

如果上述命令没反应或者报错可以尝试下面这个：

```bash
pip install auto_upload  -i https://pypi.tuna.tsinghua.edu.cn/simple/
auto_upload -h
```

7.更新 `Auto_Upload`，在 `Windows PowerShell`中输入:

```bash
python3 -m pip install --upgrade auto_upload  -i https://pypi.tuna.tsinghua.edu.cn/simple/
```

### Linux

0.升级 `python`至 `3.7.0`版本以上，建议 `3.9.0`
如果有 `_ssl`或者 `_ctypes`找不到，也可以试试按照下面步骤重新安装python3

```bash
# 我也使用的wget ,我下载到了Download中
wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz
# 在home中解压
tar -zxf Python-3.9.0.tgz
# 进入python3.9
cd Python-3.9.0
 
# 编译文件  时间大概有1-3分钟
./configure --prefix=/usr/local/python3
 
# 编译好后，会有另外一个提示，让run ./configure xxx
./configure --enable-optimizations

# 安装pip依赖
sudo apt-get update
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libssl-dev openssl
sudo apt-get install libffi-dev
sudo apt-get install libxpm-dev libxext-dev 
sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev 

#配置ssl
./configure --with-ssl

# 给超级权限
sudo su

# 安装
make && make install

#退出超级权限
exit
 
# 结束
```

1.需要本地安装Chrome且升级到最新正式版本
手动下载安装并更新即可，如果不方便手动，可以尝试使用如果命令（没有测试过）

#### 安装Chrome

```bash
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt-get update
sudo apt-get install google-chrome-stable
```

#### 更新Chrome

```bash
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
```

2.安装 `mktorrent`,`ffmpeg`和 `mediainfo`，并确认安装正确

```bash
sudo apt update 
sudo python3 -m pip install --upgrade pip
sudo apt-get install python3-pip ffmpeg mediainfo mktorrent
```

3.安装 `Auto_Upload`

```bash
python3 -m pip install auto_upload -i https://pypi.tuna.tsinghua.edu.cn/simple/
auto_upload -h
```

4.更新 `Auto_Upload`，，在 `Terminal.app`中输入:

```bash
python3 -m pip install --upgrade auto_upload -i https://pypi.tuna.tsinghua.edu.cn/simple/
```

### MacOS(已测试成功)

1.需要本地安装Chrome且升级到最新正式版本
以Mac为例，2020.08.06最新正式版为104.0.5112.79

2.安装 `Homebrew`，在Termial.app中输入:

```bash
bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

3.安装 `mktorrent`,`ffmpeg`和 `mediainfo`，并确认安装正确:

```bash
brew install ffmpeg mediainfo mktorrent
ffmpeg -version
mediainfo --version
```

4.安装 `Auto_Upload`，在 `Terminal.app`中输入:

```bash
python3 -m pip install auto_upload -i https://pypi.tuna.tsinghua.edu.cn/simple/
auto_upload -h
```

5.更新 `Auto_Upload`，，在 `Terminal.app`中输入:

```bash
python3 -m pip install --upgrade auto_upload -i https://pypi.tuna.tsinghua.edu.cn/simple/
```

## 配置环境&文件

### 1.本地新建一个工作目录

例如路径为:/Users/Desktop/auto_upload

### 2.在1中工作路径文件夹下，再新建三个文件夹

"cookies_path","screenshot_path","record_path"

- cookies_path将用来存放站点cookie文件，文件名需要命名为cookie_站点.json。(例如:cookie_lemonhd.json,cookie_pter.json等)
- screenshot_path将用来存放视频截图，种子等临时文件
- record_path将用来存放发种记录

### 3.获取cookie并存入文件 工作目录 `/cookies_path/cookie_站点.json` 中

on格式的cookie推荐使用插件"EditThisCookie"获取

#### EditThisCookie插件官网

http://www.editthiscookie.com/

#### `Chrome`下 `EditThisCookie`安装网址

https://chrome.google.com/webstore/detail/fngmhnnpilhplaeedifhccceomclgfbg

#### `Edge`下 `EditThisCookie`安装网址

https://microsoftedge.microsoft.com/addons/detail/editthiscookie/jhampopgcdhehhkbeljdbfdbkfkmolbh?hl=zh-CN

- 安装好 `EditThisCookie`之后
- 使用浏览器 `成功登录`PT站点
- 点击右上角 `饼干🍪`图案的图标
- 点击向右的按钮就把json格式的cookie复制的剪贴板了
- 粘贴进本文并保存到 `工作目录/cookies_path/cookie_站点.json`文件即可

### 4.在文件夹中新建配置文件au.yaml

详细参数说明参考[au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml)

注意：如果是在windows系统下，要发布的 `资源文件/文件夹名称`如果有 `空格`会导致制作种子失败，建议将空格替换为 `.`或者下划线 `_`。其他系统没有这个问题。

建立完成后在工作目录下应该有三个文件夹以及一个au.yaml位置文件，如下图
![Img_Demo](https://img.picgo.net/2022/08/06/dir.jpg)

## 运行脚本

### 1.自动发种

```bash
auto_upload -yp '工作目录/au.yaml' -u
```

注意：在Windows系统发种时需要确保在制作种子期间，被发布的 `文件`或者 `文件夹`没有被其他应用占用。

### 2.本地图片自动上传图床

```bash
auto_upload -yp '工作目录/au.yaml' -iu -ih 图床名称  -iform 图片格式 -if  '图片路径1' '图片路径2'
```

图床名称目前仅支持（排名无先后）：

- ptpimg
- picgo
- chd
- imgbox
- pter
- smms

### 3.获取豆瓣信息

```bash
auto_upload -yp '工作目录/au.yaml' -di -du 豆瓣链接
```

示例:

```bash
auto_upload -yp '工作目录/au.yaml' -di -du https://movie.douban.com/subject/26353671/
```

### 4.命令行获取本地视频截图链接

```bash
auto_upload -yp '工作目录/au.yaml' -mi -mf '视频路径' -ih 图床名称 -iform 图片格式 -in 截图数量
```

图床名称目前仅支持（排名无先后）：

- ptpimg
- picgo
- chd
- imgbox
- pter
- smms

图片格式(可以不填，默认'img'):

- img 图片原始链接
- bbcode BBcode格式链接

截图数量(可以不填，默认3张)

示例:

```bash
auto_upload 'au.yaml' -mi -mf '1.mp4' -ih picgo -iform bbcode -in 6
```

## 配置文件au.yaml详细说明

参考 [au_example.yaml](https://github.com/dongshuyan/Auto_Upload/blob/master/au_example.yaml)

## 常见错误及修复方法（更新ing）

### 1.Chrome未更新至最新

### 2.Windows下 如果资源路径 `最后的文件夹名称`有空格会导致制作种子失败（已修复）

Windows下的mktorrent支持的不太好，后面我再修复吧

### 3.文件夹名称错误

最后一级文件夹名称必须是：任意内容[想要在副标题添加的内容]-资源中文名-资源英文名-发布组
例如 `6[有B站水印]-不死者之王-OVERLOAD-sauterne`

## 交流群

群号:735803201

## Reference

[Differential 差速器](https://github.com/LeiShi1313/Differential)  (复制了上传图床部分代码)
[Differential差速器使用教程](https://leishi.io/blog/posts/2021-12/Differential/)  (Auto_Upload安装教程主要参考本文)
[mktorrent-win-builds](https://github.com/q3aql/mktorrent-win-builds)
[MKTORRENT WIN下命令行制作种子](https://blog.acesheep.com/index.php/archives/551/)
[linux 安装 Chrome](https://www.cnblogs.com/ivantang/p/6290729.html)
[windows10 环境变量设置](https://blog.csdn.net/palmer_kai/article/details/80588594)
[Linux Ubuntu系统升级Python3版本至Python3.9版本步骤](https://blog.csdn.net/u012080686/article/details/112600252)
[PYTorrent](https://github.com/ndroi/pytorrent)