Python_Scripts
8.26K subscribers
1.1K photos
13 videos
674 files
1.64K links
Скрипты 💾 на Python 🐍
- боты 🛠
- парсеры📁
- чекеры🔍
- автоматизация🔧
- многое другое💻

Ваши предложения📝 @cmd_dark @CMD_Vega
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
NZT существует.

В фильме «Области тьмы»
герой выпивает NZT — и за день
становится трейдером,
мастером кунг-фу и полиглотом.

Дело не в таблетке.
А в состоянии.

Химия не нужна.
Когда ум чист,
внимание собрано,
и сомнений нет —
ты уже на NZT.

Ты замечаешь всё.
Действуешь без разрывов.
И мир отвечает тебе.

Как включить режим NZT?

Подписывайся на Мэверика.

• входи в состояние
всё «получается само».

• мгновенно принимай
лучшие решения.

• считывай сложные связи
там, где все видят хаос.

• управляй фокусом
и вероятностями событий.

Твоя таблетка NZT.
👇
Мэверик.
Ясность. Точность.
😁5
🔥 Полезные библиотеки Python

ftfy

📌 ftfy (fixes text for you) — библиотека для исправления сломанных Unicode-строк, которые могут появляться при обработке текста из разных источников (например, некорректно декодированные символы, проблемы кодировок). Она автоматически определяет, как исправить такие строки и возвращает читаемый текст.

📌 Особенности библиотеки:
🟢 Может исправлять mojibake — текст, который был закодирован в одной кодировке, а декодирован в другой, что приводит к странным символам.
🟢 Поддерживает декодирование HTML-сущностей, устранение неправильных переносов и других артефактов текста.
🟢 Полезна при обработке данных из внешних источников, которые могут быть закодированы по-разному (лог-файлы, веб-скрейпинг, импорт CSV/JSON).
🟢 Минималистична, но решает одну из самых неприятных проблем при работе с текстом — когда кодировки сломались.

⚙️ Установка:
pip install ftfy


🔢 Документация

#библиотеки

🖥 Python_Scripts
👍21
Ты тоже знаешь Python,
но иногда не понимаешь, как подойти к задаче?


В канале — разбор логики решений, рабочий код и прямые эфиры
Без курсов и лишних слов.

👉 @onlyPython
1
github-utility

📱 Python 3.6+
ℹ️ Модули: requests (для API-запросов), argparse (для CLI-аргументов), os, logging. Скрипт в составе пакета github-utility на PyPI.

📌 github-utility — утилита-набор функций + CLI-обёртка, которая упрощает работу с GitHub API: получать инфу о пользователях, репозиториях, создавать issue’ы прямо из командной строки или скриптов. Отлично подходит, когда нужно автоматизировать рабочий процесс, быстро подсветить ошибку или интегрировать с CI.

👨‍💻 Пример использования:
# Установка
pip install github-utility

# CLI примеры:
export GITHUB_ACCESS_TOKEN="токен"

# Получить информацию о пользователе
github-utility get-user --username someuser

# Создать issue в репозитории
github-utility create-issue --owner ownername --repo reponame --title "Test issue" --body "Описание issue"


Фрагменты кода внутри скрипта:
import requests
import argparse
import os

def get_user(token, username):
headers = {"Authorization": f"token {token}"}
resp = requests.get(f"https://api.github.com/users/{username}", headers=headers)
return resp.json()

def create_issue(token, owner, repo, title, body):
headers = {"Authorization": f"token {token}"}
data = {"title": title, "body": body}
resp = requests.post(f"https://api.github.com/repos/{owner}/{repo}/issues", headers=headers, json=data)
return resp.json()


🔗 Репозиторий / исходники на PyPI; исходники находятся там же.

#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
2
python_utilities/Parallelizer

📱 Python 3.7+
💾 Модули: multiprocessing, threading, os, io_tools, scripting — часть общей библиотеки утилит python_utilities на GitHub.

📌 Parallelizer — скрипт / утилита внутри python_utilities, который помогает запускать одну и ту же функцию в разных средах (локально, многопроцессно или на кластере через MPI) без изменения кода. То есть ты пишешь функцию “обычно”, а Parallelizer распределит задачи на worker’ы — в зависимости от окружения.

👨‍💻 Пример использования:
from python_utilities.parallel import Parallelizer, make_data_iterator
from python_utilities.scripting import setup_logging

def process_item(item, constant=10):
return item * constant

def main():
setup_logging()
data = list(range(100))
par = Parallelizer(func=process_item, data=data, n_jobs=4)
results = par.run()
print(results)

if __name__ == "__main__":
main()


📌 Что делает:
🟢 Унифицирует способы параллелизации: локально или распределённо
🟢 Не требует переписывания кода функций под “parallel” — простая обёртка
🟢 Подходит для обработки больших наборов данных или задач, которые можно распараллелить


🔗 Репозиторий GitHub

#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3👍2
🔥 Полезные библиотеки Python

package-smoke-test

📌 package-smoke-test — это утилита и библиотека для быстрой проверки установки Python-дистрибутивов или модулей. Позволяет быстро убедиться, что модуль или дистрибутив уже установлен и доступен в системе без лишней мороки.

📌 Особенности библиотеки:
🟠 Простая командная утилита: python3 -m package_smoke_test --module your_module — выдаёт статус установки, путь и версию.
🟠 Подходит для smokescreen-тестов: быстро проверить наличие необходимых пакетов перед запуском скриптов или сервисов.
🟠 Минимум зависимостей и максимум пользы — удобно допилить в CI пайплайн без лишних телодвижений.


