Ответы пользователя по тегу Python
  • Как сделать чтобы я получил информацию о сервере CS2?

    @AsQ_QQ
    from ServerGet.ConfigRead import read_all_port, read_ip
    import concurrent.futures, socket, a2s
    QUERY_TIMEOUT = 4
    import socket
    
    
    class servergetinfo:
        def __init__(self):
            self.ip = read_ip()
            self.ports = read_all_port()
    
    
        def get_server_info(self):
            """Функция для получения информации о серверах из конфигурационного файла
    
            Raises:
                info_except: Информация о серверах
    
            Returns:
                _type_: Список словарей с информацией о серверах
            """
    
    
            info = []
            try:
                with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock:
                    sock.settimeout(5)  # Устанавливаем таймаут на 5 секунд
                    for port in self.ports:
                        ip, port = self.ip, int(port)
    
                        # Запрос подключения к серверу
                        try:
                            socket.getaddrinfo(ip, port)
                        except socket.gaierror:
                            print("Неверный адрес сервера")
                        
                        # Получение информации о сервере
                        with concurrent.futures.ThreadPoolExecutor(max_workers=2) as pool:
                            info_future = pool.submit(
                                a2s.info, (ip, port), timeout=QUERY_TIMEOUT)
    
                        # Инфомарция сервера (временная)
                        info_except = info_future.exception()
    
                        # Проверка ответа сервера
                        if isinstance(info_except, socket.timeout):
                            print("Сервер не ответил")
                        elif isinstance(info_except, a2s.BrokenMessageError):
                            print("Сервер отправил неверный ответ")
                        elif info_except is not None:
                            raise info_except
                        
                        # Инфомария сервера
                        info_res = info_future.result()
                        info.append(info_res)
    
                    return info
            except Exception as e:
                print(f"Ошибка при получении информации о сервере: {e}")
                return None
    Ответ написан
  • Ошибка при вызове клавиатуры что делать aiogram?

    @AsQ_QQ Автор вопроса
    Проблема в том что мои клавиатуры начинаются в next
    Убрав из название слово next все заработало)
    Ответ написан
  • Как сделать что бы хандлер срабатывал каждые 10 секунд, aiogram, python?

    @AsQ_QQ Автор вопроса
    вообщем, я сделал так что бы она срабатывала каждые 5 секунд

    async def update_news_1(message: types.Message):
    	fresh_news = chek_news_update()
    
    	if len(fresh_news) >= 1:
    		for k, v in sorted(fresh_news.items()):
    			news = f'{hcode(v["dates_id_print"])}\n' \
    				   f'{hlink(v["aubl_title"], v["aubl_url_split_print"])}'
    			await message.answer(news)
    			print('ok news')
    	else:
    		print('no')
    
    	time.sleep(5)
    
    	return await update_news_1(message)


    но, я не могу использовать остальные команды бота) так что либо помогите с этим, либо другой способ рипита сделать
    Ответ написан