Initial clean project import
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
初始化预设封面模板到数据库
|
||||
"""
|
||||
|
||||
import json
|
||||
import sqlite3
|
||||
import os
|
||||
import sys
|
||||
from datetime import datetime
|
||||
|
||||
def get_db_path():
|
||||
"""获取数据库路径"""
|
||||
# 假设数据库在项目根目录的data文件夹
|
||||
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
db_path = os.path.join(project_root, 'data', 'aigcpanel.db')
|
||||
return db_path
|
||||
|
||||
def init_templates():
|
||||
"""初始化预设模板"""
|
||||
# 读取模板配置
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
template_file = os.path.join(script_dir, 'preset_templates.json')
|
||||
|
||||
print(f"Reading templates from: {template_file}")
|
||||
|
||||
with open(template_file, 'r', encoding='utf-8') as f:
|
||||
data = json.load(f)
|
||||
|
||||
templates = data['templates']
|
||||
print(f"Found {len(templates)} preset templates")
|
||||
|
||||
# 连接数据库
|
||||
db_path = get_db_path()
|
||||
print(f"Connecting to database: {db_path}")
|
||||
|
||||
if not os.path.exists(db_path):
|
||||
print(f"Error: Database not found at {db_path}")
|
||||
print("Please ensure the application has been run at least once to create the database.")
|
||||
return False
|
||||
|
||||
conn = sqlite3.connect(db_path)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# 检查表是否存在
|
||||
cursor.execute("""
|
||||
SELECT name FROM sqlite_master
|
||||
WHERE type='table' AND name='cover_templates'
|
||||
""")
|
||||
|
||||
if not cursor.fetchone():
|
||||
print("Error: cover_templates table does not exist")
|
||||
print("Please run the application first to create the database schema.")
|
||||
conn.close()
|
||||
return False
|
||||
|
||||
# 清空现有预设模板(可选)
|
||||
print("Clearing existing preset templates...")
|
||||
cursor.execute("DELETE FROM cover_templates WHERE id LIKE 'preset-%'")
|
||||
|
||||
# 插入预设模板
|
||||
now = int(datetime.now().timestamp() * 1000)
|
||||
|
||||
for idx, template in enumerate(templates, 1):
|
||||
template_id = f"preset-{idx:02d}"
|
||||
name = template['name']
|
||||
config_json = json.dumps(template['config'], ensure_ascii=False)
|
||||
|
||||
print(f"Inserting template: {name} (ID: {template_id})")
|
||||
|
||||
cursor.execute("""
|
||||
INSERT INTO cover_templates
|
||||
(id, name, config, thumbnail_path, created_at, updated_at)
|
||||
VALUES (?, ?, ?, NULL, ?, ?)
|
||||
""", (template_id, name, config_json, now, now))
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
|
||||
print(f"\n✅ Successfully initialized {len(templates)} preset templates!")
|
||||
return True
|
||||
|
||||
def main():
|
||||
print("="*60)
|
||||
print("Preset Cover Templates Initialization")
|
||||
print("="*60)
|
||||
print()
|
||||
|
||||
try:
|
||||
success = init_templates()
|
||||
sys.exit(0 if success else 1)
|
||||
except Exception as e:
|
||||
print(f"\n❌ Error: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user