Напиши программу с переводчиком (deep_translator) С ВЫБОРОМ ЯЗЫКА
 и поиска статей с (ru/en) wikipedia-api, habr (не библиотека) и ТП
В виде программы для windows с помощью библиотеки PyQt5

СДЕЛАЙ ПОИСК СТАТЕЙ ЧЕРЕЗ ЭТОТ КОД СТАТЕЙ С РАЗНЫМИ САЙТАМИ

import json
from bs4 import BeautifulSoup
from collections import defaultdict

  
YANDEX_SEARCH_URL = "https://yandex.ru/search/?text="

MESSAGE_LIMIT = 5
TIME_WINDOW = 60  # One minute
user_requests = defaultdict(lambda: [])
banned_keywords = ["гитлер"]

def check_spam(user_id):
    current_time = time.time()
    user_requests[user_id] = [timestamp for timestamp in user_requests[user_id] if current_time - timestamp < TIME_WINDOW]
    if len(user_requests[user_id]) >= MESSAGE_LIMIT:
        return True
    user_requests[user_id].append(current_time)
    return False

def search(query, message):
    user_id = message.from_user.id
    if check_spam(user_id):
        bot.send_message(message.chat.id, "Слишком много запросов. Пожалуйста, подождите немного.")
        return

    if any(banned_word in query for banned_word in banned_keywords):
        bot.send_message(message.chat.id, "Запрос содержит неприемлемый контент.")
        return

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
    }
    
    start_time = time.time()
    response = requests.get(YANDEX_SEARCH_URL + query, headers=headers)
    soup = BeautifulSoup(response.text, 'lxml')

    results = soup.find_all('li', class_='serp-item')
    count = 0
    found_links = []

    for result in results:
        link = result.find('a', href=True)['href']
        if 'wikipedia.org' in link or 'other_acceptable_source' in link:
            count += 1
            summary = fetch_summary(link)
            images = get_images(link)
            found_links.append(link)
            output_text = f"Результат {count}:\n{summary}\n\nСсылка: {link}\n"
            end_time = time.time()
            bot.send_message(message.chat.id, f"{output_text}Запрос занял {end_time  - start_time:.2f} секунд.")
            bot.send_media_group(message.chat.id, [telebot.types.InputMediaPhoto(img) for img in images[:3]])
            break

    if not found_links:
        bot.send_message(message.chat.id, "Не удалось найти релевантные результаты.")

def fetch_summary(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'lxml')
    content = soup.find('div', class_='mw-parser-output')

    if content:
        paragraphs = content.find_all('p', limit=2)
        summary = ' '.join([p.text for p in paragraphs])
        return summary.strip()
    return "Не удалось получить информацию."

def get_images(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'lxml')
    image_tags = soup.find_all('img')
    image_urls = [img['src'] for img in image_tags if img['src'].startswith('http')]
    return image_urls[:3]

@bot.message_handler(commands=['search'])
def handle_search(message):
    query = message.text[len('/search '):].strip()
    try:
        search(query, message)
    except Exception as e:
        print(f"Произошла ошибка: {e}")    

ПРИМЕР ДЛЯ ВИКИ
import wikipediaapi

wiki_wiki = {
    'en': wikipediaapi.Wikipedia(
        language='en',
        user_agent='MyWikiBot (https://github.com/your-github-username/your-repo-name)'
    ),
    'ru': wikipediaapi.Wikipedia(
        language='ru',
        user_agent='MyWikiBot (https://github.com/your-github-username/your-repo-name)'
    )
}

MAX_MESSAGE_LENGTH = 1024  # Максимальная длина сообщения в Telegram
FLOOD_DELAY = 25  # Задержка между сообщениями в секундах

user_last_message_time = {}  # Время последнего сообщения пользователя