import os.path
import sqlite3
import threading

lock = threading.Lock()
DB = None
cursor = None
micromsg_path = "./app/Database/Msg/MicroMsg.db"
if os.path.exists(micromsg_path):
    DB = sqlite3.connect(micromsg_path, check_same_thread=False)
    # '''创建游标'''
    cursor = DB.cursor()


def init_database():
    global DB
    global cursor
    if not DB:
        if os.path.exists(micromsg_path):
            DB = sqlite3.connect(micromsg_path, check_same_thread=False)
            # '''创建游标'''
            cursor = DB.cursor()


def is_database_exist():
    return os.path.exists(micromsg_path)


def get_contact():
    try:
        lock.acquire(True)
        sql = '''select UserName,Alias,Type,Remark,NickName,PYInitial,RemarkPYInitial,ContactHeadImgUrl.smallHeadImgUrl,ContactHeadImgUrl.bigHeadImgUrl
              from Contact inner join ContactHeadImgUrl on Contact.UserName = ContactHeadImgUrl.usrName
              where  Type%2=1 and Alias is not null 
              order by PYInitial
              '''
        cursor.execute(sql)
        result = cursor.fetchall()
    finally:
        lock.release()
    # DB.commit()
    return result


def close():
    global DB
    if DB:
        DB.close()


if __name__ == '__main__':
    get_contact()