🅿🆈🆃🅷🅾🅽 👨‍💻
1 subscriber
1 video
1 link
- Полезные скрипты для различных задач 🖥️
- Советы по программированию 🧑‍💻
- Примеры кода для практики 🔍
Download Telegram
Этот скрипт предназначен для проверки работоспособности прокси-серверов. Он считывает список прокси из текстового файла, отправляет запросы через каждый из них и проверяет их на валидность. Рабочие прокси сохраняются в отдельном файле для дальнейшего использования.

import requests

def check_proxy(proxy):
url = "https://httpbin.org/ip" # Тестируемый сайт
proxies = {
"http": proxy,
"https": proxy,
}

try:
# Попытка отправить запрос через прокси
response = requests.get(url, proxies=proxies, timeout=5)

# Если статус код 200, прокси рабочий
if response.status_code == 200:
print(f"Прокси {proxy} работает!")
return True
else:
print(f"Прокси {proxy} недоступен. Статус код: {response.status_code}")
return False
except requests.exceptions.RequestException as e:
# В случае ошибки прокси
print(f"Ошибка с прокси {proxy}: {e}")
return False

def test_proxies(file_path):
valid_proxies = []

# Открываем файл с прокси
with open(file_path, 'r') as file:
for line in file:
proxy = line.strip() # Убираем лишние пробелы и символы новой строки
if check_proxy(proxy):
valid_proxies.append(proxy)

# Сохраняем валидные прокси в новый файл
with open('valid_proxies.txt', 'w') as file:
for proxy in valid_proxies:
file.write(proxy + '\n')

print(f"Количество валидных прокси: {len(valid_proxies)}")

# Пример использования
test_proxies('proxies.txt')
import pygame
import sys
import random

# Инициализация pygame
pygame.init()

# Размеры экрана
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT)) # Устанавливаем размеры окна игры
pygame.display.set_caption("Flappy Bird") # Устанавливаем заголовок окна игры

# Цвета
BLUE = (0, 0, 255) # Синий фон
GREEN = (0, 255, 0) # Цвет столбов
WHITE = (255, 255, 255) # Цвет текста
BLACK = (0, 0, 0) # Цвет текста
BIRD_COLOR = (255, 255, 0) # Цвет птички (жёлтый)
BROWN = (139, 69, 19) # Цвет земли (коричневый)

# Игровые переменные
bird_width, bird_height = 50, 50 # Размеры птички
bird_x, bird_y = 100, HEIGHT // 2 # Начальная позиция птички
bird_velocity = 0 # Начальная скорость птички
gravity = 0.5 # Сила гравитации, которая заставляет птичку падать
lift = -10 # Скорость подъема птички при клике

# Параметры столбов
column_width = 70 # Ширина столбов
column_gap = 200 # Промежуток между верхним и нижним столбом
column_speed = 5 # Скорость столбов
columns = [] # Список столбов

# Счетчик
score = 0 # Начальный счет
font = pygame.font.SysFont('Arial', 30) # Шрифт для текста счета

# Создание птички (прямоугольник, который будет двигаться)
bird = pygame.Rect(bird_x, bird_y, bird_width, bird_height)

# Основной цикл игры
clock = pygame.time.Clock() # Создаем объект для контроля частоты обновлений экрана
# Функция для создания столбов
def create_column():
"""Создает столбы с случайной высотой"""
height = random.randint(100, HEIGHT - column_gap - 100) # Высота верхнего столба
top_column = pygame.Rect(WIDTH, 0, column_width, height) # Верхний столб
bottom_column = pygame.Rect(WIDTH, height + column_gap, column_width, HEIGHT - height - column_gap) # Нижний столб
return top_column, bottom_column # Возвращаем пару столбов

# Обновление позиции столбов
def update_columns():
"""Двигает столбы влево и создает новые, когда столбы выходят за экран"""
global score # Используем глобальный счет
for column in columns[:]: # Итерируем по копии списка столбов
column[0].x -= column_speed # Двигаем верхний столб влево
column[1].x -= column_speed # Двигаем нижний столб влево
if column[0].x + column_width < 0: # Если столбы вышли за экран
columns.remove(column) # Удаляем старый столб
columns.append(create_column()) # Создаем новый столб
score += 1 # Увеличиваем счет, когда столбы прошли

# Проверка на столкновение
def check_collision():
"""Проверка столкновения птички с столбами или границами экрана"""
for column in columns:
if bird.colliderect(column[0]) or bird.colliderect(column[1]): # Проверка столкновения с верхним и нижним столбами
return True # Если столкновение произошло, возвращаем True
if bird.y > HEIGHT or bird.y < 0: # Если птичка упала за экран или улетела выше
return True
return False # Если столкновения нет, возвращаем False

# Инициализация первого столба
columns.append(create_column()) # Добавляем первый столб в список
# Основной игровой цикл
while True:
clock.tick(30) # Устанавливаем частоту обновлений экрана в 30 кадров в секунду

