#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
查询author数据库，获取当前adid对应的author字段
"""

import sqlite3
import os


def get_author(adid):
    """
    查询author数据库，获取指定adid的author字段
    """
    # 尝试不同的数据库路径
    db_paths = [
        "\\\\ll\\d\\wxvddata\\dpd.db",  # 标准author数据库
        "dpd.db",  # 当前目录数据库
        "../srtsegjoin/dpd.db"  # srtsegjoin目录数据库
    ]
    
    for db_path in db_paths:
        print(f"尝试连接数据库: {db_path}")
        
        try:
            # 检查文件是否存在
            if db_path != "dpd.db" and db_path != "../srtsegjoin/dpd.db":
                if not os.path.exists(db_path):
                    print(f"数据库文件不存在: {db_path}")
                    continue
            
            # 连接数据库
            conn = sqlite3.connect(db_path)
            cur = conn.cursor()
            
            # 检查ads表是否存在
            cur.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='ads'")
            if not cur.fetchone():
                print(f"ads表不存在: {db_path}")
                conn.close()
                continue
            
            # 查询ads表的列
            cur.execute("PRAGMA table_info(ads)")
            columns = [column[1] for column in cur.fetchall()]
            print(f"ads表列: {columns}")
            
            # 查询author字段
            if 'author' in columns:
                # 尝试通过oid查询（如果存在oid列）
                if 'oid' in columns:
                    print("尝试通过oid查询")
                    cur.execute('SELECT author FROM ads WHERE oid=?', (adid,))
                    result = cur.fetchone()
                    
                    if result:
                        author = result[0]
                        print(f"oid={adid} 的author: {author}")
                        conn.close()
                        return author
                
                # 尝试通过name模糊查询
                print("尝试通过name模糊查询")
                cur.execute('SELECT name, author, signature FROM ads WHERE name LIKE ?', ('%罗永浩%',))
                results = cur.fetchall()
                
                if results:
                    print(f"找到 {len(results)} 条匹配记录:")
                    for name, author, signature in results:
                        print(f"  name: {name}")
                        print(f"  author: {author}")
                        print(f"  signature: {signature}")
                        print("---")
                    
                    # 返回第一个结果
                    author = results[0][1]
                    conn.close()
                    return author
                else:
                    print(f"未找到相关author")
                    conn.close()
                    return None
            else:
                print(f"ads表中没有author列: {db_path}")
                conn.close()
                continue
        
        except Exception as e:
            print(f"查询author失败: {e}")
            continue
    
    print("所有数据库路径都尝试失败")
    return None


if __name__ == "__main__":
    # 使用当前adid=8397（698_罗永浩的十字路口）
    adid = 8397
    get_author(adid)