⚙️ Установка:
pip install package-smoke-test


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3🔥31
riddle.py из репозитория Trivernis/python-utility-scripts

📱 Python 3.6+
ℹ️ Модули: requests, os, argparse (в репозитории указаны зависимости)

📌 riddle.py — скрипт, который скачивает все изображения из одного или нескольких сабреддитов. Удобен, если ты хочешь быстро собрать изображения по теме, не вручную копируя ссылки.

👨‍💻 Пример кода (адаптированно):
import os
import requests
import argparse

def download_subreddit_images(subreddit, limit=50, dest="downloads"):
os.makedirs(dest, exist_ok=True)
url = f"https://www.reddit.com/r/{subreddit}/.json?limit={limit}"
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(url, headers=headers)
data = resp.json()

for post in data.get("data", {}).get("children", []):
img_url = post["data"].get("url")
if img_url and (img_url.endswith(".jpg") or img_url.endswith(".png")):
filename = os.path.basename(img_url)
path = os.path.join(dest, filename)
try:
img_data = requests.get(img_url).content
with open(path, "wb") as f:
f.write(img_data)
print("Downloaded:", filename)
except Exception as e:
print("Ошибка скачивания", img_url, e)

if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Download images from subreddit")
parser.add_argument("subreddit", help="Name of subreddit")
parser.add_argument("--limit", type=int, default=20, help="How many posts to parse")
parser.add_argument("--dest", default="downloads", help="Destination folder")
args = parser.parse_args()

download_subreddit_images(args.subreddit, limit=args.limit, dest=args.dest)


📌 Что делает:
🟢 Делает HTTP-запрос к API Reddit (JSON)
🟢 Парсит посты, проверяет, есть ли в url изображения (.jpg/.png)
🟢 Скачивает найденные изображения в папку
🟢 Поддерживает указание количества постов через параметр limit
🟢 Печатает статус каждого скачанного файла


🔗 Репозиторий GitHub

#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥2
🔥 Полезные библиотеки Python

Flask-Obscure

📌 Flask-Obscure — расширение для Flask, которое маскирует последовательные числовые ID в URL и автоматически декодирует их обратно в функции. Это помогает скрывать настоящую структуру идентификаторов пользователей, заказов и т.п., чтобы затруднить аналитику злоумышленникам, не раскрывая внутреннюю логику.

📌 Особенности библиотеки:
🟢 Поддерживает разные схемы шифрования: num, hex, b32, b64 и tame (особый base32-вариант без гласных).
🟢 При генерации URL через flask.url_for, автоматически превращает числовые ID в “замаскированную” форму, а при маршрутизации — обратно декодирует.
🟢 Интеграция с Jinja2: фильтры доступны в шаблонах — можно прямо выводить “обфусцированные” ID.
🟢 Использует 32-битное “соль” (salt), которую можно задать вручную или через конфигурацию Flask (OBSCURE_SALT) для уникального преобразования.


⚙️ Установка:
pip install Flask-Obscure


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
git-delete-merged-branches

📌 Этот скрипт чистит локальный git-репозиторий, удаляя все ветки, которые уже были смержены в main (или любую другую указанную ветку). Помогает поддерживать репозиторий в порядке, когда после фич- или баг-фиксов остаются десятки ненужных веток.

📌 Особенности скрипта:
🟠 Работает прямо из консоли, без зависимостей.
🟠 Можно указать целевую ветку (main, master, develop).
🟠 Поддерживает dry-run — можно посмотреть, какие ветки будут удалены, перед фактическим удалением.
🟠 Ускоряет навигацию и исключает мусор в локальных репозиториях.


⚙️ Использование:
python git-delete-merged-branches.py --base main --dry-run


Чтобы удалить реально:
python git-delete-merged-branches.py --base main


🔢 Репозиторий

#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
12
Изоляция рунета ближе, чем ты думаешь

Loading

██████████████] 99%


Роскомнадзору дали карт-бланш на блокировки, а «белые списки» сайтов тестируют уже в десятках регионов. И гайки будут закручиваться только сильнее.

Чтобы в одночасье не лишиться доступа к свободному Интернету, просто сохрани Only Hack.

Тут профессиональный хакер делится фишками, с которыми доступ к глобальной сети у тебя будет даже в случае ядерного апокалипсиса.

Не жди момента «Х». Перестрахуйся подпиской.
😁3
Folder Change Notifier via ntfy.sh

📌 Этот скрипт следит за локальной папкой в реальном времени и отправляет push-уведомления на ваш телефон или браузер через ntfy.sh, когда там что-то меняется — создаётся, удаляется или меняется файл. Просто, мощно и полностью автономно.

📱 Python 3.8+
💾 Модули: watchdog, requests, argparse, logging
Использует ntfy.sh для уведомлений — никаких регистраций, просто отправляет сообщение HTTP запросом.

📌 Особенности скрипта:
🟠Реагирует на события — создание, удаление, переименование или изменение файлов в папке
🟠Отправляет уведомление через ntfy.sh — всплывает на вашем устройстве мгновенно
🟠Поддерживает фильтрацию по расширениям, рекурсивный обход и кастомные настройки через CLI


👨‍💻 Пример использования (CLI):
python folder_monitor.py --path /путь/к/папке --topic mytopic --recursive


🧑‍💻 Код скрипта (folder_monitor.py):
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


#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1