Skip to content

Commit

Permalink
更新脚本
Browse files Browse the repository at this point in the history
  • Loading branch information
u.wang committed Dec 23, 2024
1 parent fbb0a69 commit e9cdbcd
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 14 deletions.
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ COPY ./src .
RUN chmod +x main.py
RUN pip install --no-cache-dir -r requirements.txt

RUN echo '0 * * * * /app/main.py >> /proc/1/fd/1 2>&1' > /etc/crontabs/root
# 定时任务设置随机秒数,每小时前1分钟内随机更新
RUN echo '0 * * * * sleep $((RANDOM % 60)) && /app/main.py >> /proc/1/fd/1 2>&1' | crontab -

ENTRYPOINT ["/sbin/tini", "--", "sh", "-c", "crond -f -l ${LOG_LEVEL}"]
33 changes: 24 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
通过 115 网盘生成下载目录树,自动生成 strm 文件,使用 alist 的情况下,可添加到 emby 进行播放

原理:每小时获取一次 115 网盘内的 `目录树.txt`,并生成(更新) strm 文件。
>PS: 由于 alist 默认有文件缓存 30 分钟后,所以115网盘内的目录树更新后,strm 文件可能在下一个整点更新,也可能在第二个整点更新。
镜像内置的定时任务配置为:`0 * * * * sleep $((RANDOM % 60)) && /app/main.py`。如果不满足要求可自行修改。

创建 `docker-compose.yml` 文件

Expand All @@ -23,13 +26,15 @@ services:
- MEDIA_EXTENSIONS=mp3,flac,wav,aac,ogg,wma,alac,m4a,aiff,ape,dsf,dff,wv,pcm,tta,mp4,mkv,avi,mov,wmv,flv,webm,vob,mpg,mpeg,iso
- TZ=Asia/Shanghai
volumes:
- '/path/to/115-strm/data:/data'
- '/path/to/strm:/data'
restart: 'unless-stopped'
```
## alist 配置
## 环境变量:alist
- alist 里需要关闭签名。关闭签名方法: 1: 在管理-设置-全局-关闭签名所有。2:在储存-挂载的储存-启用签名选择关闭
- alist 里需要关闭签名。关闭签名:
1. 在管理-设置-全局-关闭签名所有。
2. 在储存-挂载的储存-启用签名选择关闭
- alist 里需要启用 guest 用户,给 115 对应文件的 webdav 读权限
相关环境变量:
Expand All @@ -43,7 +48,7 @@ ALIST_115_MOUNT_PATH=/115 # 115网盘在 alist 中的挂载路径
ALIST_115_TREE_FILE_FOR_GUEST=/115/目录树.txt
```

## 115网盘
## 环境变量:115网盘

假设 115 网盘的目录结构如下:

Expand All @@ -62,22 +67,32 @@ ALIST_115_TREE_FILE=/目录树.txt # 每次在115网盘根目录生成目录树
EXCLUDE_OPTION=1 # 可选配置,排除的目录,一级目录填 1
```

其他环境变量说明:
## 其他环境变量

```env
UPDATE_EXISTING=0 # 可选配置,是否更新已存在的 strm 文件
DELETE_ABSENT=1 # 可选配置,是否删除目录树中不存在的 strm 文件
UPDATE_EXISTING=1 # 可选配置,默认 1 更新,是否已存在的 strm 文件。0 不更新
DELETE_ABSENT=1 # 可选配置,默认 1 删除,是否删除目录树中不存在的 strm 文件。0 不删除
# 可选配置,自定义生成 strm 文件的文件后缀名
MEDIA_EXTENSIONS=mp3,flac,wav,aac,ogg,wma,alac,m4a,aiff,ape,dsf,dff,wv,pcm,tta,mp4,mkv,avi,mov,wmv,flv,webm,vob,mpg,mpeg
# 可选配置,自定义生成 strm 文件的文件后缀名,不需要的可以删除
MEDIA_EXTENSIONS=mp3,flac,wav,aac,ogg,wma,alac,m4a,aiff,ape,dsf,dff,wv,pcm,tta,mp4,mkv,avi,mov,wmv,flv,webm,vob,mpg,mpeg,iso
```

## 启动服务

确认上述环境变量后,启动服务:

```bash
docker compose up -d
```

## 文件后缀列表

常见媒体文件后缀:

- 音频文件格式:mp3,flac,wav,aac,ogg,wma,alac,m4a,aiff,ape,dsf,dff,wv,pcm,tta
- 视频文件格式:mp4,mkv,avi,mov,wmv,flv,webm,vob,mpg,mpeg
- 光盘镜像文件格式:iso

## 分享音乐

<https://115.com/s/swhsphs33xj?password=0000#>
Expand Down
7 changes: 3 additions & 4 deletions src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
ALIST_115_TREE_FILE = os.getenv("ALIST_115_TREE_FILE", "/目录树.txt")
STRM_SAVE_PATH = os.getenv("STRM_SAVE_PATH", "/data")
EXCLUDE_OPTION = int(os.getenv("EXCLUDE_OPTION", 1))
UPDATE_EXISTING = int(os.getenv("UPDATE_EXISTING", 1)) # 默认更新已存在的 strm 文件
DELETE_ABSENT = int(os.getenv("DELETE_ABSENT", 1)) # 默认删除目录树中不存在的 strm 文件
UPDATE_EXISTING = int(os.getenv("UPDATE_EXISTING", 1)) # 是否更新已存在的 strm 文件,默认更新
DELETE_ABSENT = int(os.getenv("DELETE_ABSENT", 1)) # 是否删除目录树中不存在的 strm 文件,默认删除

ALIST_115_TREE_FILE_FOR_GUEST = os.getenv("ALIST_115_TREE_FILE_FOR_GUEST", "")

Expand Down Expand Up @@ -243,10 +243,9 @@ def delete_absent_files(strm_path, generated_files):
response = fetch_file_info(api_url_file_info, ALIST_115_TREE_FILE_FOR_GUEST)
if response:
modified, sha1 = extract_modified_and_sha1(response)
print(f"Modified: {modified} SHA1: {sha1}")
if os.path.isfile(output_file) and sha1 == get_file_sha1(output_file):
# 判断本地文件 sha1 与远端是否相同
print(f"文件 hash 值未改变,更新跳过。")
print(f"文件 hash 值未改变,更新跳过。 Modified: {modified} SHA1: {sha1}")
exit(1) # 退出程序,状态码为 1
else:
download_with_redirects(DIRECTORY_TREE_FILE, output_file)
Expand Down

0 comments on commit e9cdbcd

Please sign in to comment.