feat:目录结构重大调整,谨慎更新到dev
This commit is contained in:
140
database/versions/a40261701909_1_0_20.py
Normal file
140
database/versions/a40261701909_1_0_20.py
Normal file
@ -0,0 +1,140 @@
|
||||
"""1.0.20
|
||||
|
||||
Revision ID: a40261701909
|
||||
Revises: ae9d8ed8df97
|
||||
Create Date: 2024-05-22 19:16:21.374806
|
||||
|
||||
"""
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
from app.core.config import Settings
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'a40261701909'
|
||||
down_revision = 'ae9d8ed8df97'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
"""
|
||||
升级目录配置
|
||||
"""
|
||||
# 实例化配置
|
||||
_settings = Settings(
|
||||
_env_file=Settings().CONFIG_PATH / "app.env",
|
||||
_env_file_encoding="utf-8"
|
||||
)
|
||||
# 下载目录配置升级
|
||||
download_dirs = []
|
||||
if _settings.DOWNLOAD_MOVIE_PATH:
|
||||
download_dirs.append({
|
||||
"type": "download",
|
||||
"name": "电影目录",
|
||||
"path": _settings.DOWNLOAD_MOVIE_PATH,
|
||||
"media_type": "电影",
|
||||
"category": "",
|
||||
"auto_category": True if _settings.DOWNLOAD_CATEGORY else False,
|
||||
"priority": 1
|
||||
})
|
||||
if _settings.DOWNLOAD_TV_PATH:
|
||||
download_dirs.append({
|
||||
"type": "download",
|
||||
"name": "电视剧目录",
|
||||
"path": _settings.DOWNLOAD_TV_PATH,
|
||||
"media_type": "电视剧",
|
||||
"category": "",
|
||||
"auto_category": True if _settings.DOWNLOAD_CATEGORY else False,
|
||||
"priority": 2
|
||||
})
|
||||
if _settings.DOWNLOAD_ANIME_PATH:
|
||||
download_dirs.append({
|
||||
"type": "download",
|
||||
"name": "动漫目录",
|
||||
"path": _settings.DOWNLOAD_ANIME_PATH,
|
||||
"media_type": "动漫",
|
||||
"category": "",
|
||||
"auto_category": True if _settings.DOWNLOAD_CATEGORY else False,
|
||||
"priority": 3
|
||||
})
|
||||
if _settings.DOWNLOAD_PATH:
|
||||
download_dirs.append({
|
||||
"type": "download",
|
||||
"name": "下载目录",
|
||||
"path": _settings.DOWNLOAD_PATH,
|
||||
"media_type": "",
|
||||
"category": "",
|
||||
"auto_category": True if _settings.DOWNLOAD_CATEGORY else False,
|
||||
"priority": 4
|
||||
})
|
||||
|
||||
# 插入数据库,报错的话则更新
|
||||
if download_dirs:
|
||||
download_dirs_value = json.dumps(download_dirs)
|
||||
try:
|
||||
op.execute(f"INSERT INTO systemconfig (key, value) VALUES ('DownloadDirectories', '{download_dirs_value}');")
|
||||
except Exception as e:
|
||||
op.execute(f"UPDATE systemconfig SET value = '{download_dirs_value}' WHERE key = 'DownloadDirectories';")
|
||||
|
||||
# 媒体库目录配置升级
|
||||
library_dirs = []
|
||||
if _settings.LIBRARY_PATH:
|
||||
for library_path in _settings.LIBRARY_PATH.split(","):
|
||||
if _settings.LIBRARY_MOVIE_NAME:
|
||||
library_dirs.append({
|
||||
"type": "library",
|
||||
"name": "电影目录",
|
||||
"path": str(Path(library_path) / _settings.LIBRARY_MOVIE_NAME),
|
||||
"media_type": "电影",
|
||||
"category": "",
|
||||
"auto_category": True if _settings.LIBRARY_CATEGORY else False,
|
||||
"scrape": True if _settings.SCRAP_METADATA else False,
|
||||
"priority": 1
|
||||
})
|
||||
if _settings.LIBRARY_TV_NAME:
|
||||
library_dirs.append({
|
||||
"type": "library",
|
||||
"name": "电视剧目录",
|
||||
"path": str(Path(library_path) / _settings.LIBRARY_TV_NAME),
|
||||
"media_type": "电视剧",
|
||||
"category": "",
|
||||
"auto_category": True if _settings.LIBRARY_CATEGORY else False,
|
||||
"scrape": True if _settings.SCRAP_METADATA else False,
|
||||
"priority": 2
|
||||
})
|
||||
if _settings.LIBRARY_ANIME_NAME:
|
||||
library_dirs.append({
|
||||
"type": "library",
|
||||
"name": "动漫目录",
|
||||
"path": str(Path(library_path) / _settings.LIBRARY_ANIME_NAME),
|
||||
"media_type": "动漫",
|
||||
"category": "",
|
||||
"auto_category": True if _settings.LIBRARY_CATEGORY else False,
|
||||
"scrape": True if _settings.SCRAP_METADATA else False,
|
||||
"priority": 3
|
||||
})
|
||||
library_dirs.append({
|
||||
"type": "library",
|
||||
"name": "媒体库目录",
|
||||
"path": library_path,
|
||||
"media_type": "",
|
||||
"category": "",
|
||||
"auto_category": True if _settings.LIBRARY_CATEGORY else False,
|
||||
"scrape": True if _settings.SCRAP_METADATA else False,
|
||||
"priority": 4
|
||||
})
|
||||
# 插入数据库,报错的话则更新
|
||||
if library_dirs:
|
||||
library_dirs_value = json.dumps(library_dirs)
|
||||
try:
|
||||
op.execute(f"INSERT INTO systemconfig (key, value) VALUES ('LibraryDirectories', '{library_dirs_value}');")
|
||||
except Exception as e:
|
||||
op.execute(f"UPDATE systemconfig SET value = '{library_dirs_value}' WHERE key = 'LibraryDirectories';")
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
pass
|
Reference in New Issue
Block a user