fix unzipkdm

This commit is contained in:
zj
2026-01-12 21:21:01 +08:00
parent cbab0d05a9
commit 4203d7c6bc
4 changed files with 279 additions and 47 deletions

View File

@@ -2,7 +2,7 @@
pkgname=tms-bbt-config pkgname=tms-bbt-config
pkgver=26.01 pkgver=26.01
pkgrel=02 pkgrel=12
pkgdesc="SmartTMS application conifg." pkgdesc="SmartTMS application conifg."
arch=('x86_64') arch=('x86_64')
url="https://yuyujing.cn/smarttms" url="https://yuyujing.cn/smarttms"
@@ -53,8 +53,8 @@ package() {
install -m755 hostname "${pkgdir}/usr/bin/hostname" install -m755 hostname "${pkgdir}/usr/bin/hostname"
install -m755 smart-organizer-service-install.sh "${pkgdir}/home/smart/smart-organizer-service-install.sh" 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 -m644 tms-tools.desktop "${pkgdir}/usr/share/applications/tms-tools.desktop"
install -m755 unzipKDM.png "${pkgdir}/home/smart/unzipKDM.png" install -m755 unzipKDM.png "${pkgdir}${_starter_dir}/unzipKDM.png"
install -m755 unzipKDMs.sh "${pkgdir}/home/smart/unzipKDMs.sh" install -m755 unzipKDMs.sh "${pkgdir}${_starter_dir}/unzipKDMs.sh"
install -m644 uzipkdm.desktop "${pkgdir}/usr/share/applications/uzipkdm.desktop" install -m644 uzipkdm.desktop "${pkgdir}/usr/share/applications/uzipkdm.desktop"
install -m644 tms.desktop "${pkgdir}/usr/share/applications/tms.desktop" install -m644 tms.desktop "${pkgdir}/usr/share/applications/tms.desktop"

View File

@@ -0,0 +1,209 @@
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
<Menu>
<Name>Xfce</Name>
<DefaultAppDirs/>
<DefaultDirectoryDirs/>
<Include>
<Category>X-Xfce-Toplevel</Category>
<Category>TMS</Category>
</Include>
<Exclude>
<Or>
<Filename>xfce4-mail-reader.desktop</Filename>
<Filename>xfce4-web-browser.desktop</Filename>
<Filename>barco-commander.desktop</Filename>
<Filename>barco-communicator.desktop</Filename>
<Filename>dcc.desktop</Filename>
<Filename>dcc2.desktop</Filename>
<Filename>zm.desktop</Filename>
<Filename>tms-tools.desktop</Filename>
<Filename>tmsrestart.desktop</Filename>
<Filename>org.remmina.Remmina.desktop</Filename>
<Filename>dcpomatic2.desktop</Filename>
<Filename>xfce4-run.desktop</Filename>
<Filename>uzipkdm.desktop</Filename>
</Or>
</Exclude>
<Layout>
<Filename>xfce4-run.desktop</Filename>
<Separator/>
<Filename>xfce4-terminal-emulator.desktop</Filename>
<Filename>xfce4-file-manager.desktop</Filename>
<Filename>tms.desktop</Filename>
<Separator/>
<Menuname>TMS</Menuname>
<Separator/>
<Menuname>Settings</Menuname>
<Separator/>
<Merge type="all"/>
<Separator/>
<Filename>xfce4-about.desktop</Filename>
<Filename>xfce4-session-logout.desktop</Filename>
</Layout>
<Menu>
<Name>TMS</Name>
<Directory>tms.directory</Directory>
<Include>
<Category>TMS</Category>
</Include>
</Menu>
<Menu>
<Name>Settings</Name>
<Directory>xfce-settings.directory</Directory>
<Include>
<Category>Settings</Category>
</Include>
<Layout>
<Filename>xfce-settings-manager.desktop</Filename>
<Separator/>
<Merge type="all"/>
</Layout>
<Menu>
<Name>Screensavers</Name>
<Directory>xfce-screensavers.directory</Directory>
<Include>
<Category>Screensaver</Category>
</Include>
</Menu>
</Menu>
<Menu>
<Name>Accessories</Name>
<Directory>xfce-accessories.directory</Directory>
<Include>
<Or>
<Category>Accessibility</Category>
<Category>Core</Category>
<Category>Legacy</Category>
<Category>Utility</Category>
</Or>
</Include>
<Exclude>
<Or>
<Filename>xfce4-file-manager.desktop</Filename>
<Filename>xfce4-terminal-emulator.desktop</Filename>
<Filename>xfce4-about.desktop</Filename>
<Filename>xfce4-run.desktop</Filename>
</Or>
</Exclude>
</Menu>
<Menu>
<Name>Development</Name>
<Directory>xfce-development.directory</Directory>
<Include>
<Category>Development</Category>
</Include>
</Menu>
<Menu>
<Name>Education</Name>
<Directory>xfce-education.directory</Directory>
<Include>
<Category>Education</Category>
</Include>
</Menu>
<Menu>
<Name>Games</Name>
<Directory>xfce-games.directory</Directory>
<Include>
<Category>Game</Category>
</Include>
</Menu>
<Menu>
<Name>Graphics</Name>
<Directory>xfce-graphics.directory</Directory>
<Include>
<Category>Graphics</Category>
</Include>
</Menu>
<Menu>
<Name>Multimedia</Name>
<Directory>xfce-multimedia.directory</Directory>
<Include>
<Category>Audio</Category>
<Category>Video</Category>
<Category>AudioVideo</Category>
</Include>
<Exclude>
<Or>
<Filename>qv4l2.desktop</Filename>
<Filename>qvidcap.desktop</Filename>
</Or>
</Exclude>
</Menu>
<Menu>
<Name>Network</Name>
<Directory>xfce-network.directory</Directory>
<Include>
<Category>Network</Category>
</Include>
<Exclude>
<Or>
<Filename>bssh.desktop</Filename>
<Filename>bvnc.desktop</Filename>
<Filename>xfce4-web-browser.desktop</Filename>
<Filename>xfce4-mail-reader.desktop</Filename>
</Or>
</Exclude>
</Menu>
<Menu>
<Name>Office</Name>
<Directory>xfce-office.directory</Directory>
<Include>
<Category>Office</Category>
</Include>
</Menu>
<Menu>
<Name>Science</Name>
<Directory>xfce-science.directory</Directory>
<Include>
<Category>Science</Category>
</Include>
</Menu>
<Menu>
<Name>System</Name>
<Directory>xfce-system.directory</Directory>
<Include>
<Or>
<Category>Emulator</Category>
<Category>System</Category>
</Or>
</Include>
<Exclude>
<Or>
<Filename>xfce4-session-logout.desktop</Filename>
</Or>
</Exclude>
</Menu>
<Menu>
<Name>Other</Name>
<Directory>xfce-other.directory</Directory>
<OnlyUnallocated/>
<Include>
<All/>
</Include>
</Menu>
<DefaultMergeDirs/>
</Menu>

103
tms-bbt-config/unzipKDMs.sh Normal file → Executable file
View File

@@ -1,62 +1,85 @@
#!/bin/bash #!/bin/bash
# 定义保存编码的文件路径 # 定义保存cookie的文件路径
CONFIG_FILE="$HOME/.my_key_encoding" # 建议放在用户主目录下的隐藏文件,避免与脚本混淆 COOKIE_FILE="/home/smart/cookie.txt"
# 检查是否存在已保存的编码 # 1. 登录 SmartTMS_S3 系统
if [ -f "$CONFIG_FILE" ]; then 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
KEY_ENCODING=$(cat "$CONFIG_FILE")
echo "使用已保存的密钥编码: $KEY_ENCODING"
else
# 如果文件不存在,提示用户输入并保存
read -p "首次运行,请输入密钥编码 (例如: 35054321): " USER_INPUT_ENCODING
# 简单验证输入是否为空 if [ $? -ne 0 ]; then
if [ -z "$USER_INPUT_ENCODING" ]; then echo "错误: 登录 SmartTMS_S3 失败。请检查服务是否运行或网络连接。"
echo "错误: 未输入密钥编码。脚本退出。" rm -f "$COOKIE_FILE" # 清理可能不完整的cookie文件
sleep 60
exit 1 exit 1
fi fi
echo "登录成功。"
KEY_ENCODING="$USER_INPUT_ENCODING" # 2. 从 SettingManagementController 接口提取密钥编码 (code)
echo "$KEY_ENCODING" > "$CONFIG_FILE" echo "正在获取编码..."
echo "密钥编码 '$KEY_ENCODING' 已保存,下次运行将自动使用此编码。" 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 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/ declare -a DIRS=("/home/smart/下载/" "/home/smart/Downloads/" "/media/kdm/" "/tmp/")
echo "已处理 /home/smart/下载/ 中的ZIP文件。" TARGET_DIR="/media/kdm/"
cd /home/smart/Downloads/ for dir in "${DIRS[@]}"; do
ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/ echo "正在处理目录: $dir 中的ZIP文件..."
echo "已处理 /home/smart/Downloads/ 中的ZIP文件。" find "$dir" -maxdepth 1 -name "${KEY_ENCODING}*.zip" -print0 | xargs -0 -r -n1 unzip -o -d "$TARGET_DIR"
if [ $? -ne 0 ]; then
cd /media/kdm/ echo "警告: 在 $dir 中解压文件时可能出现问题,或没有找到匹配的文件。"
ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/ fi
echo "已处理 /media/kdm/ 中的ZIP文件。" done
cd /tmp/
ls $USER_INPUT_ENCODING*.zip 2>/dev/null | xargs -r -n1 unzip -o -d /media/kdm/
echo "已处理 /media/kdm/ 中的ZIP文件。"
echo "解压操作完成。" echo "解压操作完成。"
echo "删除密钥压缩包..." echo "删除密钥压缩包..."
# 使用之前获取或保存的 KEY_ENCODING 变量 # 使用之前获取的 KEY_ENCODING 变量来查找并删除压缩包
find /media/kdm/ -name "${KEY_ENCODING}*.zip" -delete for dir in "${DIRS[@]}"; do
find /home/smart/下载/ -name "${KEY_ENCODING}*.zip" -delete echo "正在删除 $dir 中的 ${KEY_ENCODING}*.zip 文件..."
find /home/smart/Downloads/ -name "${KEY_ENCODING}*.zip" -delete 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 "密钥压缩包删除完成。" echo "密钥压缩包删除完成。"
sleep 3 sleep 3
echo "刷新密钥..." echo "刷新密钥..."
# 登录并刷新密钥,保持原样 # 刷新KDM使用之前登录获取的cookie
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 -s http://127.0.0.1:8080/SmartTMS_S3/kdmController/updateKdm.do -X POST -b "$COOKIE_FILE" >/dev/null 2>&1
curl http://127.0.0.1:8080/SmartTMS_S3/kdmController/updateKdm.do -X POST -b /home/smart/cookie.txt 2>&1 >/dev/null
echo "刷新成功。" if [ $? -ne 0 ]; then
echo "错误: 刷新密钥失败。"
else
echo "刷新成功。"
fi
sleep 5 sleep 5
# 清理cookie文件
rm -f "$COOKIE_FILE"
echo "已清理临时cookie文件。"
echo "脚本执行完毕。" echo "脚本执行完毕。"

6
tms-bbt-config/uzipkdm.desktop Normal file → Executable file
View File

@@ -5,8 +5,8 @@ Version=1.0
Type=Application Type=Application
Categories=TMS Categories=TMS
Terminal=true Terminal=true
Icon[zh_CN]=/home/smart/unzipKDM.png Icon[zh_CN]=/home/smart/.tms3/starter/unzipKDM.png
Name[zh_CN]=解压密钥 Name[zh_CN]=解压密钥
Exec=sh /home/smart/unzipKDMs.sh Exec=sh /home/smart/.tms3/starter/unzipKDMs.sh
Name=unzipkdm Name=unzipkdm
Icon=/home/smart/unzipKDM.png Icon=/home/smart/.tms3/starter/unzipKDM.png