#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
通过adname模糊匹配查询author字段
"""

import sqlite3
import os


def get_author_by_adname(adname):
    """
    通过adname模糊匹配查询author字段
    """
    # 正确的author数据库路径
    db_path = "\\\\ll\\d\\wxvddata\\dpd.db"
    
    print(f"Author数据库路径: {db_path}")
    print(f"文件是否存在: {os.path.exists(db_path)}")
    
    try:
        # 连接数据库
        conn = sqlite3.connect(db_path)
        cur = conn.cursor()
        
        # 通过name模糊匹配查询
        # 提取adname的前60个字符作为查询条件
        search_term = adname[:60]
        cur.execute("SELECT oid, name, author FROM ads WHERE name LIKE ? LIMIT 5", (f"%{search_term}%",))
        rows = cur.fetchall()
        
        print(f"\n通过name模糊匹配找到 {len(rows)} 条记录:")
        for row in rows:
            print(f"oid={row[0]}, name={row[1][:60]}..., author={row[2]}")
            if row[2]:
                conn.close()
                return row[2]
        
        # 如果没有找到，尝试更宽泛的搜索
        cur.execute("SELECT oid, name, author FROM ads WHERE name LIKE '%Artemis%' OR name LIKE '%阿尔忒弥斯%' LIMIT 5")
        rows = cur.fetchall()
        print(f"\n通过'Artemis'或'阿尔忒弥斯'模糊匹配找到 {len(rows)} 条记录:")
        for row in rows:
            print(f"oid={row[0]}, name={row[1][:60]}..., author={row[2]}")
            if row[2]:
                conn.close()
                return row[2]
        
        conn.close()
    except Exception as e:
        print(f"错误: {e}")
    
    return ""


def get_adname_from_srts(adid):
    """
    从srts表获取adname
    """
    db_path = "\\\\ll\\d\\xtrssvjj\\dpd.db"
    conn = sqlite3.connect(db_path)
    cur = conn.cursor()
    
    cur.execute("SELECT adname FROM srts WHERE adid=? LIMIT 1", (adid,))
    row = cur.fetchone()
    conn.close()
    
    if row:
        return row[0]
    return ""


if __name__ == "__main__":
    # 从srts表获取adname
    adid = 8404
    adname = get_adname_from_srts(adid)
    print(f"adid={adid}, adname={adname}")
    
    # 查询author
    author = get_author_by_adname(adname)
    print(f"\n最终author: {author}")
