Example #1
0
 def commit(self):
     self.commit_collection(self.batters, Batter)
     self.commit_collection(self.pitchers, Pitcher)
     self.commit_collection(self.teams, Team)
     session.add_all(self.events)
     session.add_all(self.games)
     session.commit()
Example #2
0
 def evaluate(self):
     batters = session.query(Batter).all()
     game_results = list()
     for batter in batters:
         batter_results = self.get_batter_results(batter)
         game_results.extend(batter_results)
         if len(game_results) > constants.batch_size:
             session.add_all(game_results)
             game_results = list()
     session.add_all(game_results)
     session.commit()
    def write_user_info(self, table: str) -> Optional[int]:
        """
        Пишет данные пользователя в таблицу vkinder_user если на вход передан параметр 'vkinder_user'
        Пишет данные найденных методом search_user пользователей в таблицу search_result если передан
        параметр 'search_result'
        """
        # выбираем необходимые поля таблицы для последующей записи:
        table_columns = list(
            filter(lambda x: not x.startswith('_') and x != 'id',
                   VKinderUser.__dict__))

        # запись информации о пользователе в таблицу vkinder_user:
        if table == 'vkinder_user':
            # формируем словарь с данными для записи в таблицу vkinder_user:
            write_data = dict(
                zip(table_columns, self.user_info.__dict__.values()))
            add_record = VKinderUser(**write_data)
            session.add(add_record)
            session.commit()

            self.id_User = session.query(VKinderUser.id).filter(
                VKinderUser.vk_id == self.vk_id).first()[0]
            # возвращаем идентификатор пользователя из таблицы vkinder_user
            return self.id_User

        # запись информации о пользователях, полученных в результате метода search_user, в таблицу search_result:
        elif table == 'search_result':
            # список всех vk_id из таблицы search_result:
            existing_ids = session.query(SearchResult.vk_id).filter(
                SearchResult.id_User == self.id_User).all()
            existing_ids = list(map(lambda x: x[0], existing_ids))

            search_result = self.search_user()
            write_data = []
            for user in search_result:
                # если пользователь с таким vk_id уже есть в таблице, переходим на следующую итерацию:
                if user.vk_id in existing_ids:
                    continue
                else:
                    user_info = dict(zip(table_columns,
                                         user.__dict__.values()))
                    # рарсширяем словарь с данными для записи в search_result:
                    user_info.update({
                        'id_User': self.id_User,
                        'search_date': datetime.datetime.today()
                    })
                    write_data.append(SearchResult(**user_info))
            session.add_all(write_data)
            session.commit()
Example #4
0
 def __evaluate_matrix(self, matrix):
     global event_data
     global batters
     if event_data is None:
         event_data = session.query(Event).all()
     if batters is None:
         batters = session.query(Batter).all()
     calculator = self.__get_calculator(matrix)
     game_results = list()
     for batter in batters:
         batter_results = self.get_batter_results(matrix, calculator, batter)
         game_results.extend(batter_results)
         if len(game_results) > constants.batch_size:
             session.add_all(game_results)
             game_results = list()
     session.add_all(game_results)
     session.commit()
Example #5
0
 def commit_collection(self, collection, claz):
     db_bat = session.query(claz).all()
     ids = set([x.mlb_id for x in db_bat])
     filtered_collection = filter(lambda x: x.mlb_id not in ids, collection)
     session.add_all(filtered_collection)
     session.commit()
Example #6
0
unique_links = set()
site_url = 'http://register.start.bg'
site_response = requests.get(site_url)
servers[site_response.headers['Server']] = 1
bs = BeautifulSoup(site_response.content)
for link in bs.find_all('a'):
    unique_links.add(link.get('href'))

# read links servers
for link in unique_links:
    try:
        if link.startswith("http"):
            site_response = requests.get(site_url, verify=False)
        else:
            url = site_url + '/' + link
            site_response = requests.get(url, verify=False)
        if 'Server' not in site_response.headers:
            continue
        site_server = site_response.headers['Server']
        if site_server not in servers:
            servers[site_server] = 0
        servers[site_server] += 1
    except Exception:
        continue

to_add: [Server] = []
for serv, occ in servers.items():
    to_add.append(Server(server_name=serv, occurences=occ))
session.add_all(to_add)
session.commit()