# Обработка событий игры
for event in pygame.event.get():
if event.type == pygame.QUIT: # Если игрок закрыл окно
pygame.quit()
sys.exit()

if event.type == pygame.MOUSEBUTTONDOWN: # Если кликнули по экрану
bird_velocity = lift # Поднимем птичку на скорость lift

# Обновление позиции птички
bird_velocity += gravity # Применяем гравитацию (увеличиваем скорость падения)
bird.y += bird_velocity # Двигаем птичку по оси Y

# Обновление столбов
update_columns()

# Проверка столкновений
if check_collision():
game_over_text = font.render("Game Over!", True, BLACK) # Текст Game Over
screen.blit(game_over_text, (WIDTH // 3, HEIGHT // 2 - 50)) # Отображаем текст на экране
restart_text = font.render("Click to Restart", True, BLACK) # Текст для перезапуска
screen.blit(restart_text, (WIDTH // 3, HEIGHT // 2)) # Отображаем текст для перезапуска

pygame.display.update() # Обновляем экран

# Ожидаем клика для перезапуска игры
waiting_for_click = True
while waiting_for_click:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

if event.type == pygame.MOUSEBUTTONDOWN: # При клике на экран перезапускаем игру
bird.y = HEIGHT // 2 # Ставим птичку в начальное положение
bird_velocity = 0 # Обнуляем скорость
score = 0 # Сбрасываем счет
columns = [] # Очищаем список столбов
columns.append(create_column()) # Добавляем первый столб
waiting_for_click = False # Выход из цикла ожидания клика
continue # Переход к следующей итерации игрового цикла

# Отображение всего
screen.fill(BLUE) # Синий фон

# Рисуем столбы
for column in columns:
pygame.draw.rect(screen, GREEN, column[0]) # Рисуем верхний столб
pygame.draw.rect(screen, GREEN, column[1]) # Рисуем нижний столб

# Рисуем птичку
pygame.draw.rect(screen, BIRD_COLOR, bird)

# Рисуем землю
pygame.draw.rect(screen, BROWN, (0, HEIGHT - 50, WIDTH, 50)) # Земля внизу

# Отображаем счетчик
score_text = font.render(f"Score: {score}", True, WHITE) # Текст счета
screen.blit(score_text, (10, 10)) # Отображаем текст в верхнем левом углу

pygame.display.update() # Обновляем экран
Please open Telegram to view this post
VIEW IN TELEGRAM
Этот скрипт извлекает данные (email, phone, login) из базы данных SQLite, хеширует их с помощью SHA-256 и сохраняет результаты в текстовый файл в формате email:hash, phone:hash, login:hash

import sqlite3  # Библиотека для работы с базой данных SQLite
import hashlib # Библиотека для создания хешей

def get_hashes_from_db(db_path):
"""
Функция для извлечения email, phone и login из базы данных и создания хешей для них.

db_path: путь к базе данных SQLite.
"""
# Подключаемся к базе данных SQLite
conn = sqlite3.connect(db_path)
cursor = conn.cursor() # Создаем объект-курсор для выполнения запросов

# Выполняем SQL-запрос для извлечения данных (в данном случае email, phone, login)
cursor.execute("SELECT email, phone, login FROM users") # Замените на вашу таблицу и поля

# Извлекаем все строки из результата запроса
rows = cursor.fetchall()

hashes = [] # Список для хранения строк вида 'email:hash, phone:hash, login:hash'

# Обрабатываем каждую строку из результата
for row in rows:
email = row[0]
phone = row[1]
login = row[2]

# Генерируем хеши для каждого из элементов: email, phone, login
# Используем hashlib для хеширования с алгоритмом SHA-256
email_hash = hashlib.sha256(email.encode()).hexdigest()
phone_hash = hashlib.sha256(phone.encode()).hexdigest()
login_hash = hashlib.sha256(login.encode()).hexdigest()

# Формируем строку в формате "email:hash, phone:hash, login:hash"
hashes.append(f"email:{email_hash}, phone:{phone_hash}, login:{login_hash}")

# Закрываем соединение с базой данных
conn.close()

return hashes # Возвращаем список строк с хешами

def save_hashes_to_file(hashes, filename):
"""
Функция для сохранения хешей в текстовый файл.

hashes: список строк с хешами.
filename: имя файла, в который будет записан результат.
"""
with open(filename, 'w') as f: # Открываем файл для записи
for item in hashes:
f.write(item + '\n') # Записываем каждый хеш в новую строку

# Путь к вашей базе данных SQLite
db_path = 'your_database.db' # Замените на путь к вашей базе данных

# Получаем хеши из базы данных
hashes = get_hashes_from_db(db_path)

# Сохраняем хеши в текстовый файл
save_hashes_to_file(hashes, 'hashed_data.txt') # Результат сохраняется в файл 'hashed_data.txt'

print("Хеши успешно сохранены в файл 'hashed_data.txt'.")
❤2