diff --git a/PKGBUILD b/PKGBUILD index 5e251b6..9fcebc6 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,7 +2,7 @@ pkgname=tms-bbt-config pkgver=26.01 -pkgrel=02 +pkgrel=12 pkgdesc="SmartTMS application conifg." arch=('x86_64') url="https://yuyujing.cn/smarttms" @@ -53,8 +53,8 @@ package() { install -m755 hostname "${pkgdir}/usr/bin/hostname" install -m755 smart-organizer-service-install.sh "${pkgdir}/home/smart/smart-organizer-service-install.sh" install -m644 tms-tools.desktop "${pkgdir}/usr/share/applications/tms-tools.desktop" - install -m755 unzipKDM.png "${pkgdir}/home/smart/unzipKDM.png" - install -m755 unzipKDMs.sh "${pkgdir}/home/smart/unzipKDMs.sh" + install -m755 unzipKDM.png "${pkgdir}${_starter_dir}/unzipKDM.png" + install -m755 unzipKDMs.sh "${pkgdir}${_starter_dir}/unzipKDMs.sh" install -m644 uzipkdm.desktop "${pkgdir}/usr/share/applications/uzipkdm.desktop" install -m644 tms.desktop "${pkgdir}/usr/share/applications/tms.desktop" diff --git a/tms-bbt-config/menus/xfce-applications.menu b/tms-bbt-config/menus/xfce-applications.menu new file mode 100755 index 0000000..d560c94 --- /dev/null +++ b/tms-bbt-config/menus/xfce-applications.menu @@ -0,0 +1,209 @@ + + +
diff --git a/tms-bbt-config/unzipKDMs.sh b/tms-bbt-config/unzipKDMs.sh old mode 100644 new mode 100755 index 2aa184a..4c6ac55 --- a/tms-bbt-config/unzipKDMs.sh +++ b/tms-bbt-config/unzipKDMs.sh @@ -1,62 +1,85 @@ #!/bin/bash -# 定义保存编码的文件路径 -CONFIG_FILE="$HOME/.my_key_encoding" # 建议放在用户主目录下的隐藏文件,避免与脚本混淆 +# 定义保存cookie的文件路径 +COOKIE_FILE="/home/smart/cookie.txt" -# 检查是否存在已保存的编码 -if [ -f "$CONFIG_FILE" ]; then - # 如果文件存在,读取编码 - KEY_ENCODING=$(cat "$CONFIG_FILE") - echo "使用已保存的密钥编码: $KEY_ENCODING" -else - # 如果文件不存在,提示用户输入并保存 - read -p "首次运行,请输入密钥编码 (例如: 35054321): " USER_INPUT_ENCODING +# 1. 登录 SmartTMS_S3 系统 +echo "正在登录 SmartTMS_S3 系统以获取会话..." +curl -s -X POST -d 'userName=admin&userPassword=admin' -c "$COOKIE_FILE" http://127.0.0.1:8080/SmartTMS_S3/LoginController/login.do >/dev/null 2>&1 - # 简单验证输入是否为空 - if [ -z "$USER_INPUT_ENCODING" ]; then - echo "错误: 未输入密钥编码。脚本退出。" - exit 1 - fi +if [ $? -ne 0 ]; then + echo "错误: 登录 SmartTMS_S3 失败。请检查服务是否运行或网络连接。" + rm -f "$COOKIE_FILE" # 清理可能不完整的cookie文件 + sleep 60 + exit 1 +fi +echo "登录成功。" - KEY_ENCODING="$USER_INPUT_ENCODING" - echo "$KEY_ENCODING" > "$CONFIG_FILE" - echo "密钥编码 '$KEY_ENCODING' 已保存,下次运行将自动使用此编码。" +# 2. 从 SettingManagementController 接口提取密钥编码 (code) +echo "正在获取编码..." +JSON_RESPONSE=$(curl -s -X POST -b "$COOKIE_FILE" 'http://127.0.0.1:8080/SmartTMS_S3/SettingManagementController/queryCinemaModel.do') + +if [ $? -ne 0 ] || [ -z "$JSON_RESPONSE" ]; then + echo "错误: 无法获取系统配置信息或返回为空。检查tms是否启动" + rm -f "$COOKIE_FILE" + sleep 60 + exit 1 fi +KEY_ENCODING=$(echo "$JSON_RESPONSE" | sed -n 's/.*"result":{[^}]*"code":"\([^"]*\)".*/\1/p') + +if [ -z "$KEY_ENCODING" ]; then + echo "错误: 无法从接口响应中提取到有效的密钥编码。检查配置中是否填写影院编码" + rm -f "$COOKIE_FILE" + sleep 60 + exit 1 +fi + +echo "已成功获取影院编码: $KEY_ENCODING" + # 开始解压操作 -echo "开始解压文件..." +echo "开始解压密钥文件..." -cd /home/smart/下载/ -ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/ -echo "已处理 /home/smart/下载/ 中的ZIP文件。" +# 定义需要扫描的目录 +declare -a DIRS=("/home/smart/下载/" "/home/smart/Downloads/" "/media/kdm/" "/tmp/") +TARGET_DIR="/media/kdm/" -cd /home/smart/Downloads/ -ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/ -echo "已处理 /home/smart/Downloads/ 中的ZIP文件。" - -cd /media/kdm/ -ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/ -echo "已处理 /media/kdm/ 中的ZIP文件。" - -cd /tmp/ -ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/ -echo "已处理 /media/kdm/ 中的ZIP文件。" +for dir in "${DIRS[@]}"; do + echo "正在处理目录: $dir 中的ZIP文件..." + find "$dir" -maxdepth 1 -name "${KEY_ENCODING}*.zip" -print0 | xargs -0 -r -n1 unzip -o -d "$TARGET_DIR" + if [ $? -ne 0 ]; then + echo "警告: 在 $dir 中解压文件时可能出现问题,或没有找到匹配的文件。" + fi +done echo "解压操作完成。" echo "删除密钥压缩包..." -# 使用之前获取或保存的 KEY_ENCODING 变量 -find /media/kdm/ -name "${KEY_ENCODING}*.zip" -delete -find /home/smart/下载/ -name "${KEY_ENCODING}*.zip" -delete -find /home/smart/Downloads/ -name "${KEY_ENCODING}*.zip" -delete +# 使用之前获取的 KEY_ENCODING 变量来查找并删除压缩包 +for dir in "${DIRS[@]}"; do + echo "正在删除 $dir 中的 ${KEY_ENCODING}*.zip 文件..." + find "$dir" -maxdepth 1 -name "${KEY_ENCODING}*.zip" -delete +done +# 确保 /media/kdm/ 下的也删除 +echo "正在删除 /media/kdm/ 中的 ${KEY_ENCODING}*.zip 文件..." +find "$TARGET_DIR" -maxdepth 1 -name "${KEY_ENCODING}*.zip" -delete + echo "密钥压缩包删除完成。" sleep 3 echo "刷新密钥..." -# 登录并刷新密钥,保持原样 -curl -X POST -d 'userName=admin&userPassword=admin' -c /home/smart/cookie.txt http://127.0.0.1:8080/SmartTMS_S3/LoginController/login.do 2>&1 >/dev/null -curl http://127.0.0.1:8080/SmartTMS_S3/kdmController/updateKdm.do -X POST -b /home/smart/cookie.txt 2>&1 >/dev/null -echo "刷新成功。" +# 刷新KDM,使用之前登录获取的cookie +curl -s http://127.0.0.1:8080/SmartTMS_S3/kdmController/updateKdm.do -X POST -b "$COOKIE_FILE" >/dev/null 2>&1 + +if [ $? -ne 0 ]; then + echo "错误: 刷新密钥失败。" +else + echo "刷新成功。" +fi sleep 5 +# 清理cookie文件 +rm -f "$COOKIE_FILE" +echo "已清理临时cookie文件。" + echo "脚本执行完毕。" diff --git a/tms-bbt-config/uzipkdm.desktop b/tms-bbt-config/uzipkdm.desktop old mode 100644 new mode 100755 index 1c7cddf..231acf8 --- a/tms-bbt-config/uzipkdm.desktop +++ b/tms-bbt-config/uzipkdm.desktop @@ -5,8 +5,8 @@ Version=1.0 Type=Application Categories=TMS Terminal=true -Icon[zh_CN]=/home/smart/unzipKDM.png +Icon[zh_CN]=/home/smart/.tms3/starter/unzipKDM.png Name[zh_CN]=解压密钥 -Exec=sh /home/smart/unzipKDMs.sh +Exec=sh /home/smart/.tms3/starter/unzipKDMs.sh Name=unzipkdm -Icon=/home/smart/unzipKDM.png +Icon=/home/smart/.tms3/starter/unzipKDM.png