aiogram==2.25.1
Как мне такое реализовать, с учетом того, что я <...> в асинхроне ничего не понимаю?
finally:
if connection: # Завершение работы базы данных
connection.close()
print("Завершение работы базы данных")
замените на это else:
if connection: # Завершение работы базы данных
connection.close()
print("Завершение работы базы данных")
finally
выполняется в любом случае, а else
только если не возникло исключения. import socket
import re
import subprocess
import platform
# Функция для проверки доступности IP
def is_ip_reachable(ip):
# Параметры для команды ping в зависимости от операционной системы
param = '-n' if platform.system().lower() == 'windows' else '-c'
command = ['ping', param, '1', ip]
return subprocess.call(command) == 0
# Функция для проверки доступности IP:port
def check_ip_port(ip, port):
if not is_ip_reachable(ip):
return False
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(2) # 2 секунды таймаут
result = sock.connect_ex((ip, port))
sock.close()
return result == 0
# Чтение списка IP:port из файла
with open('ip.txt', 'r') as file:
lines = file.readlines()
# Регулярные выражения для извлечения IP и порта
re_ip_port = re.compile(r"^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d+)$")
# Список для хранения доступных IP:port
available_ips = []
# Проверка каждого IP:port
for line in lines:
match = re_ip_port.match(line.strip())
if match:
ip, port = match.groups()
port = int(port)
if check_ip_port(ip, port):
available_ips.append(f"{ip}:{port}")
# Запись доступных IP:port в новый файл
with open('ipUP.txt', 'w') as file:
for ip_port in available_ips:
file.write(ip_port + '\n')
print("Проверка завершена. Доступные IP:port записаны в файл ipUP.txt")
Эта ошибка возникает при попытке редактировать только текст поста, который изначально включает в себя и текст, и изображение. Для таких типов постов необходимо указать, помимо текста, URL исходного изображения или URL нового изображения.
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver import Chrome, ChromeOptions
from selenium.common.exceptions import NoSuchElementException, StaleElementReferenceException
driver = Chrome()
url = 'https://sc2arcade.com/map-list'
driver.get(url)
maps_names = driver.find_elements(By.CLASS_NAME, 'title')
options = ChromeOptions()
options.add_argument("--disable-notifications")
required_letters = 'qwertyuiopasdfghjklzxcvbnm'
class MapMaker:
def __init__(self, username, social_media_link, link_to_profile):
self.username = username
self.social_media_link = social_media_link
self.link_to_profile = link_to_profile
def __eq__(self, other):
if isinstance(other, MapMaker):
return self.value == other.value
return False
def __hash__(self):
return hash(self.value)
mapmakers = set()
for map_name in maps_names:
for required_letter in required_letters:
for letter in map_name.text:
if letter == required_letter:
driver.execute_script("arguments[0].click();", map_name)
map_name.click()
try:
author = driver.find_element(By.CLASS_NAME, 'v-avatar v-list-item__avatar rounded-0 v-avatar--tile').text
link_on_profile = driver.find_element(By.CLASS_NAME, 'player-link').text
social_media_link = driver.find_element(By.CLASS_NAME, 'v-btn__content').text
mapmaker = MapMaker(author, link_on_profile, social_media_link)
mapmakers.add(mapmaker)
driver.back()
driver.refresh()
except NoSuchElementException:
pass
print(mapmakers)