msgspec🟠 Очень быстрая сериализация/десериализация JSON или MessagePack🟠 Встроенный механизм msgspec.Struct — легкая альтернатива Pydantic для валидации🟠 Отличается компактным двоичным представлением (MessagePack)🟠 Подходит для межпроцессного обмена, сетевого взаимодействия, микросервисов с минимальными накладными расходами
⚙️ Установка:
pip install msgspec
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1🥰1
🟠 Каждую минуту проверяет содержимое указанного сайта.🟠 Если сайт изменился — выводит сообщение "Сайт обновился!".
Код:
import requests
import hashlib
import time
URL = 'https://example.com' # замени на нужный сайт
CHECK_INTERVAL = 60 # интервал проверки в секундах
def get_hash(url):
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
return hashlib.md5(response.text.encode('utf-8')).hexdigest()
except Exception as e:
print("Ошибка при запросе:", e)
return None
def monitor_site(url):
print(f"Следим за сайтом: {url}")
old_hash = get_hash(url)
if old_hash is None:
print("Не удалось получить начальное состояние.")
return
while True:
time.sleep(CHECK_INTERVAL)
new_hash = get_hash(url)
if new_hash is None:
continue
if new_hash != old_hash:
print(f"[{time.ctime()}] Сайт обновился!")
old_hash = new_hash
else:
print(f"[{time.ctime()}] Без изменений.")
monitor_site(URL)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤5🔥5
package-smoke-test🟠 Простая командная утилита: python3 -m package_smoke_test --module your_module — выдаёт статус установки, путь и версию.🟠 Подходит для smokescreen-тестов: быстро проверить наличие необходимых пакетов перед запуском скриптов или сервисов.🟠 Минимум зависимостей и максимум пользы — удобно допилить в CI пайплайн без лишних телодвижений.
pip install package-smoke-test
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1🤩1
os, time (стандартные), cv2 sqlite3🟠 Берёт видео с камеры (или файла).🟠 Сравнивает текущий кадр с предыдущим.🟠 Если есть движение (>1% пикселей изменилось) → сохраняет кадр в папку motion_frames.🟠 Выводит сообщение о сохранении.🟠 Работает в цикле, пока не остановишь (Ctrl+C).
import cv2
import time
import os
VIDEO_SOURCE = 0 # 0 = вебкамера, или URL/IP камеры, или путь к видеофайлу
SAVE_DIR = "motion_frames"
os.makedirs(SAVE_DIR, exist_ok=True)
cap = cv2.VideoCapture(VIDEO_SOURCE)
_, prev_frame = cap.read()
prev_frame = cv2.cvtColor(prev_frame, cv2.COLOR_BGR2GRAY)
prev_frame = cv2.GaussianBlur(prev_frame, (21, 21), 0)
frame_id = 0
print("📹 Запущен анализ. Ctrl+C для остановки.")
try:
while True:
ret, frame = cap.read()
if not ret:
break
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
gray = cv2.GaussianBlur(gray, (21, 21), 0)
diff = cv2.absdiff(prev_frame, gray)
thresh = cv2.threshold(diff, 25, 255, cv2.THRESH_BINARY)[1]
motion_percent = (cv2.countNonZero(thresh) / thresh.size) * 100
if motion_percent > 1.0:
filename = f"{SAVE_DIR}/motion_{frame_id}.jpg"
cv2.imwrite(filename, frame)
print(f"📸 Движение! Сохранил кадр: {filename}")
prev_frame = gray
frame_id += 1
time.sleep(0.2)
except KeyboardInterrupt:
print("🛑 Остановлено пользователем.")
finally:
cap.release()
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤7👍5🔥4
time, csv, datetime, argparseКаждую заданную минуту спрашивает (CLI), чем вы заняты.
Записывает метку времени и описание задачи в CSV.
В конце дня автоматически выводит краткую таблицу: сколько времени ушло на каждую задачу.
Полезно, чтобы увидеть, куда уходит время, и перестать терять минуты зря.
python time_tracker.py --interval 60 --output time_log.csv
import time
import csv
from datetime import datetime
import argparse
from collections import Counter
def track(interval, output):
with open(output, 'a', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
while True:
now = datetime.now()
task = input(f"[{now.strftime('%H:%M')}] Что вы сейчас делаете? ")
writer.writerow([now.isoformat(), task])
if task.lower() in ('выход', 'exit', 'quit'):
break
time.sleep(interval * 60)
def summarize(output):
tasks = []
with open(output, newline='', encoding='utf-8') as f:
for row in csv.reader(f):
if len(row) >= 2:
tasks.append(row[1])
counts = Counter(tasks)
print("⏳ Итоги дня:")
for task, cnt in counts.items():
print(f"{task[:30]:30} — {cnt} отметок")
if __name__ == '__main__':
parser = argparse.ArgumentParser("Hourly Time Tracker")
parser.add_argument("--interval", type=int, default=60, help="Интервал опроса (в минутах)")
parser.add_argument("--output", default="time_log.csv", help="CSV файл для логов")
parser.add_argument("--summary", action="store_true", help="Показать итог за день и выйти")
args = parser.parse_args()
if args.summary:
summarize(args.output)
else:
track(args.interval, args.output)
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤10👏4👍1
Autoflake🟠 Удаляет неиспользуемые импорты и переменные — работает быстрее flake8 + ручное удаление.🟠 Интегрируется в CI/CD или pre-commit — держите репозитории без мусора, не задумываясь.🟠 Поддерживает массовую автоматизацию: сразу для всех файлов проекта.
pip install autoflake
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤7👍1
watchdog, requests, argparse, loggingИспользует ntfy.sh для уведомлений — никаких регистраций, просто отправляет сообщение HTTP запросом.
🟠 Реагирует на события — создание, удаление, переименование или изменение файлов в папке🟠 Отправляет уведомление через ntfy.sh — всплывает на вашем устройстве мгновенно🟠 Поддерживает фильтрацию по расширениям, рекурсивный обход и кастомные настройки через CLI
python folder_monitor.py --path /путь/к/папке --topic mytopic --recursive
import time, argparse, logging, os, requests
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(message)s")
class FileChangeHandler(FileSystemEventHandler):
def __init__(self, topic, include_extensions=None):
self.topic = topic
self.include_ext = include_extensions
def notify(self, msg):
requests.post(f"https://ntfy.sh/{self.topic}", data=msg)
def dispatch(self, event):
if self.include_ext:
if os.path.splitext(event.src_path)[1].lower() not in self.include_ext:
return
super().dispatch(event)
def on_any_event(self, event):
msg = f"{event.event_type.upper()}: {event.src_path}"
logging.info(msg)
self.notify(msg)
def main():
parser = argparse.ArgumentParser("Folder Monitor with ntfy.sh notifications")
parser.add_argument("--path", required=True, help="Folder path to monitor")
parser.add_argument("--topic", required=True, help="ntfy.sh topic")
parser.add_argument("--extensions", help="Filter extensions, comma-separated (e.g. .txt,.pdf)")
parser.add_argument("--recursive", action="store_true", help="Watch subdirectories")
args = parser.parse_args()
exts = [e.lower() for e in args.extensions.split(",")] if args.extensions else None
handler = FileChangeHandler(args.topic, include_extensions=exts)
observer = Observer()
observer.schedule(handler, args.path, recursive=args.recursive)
observer.start()
logging.info(f"Monitoring: {args.path} (recursive={args.recursive})")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
if __name__ == "__main__":
main()
pip install watchdog requests
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
11❤7🔥3👍1
os, shutilimport os
import shutil
def organize_folder(path):
extensions = {
"Images": [".jpg", ".jpeg", ".png", ".gif"],
"Documents": [".pdf", ".docx", ".txt"],
"Music": [".mp3", ".wav", ".flac"],
"Videos": [".mp4", ".avi", ".mkv"],
}
for filename in os.listdir(path):
filepath = os.path.join(path, filename)
if os.path.isfile(filepath):
for folder, exts in extensions.items():
if any(filename.lower().endswith(ext) for ext in exts):
target_folder = os.path.join(path, folder)
os.makedirs(target_folder, exist_ok=True)
shutil.move(filepath, os.path.join(target_folder, filename))
print(f"Переместил {filename} -> {folder}")
break
if __name__ == "__main__":
organize_folder("C:/Users/user/Downloads")
📌 Что делает:
🟠 Сканирует папку🟠 Определяет расширение файла🟠 Перемещает файл в подпапку по типу (создаёт папку, если нужно)
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😁5🔥3❤2
pzp🟠 Абсолютно на Python — не требуется установка fzf или прочих сторонних инструментов, всё само по себе.🟠 Интерфейс по умолчанию — полноэкранный режим; при необходимости доступен вывод под курсором (fullscreen=False) и ограничение высоты окна (height=...).🟠 Несколько layout-режимов
pip install pzp
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3🔥2
Bot-EveryDay-master.zip
78.7 KB
aiogram postgresql #telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤9🔥4👍3
requests, BeautifulSoup), а также автоматизацию браузера через Selenium (используется geckodriver + Firefox).git clone https://github.com/TheRealDalunacrobate/DaProfiler.git
cd DaProfiler
pip install -r requirements.txt
Для работы требуется установленный Firefox и geckodriver.
Структура запуска (пример, обсуждается в документации проекта):
python profiler.py -n ИМЯ -ln ФАМИЛИЯ -l True -O output.txt
где:
-n, --name — имя цели
-ln, --lastname — фамилия цели
-l, --logging — включить логгирование в терминале
-O, --output — вывести результаты в output.txt
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤7👍5🔥2
instagram-scraper, requests и beautifulsoup4 (точный список — в requirements.txt репозитория).# с GitHub
git clone https://github.com/megadose/toutatis.git
cd toutatis/
python3 setup.py install
# или через PyPI
pip install toutatis
Пример запуска:
toutatis -u <username> -s <InstagramSessionID>
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3🥰1
Jam.py🟠 Полностью веб-интерфейсный low-code: создай приложение напрямую из БД, не трогая JavaScript.🟠 Встроенный WSGI-сервер и графический конструктор интерфейсов (Application Builder) — строи формы, таблицы и отчёты просто перетаскиванием.🟠 Быстрая генерация CRUD-приложений: просто импортируй существующие таблицы — и сразу получаешь рабочий интерфейс для них.🟠 Универсальность: поддерживает различные СУБД, легален и открыт (BSD 3-clause).
pip install jam.py
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥4👍3
holehe🟠 Асинхронная проверка email-адреса на десятках популярных сайтов.🟠 Показывает, зарегистрирован ли email, и иногда дополнительные данные (например, ошибки логина/регистрации).🟠 Можно использовать как CLI-инструмент и как Python-библиотеку.🟠 Полезен для OSINT-исследований, пентестов и проверки утечек.🟠 Поддерживает регулярные обновления списков сервисов.🟠 Легко интегрируется в автоматизированные пайплайны.
pip install holehe
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤6🔥3👍2
requests, beautifulsoup4 для парсинга Google-поиска и обхода результатов. Полный стек — в репозитории проекта. git clone https://github.com/snooptsz/findanyfile.git
cd findanyfile
pip install requests beautifulsoup4
Запуск (пример, можно адаптировать под свой вопрос):
python findanyfile.py --query "site:example.com filetype:pdf confidential"
Где
--query может включать любые Google-условия: тип файла, ключевые слова, site-ограничения и т.п.#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6🔥4
EC-KitY🟠 Полная поддержка эволюционных парадигм — от классических генетических алгоритмов и программирования до продвинутых методов многокритериальной оптимизации и коэволюции.🟠 Интеграция с ML-библиотеками — совместимость со scikit-learn позволяет использовать эволюционные методы в рамках привычных пайплайнов обучения.🟠 Современная архитектура и простота настройки — проектировался с учетом современных практик разработки ПО: модульность, расширяемость и чистый API.
pip install ec-kity
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤6🔥4👍3
💾
npm, но для автоматизации используются скрипты на Python + Playwright — подробности в репозитории.🟠 Запускает браузер (Chromium/Firefox) с возможностью управления по API Playwright — выполняет любые действия, как если бы вы делали их вручную, но автоматически.🟠 Работает с профилями и инкогнито режимом (--profile, --incognito) — удобно для тестирования и изолированного использования.🟠 Поддерживает запуск готовых сценариев: помещаете .js или .py скрипты в commands, и обрабатываете их через beachmsg <script-name>.🟠 Можно интегрировать с GUI-расширением — сразу запускать сценарии из браузера одним кликом, с подсветкой текущих команд и hotkeys.
git clone https://github.com/sebastiancarlos/beachpatrol
cd beachpatrol
npm install
make
Запускается командой
beachpatrol, работает как обычный браузер — можно добавить --profile <name> или --incognito.#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤4👍1
Gekko🟠 Масштабируемость и мощность — решает большие нелинейные и смешанно-интегральные задачи оптимизации.🟠 Многофункциональность — поддерживает динамическое моделирование, машинное обучение, управление моделями, согласование данных (data reconciliation) и режим реального времени.🟠 Кроссплатформенность — работает на Linux, Windows, macOS и ARM (например, Raspberry Pi), поддерживает Python 2.7 и 3+. Запросы решаются на публичном сервере по умолчанию, но есть возможность использовать локальный режим без интернета.
pip install gekko
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍3❤1🥰1
pyrogram, tgcrypto (опционально), а также системные утилиты mysqldump, zip, mysql-client, как указано в README.md репозитория. git clone https://github.com/azerothcore/telegram-automated-db-backup
cd telegram-automated-db-backup
pip install pyrogram tgcrypto
# Установите zip и mysql-client через apt
В файле
bak.py сконфигурируйте:🟠 Доступ к базе: mysql_localhost, mysql_username, mysql_password, названия баз world_db, char_db, auth_db🟠 Настройки ZIP: zip_password, zip_name🟠 Telegram: chat_id, username, api_id, api_hash
Затем запускайте:
python3 bak.py
Можно использовать cron для ежедневного запуска. Также есть скрипт
bak-per-table.py, который создаёт дамп из каждой таблицы отдельно. Подробнее в репозитории скрипта.
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥4👍2😁2
Scalpl🟠 Лёгкая — простой импорт и работа, без лишнего кода🟠 Эффективная для простых кейсов — если не требуется трансформация данных, а нужно только получить или установить значение — Scalpl быстрее и понятнее, чем Glom
pip install scalpl
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤2🥰1
pandas, rapidfuzz — используется для сравнения строк с учётом возможных опечаток и близости.import pandas as pd
from rapidfuzz import process, fuzz
import argparse
def dedupe_csv(input_file: str, output_file: str, col: str, threshold: float = 90.0):
df = pd.read_csv(input_file)
txts = df[col].astype(str).tolist()
# Построение матрицы схожести
sim_matrix = process.cdist(
txts, txts,
scorer=fuzz.token_set_ratio,
score_cutoff=threshold
)
# Выявляем индексы уникальных строк
unique_idxs = set()
for i in range(len(txts)):
# если нет других строк похожих на i (кроме самой i), считаем уникальной
if not any(j != i and sim_matrix[i, j] >= threshold for j in range(len(txts))):
unique_idxs.add(i)
df_unique = df.iloc[sorted(unique_idxs)]
df_unique.to_csv(output_file, index=False)
print(f"Сохранено уникальных строк: {len(df_unique)} из {len(df)}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="Удаление почти дублирующихся строк в CSV по текстовой колонке."
)
parser.add_argument("input", help="путь к входному CSV")
parser.add_argument("output", help="путь к выходному CSV без дубликатов")
parser.add_argument("--column", "-c", required=True, help="имя текстовой колонки для сравнения")
parser.add_argument("--threshold", "-t", type=float, default=90.0, help="порог сходства (0-100)")
args = parser.parse_args()
dedupe_csv(args.input, args.output, args.column, args.threshold)
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥3