Skip to content

Commit

Permalink
Merge pull request #7 from jackloves111/main
Browse files Browse the repository at this point in the history
新增docker服务器前后端安装脚本
  • Loading branch information
Shurelol authored Jan 25, 2024
2 parents c858d56 + 9b26ac1 commit 3239c85
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
[English](README_EN.md)

### EMBY(Docker服务器端)安装方法
- 本方案仅`emby/embyserver:beta`镜像测试有效,其他镜像请自行测试
- root账户登录ssh,输入以下指令一键安装
```
wget -O script.sh --no-check-certificate https://raw.githubusercontent.com/Shurelol/Emby.CustomCssJS/main/src/script.sh && bash script.sh
```
- 服务器端安装完成,重启容器,网页端的控制台会多出一个自定义JS和CSS的插件,插件内输入自定义js和css代码即可实现对应功能
- 如果不显示插件,请检查映射的`config`文件夹权限是否正确!

### 修改后端(服务端)
- 复制`src\Emby.CustomCssJS.dll``programdata\plugins`

Expand Down Expand Up @@ -34,4 +44,4 @@
***
- 服务端脚本启用信息储存在`localStorage`,键值为`customcssServerConfig_${sercerID}`和`customjsServerConfig_${sercerID}`
- 本地脚本启用信息储存在`localStorage`,键值为`customcssLocalConfig`和`customjsLocalConfig`
- 如启用脚本后,无法进入emby,删除`localStorage`中相应数据即可
- 如启用脚本后,无法进入emby,删除`localStorage`中相应数据即可
60 changes: 60 additions & 0 deletions src/script.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/bin/bash

read -p "请输入 Emby 容器名称:" name

echo "Emby-css安装中..."

# 使用 docker exec 检查文件是否存在
if docker exec "$name" test -f "/config/plugins/Emby.CustomCssJS.dll"; then
echo "插件已安装过,无需重复安装!"
else
# 安装插件
wget -q --no-check-certificate https://raw.githubusercontent.com/Shurelol/Emby.CustomCssJS/main/src/Emby.CustomCssJS.dll -O Emby.CustomCssJS.dll
docker cp ./Emby.CustomCssJS.dll $name:/config/plugins/
docker exec -it $name chmod 755 /config/plugins/Emby.CustomCssJS.dll
echo "插件首次安装!"
fi

# 下载所需文件到系统
wget -q --no-check-certificate https://raw.githubusercontent.com/Shurelol/Emby.CustomCssJS/main/src/CustomCssJS.js -O CustomCssJS.js

# 从系统复制文件到容器内
docker cp ./CustomCssJS.js $name:/system/dashboard-ui/modules/

# 主安装程序
function Installing() {
# 读取文件内容
content=$(cat app.js)
# 定义要插入的代码,注意去掉逗号
code1='list.push("./modules/CustomCssJS.js")'
code2='Promise.all(list.map(loadPlugin))'
# 在Promise.all(list.map(loadPlugin))之前插入代码
new_content=$(echo -e "${content//$code2/$code1,$code2}")
# 将新内容写入app.js文件
echo -e "$new_content" > app.js
# 读取文件内容
content=$(cat app.js)
# 使用tr命令删除换行符
no_newline_content=$(echo "$content" | tr -d '\n')
# 将处理后的内容写回app.js文件
echo -e "$no_newline_content" > app.js
# 覆盖容器内取index.html文件
docker cp ./app.js $name:/system/dashboard-ui/
}

# 先复制容器内的app.js到系统内
docker cp $name:/system/dashboard-ui/app.js ./

# 如果不包含替换内容
if ! grep -c "CustomCssJS.js" app.js; then
docker cp $name:/system/dashboard-ui/app.js ./
# 备份
docker exec -it $name mkdir -p /system/dashboard-ui/bak/
docker cp ./app.js $name:/system/dashboard-ui/bak/
Installing
echo "成功!Index.html 首次安装!"
else
docker cp $name:/system/dashboard-ui/bak/app.js ./
Installing
echo "成功!Index.html 已重新修改!"
fi

0 comments on commit 3239c85

Please sign in to comment.