Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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', '')