1.4.8-Fix

This commit is contained in:
RachelOS
2025-12-12 20:41:35 +08:00
parent c849c7f1c2
commit 53528ad891
5 changed files with 121 additions and 8 deletions
+17
View File
@@ -0,0 +1,17 @@
FROM --platform=$BUILDPLATFORM ghcr.io/rachelos/base-mini:latest as werss-base
#
ENV PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
# ENV PIP_INDEX_URL=https://mirrors.huaweicloud.com/repository/pypi/simple
# 复制Python依赖文件
FROM werss-base
# 安装系统依赖
WORKDIR /app
# 复制后端代码
ADD ./install.sh ./install.sh
ENV INSTALL=True BROWSER_TYPE=webkit PLANT_PATH=/app/env/
RUN chmod +x ./install.sh
RUN ./install.sh
RUN source /etc/profile
+93
View File
@@ -0,0 +1,93 @@
#!/bin/bash
plantform="$(uname -m)"
PLANT_PATH=${PLANT_PATH:-/app/data/}
plant=$PLANT_PATH_$plantform
python3 -m venv $plant
source $plant/bin/activate
echo "使用虚拟环境: $plant"
# 检查函数:检查包是否已安装
check_package() {
if command -v "$1" >/dev/null 2>&1; then
echo "$1 已安装"
return 0
elif dpkg -l "$1" 2>/dev/null | grep -q "^ii"; then
echo "$1 已安装"
return 0
else
echo "$1 未安装"
return 1
fi
}
# 检查所有需要的包
packages=("wget" "git" "build-essential" "zlib1g-dev"
"libgdbm-dev" "libnss3-dev" "libssl-dev" "libreadline-dev"
"libffi-dev" "libsqlite3-dev" "procps" )
if [ "$EXPORT_PDF" = "True" ]; then
echo "添加libreoffice依赖包..."
packages+=("fonts-noto-cjk" "libreoffice")
fi
echo "检查依赖包安装状态..."
for package in "${packages[@]}"; do
if ! check_package "$package"; then
missing_packages+=("$package")
fi
done
echo "${missing_packages[*]}"
if [ ${#missing_packages[@]} -eq 0 ]; then
echo "所有依赖都已安装,无需重复安装。"
else
echo "需要安装的包: ${missing_packages[*]}"
echo "开始安装..."
apt update && apt install -y ${missing_packages[*]} --no-install-recommends\
&& rm -rf /var/lib/apt/lists/*
if [ $? -eq 0 ]; then
echo "安装完成!"
else
echo "安装失败!"
exit 1
fi
fi
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
PLAYWRIGHT_BROWSERS_PATH=${PLAYWRIGHT_BROWSERS_PATH:-$PLANT_PATH/driver/_$plantform}
BROWSER_TYPE=${BROWSER_TYPE:-webkit}
echo "export PLAYWRIGHT_BROWSERS_PATH=${PLAYWRIGHT_BROWSERS_PATH}
export TZ=Asia/Shanghai
export BROWSER_TYPE=${BROWSER_TYPE}">/app/environment.sh
echo "环境变量已设置"
chmod +x /app/environment.sh
cat /app/environment.sh
source /app/environment.sh
echo "source /app/environment.sh
source $plant/bin/activate">/etc/profile
# pip3 install --upgrade pip
pip3 install playwright
# 检查requirements.txt更新
if [ -f "requirements.txt" ]; then
CURRENT_MD5=$(md5sum requirements.txt | cut -d' ' -f1)
OLD_MD5_FILE="/app/data/requirements.txt.md5"
if [ -f "$OLD_MD5_FILE" ] && [ "$CURRENT_MD5" = "$(cat $OLD_MD5_FILE)" ]; then
echo "requirements.txt未更新,跳过安装"
else
echo "安装requirements.txt依赖..."
pip3 install -r requirements.txt
echo $CURRENT_MD5 > $OLD_MD5_FILE
fi
fi
INSTALL=${INSTALL:-False}
# 根据环境变量决定是否安装浏览器
if [ "$INSTALL" = True ]; then
echo "INSTALL环境变量为$INSTALL,开始安装playwright浏览器..."
playwright install $BROWSER_TYPE --with-deps
else
echo "INSTALL环境变量为$INSTALL,跳过playwright浏览器安装"
fi
+6 -4
View File
@@ -18,7 +18,7 @@ from .cookies import expire
import json
from core.print import print_error,print_warning,print_info,print_success
class Wx:
HasLogin=False
_haslogin=False
SESSION=None
HasCode=False
isLOCK=False
@@ -134,8 +134,10 @@ class Wx:
random_index = random.randint(0, account_count - 1)
time.sleep(1)
p=accounts.nth(random_index).locator("p")
account_name=p.text_content()
print(f"切换账号: {account_name}")
nick_name=accounts.nth(random_index).locator(".section-item__nickname")
account_id=p.text_content()
account_name=nick_name.text_content()
print(f"账号: {account_name} ID:{account_id}")
p.click()
# 等待页面加载并验证切换成功
page.wait_for_load_state("networkidle", timeout=10000)
@@ -146,7 +148,7 @@ class Wx:
print_success("账号切换成功")
from jobs.notice import sys_notice
from core.config import cfg
sys_notice(f"账号切换成功\n- 账号名称: {account_name}", str(cfg.get("server.code_title","WeRss账号切换成功")))
sys_notice(f"账号切换成功\n- 账号名称: {account_name} \n- 账号ID: {account_id} \n- 过期时间: {self.SESSION.get('expire_time')}", str(cfg.get("server.code_title","WeRss账号切换成功")))
return True
else:
print_warning("没有找到可切换的账号")
+3 -2
View File
@@ -1,6 +1,7 @@
#!/bin/bash
plantform="$(uname -m)"
plant=/app/data/venv_$plantform
PLANT_PATH=${PLANT_PATH:-/app/data/}
plant=$PLANT_PATH_$plantform
python3 -m venv $plant
source $plant/bin/activate
echo "使用虚拟环境: $plant"
@@ -55,7 +56,7 @@ fi
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
PLAYWRIGHT_BROWSERS_PATH=${PLAYWRIGHT_BROWSERS_PATH:-/app/data/driver/_$plantform}
PLAYWRIGHT_BROWSERS_PATH=${PLAYWRIGHT_BROWSERS_PATH:-$PLANT_PATH/driver/_$plantform}
BROWSER_TYPE=${BROWSER_TYPE:-webkit}
echo "export PLAYWRIGHT_BROWSERS_PATH=${PLAYWRIGHT_BROWSERS_PATH}
export TZ=Asia/Shanghai
+2 -2
View File
@@ -155,7 +155,7 @@ if __name__=="__main__":
# testWeb()
# testNotice()
# testMd2Doc()
# testLogin()
testCheckAuth()
testLogin()
# testCheckAuth()
# testToken() # 注释掉避免线程冲突
# testMarkDown()