CTList:天翼云网盘的目录列表程序
CTList (Golang)
- 支持多账户
- 支持显示文件夹大小
- 支持每天自动签到
- 支持异步缓存
- 支持隐藏指定文件夹和文件
- 支持整个目录,单层目录或单文件访问加密
- 支持展示任意目录,自定义根目录
- 支持只读挂载到
PotPlayer(WebDAV)
,nPlayer(WebDAV)
准备工作
CTList
皮肤文件与OneList
皮肤文件完全兼容.
可实现在线浏览图片,在线观看视频等其他功能 点此前往下载
- 授权码 [32位小写字母和数字,一个授权码可以绑定多个用户名,用于启动多账户.] *[获取授权码*]
- 主程序 (CTList)
- 配置文件 (config.json)
- 皮肤文件 (index.html)
授权码去MoeRats大佬博客等放码https://www.moerats.com/archives/1028/
安装
安装CTList
#新建并进入CTList目录
mkdir /opt/CTList && cd $_
#64位系统下载
wget https://raw.githubusercontent.com/mboyka/CTList/master/exec/amd64/linux/CTList
#32位系统下载
wget https://raw.githubusercontent.com/mboyka/CTList/master/exec/i386/linux/CTList
#arm架构下载
wget https://raw.githubusercontent.com/mboyka/CTList/master/exec/arm/linux/CTList
#给予权限
chmod +x CTList
下载配置文件
#下载配置文件
wget https://raw.githubusercontent.com/mboyka/CTList/master/config.json
#下载默认的主题文件
wget https://raw.githubusercontent.com/mboyka/CTList/master/index.html
更换主题
1、HaorWu
#作者
https://github.com/HaorWu
#特点
支持移动端自适应
支持当页搜索
支持按文件名, 日期, 大小排序
支持主动查看图片
支持在线播放视频
#下载地址
https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/%40Theme/HaorWu/index.html
2、jackjieYYY
#作者
https://github.com/jackjieYYY
https://www.hostloc.com/space-uid-38920.html
#特点
支持移动端自适应
支持当页搜索
支持按文件名, 日期, 大小排序
支持在线播放视频
#下载地址
https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/%40Theme/jackjieYYY/index.html
下载index.html
文件,覆盖即可
编辑配置文件
无特殊需要,只需要填写账号密码即可 (前4项). 修改配置后需重新启动 CTList
[
{
"Enable": 1, # 0: 关闭, 1: 打开
"UserName": "", # 天翼云网盘登陆用户名,不需要@189.cn.
"Password": "", # 天翼云网盘登陆密码
"CaptchaMode": "0", # 验证码. 0: 遇到验证码拒绝登陆, 1: 手动输入验证, 其他: 自动识别验证码的API.
"RefreshToken": "", # 天翼网盘会话. 保持默认, 如果出现异常, 请将该值清空.
"SubPath": "/CTList", # 指定某账户挂载在网站的某个目录, 多账户时每个目录值必须唯一.
"RootPathId": "-11", # 设置展示天翼网盘目录的ID, 根目录为 -11.
"HideItemId": "0|-16", # 不展示某个目录或文件, 填写其ID. 每项用"|"分隔.
"AuthItemId": "", # 加密某个目录或文件. "<文件或者目录的ID>?<加密模式>?<用户名>:<密码>"
"RefreshURL": 189, # 下载直链缓存的秒数. 超时则被动更新.
"RefreshInterval": 1800 # 刷新目录结构,如果不常更新,建议设置更长时间.
}
]
CaptchaMode
填写为 "https://api.moeclub.org/SampleCode"
用于识别登陆验证码. 默认: "0"。
如果使用期间有修改过配置文件,需要重启CTList
。
启动CTList
这里启动改成了授权模式,需要申请码获取授权码,获取授权码→传送门,Apply Token
和用户名即手机号必填,且一个申请码只能绑定一个天翼云账号,绑定多个账号需要在同样的授权码上绑定其它账号。
#申请码使用提示
[Success]: 绑定成功.
[Query Mode]:查询模式, 查询授权码. 申请码已经被使用.
如果没有有效授权的用户, 运行程序时会出现Error! No Valid User.
获取到授权码后开始启动CTList
:
将CTList
, config.json
, index.html
三个文件放在同一目录下即可
#直接运行
/opt/CTList/CTList -a "AUTH_TOKEN" -bind 0.0.0.0 -port 8000
#后台运行
/opt/CTList/CTList -a "AUTH_TOKEN" -bind 0.0.0.0 -port 8000 -d
# 默认启动监听 127.0.0.1:5189
/opt/CTList/CTList -a "AUTH_TOKEN_32"
# 直接监听公网.
/opt/CTList/CTList -a "AUTH_TOKEN_32" -bind 0.0.0.0 -port 80
AUTH_TOKEN
为获取到的授权码,8000
为访问端口,运行前自行修改。
启动了后,就可以使用ip:8000/CTList
访问程序了,后面为SubPath
参数路径,自行修改。
如果你访问不了程序,可能要检查下防火墙端口,有安全组的也要放行下相关端口。
这里提供个CentOS
系统防火墙开启命令,比如开放8000
端口,大致如下:
#CentOS 6
iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
service iptables save
service iptables restart
#CentOS 7
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --reload
开机自启
这里新建一个简单的systemd
配置文件,适用CentOS 7
、Debian 8+
、Ubuntu 16+
。
使用命令:
#设置你的运行监听端口,即你可以通过ip:端口访问程序,这里默认8000。
port="8000"
#设置你的授权码,自行修改
AUTH_TOKEN="xxxxxxx"
#将以下代码一起复制到SSH运行
cat > /etc/systemd/system/ctlist.service <<EOF
[Unit]
Description=ctlist
After=network.target
[Service]
Type=simple
ExecStart=/opt/CTList/CTList -a AUTH_TOKEN -bind 0.0.0.0 -port 8000 -l
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
#启动并设置开机自启
systemctl start ctlist
systemctl enable ctlist
/opt/CTList/
路径改成你自己的路径,如果按教程操作不用修改AUTH_TOKEN
改成自己的,8000
改成自己的端口
相关命令:
启动:systemctl start ctlist
停止:systemctl stop ctlist
重启:systemctl restart ctlist
查看状态:systemctl status ctlist
重载服务: systemctl reload ctlist
开机自启动: systemctl enable ctlist
取消开机自启动:systemctl disable ctlist
绑定域名
提示:有宝塔面板的直接使用宝塔就行,没有的就可以使用caddy,2选1即可。
宝塔面板
先进入宝塔面板,然后点击左侧网站,添加站点,再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL
填入http://127.0.0.1:8000
,不要设置缓存,再启用反向代理即可。
如果要启用SSL
,就需要在设置反向代理之前,直接在站点配置点击SSL
,申请免费let
证书,然后再启用反代即可。
Caddy绑定
安装Caddy
:
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
配置Caddy
:
#以下全部内容是一个整体,请修改域名后一起复制到SSH运行!
#http访问,该配置不会自动签发SSL
echo "www.moerats.com {
gzip
tls admin@moerats.com
proxy / 127.0.0.1:8000
}" > /usr/local/caddy/Caddyfile
#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "www.moerats.com {
gzip
tls admin@moerats.com
proxy / 127.0.0.1:8000
}" > /usr/local/caddy/Caddyfile
启动Caddy
:
/etc/init.d/caddy start
就可以打开域名进行访问了。
卸载
#未设置开机自启
rm -rf /opt/CTList
#设置过开机自启
systemctl stop ctlist
systemctl disable ctlist
rm -rf /opt/CTList /etc/systemd/system/ctlist.service
使用问题
访问地址
根据配置文件中的SubPath
项中参数访问具体网盘
一般 SubPath
的具体值在终端中显示在中括号内. 比如: [/CTList]
例如: "SubPath": "/CTList"
访问: http://127.0.0.1:5189/CTList
例如: "SubPath": "/"
访问: http://127.0.0.1:5189/
寻找目录ID
用于 RootPathId
, HideItemId
, AuthItemId
配置项
登陆 https://cloud.189.cn ;进入需要操作的目录,查看地址栏最后的数字就是这个目录的ID.
文件ID需要浏览器F12查看请求项.
RootPathId: 列表展示的根目录对应的天翼网盘文件夹ID, 天翼网盘根目录ID为 -11
HideItemId: 在展示目录中隐藏天翼网盘内的文件或文件夹,填写其ID,使用 "|" 分隔
AuthItemId: 在展示目录中加密天翼网盘内的文件或文件夹,使用 "|" 分隔
加密目录
AuthItemId
配置项 采用 HTTP 401 认证方式加密
# 单个写法
"AuthItemId": "-11?0?UserName:Password"
# 多个写法
"AuthItemId": "-11?0?UserName:Password|-16?1?UserName:Password"
# 字段解析
<文件或者目录的ID>?<加密模式>?<用户名>:<密码>
# 加密模式
0: 只加密这一层文件夹,可以直接访问这层文件夹内部的内容.
1: 加密这个文件夹的所有子项目.
注意: 加密文件选0和1效果相同.
刷新策略
# 4个刷新逻辑完全异步,互不影响.
Token(登陆保活): 60 * 60 * 10
Cookie(会话授权): 60 * 30
RefreshURL(真实下载链接): 189 (配置文件可改 <RefreshURL>)
RefreshInterval(刷新目录结构): 60 * 15 (配置文件可改, 全局最小值生效 <RefreshInterval>)
使用说明
Usage of CTList:
-bind string
Bind Address (default "127.0.0.1")
-port string
Port (default "5189")
-a string
Auth Token.
-c string
Config file. (default "config.json")
-t string
Index file. (default "index.html")
-json
Output json.
-d
Run in the background.
-l
Less output.
目录访问
SubPath
配置项 控制目录访问
# 多账户时,确保 SubPath 项唯一.
当 SubPath 配置为空("")或者为单斜杆("/")时
访问路径为 http://0.0.0.0
当 SubPath 配置为具体字段("/CTList")时, "/CTList" 可以修改成自己喜欢的字段.
访问路径为 http://0.0.0.0/CTList
反向代理
location ^~ /CTList {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:5189;
}
在nPlayer
播放器中使用
# 网络 --> 添加 --> WebDAV
# 主机: 填写域名.
# 路径: 填写 SubPath 值. 如: /CTList
# 如果是 HTTPS 站点, 请选中 HTTPS .
# 其他请按照情况填写.
# 优势: 在播放器中可以播放各种编码格式的视频.
# 可以适当的将最小缓存时间调小,提高浏览体验.
报错相关
400(Not Found URL): 未能找到该文件的链接.
404(Not Found): 未完成初次缓存目录结构或文件路径不正确.
422(Not Found Real URL): 未能生成真实的文件下载链接(一般是文件被举报了,无法下载).
5XX: 一般是服务器端的问题. 部分可能的情况有: 主程序没开, 端口不通, 反代配置不正确.
天翼云网盘登陆验证码识别API(基于开源OCR识别)
# 目前去噪算法只支持天翼云网盘登陆的验证码(其他类型根本识别不出来)
# 使用时可多次尝试下载不同的验证图片进行提交(目前准确率不算高,但可用.)
# 下载天翼云验证码需要添加请求头 "Referer: https://open.e.189.cn/"
# 接口: https://api.moeclub.org/SampleCode
# 方式: POST
# 参数: Base64=<IMAGE_BASE64_CODE>&Type=CTCloud
# 返回: 状态码:200, 显示识别结果. 状态码:404, 识别错误或结果不符合预设规则, 显示为空.
转自:https://www.moerats.com/archives/1028/ 博主会不定时放码
https://github.com/mboyka/CTList