diff --git a/Dockerfile b/Dockerfile index 300df39..a161a4a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:22.21.1 as builder +FROM node:22.21.1 AS builder WORKDIR /app @@ -11,6 +11,11 @@ RUN npm install ENV NODE_ENV=production ENV PATH=/app/node_modules/.bin:$PATH +# 替换前端中的地址 +RUN sed -i 's#\${baseUrl}##g' /app/src/views/AccountManagement.vue +RUN sed -i "s#\${import\.meta\.env\.VITE_API_BASE_URL || 'http:\/\/localhost:5409'}##g" /app/src/api/material.js +RUN sed -i 's#localhost:5409##g' /app/.env.production + RUN npm run build @@ -20,10 +25,6 @@ WORKDIR /app ENV PLAYWRIGHT_BROWSERS_PATH=/opt/playwright -COPY --from=builder /app/dist/index.html /app -COPY --from=builder /app/dist/assets /app/assets -COPY --from=builder /app/dist/vite.svg /app - RUN apt-get update && apt-get install -y --no-install-recommends libnss3 \ libnspr4 \ libdbus-1-3 \ @@ -48,8 +49,15 @@ RUN playwright install chromium-headless-shell COPY . . +COPY --from=builder /app/dist/index.html /app +COPY --from=builder /app/dist/assets /app/assets +COPY --from=builder /app/dist/vite.svg /app/assets + RUN cp conf.example.py conf.py +RUN mkdir -p /app/videoFile +RUN mkdir -p /app/cookiesFile + EXPOSE 5409 CMD ["python", "sau_backend.py"] diff --git a/myUtils/auth.py b/myUtils/auth.py index 908374e..d78b696 100644 --- a/myUtils/auth.py +++ b/myUtils/auth.py @@ -5,15 +5,16 @@ import os from playwright.async_api import async_playwright from xhs import XhsClient -from conf import BASE_DIR +from conf import BASE_DIR, LOCAL_CHROME_HEADLESS from utils.base_social_media import set_init_script from utils.log import tencent_logger, kuaishou_logger, douyin_logger from pathlib import Path from uploader.xhs_uploader.main import sign_local + async def cookie_auth_douyin(account_file): async with async_playwright() as playwright: - browser = await playwright.chromium.launch(headless=True) + browser = await playwright.chromium.launch(headless=LOCAL_CHROME_HEADLESS) context = await browser.new_context(storage_state=account_file) context = await set_init_script(context) # 创建一个新的页面 @@ -38,9 +39,10 @@ async def cookie_auth_douyin(account_file): await browser.close() return False + async def cookie_auth_tencent(account_file): async with async_playwright() as playwright: - browser = await playwright.chromium.launch(headless=True) + browser = await playwright.chromium.launch(headless=LOCAL_CHROME_HEADLESS) context = await browser.new_context(storage_state=account_file) context = await set_init_script(context) # 创建一个新的页面 @@ -55,9 +57,10 @@ async def cookie_auth_tencent(account_file): tencent_logger.success("[+] cookie 有效") return True + async def cookie_auth_ks(account_file): async with async_playwright() as playwright: - browser = await playwright.chromium.launch(headless=True) + browser = await playwright.chromium.launch(headless=LOCAL_CHROME_HEADLESS) context = await browser.new_context(storage_state=account_file) context = await set_init_script(context) # 创建一个新的页面 @@ -76,7 +79,7 @@ async def cookie_auth_ks(account_file): async def cookie_auth_xhs(account_file): async with async_playwright() as playwright: - browser = await playwright.chromium.launch(headless=True) + browser = await playwright.chromium.launch(headless=LOCAL_CHROME_HEADLESS) context = await browser.new_context(storage_state=account_file) context = await set_init_script(context) # 创建一个新的页面 @@ -99,7 +102,7 @@ async def cookie_auth_xhs(account_file): return True -async def check_cookie(type,file_path): +async def check_cookie(type, file_path): match type: # 小红书 case 1: diff --git a/sau_backend.py b/sau_backend.py index 4b86f7e..c7529f7 100644 --- a/sau_backend.py +++ b/sau_backend.py @@ -32,8 +32,12 @@ def custom_static(filename): # 处理 favicon.ico 静态资源(未来打包用) @app.route('/favicon.ico') -def favicon(filename): - return send_from_directory(os.path.join(current_dir, 'assets'), 'favicon.ico') +def favicon(): + return send_from_directory(os.path.join(current_dir, 'assets'), 'vite.svg') + +@app.route('/vite.svg') +def vite_svg(): + return send_from_directory(os.path.join(current_dir, 'assets'), 'vite.svg') # (未来打包用) @app.route('/')