3rd_fix download
This commit is contained in:
86
check_recent_jobs.py
Normal file
86
check_recent_jobs.py
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
檢查最近的任務狀態
|
||||
"""
|
||||
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Fix encoding for Windows console
|
||||
if sys.stdout.encoding != 'utf-8':
|
||||
sys.stdout.reconfigure(encoding='utf-8')
|
||||
if sys.stderr.encoding != 'utf-8':
|
||||
sys.stderr.reconfigure(encoding='utf-8')
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'app'))
|
||||
|
||||
from app import create_app
|
||||
from app.models.job import TranslationJob
|
||||
from pathlib import Path
|
||||
|
||||
def check_recent_jobs():
|
||||
"""檢查最近的任務狀態"""
|
||||
|
||||
app = create_app()
|
||||
|
||||
with app.app_context():
|
||||
print("=== 檢查所有任務狀態 ===")
|
||||
|
||||
# 查找所有任務,按創建時間排序
|
||||
all_jobs = TranslationJob.query.order_by(TranslationJob.created_at.desc()).all()
|
||||
|
||||
for i, job in enumerate(all_jobs, 1):
|
||||
print(f"\n【任務 {i}】")
|
||||
print(f" UUID: {job.job_uuid}")
|
||||
print(f" 檔名: {job.original_filename}")
|
||||
print(f" 狀態: {job.status}")
|
||||
print(f" 進度: {job.progress}%")
|
||||
print(f" 創建時間: {job.created_at}")
|
||||
print(f" 目標語言: {job.target_languages}")
|
||||
print(f" 總tokens: {job.total_tokens}")
|
||||
print(f" 總成本: ${job.total_cost}")
|
||||
|
||||
if job.error_message:
|
||||
print(f" ❌ 錯誤: {job.error_message}")
|
||||
|
||||
# 檢查翻譯檔案
|
||||
if job.status == 'COMPLETED':
|
||||
translated_files = job.get_translated_files()
|
||||
print(f" 📁 翻譯檔案數: {len(translated_files)}")
|
||||
|
||||
for tf in translated_files:
|
||||
file_path = Path(tf.file_path)
|
||||
exists = "✅" if file_path.exists() else "❌"
|
||||
size = file_path.stat().st_size if file_path.exists() else 0
|
||||
print(f" {exists} {tf.filename} ({tf.language_code}) - {size:,} bytes")
|
||||
|
||||
# 檢查檔案內容是否真的有翻譯
|
||||
if file_path.exists() and tf.filename.endswith('.docx'):
|
||||
try:
|
||||
from docx import Document
|
||||
doc = Document(str(file_path))
|
||||
paragraph_count = len([p for p in doc.paragraphs if p.text.strip()])
|
||||
print(f" 段落數: {paragraph_count}")
|
||||
|
||||
# 顯示前幾段內容
|
||||
sample_texts = []
|
||||
for p in doc.paragraphs[:3]:
|
||||
if p.text.strip():
|
||||
sample_texts.append(p.text.strip()[:50])
|
||||
|
||||
if sample_texts:
|
||||
print(f" 範例文字: {sample_texts[0]}...")
|
||||
except Exception as e:
|
||||
print(f" ⚠️ 無法讀取檔案: {e}")
|
||||
|
||||
# 檢查原始檔案
|
||||
original_file = job.get_original_file()
|
||||
if original_file:
|
||||
orig_path = Path(original_file.file_path)
|
||||
orig_exists = "✅" if orig_path.exists() else "❌"
|
||||
orig_size = orig_path.stat().st_size if orig_path.exists() else 0
|
||||
print(f" 📄 原始檔案: {orig_exists} {original_file.filename} - {orig_size:,} bytes")
|
||||
|
||||
if __name__ == "__main__":
|
||||
check_recent_jobs()
|
Reference in New Issue
Block a user