上传文件至 服务器启动

This commit is contained in:
jcy 2025-05-14 12:24:22 +08:00
parent 3f658c7a9c
commit 2d42fbf17d
3 changed files with 149 additions and 0 deletions

View File

@ -0,0 +1,41 @@
import sys
import logging
# 配置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("pdfkit_patch")
class PDFKitPatch:
"""pdfkit的兼容性替代类"""
@staticmethod
def from_string(html_content, output_path, options=None):
"""
将HTML字符串转换为PDF文件的兼容方法
仅记录操作不实际生成PDF
"""
logger.info(f"[PDFKit兼容层] 请求将HTML转换为PDF{output_path}")
# 保存原始HTML以供备用
html_output = output_path.replace('.pdf', '.html')
with open(html_output, 'w', encoding='utf-8') as f:
f.write(html_content)
logger.info(f"[PDFKit兼容层] 已保存HTML文件作为替代: {html_output}")
return True
@staticmethod
def from_file(input_file, output_file, options=None):
"""
将HTML文件转换为PDF的兼容方法
仅记录操作不实际生成PDF
"""
logger.info(f"[PDFKit兼容层] 请求将文件转换为PDF: {input_file} -> {output_file}")
return True
# 导出兼容方法
from_string = PDFKitPatch.from_string
from_file = PDFKitPatch.from_file
# 向调用者提供信息
logger.info("pdfkit兼容层已加载PDF生成功能已禁用仅生成HTML报告")

View File

@ -0,0 +1,67 @@
@echo off
chcp 65001 > nul
setlocal enabledelayedexpansion
echo 正在启动视频处理系统服务器...
REM 设置环境变量
set PYTHONIOENCODING=utf-8
set PYTHONLEGACYWINDOWSSTDIO=utf-8
REM 检查是否存在必要的文件
if not exist "%~dp0server.py" (
echo 错误: 未找到server.py文件
pause
exit /b 1
)
if not exist "%~dp0pdfkit_patch.py" (
echo 警告: 未找到pdfkit_patch.py文件将创建兼容层...
copy NUL "%~dp0pdfkit_patch.py" > nul
echo 已创建pdfkit_patch.py文件
)
if not exist "%~dp0whisper_patch.py" (
echo 警告: 未找到whisper_patch.py文件将创建兼容层...
copy NUL "%~dp0whisper_patch.py" > nul
echo 已创建whisper_patch.py文件
)
REM 检查端口5001是否被占用
set PORT_FOUND=0
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":5001"') do (
set PID=%%a
set PORT_FOUND=1
goto :found
)
:found
if %PORT_FOUND% equ 1 (
echo 警告: 端口5001已被占用进程ID为: %PID%
choice /c YN /m "是否尝试终止该进程 (Y/N)?"
if !errorlevel! equ 1 (
echo 正在终止进程 %PID%...
taskkill /F /PID %PID%
timeout /t 2 > nul
) else (
echo 请关闭占用端口的程序后再重试。
pause
exit /b 1
)
)
REM 启动服务器
echo 正在启动服务器...
cd /d "%~dp0"
start python server.py
REM 等待服务器启动
echo 正在等待服务器启动...
timeout /t 5 /nobreak > nul
REM 自动打开浏览器
start http://localhost:5001
echo.
echo 如果浏览器没有自动打开,请访问: http://localhost:5001
echo 要停止服务器,请关闭命令行窗口。
pause

View File

@ -0,0 +1,41 @@
import sys
import logging
# 配置日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("whisper_patch")
try:
import whisper as w
logger.info("成功导入原始whisper库")
original_whisper_available = True
except ImportError:
logger.warning("无法导入原始whisper库将使用模拟实现")
original_whisper_available = False
# 创建一个空的模块作为替代
class DummyWhisperModule:
pass
w = DummyWhisperModule()
class Model:
@staticmethod
def load_model(name, device="cpu", download_root=None):
logger.info(f"使用whisper兼容层加载模型: {name}, 设备: {device}")
return DummyModel()
class DummyModel:
def transcribe(self, audio_path, **kwargs):
logger.info(f"使用模拟转录功能处理音频: {audio_path}")
segments = [
{"text": "这是一个示例PPT讲解视频。", "start": 0.0, "end": 5.0},
{"text": "由于Python版本限制无法使用原始语音识别功能。", "start": 5.0, "end": 10.0},
{"text": "这是一个兼容性替代方案。", "start": 10.0, "end": 15.0},
{"text": "您可以升级到Python 3.8+以使用完整功能。", "start": 15.0, "end": 20.0}
]
return {"segments": segments}
# 将自定义功能添加到whisper模块
sys.modules["whisper"] = w
sys.modules["whisper"].load_model = Model.load_model
logger.info("whisper兼容层初始化完成")