оптемезируй код и допиши фильтер import time import sqlite3 import math from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup  # Настройки AVITO_LOGIN = 'your_email@example.com'       # Ваш email для входа AVITO_PASSWORD = 'your_password'            # Ваш пароль SEARCH_QUERY = 'велосипед'                   # Слово для поиска MAX_DAYS = 3                                 # Максимальное количество дней с момента размещения PRICE_PERCENT = 0.3                          # Процент предложения от цены DATABASE = 'sent_messages.db'                # База данных для хранения отправленных сообщений  # Инициализация базы данных conn = sqlite3.connect(DATABASE) cursor = conn.cursor() cursor.execute('''     CREATE TABLE IF NOT EXISTS sent (         ad_id TEXT PRIMARY KEY     ) ''') conn.commit()  # Инициализация Selenium WebDriver driver = webdriver.Chrome()  # Убедитесь, что chromedriver в PATH driver.maximize_window()  try:     # Вход в Авито     driver.get('https://www.avito.ru/accounts/login')      time.sleep(3)  # Ждем загрузки страницы      # Ввод email     email_field = driver.find_element(By.NAME, 'email')     email_field.send_keys(AVITO_LOGIN)     email_field.send_keys(Keys.RETURN)      time.sleep(2)      # Ввод пароля     password_field = driver.find_element(By.NAME, 'password')     password_field.send_keys(AVITO_PASSWORD)     password_field.send_keys(Keys.RETURN)      time.sleep(5)  # Ждем завершения входа      # Поиск по заданному слову     search_url = f'https://www.avito.ru/moskva?q={SEARCH_QUERY}'     driver.get(search_url)      time.sleep(5)  # Ждем загрузки результатов      # Фильтрация по времени размещения     # Например, последние 24 часа или 3 дня     # Тут нужно адаптировать к специфике сайта     # Пример для фильтрации последних 3 дней:     # Найдите элементы фильтра и примените нужные параметры     # Это может потребовать дополнительного кода      # Получение страницы     soup = BeautifulSoup(driver.page_source, 'html.parser')      # Парсинг объявлений     ads = soup.find_all('div', {'data-marker': 'item'})      for ad in ads:         try:             ad_id = ad.get('data-item-id')             if not ad_id:                 continue              # Проверка, отправлялось ли уже сообщение             cursor.execute('SELECT 1 FROM sent WHERE ad_id = ?', (ad_id,))             if cursor.fetchone():                 continue  # Уже отправлено              # Извлечение цены             price_tag = ad.find('span', {'itemprop': 'price'})             if not price_tag:                 continue             price_text = price_tag.get_text().replace('₽', '').replace(' ', '').strip()             price = int(price_text)              offer = math.ceil(price * PRICE_PERCENT)              # Извлечение ссылки на объявление             link_tag = ad.find('a', {'itemprop': 'url'})             if not link_tag:                 continue             ad_url = 'https://www.avito.ru' + link_tag.get('href')              # Переход к объявлению             driver.get(ad_url)             time.sleep(5)              # Нахождение и нажатие кнопки "Написать"             write_button = driver.find_element(By.XPATH, "//button[contains(text(), 'Написать')]")             write_button.click()              time.sleep(3)              # Ввод сообщения             message_box = driver.find_element(By.TAG_NAME, 'textarea')             message = f"Привет! Готов купить ваш товар за {offer} рублей."             message_box.send_keys(message)              # Отправка сообщения             send_button = driver.find_element(By.XPATH, "//button[contains(text(), 'Отправить')]")             send_button.click()              time.sleep(2)              # Запись в базу данных             cursor.execute('INSERT INTO sent (ad_id) VALUES (?)', (ad_id,))             conn.commit()              print(f'Сообщение отправлено для объявления ID: {ad_id}')          except Exception as e:             print(f'Ошибка при обработке объявления: {e}')             continue  finally:     driver.quit()     conn.close()