Compare commits

..

No commits in common. "39b8d805bfbe931b33b88912b34cd29e9a69cb69" and "1b852dee9a0d2790b8e686d656f1caf9d7c486d7" have entirely different histories.

View File

@ -23,10 +23,6 @@ def apiQueryLoginBonus(userId:int) -> str:
def implLoginBonus(userId: int, currentLoginTimestamp:int, currentLoginResult, bonusGenerateMode=2): def implLoginBonus(userId: int, currentLoginTimestamp:int, currentLoginResult, bonusGenerateMode=2):
''' '''
ログインボーナスデータをアップロードする ログインボーナスデータをアップロードする
bonusGenerateMode ログインボーナスを生成する方法を指定します
0 : 何もしないリセットのみ
1 : 全部 MAX にする
2 : 選択したボーナスのみ MAX にする選択したボーナスはないの場合は False を返す
''' '''
musicDataToBeUploaded = { musicDataToBeUploaded = {
"musicId": 229, #ぐるぐるWASH "musicId": 229, #ぐるぐるWASH
@ -40,26 +36,16 @@ def implLoginBonus(userId: int, currentLoginTimestamp:int, currentLoginResult, b
"extNum1": 0 "extNum1": 0
} }
# サーバーから UserData を取得 # UserData を取得
currentUserData = implGetUser_("Data", userId) currentUserData = implGetUser_("Data", userId)
currentUserData2 = currentUserData['userData'] currentUserData2 = currentUserData['userData']
# サーバーからログインボーナスデータを取得
data = json.dumps({
"userId": int(userId),
"nextIndex": 0,
"maxCount": 2000
})
UserLoginBonusResponse = json.loads(apiSDGB(data, "GetUserLoginBonusApi", userId))
UserLoginBonusList = UserLoginBonusResponse['userLoginBonusList']
# UserPlayLog を構築してアップロード # UserPlayLog を構築してアップロード
currentUploadUserPlaylogApiResult = apiUploadUserPlaylog(userId, musicDataToBeUploaded, currentUserData2, currentLoginResult['loginId']) currentUploadUserPlaylogApiResult = apiUploadUserPlaylog(userId, musicDataToBeUploaded, currentUserData2, currentLoginResult['loginId'])
logger.debug(f"上传 UserPlayLog 结果: {currentUploadUserPlaylogApiResult}") logger.debug(f"上传 UserPlayLog 结果: {currentUploadUserPlaylogApiResult}")
# ログインボーナスリストを生成 # ログインボーナスリストを生成
if not bonusGenerateMode == 0: finalBonusList = generateLoginBonusList(userId,bonusGenerateMode)
finalBonusList = generateLoginBonusList(UserLoginBonusList, bonusGenerateMode)
if not finalBonusList: if not finalBonusList:
return False return False
@ -70,13 +56,9 @@ def implLoginBonus(userId: int, currentLoginTimestamp:int, currentLoginResult, b
currentUserAll = generateFullUserAll(userId, currentLoginResult, currentLoginTimestamp, currentUserData2, currentSpecialNumber) currentUserAll = generateFullUserAll(userId, currentLoginResult, currentLoginTimestamp, currentUserData2, currentSpecialNumber)
currentUserAll['upsertUserAll']["userMusicDetailList"] = [musicDataToBeUploaded] currentUserAll['upsertUserAll']["userMusicDetailList"] = [musicDataToBeUploaded]
if not bonusGenerateMode == 0:
currentUserAll['upsertUserAll']['userLoginBonusList'] = finalBonusList currentUserAll['upsertUserAll']['userLoginBonusList'] = finalBonusList
currentUserAll['upsertUserAll']['isNewLoginBonusList'] = "0" * len(finalBonusList)
currentUserAll['upsertUserAll']['isNewMusicDetailList'] = "1" currentUserAll['upsertUserAll']['isNewMusicDetailList'] = "1"
currentUserAll["upsertUserAll"]["userData"][0]["dailyCourseBonusDate"] = "1970-01-01 08:00:00" # リセット currentUserAll['upsertUserAll']['isNewLoginBonusList'] = "0" * len(finalBonusList)
data = json.dumps(currentUserAll) data = json.dumps(currentUserAll)
try: try:
@ -101,18 +83,16 @@ def implLoginBonus(userId: int, currentLoginTimestamp:int, currentLoginResult, b
"maxCount": 2000 "maxCount": 2000
}) })
finalLoginBonusData = json.loads(apiSDGB(data, "GetUserLoginBonusApi", userId)) finalLoginBonusData = json.loads(apiSDGB(data, "GetUserLoginBonusApi", userId))
return finalLoginBonusData
###### PRODUCTION 用には、上記のコードを削除してください ###### PRODUCTION 用には、上記のコードを削除してください
return currentUserAllResult return finalLoginBonusData
def generateLoginBonusList(UserLoginBonusList, generateMode=1): def generateLoginBonusList(userId, generateMode=1):
''' '''
ログインボーナスリストを生成します ログインボーナスリストを生成します
generateMode ログインボーナスを生成する方法を指定します generateMode ログインボーナスを生成する方法を指定します
1: 選択したボーナスのみ MAX にする選択したボーナスはないの場合は False を返す 1: 全部 MAX にする
2: 全部 MAX にする 2: 選択したボーナスのみ MAX にする選択したボーナスはないの場合は False を返す
''' '''
# HDDから、ログインボーナスデータを読み込む # HDDから、ログインボーナスデータを読み込む
# アップデートがある場合、このファイルを更新する必要があります # アップデートがある場合、このファイルを更新する必要があります
@ -127,6 +107,15 @@ def generateLoginBonusList(UserLoginBonusList, generateMode=1):
# 必ず最新のデータを使用してください # 必ず最新のデータを使用してください
Bonus5Id = [12, 29, 30, 38, 43, 604] Bonus5Id = [12, 29, 30, 38, 43, 604]
# サーバーからUserのログインボーナスデータを取得
data = json.dumps({
"userId": int(userId),
"nextIndex": 0,
"maxCount": 2000
})
UserLoginBonusResponse = json.loads(apiSDGB(data, "GetUserLoginBonusApi", userId))
UserLoginBonusList = UserLoginBonusResponse['userLoginBonusList']
# UserBonusList から bonusId を取得 # UserBonusList から bonusId を取得
UserLoginBonusIdList = [item['bonusId'] for item in UserLoginBonusList] UserLoginBonusIdList = [item['bonusId'] for item in UserLoginBonusList]
@ -135,21 +124,7 @@ def generateLoginBonusList(UserLoginBonusList, generateMode=1):
logger.debug(f"存在しないボーナス: {NonExistingBonuses}") logger.debug(f"存在しないボーナス: {NonExistingBonuses}")
bonusList = [] bonusList = []
if generateMode == 1: #選択したボーナスのみ MAX にする if generateMode == 1: # AllMax Mode
for item in UserLoginBonusList:
if item['isCurrent'] and not item['isComplete']:
point = 4 if item['bonusId'] in Bonus5Id else 9
data = {
"bonusId": item['bonusId'],
"point": point,
"isCurrent": True,
"isComplete": False
}
bonusList.append(data)
if len(bonusList) == 0:
logger.warning("このユーザーはログインボーナスを選択していませんから失敗")
return False
elif generateMode == 2: #全部 MAX にする
# 存在しているボーナスを追加 # 存在しているボーナスを追加
for item in UserLoginBonusList: for item in UserLoginBonusList:
if not item['isComplete']: if not item['isComplete']:
@ -177,8 +152,19 @@ def generateLoginBonusList(UserLoginBonusList, generateMode=1):
"isComplete": False "isComplete": False
} }
bonusList.append(data) bonusList.append(data)
else: elif generateMode == 2: # OnlyCurrent Mode
logger.error("generateMode は 1 または 2 でなければなりません") for item in UserLoginBonusList:
if item['isCurrent'] and not item['isComplete']:
point = 4 if item['bonusId'] in Bonus5Id else 9
data = {
"bonusId": item['bonusId'],
"point": point,
"isCurrent": True,
"isComplete": False
}
bonusList.append(data)
if len(bonusList) == 0:
logger.warning("このユーザーはログインボーナスを選択していませんから失敗")
return False return False
logger.debug(f"ログインボーナスリスト: {bonusList}") logger.debug(f"ログインボーナスリスト: {bonusList}")
@ -193,8 +179,8 @@ if __name__ == "__main__":
logger.info("登录失败") logger.info("登录失败")
exit() exit()
try: try:
# Remember to change the mode!!! # Remember to change the mode to 1 if you want to give all bonuses
logger.info(implLoginBonus(userId, currentLoginTimestamp, loginResult, 0)) logger.info(implLoginBonus(userId, currentLoginTimestamp, loginResult, 1))
logger.info(apiLogout(currentLoginTimestamp, userId)) logger.info(apiLogout(currentLoginTimestamp, userId))
except: except:
logger.info(apiLogout(currentLoginTimestamp, userId)) logger.info(apiLogout(currentLoginTimestamp, userId))