# 改变版本号,实现伪封号和解封号之类

from loguru import logger
from Config import *
from HelperLogInOut import apiLogin, apiLogout, generateTimestamp
from HelperFullPlay import implFullPlayAction

def implChangeVersionNumber(userId: int, currentLoginTimestamp:int, currentLoginResult, dataVersion="1.40.09", romVersion="1.41.00") -> str:
    musicData= ({
    "musicId": 834, # PANDORA PARADOXXX
    "level": 4,
    "playCount": 1,
    "achievement": 0,
    "comboStatus": 0,
    "syncStatus": 0,
    "deluxscoreMax": 0,
    "scoreRank": 0,
    "extNum1": 0
    })
    userAllPatches = {
    "upsertUserAll": {
        "userData": [{
            "lastRomVersion": romVersion,
            "lastDataVersion": dataVersion
        }],
        "userMusicDetailList": [musicData],
        "isNewMusicDetailList": "1"  #1避免覆盖
    }}
    logger.info("Changing version number to " + dataVersion + " and " + romVersion)
    result = implFullPlayAction(userId, currentLoginTimestamp, currentLoginResult, musicData, userAllPatches)
    return result

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

    if loginResult['returnCode'] != 1:
        logger.info("登录失败")
        exit()
    try:
        logger.info(implChangeVersionNumber(userId, currentLoginTimestamp, loginResult, "1.00.00", "1.00.00"))
        logger.info(apiLogout(currentLoginTimestamp, userId))
    finally:
        logger.info(apiLogout(currentLoginTimestamp, userId))
        #logger.warning("Error")