コード例 #1
0
    def login_info(self, packet: LoginInfoPacket, address: Address):
        login_code = 0x01
        user = None
        key = ''

        try:
            user = Database.authenticate(packet.username, packet.password)

            if not user:
                user = Database.create_user(packet.username, packet.password)

            key = SessionManager.create_session(address, user.user_id)
        except InvalidPasswordException:
            login_code = 0x06

        res = LoginInfoPacket(
            login_code=login_code,
            user_key=key,
            char_ip=self.server.config['world']['ip'],
            char_port=self.server.config['world']['port'],
            chat_ip=self.server.config['chat']['ip'],
            chat_port=self.server.config['chat']['port'],
            ip='127.0.0.1',
            locale='US',
            first_login_sub=user.first_login_sub if user else False,
            free_to_play=user.free_to_play if user else False,
            error=None)

        self.server.send(res, address)
コード例 #2
0
 def store_main_model_in_db(model, scaler_X, scaler_y):
     database = Database()
     database.create_table(CREATE_MODEL_QUERY)
     database.drop_table(DELETE_ALL_MODELS_QUERY)
     pickled_tuple = ModelStorage.__get_tuple_pickled(
         (model, scaler_X, scaler_y))
     database.insert_data(INSERT_MODEL_QUERY, pickled_tuple)
     database.close_connection()
コード例 #3
0
 def get_sells_model_from_db():
     database = Database()
     get_data = database.fetch_all_data(GET_SELLS_MODEL_QUERY)[0]
     database.close_connection()
     unpickled_model = ModelStorage.__get_unpickled(get_data[1])
     unpickled_scalers_tuple = ModelStorage.__get_tuple_unpickled(
         (get_data[2], get_data[3]))
     return unpickled_model, unpickled_scalers_tuple, get_data[4]
コード例 #4
0
 def _fetch_all_data(self, query: str, named_values: List[str]):
     try:
         database = Database()
         data = database.fetch_all_data(query)
         self.__handle_data(data, named_values)
     except:
         self._response = self._build_response(data=jsonify(
             {"message": "Internal server error"}),
                                               status_code=500)
     finally:
         database.close_connection()
コード例 #5
0
ファイル: character.py プロジェクト: z010155/OpenUniverse
    def character_list(self, packet: CharacterListPacket, address: Address):
        session = SessionManager.get_session(address)
        user = Database.get_user(session['user_id'])

        self.server.send(
            CharacterListPacket(user.front_character, user.characters),
            address)
コード例 #6
0
ファイル: character.py プロジェクト: z010155/OpenUniverse
    def character_create(self, packet: CharacterCreateRequestPacket,
                         address: Address):
        session = SessionManager.get_session(address)
        user = Database.get_user(session['user_id'])

        names = AssetLoader.load_names()
        name = names[0][packet.predef1].strip() + names[1][
            packet.predef2].strip() + names[2][packet.predef3].strip()

        # TODO: generate starter kit

        char = Character(user=user,
                         name=name,
                         unapproved_name=packet.name,
                         shirt_color=packet.shirt_color,
                         shirt_style=packet.shirt_style,
                         pants_color=packet.pants_color,
                         hair_style=packet.hair_style,
                         hair_color=packet.hair_color,
                         lh=packet.lh,
                         rh=packet.rh,
                         eyebrow_style=packet.eyebrow_style,
                         eye_style=packet.eye_style,
                         mouth_style=packet.mouth_style)
        char.save()

        self.server.send(CharacterCreateResponsePacket(0x00), address)
        self.character_list(CharacterListPacket(), address)
コード例 #7
0
 def _insert(self, query: str, data: List[str]):
     tuple_data = tuple(data)
     try:
         database = Database()
         _id = database.insert_data(query, tuple_data)
         self._response = self._build_response(data=jsonify({
             "message": "Successful POST request",
             "_id": _id
         }),
                                               status_code=201)
     except psycopg2.errors.UniqueViolation:
         self._response = self._build_response(data=jsonify(
             {"message": "Item already exists"}),
                                               status_code=400)
     except:
         self._response = self._build_response(data=jsonify(
             {"message": "Internal server error"}),
                                               status_code=500)
     finally:
         database.close_connection()
コード例 #8
0
 def _update_item(self, query: str, _id: str, data: List[str] or str
                  or None):
     if isinstance(data, list):
         tuple_data = tuple(data)
     else:
         tuple_data = data
     try:
         database = Database()
         print(tuple_data)
         _id = database.update_item(query, tuple_data, _id)
         self._response = self._build_response(data=jsonify({
             "message": "Successful PUT request",
             "_id": _id
         }),
                                               status_code=200)
     except:
         self._response = self._build_response(data=jsonify(
             {"message": "Internal server error"}),
                                               status_code=500)
     finally:
         database.close_connection()
コード例 #9
0
    def get_by_label(label):
        batch_fields = Database.find_by('images', {"label": label})
        batch_images = []
        for field in batch_fields:
            fs_file = Database.FS.get(field['fields'])
            label_file = field["label"]
            base64_data = codecs.encode(fs_file.read(), 'base64')
            image = base64_data.decode('utf-8')
            img_str = "data:image/png;base64," + image
            # jsonImg = json.dumps(img_str)

            batch_images.append({"url": img_str, "label": label_file})

        return batch_images
