riddle.py из репозитория Trivernis/python-utility-scriptsrequests, 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🟢 Печатает статус каждого скачанного файла
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2🔥2
Flask-Obscure🟢 Поддерживает разные схемы шифрования: num, hex, b32, b64 и tame (особый base32-вариант без гласных).🟢 При генерации URL через flask.url_for, автоматически превращает числовые ID в “замаскированную” форму, а при маршрутизации — обратно декодирует.🟢 Интеграция с Jinja2: фильтры доступны в шаблонах — можно прямо выводить “обфусцированные” ID.🟢 Использует 32-битное “соль” (salt), которую можно задать вручную или через конфигурацию Flask (OBSCURE_SALT) для уникального преобразования.
pip install Flask-Obscure
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
🟠 Работает прямо из консоли, без зависимостей.🟠 Можно указать целевую ветку (main, master, develop).🟠 Поддерживает dry-run — можно посмотреть, какие ветки будут удалены, перед фактическим удалением.🟠 Ускоряет навигацию и исключает мусор в локальных репозиториях.
python git-delete-merged-branches.py --base main --dry-run
Чтобы удалить реально:
python git-delete-merged-branches.py --base main
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1