Linux / 常用工具 / 网站程序

OneList(OneDrive的简单目录索引)

迷失小白菜 · 3月12日 · 2019年 ·

前言

目前OneDrive目录程序已经很多了,比如:PyOneOneIndexOLAINDEX

这几个各有特色,都挺好用的,不过有时候api在高峰期抽风的时候,都很容易出现空目录的情况,导致下载会出现问题,这里萌咖sxyazi大佬就历时N天,写了个基于Python3的简约OneDrive目录列表,同时换了一种api来防止因使用人过多导致抽风等问题,稳定性大大的增加,而且使用Redis动态缓存策略,打开目录的速度是相当的快,不过该程序初衷只想安静的做个目录程序,所以是不会增加看视频的功能,如果你想看视频,那就选择开头的3个程序。

预览图

安装 onelist

  • 说明:该程序不适用OneDrive个人版,且建议使用Debian系统安装,会很快。

安装依赖

  • CentOS 7
# 安装EPEL
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# 安装Python3和Redis
yum install python36 redis git -y
# 配置Python3软链接
ln -s /usr/bin/python3.6 /usr/bin/python3
# 安装pip3
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
# 启动Redis
systemctl start redis
# 设置Redis开机自启
systemctl enable redis
  • CentOS 6
# 安装EPEL
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
# 安装Python3和Redis
yum install python34 redis git -y
# 安装pip3
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
# 启动Redis
service redis start
# 设置Redis开机自启
chkconfig redis on
  • Debian/Ubuntu
# 安装pip3和Redis
apt update
apt install python3-pip redis-server git -y

安装OneList

# 拉取源码
git clone https://github.com/0oVicero0/OneList.git
# 安装依赖
cd OneList && pip3 install -r requirements.txt

获取auth_token
使用浏览器访问该地址→传送门,登录你的OneDrive账号,复制地址栏code=&session之间的参数。

# grep过滤自动显示token
# 咕咕咕

获取refresh_token,在SSH客户端使用命令:

# 将下面auth_token替换成你获取到的参数,再使用命令:
code="<auth_token>"
wget --no-check-certificate --post-data="client_id=ea2b36f6-b8ad-40be-bc0f-e5e4a4a7d4fa&client_secret=h27zG8pr8BNsLU0JbBh5AOznNS5Of5Y540l/koc7048=&grant_type=authorization_code&resource=https://api.office.com/discovery/&redirect_uri=http://localhost/onedrive-login&code=$code" 'https://login.microsoftonline.com/common/oauth2/token' -qO-

然后复制refresh_token参数后面的字段。

将下面 “<auth_token>” 替换成你获取到的字段然后粘贴到ssh执行

cat > /root/OneList/config.json<<-EOF
{
  "token": "<refresh_token>",
  "location_path": "/",
  "start_directory": "/",
  "threads": 3,
  "diff_seconds": 480,
  "refresh_seconds": 720,
  "metadata_cached_seconds": 768,
  "structure_cached_seconds": 840
}
EOF

config.json的参数请注意要和 github 对比是否一样.如果不一致.以 github 上的为准.否则无法运行

开始运行:

gunicorn app:app -b 127.0.0.1:8888 -D
# 如果启动了没端口可以去掉 -D 再运行一次来查看错误反馈

此时访问地址为127.0.0.1:8888,还需要使用域名反代才能访问,如果你要使用ip访问,将运行命令改成0.0.0.0:8888即可。

域名反代

  • 这里用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运行!
echo "d.1688.com {
 gzip
 tls admin@1688.com
 proxy / 127.0.0.1:8888
}" > /usr/local/caddy/Caddyfile

该配置会自动签发SSL,请提前解析域名到VPS服务器。

启动Caddy

/etc/init.d/caddy start

就可以打开域名进行访问了。

最后如果你没有OneDrive大容量网盘可以申请1年开发者计划,申请地址→传送门;要是你觉得1年不够用,可以前往萌咖杂货店购买→传送门

0 条回应