pytrends, flask, openai, requests и др. — взаимодействие с Google Trends API, веб-интерфейс, генерация текста. Нишевый инструмент для маркетологов / предпринимателей: ты вводишь ключевые слова или темы, скрипт берёт тренды из Google Trends, комбинирует их с моделями GPT, и генерирует идеи нишевых подкатегорий, потенциально прибыльных тем или продукты.
👨💻 Пример кода (упрощённая логика):
from pytrends.request import TrendReq
from flask import Flask, request, jsonify
import openai
pytrend = TrendReq()
app = Flask(__name__)
@app.route("/niche", methods=["POST"])
def find_niche():
data = request.json
keywords = data.get("keywords") # список ключевых слов
trends = []
for kw in keywords:
pytrend.build_payload([kw], timeframe="today 12-m")
interest = pytrend.interest_over_time()
trends.append((kw, interest.mean()))
# строим запрос в GPT, чтобы предложил нишевые идеи на основе трендов
prompt = f"Given these keywords and their trends: {trends}, suggest niche ideas."
resp = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role":"user", "content":prompt}]
)
ideas = resp.choices[0].message.content
return jsonify({"ideas": ideas, "trends": trends})
if name == "__main__":
app.run(port=5000)
🟢 Берёт тренды по ключевым словам из Google Trends (pytrends)🟢 Анализирует средние интересы или тренды роста🟢 Отправляет данные + ключевые слова в модель GPT🟢 Получает от GPT идеи ниш, подкатегорий или направлений🟢 Возвращает JSON с предложениями и трендами
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤3🔥1😁1
argparse, subprocess, pathlib, fnmatch, uuid, shutil, os, re — всё стандартное.#!/usr/bin/env python3
"""
gitingest.py - Turn any Git repository into a prompt-friendly text and copy to clipboard.
Usage:
python gitingest.py <URL/LOCAL_FOLDER> [options]
Options:
--exclude PATTERN Patterns to exclude (can be used multiple times)
--max-size SIZE Include files under SIZE kb (default: 50kb)
Examples:
python gitingest.py https://github.com/user/repo
python gitingest.py ./local-folder --exclude "*.log" --exclude "tests/*" --max-size 100
"""
import os
import sys
import subprocess
import tempfile
import shutil
import argparse
from pathlib import Path
from fnmatch import fnmatch
import uuid
import re
def clone_repo_if_needed(repo_path_or_url, tmp_dir):
# если передана URL — клонировать, иначе использовать локальный путь
pass
def collect_files(base_path, max_size_kb, exclude_patterns):
# пройтись по базе, собрать пути файлов, которые
# — меньше max_size
# — не соответствуют exclude_patterns
pass
def read_files(paths):
# читать файлы, возможно ограничивать общую длину, фильтры по расширениям
pass
def main():
# парсинг аргументов, клонирование, сбор файлов, вывод в консоль / буфер
pass
🟢 Принимает на вход путь к репозиторию либо URL🟢 Опции: --exclude шаблоны файлов / директорий, --max-size чтобы игнорировать большие файлы🟢 Сбирает содержимое подходящих файлов🟢 Генерирует текстовый вывод — может копировать в clipboard или просто печатать🟢 Удобное для подготовки данных перед аналитикой, обзором репо, работе с AI, чтобы “загрузить” код без лишнего мусора
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3❤1
opencv-python, numpy, click, ffmpegИспользует алгоритмы анализа яркости, цвета и движения для определения точек смены сцен.
from scenedetect import detect, ContentDetector, split_video_ffmpeg
scene_list = detect('input.mp4', ContentDetector())
split_video_ffmpeg('input.mp4', scene_list)
🟢 Анализирует видео и определяет, где происходит смена сцены🟢 Разделяет видео на отдельные файлы по найденным сценам🟢 Поддерживает экспорт списка сцен в CSV, HTML и EDL🟢 Работает как через CLI, так и через Python API
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍5
Pillow, numpy, argparse🟠 Загружает изображение любого поддерживаемого формата🟠 Конвертирует в градации серого🟠 Делит изображение на сетку и заменяет среднюю яркость каждой ячейки ASCII‑символом (@, #, . и пр.)🟠 Сохраняет ASCII-арт в файл или выводит на экран🟠 Включает CLI‑интерфейс для настройки ширины и дискреты яркости.
python ascii_art.py --input image.jpg --width 80 --output ascii.txt --detailed
import os
import argparse
from PIL import Image
import numpy as np
GSCALE_SIMPLE = "@%#*+=-:. "
GSCALE_EXTENDED = "$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\\|()1{}[]?-_+~i!lI;:,\"^`'. "
def avg_brightness(tile):
return np.array(tile).mean()
def image_to_ascii(image_path, cols=80, more_levels=False):
image = Image.open(image_path).convert('L')
W, H = image.size
scale = 0.43 # поправка на соотношение символов в терминале
w = W / cols
h = w / scale
rows = int(H / h)
print(f"[ASCII] Рисунок: cols={cols}, rows={rows}")
ascii_img = []
gs = GSCALE_EXTENDED if more_levels else GSCALE_SIMPLE
levels = len(gs)
for row in range(rows):
y1 = int(row * h)
y2 = int((row + 1) * h) if row < rows - 1 else H
line = ""
for col in range(cols):
x1 = int(col * w)
x2 = int((col + 1) * w) if col < cols - 1 else W
tile = image.crop((x1, y1, x2, y2))
brightness = avg_brightness(tile)
idx = int(brightness * (levels - 1) / 255)
line += gs[idx]
ascii_img.append(line)
return ascii_img
def main():
parser = argparse.ArgumentParser(description="ASCII Art Image Converter")
parser.add_argument('--input', required=True, help='Путь к изображению')
parser.add_argument('--width', '-w', type=int, default=80, help='Ширина в символах')
parser.add_argument('--output', '-o', help='Выходной .txt файл (по умолчанию — stdout)')
parser.add_argument('--detailed', action='store_true',
help='Использовать мелкую градацию (GSCALE_EXTENDED)')
args = parser.parse_args()
art = image_to_ascii(args.input, cols=args.width, more_levels=args.detailed)
if args.output:
with open(args.output, 'w', encoding='utf-8') as f:
f.write('\n'.join(art))
print(f"✅ Сохранено в {args.output}")
else:
print()
print('\n'.join(art))
if __name__ == "__main__":
main()
pip install pillow numpy
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤8👍4🔥1
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🔥8❤4👍2
intelx 🟠 Поиск в утечках (email, пароли, домены, IP и др.)🟠 Доступ к API IntelligenceX🟠 Получение и скачивание найденных записей
pip install intelx-sdk
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3
pydub, argparse, os, scipy.signal (только если нужен алгоритм кластеризации пауз)🟠 Загружает аудиофайл (.mp3, .wav и др.)🟠 Находит паузы длиннее заданного порога (например, тишина ≥ 2 секунды)🟠 Делит трек на сегменты между этими паузами🟠 Сохраняет каждый сегмент как отдельный файл с порядковым номером🟠 Подходит для подкастов, интервью, лекций — автоматизирует разделение аудио
python split_audio.py --input lecture.mp3 --silence_thresh -40 --min_silence_len 2000 --output segmented/
import os
import argparse
from pydub import AudioSegment
from pydub.silence import detect_silence
def split_on_silence(input_path, silence_thresh=-40, min_silence_len=2000, keep_silence=500, output_dir="segments"):
audio = AudioSegment.from_file(input_path)
os.makedirs(output_dir, exist_ok=True)
silence_ranges = detect_silence(audio, min_silence_len=min_silence_len, silence_thresh=silence_thresh)
silence_ranges = [(start, stop) for start, stop in silence_ranges]
prev_end = 0
count = 1
for start, stop in silence_ranges:
segment = audio[prev_end:start]
segment_name = os.path.join(output_dir, f"segment_{count:03}.mp3")
segment.export(segment_name, format="mp3")
print(f"✅ Saved {segment_name}")
count += 1
prev_end = stop
# last segment
if prev_end < len(audio):
segment = audio[prev_end:]
segment_name = os.path.join(output_dir, f"segment_{count:03}.mp3")
segment.export(segment_name, format="mp3")
print(f"✅ Saved {segment_name}")
def main():
parser = argparse.ArgumentParser(description="Split audio on silence into chapters")
parser.add_argument("--input", required=True, help="Input audio file (mp3/wav/etc.)")
parser.add_argument("--silence_thresh", type=int, default=-40, help="Threshold (dBFS) to detect silence")
parser.add_argument("--min_silence_len", type=int, default=2000, help="Minimum silence length (ms)")
parser.add_argument("--keep_silence", type=int, default=500, help="Silence to leave at edges (ms)")
parser.add_argument("--output", default="segments", help="Directory to save segments")
args = parser.parse_args()
split_on_silence(args.input, args.silence_thresh, args.min_silence_len, args.keep_silence, args.output)
if __name__ == "__main__":
main()
pip install pydub
Также потребуется ffmpeg или avlib — убедись, что установлен!
🟠 Разбивка подкастов, лекций или интервью на главы🟠 Подготовка аудио к конвертации, генерации транскрипта по части🟠 Автоматизация медиа-обработки для подкастеров и создателей контента
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤4👍3🔥1
ЧЕБУРНЕТУ БЫТЬ!🤭
Ниже даю список каналов спецов из сферы кибербеза, которые уже придумали все за тебя:
HACK WARRIOR. – парни уже давно сели на измену и активно постируют контент на тему защиты своих личных данных в интернете, чтобы не сел ты.
secure sector – канал безопасника однажды сильно пострадавшего от халатного отношения к своей интернет-гигиене. Собственно, поэтому и стал безопасником...
INFOSEC LIZARD – твой личный криптонит от любых кибер-угроз в сети.
Я бы не хотел, чтобы в будущем ты пожалел о том, что пролистал этот пост. Оставайся в безопасности.
Медный купол по-немногу накрывает, а ты даже не знаешь как действовать?
Ниже даю список каналов спецов из сферы кибербеза, которые уже придумали все за тебя:
HACK WARRIOR. – парни уже давно сели на измену и активно постируют контент на тему защиты своих личных данных в интернете, чтобы не сел ты.
secure sector – канал безопасника однажды сильно пострадавшего от халатного отношения к своей интернет-гигиене. Собственно, поэтому и стал безопасником...
INFOSEC LIZARD – твой личный криптонит от любых кибер-угроз в сети.
Я бы не хотел, чтобы в будущем ты пожалел о том, что пролистал этот пост. Оставайся в безопасности.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9❤3
NicheCompass🟢 Поддерживает Python 3, пакет опубликован на PyPI: версия 0.3.0 на 7 августа 2025.🟢 Использует фреймворки для графовых данных (например, PyG) и AnnData — удобно, если работаешь с биоинформатикой или анализом клеточных микросред.
pip install nichecompass
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
❗️ Произошёл масштабный слив Apple, Open AI, Microsoft и других западных гигантов
В сеть утекли корпоративные документы для обучения персонала: гайды, инструкции к ИИ, инсайды по грядущим новинкам и разработкам.
Целых 4 терабайта (!) инфы распределили по закрытым каналам. Сохраняй пока доступно:
❖ Гайды по ИИ и инструментам для работы и творчества
❖ Чеклисты, фреймворки, репозитории и куча полезностей
❖ Инсайды по IT-разработкам и новым технологиям
❖ Слитая инфраструктура Apple
❖ Обучения легальному и нелегальному хаккингу
❖ Всё про Python от топов из Microsoft
❖ + бонус:канал с мемами про IT, ИИ и технологии.
👆 Подпишись, скоро поменяем ссылки
В сеть утекли корпоративные документы для обучения персонала: гайды, инструкции к ИИ, инсайды по грядущим новинкам и разработкам.
Целых 4 терабайта (!) инфы распределили по закрытым каналам. Сохраняй пока доступно:
❖ Гайды по ИИ и инструментам для работы и творчества
❖ Чеклисты, фреймворки, репозитории и куча полезностей
❖ Инсайды по IT-разработкам и новым технологиям
❖ Слитая инфраструктура Apple
❖ Обучения легальному и нелегальному хаккингу
❖ Всё про Python от топов из Microsoft
❖ + бонус:
👆 Подпишись, скоро поменяем ссылки
😁10❤1
requests, os, zipfile, возможно GitHub API (через токен) — по описанию.Скрипт, который позволяет скачать архивом все ваши репозитории GitHub (включая приватные, если есть токен), чтобы держать офлайн-копии ваших проектов. Идея: не полагаться полностью на GitHub-хостинг, а иметь локальный архив.
🟢 Получает список репозиториев пользователя через GitHub API, используя токен, если указан.🟢 Под каждый репо создаёт архив (.zip или .tar.gz) или клонирует его.🟢 Сохраняет в указанную папку локально с именем репо и датой.🟢 Может запускаться периодически как бэкап-утилита.
🟢 Собирает все репозитории пользователя (public + приватные)🟢 Скачивает как архив или клонирует, чтобы сохранить копию🟢 Удобна для сохранения резервных копий проектов, особенно если много маленьких хобби-репо🟢 Простая идея, но реально полезная при потере данных или закрытии аккаунта
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Умельцы собрали все эти курсы и выложили их в свой канал - IT Matrix.
Забирай свое направление:
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3❤1
EZPubSub🟢 Работает с Python 3.8+.🟢 Ноль внешних зависимостей — чистый Python.🟢 Поддержка синхронных сигналов и асинхронных событий (async/await) через единый API.🟢 Строгая типизация: сигналы могут быть параметризованы типами данных, которые публикуются и подписываются.🟢 Потоко-безопасность: подписчики могут регистрироваться/отписываться безопасно в многопоточном окружении.
pip install ezpubsub
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
pytesseract (Tesseract OCR обёртка в Python), Pillow, clipboard (или аналог для захвата из буфера), os, sys.import pytesseract
from PIL import Image
import os, sys
def extract_text_from_image(image_path, lang="eng"):
image = Image.open(image_path)
text = pytesseract.image_to_string(image, lang=lang)
return text
if __name__ == "__main__":
folder = sys.argv[1] # папка с изображениями или файл пути
for fname in os.listdir(folder):
if fname.lower().endswith((".jpg", ".png", ".jpeg", ".tiff")):
path = os.path.join(folder, fname)
txt = extract_text_from_image(path, lang="eng")
print(f"=== {fname} ===")
print(txt)
# можно дополнительно: сохранять txt в файл или копировать
🟢 Принимает файл изображения или папку с изображениями🟢 Использует Tesseract OCR через pytesseract для извлечения текста🟢 Поддерживает указание языка OCR и опционально настройку параметров🟢 Выводит текст в консоль, может сохранять в .txt файл или копировать в буфер обмена🟢 Удобно автоматизировать: пакет документов, извлечение текста из сто-снимков, “менеджмент документов”
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤5🔥3
Канал сеньора, где публикуются гигабайты материалов для DevOps-инженеров:
97 ГБ — Linux
48 ГБ — Docker
12 ГБ — Kubernetes
25 ГБ — Redis
81 ГБ — Git
19 ГБ — Jira
29 ГБ — Grafana
Присоединяйтесь: @devops_tg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
psutil, subprocess, argparse, time🟠 Проверяет состояние заданной службы (через psutil.win_service_get)🟠 Если служба не работает — делает попытку перезапуска через sc start🟠 Логирует результат: статус до/после🟠 Можно указать таймаут между проверками и автоматический перезапуск — минималистично и эффективно (stackoverflow.com, gist.github.com)
python service_watchdog.py --service "Spooler" --interval 30
import psutil, subprocess, time, argparse
def check_service(name):
try:
svc = psutil.win_service_get(name).as_dict()
return svc.get('status') == 'running'
except Exception as e:
print(f"Ошибка при проверке службы {name}: {e}")
return False
def restart_service(name):
print(f"Попытка перезапуска службы: {name}")
subprocess.run(['sc', 'start', name], shell=True)
def main(service, interval):
while True:
running = check_service(service)
print(f"[{time.strftime('%Y-%m-%d %H:%M:%S')}] {service} is {'running' if running else 'NOT running'}")
if not running:
restart_service(service)
time.sleep(5)
print(f"Снова проверяю...")
time.sleep(interval)
else:
time.sleep(interval)
if __name__ == "__main__":
parser = argparse.ArgumentParser("Windows Service Watchdog")
parser.add_argument("--service", required=True, help="Name of the Windows service")
parser.add_argument("--interval", type=int, default=60, help="Check interval in seconds")
args = parser.parse_args()
main(args.service, args.interval)
pip install psutil
— psutil нужен для проверки статуса службы. Команда sc используется для запуска, есть в Windows по умолчанию.
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
requests, tqdm, urllib3.Retry, bs4/BeautifulSoup, threading, queue, pathlib и др. # Упрощённый псевдокод
from wbmdownloader import WaybackDownloader
down = WaybackDownloader(
url="http://example.com",
output_folder="output/example.com",
from_date="200703",
to_date="200704",
threads=8
)
down.run()
🟢 Получает список снимков сайта на web.archive.org за указанный диапазон дат.🟢 Скачивает файлы (HTML, изображения, CSS, JS и другие ресурсы) с параллельными потоками (--threads параметр) для ускорения.🟢 Сохраняет файлы в структуре: output/{домен}/{дата}/{файлы} — удобно навигировать по временам.🟢 Поддерживает фильтрацию (например, только HTML), проверку наличия файлов чтобы не перекачивать заново, логирование и рестарт.
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥2
molecule 🟠 Поддержка Docker, Vagrant, Podman, EC2 и других драйверов🟠 Интеграция с Ansible, Testinfra, Goss🟠 Автоматические проверки, линтинг и CI🟠 Подходит для TDD в инфраструктуре
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
PyPDF2, argparse, os🟠 Ищет все файлы .pdf в указанной директории🟠 Объединяет их в порядке сортировки по имени в единственный PDF🟠 Сохраняет итоговое объединение в указанное имя файла🟠 Полезен для сбора статей, отчетов, документов или презентаций
python pdf_merger.py --input-dir ./pdfs --output merged_all.pdf
import os
import argparse
from PyPDF2 import PdfMerger
def merge_pdfs(input_dir, output_file):
merger = PdfMerger()
pdf_files = sorted([
f for f in os.listdir(input_dir)
if f.lower().endswith('.pdf')
])
for pdf in pdf_files:
path = os.path.join(input_dir, pdf)
merger.append(path)
print(f"✅ Appended: {pdf}")
merger.write(output_file)
merger.close()
print(f"📄 Merged into: {output_file}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Bulk PDF Merger")
parser.add_argument('--input-dir', required=True, help='Папка с PDF')
parser.add_argument('--output', required=True, help='Имя итогового PDF')
args = parser.parse_args()
merge_pdfs(args.input_dir, args.output)
pip install PyPDF2
🟠 Компиляция серии отчетов или документов в единый PDF-файл🟠 Автоматизация сборки документации🟠 Удобное решение для подготовки больших PDF из множества файлов
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍4
lesserapi🟢 Совместима с Python 3.🟢 Размер пакета небольшой (~2.5 MB для версии 1.1.20) — удобно для лёгких сервисов без тяжёлого фреймворка.🟢 Может служить быстрым решением для создания API-слоя над вашим кодом: внутри проекта, автоматизации, MVP или в скрипте, где нужен “REST интерфейс” без развёртывания полноценного фреймворка.🟢 Хороший выбор, если хотите написать свой скрипт-сервис, малую веб-службу или внутренняя утилита с доступом по HTTP.
pip install lesserapi
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3👍1
# Импортируется интерфейс конвертера
from py2jn import convert
# Конвертировать скрипт в ноутбук
convert(
input_path="script.py",
output_path="script_converted.ipynb",
split_markers=True
)
🟢 Читает Python-скрипт (.py)🟢 Находит многострочные строки (тройные кавычки) и превращает их в Markdown-ячейки🟢 Остальной код разбивает и вставляет как код-ячейки🟢 Сохраняет конечный файл .ipynb, который сразу можно открыть в Jupyter / Colab🟢 Упрощает превращение рабочих скриптов в учебные ноутбуки или демонстрации
#скрипты
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3