from fw import log
from fw import core
from app.model.user import User,Users

async def on_event():
    log.d("start")
    try:
        guild=core.get_guild()
        if guild == None:
            log.d("end no guild")
            return
        
        #Discordサーバー上のメンバーを取得する
        d_users=guild.members
        if d_users is None:
            d_users = []

        for d_user in d_users:
            u_id=d_user.id
            #DB上のユーザーを取得する
            user=Users().first(u_id)
            
            #名前（ニックネーム）を取得する
            d_name=d_user.name
            if d_user.nick!=None:
                d_name=d_user.nick
        
            #DBにDiscordユーザーがいない場合、追加
            if user==None:
                log.i("new:" + str(d_user.id) + "," + str(d_name))
                Users().new(d_user.id,d_name)
                continue
            
            #DB上の名前とDiscord上の名前が違う場合、更新
            if str(user.u_name) != str(d_name):
                log.i("set:" + str(user.id) + "," + str(d_name))
                Users().set(user.id,d_name)
                continue

    except Exception as e:
        print(e)
        log.e(str(e))

    log.d("end")
    return
