# 解锁一些东西的外部代码

from loguru import logger

from Static_Settings import *
from HelperLogInOut import apiLogin, apiLogout, generateTimestamp
from HelperUnlockThing import implUnlockThing

def implUnlockSingleItem(itemId: int, itemKind: int, userId: int, currentLoginTimestamp:int, currentLoginResult) -> str:
    '''
    发单个东西,比如搭档 10
    '''
    userItemList = [
        {
            "itemKind": itemKind,
            "itemId": itemId,
            "stock": 1,
            "isValid": True
        }
    ]
    unlockThingResult = implUnlockThing(userItemList, userId, currentLoginTimestamp, currentLoginResult)
    return unlockThingResult

def implUnlockMusic(musicToBeUnlocked: int, userId: int, currentLoginTimestamp:int, currentLoginResult) -> str:
    '''
    解锁乐曲
    '''
    userItemList = [
        {
            "itemKind": 5,
            "itemId": musicToBeUnlocked,
            "stock": 1,
            "isValid": True
        },
        {
            "itemKind": 6,
            "itemId": musicToBeUnlocked,
            "stock": 1,
            "isValid": True
        },
    ]
    unlockThingResult = implUnlockThing(userItemList, userId, currentLoginTimestamp, currentLoginResult)
    return unlockThingResult

if __name__ == "__main__":
    userId = testUid
    currentLoginTimestamp = generateTimestamp()
    loginResult = apiLogin(currentLoginTimestamp, userId)

    # Change you want item ID
    wantToUnlockItemId = 11

    if loginResult['returnCode'] != 1:
        logger.info("登录失败")
        exit()
    try:
        # Change you want to unlock music or something
        logger.info(implUnlockMusic(wantToUnlockItemId, userId, currentLoginTimestamp, loginResult))
        logger.info(apiLogout(currentLoginTimestamp, userId))
    except:
        logger.info(apiLogout(currentLoginTimestamp, userId))
        logger.warning("Error")