def __parsePkmnCatchBoosterPacksFromJson( self, jsonList: List[Dict]) -> List[PkmnCatchBoosterPack]: if not utils.hasItems(jsonList): return None pkmnCatchBoosterPacks: List[PkmnCatchBoosterPack] = list() for pkmnCatchBoosterPackJson in jsonList: pkmnCatchTypeStr = utils.getStrFromDict(d=pkmnCatchBoosterPackJson, key='catchType', fallback='') pkmnCatchType: PkmnCatchType = None if utils.isValidStr(pkmnCatchTypeStr): pkmnCatchType = PkmnCatchType.fromStr(pkmnCatchTypeStr) pkmnCatchBoosterPacks.append( PkmnCatchBoosterPack(pkmnCatchType=pkmnCatchType, rewardId=utils.getStrFromDict( pkmnCatchBoosterPackJson, 'rewardId'))) return pkmnCatchBoosterPacks
def __parseCutenessBoosterPacksFromJson( self, jsonList: List[Dict]) -> List[CutenessBoosterPack]: if not utils.hasItems(jsonList): return None cutenessBoosterPacks: List[CutenessBoosterPack] = list() for cutenessBoosterPackJson in jsonList: cutenessBoosterPacks.append( CutenessBoosterPack( amount=utils.getIntFromDict(cutenessBoosterPackJson, 'amount'), rewardId=utils.getStrFromDict(cutenessBoosterPackJson, 'rewardId'))) cutenessBoosterPacks.sort(key=lambda pack: pack.getAmount()) return cutenessBoosterPacks
def __createUser(self, handle: str, userJson: Dict[str, Any]) -> User: if not utils.isValidStr(handle): raise ValueError(f'handle argument is malformed: \"{handle}\"') elif userJson is None: raise ValueError(f'userJson argument is malformed: \"{userJson}\"') isAnalogueEnabled = utils.getBoolFromDict(userJson, 'analogueEnabled', False) isCatJamEnabled = utils.getBoolFromDict(userJson, 'catJamEnabled', False) isChatBandEnabled = utils.getBoolFromDict(userJson, 'chatBandEnabled', False) isChatLoggingEnabled = utils.getBoolFromDict(userJson, 'chatLoggingEnabled', False) isCutenessEnabled = utils.getBoolFromDict(userJson, 'cutenessEnabled', False) isCynanMessageEnabled = utils.getBoolFromDict(userJson, 'cynanMessageEnabled', False) isCynanSourceEnabled = utils.getBoolFromDict(userJson, 'cynanSourceEnabled', True) isDeerForceMessageEnabled = utils.getBoolFromDict( userJson, 'deerForceMessageEnabled', False) isEyesMessageEnabled = utils.getBoolFromDict(userJson, 'eyesMessageEnabled', False) isGiftSubscriptionThanksMessageEnabled = utils.getBoolFromDict( userJson, 'isGiftSubscriptionThanksMessageEnabled', True) isGiveCutenessEnabled = utils.getBoolFromDict(userJson, 'giveCutenessEnabled', False) isImytSlurpEnabled = utils.getBoolFromDict(userJson, 'imytSlurpEnabled', False) isJamCatEnabled = utils.getBoolFromDict(userJson, 'jamCatEnabled', False) isJishoEnabled = utils.getBoolFromDict(userJson, 'jishoEnabled', False) isJokeTriviaRepositoryEnabled = utils.getBoolFromDict( userJson, 'jokeTriviaRepositoryEnabled', False) isLoremIpsumEnabled = utils.getBoolFromDict(userJson, 'loremIpsumEnabled', True) isPicOfTheDayEnabled = utils.getBoolFromDict(userJson, 'picOfTheDayEnabled', False) isPkmnEnabled = utils.getBoolFromDict(userJson, 'pkmnEnabled', False) isPokepediaEnabled = utils.getBoolFromDict(userJson, 'pokepediaEnabled', False) isRaceEnabled = utils.getBoolFromDict(userJson, 'raceEnabled', False) isRaidLinkMessagingEnabled = utils.getBoolFromDict( userJson, 'raidLinkMessagingEnabled', False) isRatJamEnabled = utils.getBoolFromDict(userJson, 'ratJamEnabled', False) isRewardIdPrintingEnabled = utils.getBoolFromDict( userJson, 'rewardIdPrintingEnabled', False) isStarWarsQuotesEnabled = utils.getBoolFromDict( userJson, 'starWarsQuotesEnabled', False) isSubGiftThankingEnabled = utils.getBoolFromDict( userJson, 'subGiftThankingEnabled', True) isTamalesEnabled = utils.getBoolFromDict(userJson, 'tamalesEnabled', False) isTranslateEnabled = utils.getBoolFromDict(userJson, 'translateEnabled', False) isTriviaEnabled = utils.getBoolFromDict(userJson, 'triviaEnabled', False) isTriviaGameEnabled = utils.getBoolFromDict(userJson, 'triviaGameEnabled', False) isWeatherEnabled = utils.getBoolFromDict(userJson, 'weatherEnabled', False) isWordOfTheDayEnabled = utils.getBoolFromDict(userJson, 'wordOfTheDayEnabled', False) discord = utils.getStrFromDict(userJson, 'discord', '') instagram = utils.getStrFromDict(userJson, 'instagram', '') locationId = utils.getStrFromDict(userJson, 'locationId', '') speedrunProfile = utils.getStrFromDict(userJson, 'speedrunProfile', '') twitter = utils.getStrFromDict(userJson, 'twitter', '') timeZones: List[tzinfo] = None if 'timeZones' in userJson: timeZones = self.__timeZoneRepository.getTimeZones( userJson['timeZones']) elif 'timeZone' in userJson: timeZones = list() timeZones.append( self.__timeZoneRepository.getTimeZone(userJson['timeZone'])) cutenessBoosterPacks: List[CutenessBoosterPack] = None if isCutenessEnabled: cutenessBoosterPacksJson: List[Dict] = userJson.get( 'cutenessBoosterPacks') cutenessBoosterPacks = self.__parseCutenessBoosterPacksFromJson( cutenessBoosterPacksJson) picOfTheDayFile: str = None picOfTheDayRewardId: str = None if isPicOfTheDayEnabled: picOfTheDayFile = userJson.get('picOfTheDayFile') picOfTheDayRewardId = userJson.get('picOfTheDayRewardId') if not utils.isValidStr(picOfTheDayFile): raise ValueError( f'POTD is enabled for {handle} but picOfTheDayFile is malformed: \"{picOfTheDayFile}\"' ) isSuperTriviaGameEnabled: bool = isTriviaGameEnabled superTriviaGameControllers: List[str] = None superTriviaGameMultiplier: int = None triviaGameRewardId: str = None triviaGamePoints: int = None triviaGameTutorialCutenessThreshold: int = None waitForSuperTriviaAnswerDelay: int = None waitForTriviaAnswerDelay: int = None if isTriviaGameEnabled: isSuperTriviaGameEnabled = utils.getBoolFromDict( userJson, 'superTriviaGameEnabled', isSuperTriviaGameEnabled) superTriviaGameControllers = userJson.get( 'superTriviaGameControllers') superTriviaGameMultiplier = userJson.get( 'superTriviaGameMultiplier') triviaGameRewardId = userJson.get('triviaGameRewardId') triviaGamePoints = userJson.get('triviaGamePoints') triviaGameTutorialCutenessThreshold = userJson.get( 'triviaGameTutorialCutenessThreshold') waitForSuperTriviaAnswerDelay = userJson.get( 'waitForSuperTriviaAnswerDelay') waitForTriviaAnswerDelay = userJson.get('waitForTriviaAnswerDelay') pkmnBattleRewardId: str = None pkmnEvolveRewardId: str = None pkmnShinyRewardId: str = None pkmnCatchBoosterPacks: List[PkmnCatchBoosterPack] = None if isPkmnEnabled: pkmnBattleRewardId = userJson.get('pkmnBattleRewardId') pkmnEvolveRewardId = userJson.get('pkmnEvolveRewardId') pkmnShinyRewardId = userJson.get('pkmnShinyRewardId') pkmnCatchBoosterPacksJson: List[Dict] = userJson.get( 'pkmnCatchBoosterPacks') pkmnCatchBoosterPacks = self.__parsePkmnCatchBoosterPacksFromJson( pkmnCatchBoosterPacksJson) return User( isAnalogueEnabled=isAnalogueEnabled, isCatJamEnabled=isCatJamEnabled, isChatBandEnabled=isChatBandEnabled, isChatLoggingEnabled=isChatLoggingEnabled, isCutenessEnabled=isCutenessEnabled, isCynanMessageEnabled=isCynanMessageEnabled, isCynanSourceEnabled=isCynanSourceEnabled, isDeerForceMessageEnabled=isDeerForceMessageEnabled, isEyesMessageEnabled=isEyesMessageEnabled, isGiftSubscriptionThanksMessageEnabled= isGiftSubscriptionThanksMessageEnabled, isGiveCutenessEnabled=isGiveCutenessEnabled, isImytSlurpEnabled=isImytSlurpEnabled, isJamCatEnabled=isJamCatEnabled, isJishoEnabled=isJishoEnabled, isJokeTriviaRepositoryEnabled=isJokeTriviaRepositoryEnabled, isLoremIpsumEnabled=isLoremIpsumEnabled, isPicOfTheDayEnabled=isPicOfTheDayEnabled, isPkmnEnabled=isPkmnEnabled, isPokepediaEnabled=isPokepediaEnabled, isRaceEnabled=isRaceEnabled, isRaidLinkMessagingEnabled=isRaidLinkMessagingEnabled, isRatJamEnabled=isRatJamEnabled, isRewardIdPrintingEnabled=isRewardIdPrintingEnabled, isStarWarsQuotesEnabled=isStarWarsQuotesEnabled, isSubGiftThankingEnabled=isSubGiftThankingEnabled, isSuperTriviaGameEnabled=isSuperTriviaGameEnabled, isTamalesEnabled=isTamalesEnabled, isTranslateEnabled=isTranslateEnabled, isTriviaEnabled=isTriviaEnabled, isTriviaGameEnabled=isTriviaGameEnabled, isWeatherEnabled=isWeatherEnabled, isWordOfTheDayEnabled=isWordOfTheDayEnabled, superTriviaGameMultiplier=superTriviaGameMultiplier, triviaGamePoints=triviaGamePoints, triviaGameTutorialCutenessThreshold= triviaGameTutorialCutenessThreshold, waitForSuperTriviaAnswerDelay=waitForSuperTriviaAnswerDelay, waitForTriviaAnswerDelay=waitForTriviaAnswerDelay, discord=discord, handle=handle, instagram=instagram, locationId=locationId, picOfTheDayFile=picOfTheDayFile, picOfTheDayRewardId=picOfTheDayRewardId, pkmnBattleRewardId=pkmnBattleRewardId, pkmnEvolveRewardId=pkmnEvolveRewardId, pkmnShinyRewardId=pkmnShinyRewardId, speedrunProfile=speedrunProfile, triviaGameRewardId=triviaGameRewardId, twitter=twitter, cutenessBoosterPacks=cutenessBoosterPacks, pkmnCatchBoosterPacks=pkmnCatchBoosterPacks, superTriviaGameControllers=superTriviaGameControllers, timeZones=timeZones)
def getQuizApiKey(self) -> str: return utils.getStrFromDict(self.__jsonContents, 'quizApiKey', '')
def getOneWeatherApiKey(self) -> str: return utils.getStrFromDict(self.__jsonContents, 'oneWeatherApiKey', '')
def getMerriamWebsterApiKey(self) -> str: return utils.getStrFromDict(self.__jsonContents, 'merriamWebsterApiKey', '')
def getDeepLAuthKey(self) -> str: return utils.getStrFromDict(self.__jsonContents, 'deepLAuthKey', '')