chenyang12315 / JustList

天翼云盘、OneDrive 多用户文件列表工具

Home Page:https://lib.tls.moe/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JustList

JustList,仅仅是目录。

没错,又一款简单的网盘文件列表与分享工具...

支持天翼云盘、OneDrive、OneDrive 世纪互联,可以同时启用多个云盘的多个用户。当然,也有一个简单的缓存与自动刷新系统。

部署

本程序可前后端分离,以下主要为后端部署说明。

总的来说,很简单的几步:

  • 安装程序与依赖
  • 修改云盘配置项
  • 启用核心
  • 运行

下述说明看似很多,其实内容很少(可能是废话太多了?hhh)。

安装依赖

$ pip3 install -r requirements.txt

修改配置

强制刷新地址

编辑 ./app/plugin/sys_update.py ,将 sys/update/xxxiiixxx 改为你想要的强制刷新地址。

这部分请务必修改(或将此插件停用)!否则可能会被恶意请求。

天翼云盘(可选)

编辑 ./app/core/cloud189/config.json

{
    "accounts": {
        "cloud189_user1": [
            "<your_username>",     // 用户名
            "<your_password>",     // 密码
            {}                     // cookie,可留空为 {}(但必须存在)
        ],
        "cloud189_user2": [
            "<your_username>",
            "<your_password>",
            {}
        ]
    },
    "cant_enterFolder": ["同步盘"], // 禁止访问的文件夹,正则 match
    "cant_visFile": ["\\..*?"],    // 禁止文件名,正则 match
    "only_Referrer": [],           // 简单防盗链,允许的 Referrer,留空为全部允许,正则 search
    "sys_checkTime": 60,           // 更新任务线程间隔
    "sys_cookieExpiredTime": 3600, // cookie 缓存有效时间
    "sys_dataExpiredTime": 900,    // 文件目录缓存有效时间
    "sys_dl_urlExpiredNum": 30,    // 下载链接缓存有效次数
    "sys_dl_urlExpiredTime": 300   // 下载链接缓存有效时间
}

OneDrive(可选)

编辑 ./app/core/onedrive/config.json

{
    "accounts": {
        "onedrive_user1": [
            0,                   // 0 为国际版,1 为世纪互联
            ""                   // refresh_token,留空时程序会引导填写,也可提前填写(但必须存在)
        ],
        "onedrive_user2": [
            1,
            ""
        ]
    },
    "cant_enterFolder": [],      // 禁止访问的文件夹,正则 match
    "cant_visFile": ["\\..*?"],  // 禁止文件名,正则 match
    "only_Referrer": [],         // 简单防盗链,允许的 Referrer,留空为全部允许,正则 search
    "rootPath": "/",             // 根目录
    "sys_checkTime": 65,         // 更新任务线程间隔
    "sys_dataExpiredTime": 1200, // 文件目录缓存有效时间
    "sys_dl_urlExpiredNum": 30,  // 下载链接缓存有效次数
    "sys_dl_urlExpiredTime": 600 // 下载链接缓存有效时间
}

注意,以上两个配置文件中 accounts 中自定义的多用户用户名不可重复

Refresh Token

若在配置中保留此项为空,那么程序会在第一次初始化时引导你获取 code 后自动获得 refresh_token,并且会保存在配置文件中。

Client ID 等更改

如果你想使用自己的客户端 ID 和密码,请修改 ./app/core/onedrive/onedrive.py 头部的变量。

例如,

clientId = [
    "78d4dc35-7e46-42c6-9023-2d39314433a5",
    "3ff8580b-62e2-47ea-94f1-47e41440122c",
]

第一行为 OneDrive 国际版的,第二行为世纪互联版的。

启用核心

默认不会加载任何服务。若要开启服务,请正确修改各配置后启用加载核心。

编辑 ./app/core/__init__.py ,取消相应注释即可。

from .onedrive.main import * # 开启 OneDrive
from .cloud189.main import * # 开启 天翼云盘

启动程序

$ python3 main.py

(若要更改程序的运行地址,请修改 ./main.py

前后端分离(可选)

不是必要的操作,但如果你想的话,请按照以下步骤配置。

  1. 编辑 ./main.py ,将 CORS(app, resources=r"/*") 取消注释。如果你想指定域,请自行修改。

(将 return render_template("md.html") 注释及 if 语句注释)

  1. 编辑 ./templates/md.html ,将 api_url 改为后端运行地址即可(结尾不含 / )。

(如果配置文件中设置了 only_Referrer ,请注意修改)

开发

目录

├── app
├── ├── __init__.py
├── ├── core           // 核心 //
├── ├── ├── __init__.py       // 开关
├── ├── ├── args              // 请求参数获取
├── ├── ├── cache             // 缓存
├── ├── ├── file              // 文件操作
├── ├── ├── cloud189          // 天翼云盘核心
├── ├── ├── onedrive          // OneDrive 核心
├── ├── plugin         // 插件 //
├── ├── ├── __init__.py       // 开关
├── ├── ├── do_file.py        // 文件直链跳转
├── ├── ├── get_list.py       // 网盘目录
├── ├── ├── get_text.py       // 文件内容获取
├── ├── ├── sys_update.py     // 强制刷新网盘目录缓存
├── ├── platform.py           // 提供核心、插件的注册和调用(中转)
├── templates         // 前端页面
├── .gitattributes
├── .gitignore
├── main.py           // 运行
├── README.md

简略框架说明可以查看PixivBiu-后端

API

此部分可自行修改插件以更改。

  1. api/get/list
  • 获取网盘的目录
  • 示例
    • api/get/list : 返回全部目录
    • api/get/list/user1/a/x : 返回 user1 的 a 目录下的 x 目录/文件(如果存在)
    • api/get/list/user2/?id=xxx : 返回 user2 的 id 为 xxx 的目录/文件
  1. api/get/text
  • 获取文件的内容
  • 示例
    • api/get/text/user1/a/x : 返回 user1 的 a 目录下的 x 文件内容(如果存在)
    • api/get/text/user2/?id=xxx : 返回 user2 的 id 为 xxx 的文件内容
  1. file
  • 直链跳转(下载文件)
  • 示例
    • file/user1/a/x : 重定向至 user1 的 a 目录下的 x 文件下载链接(如果存在)
    • file/user2/?id=xxx : 重定向至 user2 的 id 为 xxx 的文件的下载链接
  1. sys/update/xxxiiixxx
  • 强制刷新网盘目录缓存

说明

  • 本程序会一次性加载全部允许的文件并缓存,所以若文件较多此过程可能会较慢(取决于你文件的数量与网络状况),但不影响正常运行
  • 仅在小规模(天翼云盘x2、OneDrive 国际版x1、世纪互联版x1)且请求、文件数量中等的情况下测试,运行稳定
  • 网盘操作代码修改自 Aruelius/cloud189MoeClub/OneList,感谢

声明

  • 本程序仅供学习参考,请在达成目的后停止使用
  • 使用后任何不可知事件都与原作者无关,原作者不承担任何后果
  • MIT License

使用愉快。

; )

About

天翼云盘、OneDrive 多用户文件列表工具

https://lib.tls.moe/

License:MIT License


Languages

Language:Python 57.2%Language:HTML 42.8%