from fw import log
from fw import core
from fw import datetime

async def on_event():
    log.d('start')

    try:
        #Discordサーバーを取得
        guild=core.get_guild()
        if guild == None:
            log.d("end no guild")
            return
        
        #Discord上のチャンネルを取得する

        #暫定的にラウンジ,小部屋のみを取得する
        #テスト用
        d_channels=[
            await guild.fetch_channel(1046750348372623380),
            await guild.fetch_channel(1115901117834989580)
        ]

        #今の日本時間を取得する
        dt_now=datetime.now()

        #メッセージが削除されるまでの時間を取得する
        #暫定的に5分間の履歴を見る
        dt_delta=datetime.timedelta(minutes=5)

        #メッセージが削除されるまでの時間を計算する
        dt_delete=dt_now-dt_delta

        #チャンネルからメッセージを取得して削除する
        for d_channel in d_channels:
            if d_channel==None:
                continue

            #メッセージ履歴を取得する
            messages=d_channel.history(limit=20,before=dt_delete,oldest_first=True)

            #対象のメッセージを全て削除する
            async for message in messages:
                if message==None:
                    continue
                #メッセージを削除する
                log.d("del:" + str(message.id))
                await message.delete()
            
    except Exception as e:
        print(e)
        log.e(str(e))
        raise e

    log.d("end")

    return