コード例 #10
0
def get_by_label():
    images = Database.get_all('images')
    list_images = []

    for img in images:
        label_file = img['label']
        fs_file = Database.FS.get(img["fields"])

        base64_data = codecs.encode(fs_file.read(), 'base64')
        image = base64_data.decode('utf-8')
        img_str = "data:image/png;base64," + image
        # jsonImg = json.dumps(img_str)

        list_images.append({"url": img_str, "label": label_file})
    return jsonify(images=list_images)
コード例 #11
0
ファイル: games.py プロジェクト: braind3d/mista
    def all(page_number, page_size, search_query=None):
        with Database() as db:
            if not search_query:
                rows = db.execute('''select distinct games.game_id, games.name, games.description, games.all_reviews, games.release_date,developers.developer_name, publishers.publisher_name, genres.genre_name, games.minimum_requirements, games.recommended_requirements, games.original_price 
                    FROM games
                    LEFT JOIN game_developers
                    ON games.game_id = game_developers.game_id 
                    LEFT JOIN developers
                    ON game_developers.developer_id = developers.developer_id
                    LEFT JOIN game_publishers
                    ON games.game_id = game_publishers.game_id
                    LEFT JOIN publishers 
                    ON game_publishers.publisher_id = publishers.publisher_id
                    LEFT JOIN game_genres
                    ON games.game_id = game_genres.game_id
                    LEFT JOIN genres
                    ON game_genres.genre_id = genres.genre_id
                    GROUP BY games.game_id
                    LIMIT {} OFFSET {}'''
                    .format(
                    page_size,
                    page_size*(page_number - 1))).fetchall()
                return [Games(*row) for row in rows]

            rows = db.execute('''select distinct games.game_id, games.name, games.description, games.all_reviews, games.release_date,developers.developer_name, publishers.publisher_name, genres.genre_name, games.minimum_requirements, games.recommended_requirements, games.original_price 
                FROM games
                LEFT JOIN game_developers
                ON games.game_id = game_developers.game_id 
                LEFT JOIN developers
                ON game_developers.developer_id = developers.developer_id
                LEFT JOIN game_publishers
                ON games.game_id = game_publishers.game_id
                LEFT JOIN publishers 
                ON game_publishers.publisher_id = publishers.publisher_id
                LEFT JOIN game_genres
                ON games.game_id = game_genres.game_id
                LEFT JOIN genres
                ON game_genres.genre_id = genres.genre_id
                WHERE instr(name, "{}") > 0
                GROUP BY games.game_id
                LIMIT {} OFFSET {}
                '''
                .format(
                search_query,
                page_size,
                page_size*(page_number - 1))).fetchall()

            return [Games(*row) for row in rows]
コード例 #12
0
 def _drop_table(self, query: str):
     try:
         database = Database()
         database.drop_table(query)
         self._response = self._build_response(data=jsonify(
             {"message": "Successful DELETE request"}),
                                               status_code=200)
     except:
         self._response = self._build_response(data=jsonify(
             {"message": "Internal server error"}),
                                               status_code=500)
     finally:
         database.close_connection()
コード例 #13
0
ファイル: games.py プロジェクト: braind3d/mista
 def get(id):
     with Database() as db:
         rows = db.execute(
             '''SELECT games.game_id, games.name, games.description, games.all_reviews, games.release_date,developers.developer_name, publishers.publisher_name, genres.genre_name, games.minimum_requirements, games.recommended_requirements, games.original_price 
                 FROM games
                 LEFT JOIN game_developers
                 ON games.game_id = game_developers.game_id 
                 LEFT JOIN developers
                 ON game_developers.developer_id = developers.developer_id
                 LEFT JOIN game_publishers
                 ON games.game_id = game_publishers.game_id
                 LEFT JOIN publishers 
                 ON game_publishers.publisher_id = publishers.publisher_id
                 LEFT JOIN game_genres
                 ON games.game_id = game_genres.game_id
                 LEFT JOIN genres
                 ON game_genres.genre_id = genres.genre_id
                 WHERE games.game_id = {}
                 GROUP BY games.game_id'''
         .format(id)).fetchall()
         return [Games(*row) for row in rows][0]
コード例 #14
0
 def find_image(cls, id):
     image = Database.find_by_id('images', id)
     return cls(**image)
コード例 #15
0
 def get_stocks_to_offers_counter(self):
     database = Database()
     data = database.fetch_all_data(STOCK_TO_OFFER_ALL_QUERY)
     self.__handle_stock_to_offer_dict(data)
     return self._response
コード例 #16
0
def initiliae_database():
    Database.initialize(app)
コード例 #17
0
 def get_images(cls):
     images = Database.get_images('images')
     return [cls(**image) for image in images]
コード例 #18
0
 def set_label(self, label):
     self.label = label
     Database.update('images', cursor_id=self._id, updates={"label": label})
コード例 #19
0
 def count_sell_items():
     database = Database()
     database.create_table(CREATE_SELL_DATA_QUERY)
     counter = database.fetch_all_data(GET_SELLS_COUNT_QUERY)[0][0]
     database.close_connection()
     return counter
コード例 #20
0
 def count_advise_items():
     database = Database()
     database.create_table(CREATE_ADVICE_TABLE_QUERY)
     counter = database.fetch_all_data(GET_ITEMS_COUNTER_QUERY)[0][0]
     database.close_connection()
     return counter
コード例 #21
0
 def save_to_mongo(image, content_type, filename, label):
     return Database.insert_image('images', image, content_type, filename,
                                  label)
コード例 #22
0
 def _create_table(query: str):
     database = Database()
     database.create_table(query)
     database.close_connection()