Exemple #1
0
def load_state():
    global state

    try:
        state = load_app_state(app_name)
        init_states = get_gamestate_variables(app_name)

        # loop through all states and initialise them with zero
        for s in init_states:
            if s not in state:
                state[s] = 0
    except Exception:
        pass
Exemple #2
0
    def upload_private_data(self):
        data = dict()
        for app in get_app_list():
            if is_private(app):
                data[app] = load_app_state(app)

        payload = dict()
        payload["data"] = data

        success, text, data = request_wrapper(
            "put", "/sync/data", data=json.dumps(payload), headers=content_type_json, session=self.session
        )
        if not success:
            return False, text

        return self.download_private_data(data)
Exemple #3
0
    def upload_private_data(self):
        data = dict()
        for app in get_app_list():
            if is_private(app):
                data[app] = load_app_state(app)

        payload = dict()
        payload['data'] = data

        success, text, data = request_wrapper('put',
                                              '/sync/data',
                                              data=json.dumps(payload),
                                              headers=content_type_json,
                                              session=self.session)
        if not success:
            return False, text

        return self.download_private_data(data)
Exemple #4
0
    def upload_profile_stats(self):
        profile = load_profile()

        data = dict()

        # xp
        data['xp'] = calculate_xp()

        # version
        try:
            data['version'] = profile['version']
        except KeyError:
            logger.debug("Version field not in the data to be synced")

        # age
        try:
            data['birthdate'] = profile['birthdate']
        except Exception:
            pass

        # gender
        try:
            gender = profile['gender']
            if gender == "Boy":
                gender = 'm'
            elif gender == "Girl":
                gender = 'f'
            elif gender == "Wizard":
                gender = 'x'
            data['gender'] = gender
        except Exception:
            pass

        # avatar_generator
        data, files = self._prepare_avatar_gen(profile, data)
        # app states
        stats = dict()
        for app in get_app_list():
            if not is_private(app):
                stats[app] = load_app_state(app)

        # append stats
        data['stats'] = stats

        # Uploading profile stats
        success, text, response_data = request_wrapper(
            'put',
            '/users/profile',
            data=json.dumps(data),
            headers=content_type_json,
            session=self.session)

        if not success:
            logger.error("Uploading of the profile data failed")
            return False, text

        if files:
            # Uploading avatar assets
            success, text, response_data = request_wrapper(
                'put', '/users/profile', session=self.session, files=files)

            # requests doesn't close the file objects after sending them, so
            # we need to tidy up
            self._tidy_up_avatar_files(files)

            if not success:
                logger.error("Uploading of the avatar assets failed")
                return False, text

        return self.download_profile_stats(response_data)
    def upload_profile_stats(self):
        profile = load_profile()

        data = dict()

        # xp
        data['xp'] = calculate_xp()

        # version
        try:
            data['version'] = profile['version']
        except KeyError:
            logger.debug("Version field not in the data to be synced")

        # age
        try:
            data['birthdate'] = profile['birthdate']
        except Exception:
            pass

        # gender
        try:
            gender = profile['gender']
            if gender == "Boy":
                gender = 'm'
            elif gender == "Girl":
                gender = 'f'
            elif gender == "Wizard":
                gender = 'x'
            data['gender'] = gender
        except Exception:
            pass

        # avatar_generator
        data, files = self._prepare_avatar_gen(profile, data)
        # app states
        stats = dict()
        for app in get_app_list():
            if not is_private(app):
                stats[app] = load_app_state(app)

        # append stats
        data['stats'] = stats

        # Uploading profile stats
        success, text, response_data = request_wrapper(
            'put',
            '/users/profile',
            data=json.dumps(data),
            headers=content_type_json,
            session=self.session)

        if not success:
            logger.error("Uploading of the profile data failed")
            return False, text

        if files:
            # Uploading avatar assets
            success, text, response_data = request_wrapper(
                'put',
                '/users/profile',
                session=self.session,
                files=files)

            # requests doesn't close the file objects after sending them, so
            # we need to tidy up
            self._tidy_up_avatar_files(files)

            if not success:
                logger.error("Uploading of the avatar assets failed")
                return False, text

        return self.download_profile_stats(response_data)