main.py
6.9 KB
Работает на Pyrofork. Выводит в консоль количество существующих подарков, баланс звезд Вашего аккаунта, обновляется раз в 300 секунд (ставьте КД меньше, около минуты). Не забудьте в начале свои API HASH и API ID указать.
pip install pyrofork
Видел, в комментариях часто такое решение упоминали - держите.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯20😁5❤3😢2
Для работы использовал FFMPEG.
Как легкий пример для поста выше.
Как легкий пример для поста выше.
import os
import ffmpeg
class VideoToGifConverter:
def __init__(self, source_dir="video", target_dir="gif", frame_rate=2):
self.source_dir = source_dir
self.target_dir = target_dir
self.frame_rate = frame_rate
os.makedirs(self.source_dir, exist_ok=True)
os.makedirs(self.target_dir, exist_ok=True)
def get_video_files(self):
return [
file_name
for file_name in os.listdir(self.source_dir)
if file_name.lower().endswith(".mp4")
]
def convert_videos_to_gif(self):
video_files = self.get_video_files()
for video_file in video_files:
base_name = os.path.splitext(video_file)[0]
gif_file_name = base_name + ".gif"
input_path = os.path.join(self.source_dir, video_file)
output_path = os.path.join(self.target_dir, gif_file_name)
stream = ffmpeg.input(input_path)
stream = stream.filter("fps", fps=self.frame_rate)
stream = ffmpeg.output(stream, output_path)
ffmpeg.run(stream)
def main():
converter = VideoToGifConverter(source_dir="video", target_dir="gif", frame_rate=2)
converter.convert_videos_to_gif()
if __name__ == "__main__":
main()
🤬16👍3❤2💋1😨1
Сегодня о классической связке, которая лежит в основе многих крутых проектов: Python и MySQL.
🤔 Как они "дружат?"
Python "общается" с базами данных MySQL с помощью специальных библиотек-коннекторов. Самые популярные — mysql-connector-python (официальный от Oracle) и PyMySQL.
1. Веб-приложения на Django & Flask: Это самая частая сфера применения. Интернет-магазины, блоги, CRM-системы, социальные сети — везде, где нужно надежно хранить данные о пользователях, товарах или постах, MySQL отлично справляется с ролью хранилища. Django и Flask имеют прекрасную интеграцию с этой СУБД.
2. Аналитика и ETL-процессы: Представьте, что вы парсите данные с сайтов. Python-скрипт собирает информацию, обрабатывает ее и аккуратно записывает в таблицы MySQL. Позже эти данные можно легко анализировать и строить отчеты.
3. Телеграм-боты: Ваш бот должен помнить пользователей, их настройки или историю сообщений? MySQL — отличный и надежный выбор для хранения этой информации.
4. Системы мониторинга: Скрипты, которые следят за состоянием серверов или приложений, могут записывать логи и метрики в базу MySQL для последующего анализа.
Python + MySQL — это надежное и масштабируемое решение для огромного спектра задач.
P.S. я вижу сообщения от ВСЕХ в боте, не нужно писать по несколько раз. Я закрываю вопрос с 2-3 людьми, потом иду дальше.
Если я начну отвечать всем и сразу - никто решение своей проблемы не получит, а я к тому, что сейчас кушаю золофт, еще пару таблеток у психиатра выпишу. До всех очередь дойдет, компенсирую работой/деньгами.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬7❤6
Из интереса и ради практики делал.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬37🔥13😁3👍1
🚀 Скоро выложу вам ReelsMaker свой (собранный в .exe), с фикшенными багами, редизайном, возможность качать видосы с YouTube для обработки прямо в программе, поддежкой кодеков для обработки через видеокарты AMD/nVidia.
Также добавлена область предпросмотра, чтобы вы могли видеть, какое видео у вас получится в итоге, со всеми эффектами, обрезками, наложенным баннером и далее.
Обновил и темную, и светлую тему - теперь не колхоз.
Еще будет "частная версия", с авто-постингом по расписанию в YouTube, YT-reels, TikTok.
Также добавлена область предпросмотра, чтобы вы могли видеть, какое видео у вас получится в итоге, со всеми эффектами, обрезками, наложенным баннером и далее.
Обновил и темную, и светлую тему - теперь не колхоз.
Еще будет "частная версия", с авто-постингом по расписанию в YouTube, YT-reels, TikTok.
👏35🔥7👍6❤🔥5😡4❤2⚡1
import asyncio
from telegram import Bot
async def get_telegram_gifts(bot_token):
bot = Bot(token=bot_token)
gifts = await bot.get_available_gifts()
for gift in gifts.gifts:
print(f"ID подарка: {gift.id}, Эмодзи: {gift.sticker.emoji}, Размер файла стикера: {gift.sticker.file_size}, Стоимость: {gift.star_count}")
# Замените на токен бота!
bot_token = "ТОКЕН_АДМИН_КРАСАВЧИК"
asyncio.run(get_telegram_gifts(bot_token))
pip install python-telegram-bot
P.S. пост со старого канала, но видел в обсуждениях, кому-то нужно было.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🤬4🤔1😢1😭1🦄1😡1
import requests
import cv2
import os
from insightface.app import FaceAnalysis
from insightface.model_zoo import get_model
app = FaceAnalysis(name='buffalo_l')
app.prepare(ctx_id=0, det_size=(640, 640))
def download_model(url, model_path):
if not os.path.exists(model_path):
print(f"Загрузка модели с {url}...")
response = requests.get(url)
response.raise_for_status()
with open(model_path, 'wb') as file:
file.write(response.content)
print(f"Модель сохранена как {model_path}")
model_url = "https://huggingface.co/ezioruan/inswapper_128.onnx/resolve/main/inswapper_128.onnx?download=true"
model_path = "inswapper_128.onnx"
download_model(model_url, model_path)
swapper = get_model(model_path)
def swap_face_between_images(source_image_path, target_image_path, output_image_path):
source_img = cv2.imread(source_image_path)
if source_img is None:
print(f"Ошибка: Не удалось загрузить изображение-источник по пути: {source_image_path}")
return
target_img = cv2.imread(target_image_path)
if target_img is None:
print(f"Ошибка: Не удалось загрузить изображение-цель по пути: {target_image_path}")
return
print("Анализ лиц на изображении-источнике...")
source_faces = app.get(source_img)
if not source_faces:
print("Ошибка: Лица на изображении-источнике не найдены.")
return
source_face = source_faces[0]
print("Анализ лиц на изображении-цели...")
target_faces = app.get(target_img)
if not target_faces:
print("Ошибка: Лица на изображении-цели не найдены.")
return
target_face_to_replace = target_faces[0]
print("Выполнение замены лица...")
result_img = target_img.copy()
result_img = swapper.get(result_img, target_face_to_replace, source_face)
cv2.imwrite(output_image_path, result_img)
print(f"Изображение с замененным лицом сохранено как: {output_image_path}")
if __name__ == "__main__":
path_to_source_photo = 'rojers.jpg'
path_to_target_photo = 'stark.jpg'
output_filename = 'swapped_result.png'
if not os.path.exists(path_to_source_photo):
print(
f"Файл источника не найден: {path_to_source_photo}. Пожалуйста, создайте его или укажите правильный путь.")
elif not os.path.exists(path_to_target_photo):
print(f"Файл цели не найден: {path_to_target_photo}. Пожалуйста, создайте его или укажите правильный путь.")
else:
swap_face_between_images(path_to_source_photo, path_to_target_photo, output_filename)
requirements.txt:
opencv-python
onnxruntime
insightface
Чем лучше качество исходных фоток, тем лучше будет результат.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15❤4👍4❤🔥1😭1
Скачать проект можно тут.
🖥 Проект представляет собой погодного бота, реализованного с использованием aiogram и APScheduler. Он получает настройки каждого пользователя (город и время уведомлений) из SQLite, запрашивает данные о погоде через OpenWeather API и отправляет их по расписанию или по запросу.
Пользовательские настройки сохраняются индивидуально, что позволяет каждому получать актуальную информацию о погоде в своем городе.
1) OpenWeather API - бесплатный, вроде как 1000 запросов в сутки.
2) Погоду можно получить состоянием на сейчас/на ближайшие 5 дней.
3) Город флексится.
4) По заданному времени будет давать актуальную погоду в указанном городе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🤪4😁3🔥1🤣1😭1
two_claps_open-main.rar
7.4 KB
В проекте две реализации:
- открытие ДОТЫ2;
- запуск голосового ассистена Gemini (нужен API-ключ).
Забавно, можно найти применение.
⚙️ Как это работает:
В основе всего лежит технология обнаружения хлопков в реальном времени. Этот процесс реализован как в Python-скриптах, так и в прототипах на MATLAB:
- захват аудио: скрипты непрерывно слушают аудиопоток с микрофона с частотой дискретизации 44100 Гц. Аудио делится на короткие фрагменты (фреймы) длительностью 20 мс;
- фильтрация: хлопок имеет характерный частотный спектр. Чтобы отсеять посторонние шумы (голос, музыку, звуки улицы), каждый фрейм проходит через полосовой фильтр Баттерворта. Фильтр пропускает только частоты в диапазоне от 1400 Гц до 1800 Гц. К фреймам применяется оконная функция Ханна для сглаживания и уменьшения спектральных искажений;
- детекция пиков: в отфильтрованном сигнале скрипт ищет резкие всплески амплитуды (пики), которые превышают заданный порог (например, 0.2);
- защита от ложных срабатываний: Чтобы один громкий хлопок не был засчитан как два, установлена минимальная задержка между обнаруженными пиками — 0.2 секунды.
Please open Telegram to view this post
VIEW IN TELEGRAM
😡29❤8🔥2😭2
Скачать проект можно тут.
🖥 Проект представляет собой погодного бота, реализованного с использованием aiogram и APScheduler. Он получает настройки каждого пользователя (город и время уведомлений) из SQLite, запрашивает данные о погоде через OpenWeather API и отправляет их по расписанию или по запросу.
Пользовательские настройки сохраняются индивидуально, что позволяет каждому получать актуальную информацию о погоде в своем городе.
1) OpenWeather API - бесплатный, вроде как 1000 запросов в сутки.
2) Погоду можно получить состоянием на сейчас/на ближайшие 5 дней.
3) Город флексится.
4) По заданному времени будет давать актуальную погоду в указанном городе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😡21🤬9💔6❤1🤣1😭1
from transformers import BlipProcessor, BlipForConditionalGeneration
import torch
from PIL import Image
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")
image_path = "img_4.jpg"
image = Image.open(image_path)
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
output = model.generate(**inputs)
description = processor.decode(output[0], skip_special_tokens=True)
print("Image description:", description)
requirements.txt:
transformers
torch
Pillow
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬18❤4😡3💔1
🚀 Еще одна игра: Angry Birds
Репозиторий
Отличный пример структурированного кода, готового к масштабированию, очень наглядно используется ООП, а именно эффективно применяются классы и наследование для создания различных типов птиц, свиней и блоков.
Конфигурации уровней в JSON-файлах - также крутое решение для простой игры и добавления новых уровней.
P.S. понятно, что игры на Питончике - это бред, но вот такой вот ручной порт известных проектов очень полезен для ознакомления.
Ура, канал снова про код :D
Репозиторий
pip install pygame pymunk
Отличный пример структурированного кода, готового к масштабированию, очень наглядно используется ООП, а именно эффективно применяются классы и наследование для создания различных типов птиц, свиней и блоков.
pymunk здесь отвечает за физику. Логика взаимодействия с pymunk вынесена в отдельный класс Physics. Корректно обрабатываются преобразования координат между Pygame и Pymunk (to_pygame, to_pymunk). Настроены обработчики столкновений (collision handlers), которые отвечают за игровую логику (нанесение урона, изменение состояния объектов).
Конфигурации уровней в JSON-файлах - также крутое решение для простой игры и добавления новых уровней.
P.S. понятно, что игры на Питончике - это бред, но вот такой вот ручной порт известных проектов очень полезен для ознакомления.
❤17🤬7🔥1
Часто встречаю проекты, от заказчиков, которые стоит доработать, или просто на GitHub, где в requirements указывается просто библиотека, без конкретной версии. И часто из-за этого у конечного пользователя не получается запустить проект. Почему так?
Дело в том, что разные версии библиотек могут иметь разный синтаксис. Например, популярный aiogram, который используют для написания асинхронных телеграм-ботов, во всех версиях 2. имеет совершенно иные методы/функции, нежели в версии 3. И даже внутри одного поколения, к примеру, aiogram 3.7 и aiogram 3.18 - есть значительные отличия. К чему это ведет? Проект написанный на какой-то конкретной, актуальной версии библиотеки, может просто не "стартовать" у пользователя уже через полгода. Для неопытного/начинающего разработчика - это беда.
То есть, мы определили, что зависимости вида:
requests
aiogram
pillow
Это нормально в момент, когда вы разрабатываете проект, знакомитесь с актуальными библиотеками и используете методы/функции, которые представлены в них. Но если вы хотите передавать/распространять/выкладывать свой код в общий доступ, рекомендую выучить команду:
pip freeze > requirements.txt
Есть и более чистый вариант через pip install pip-tools. Что нужно делать?:
1) Создайте (или активируйте) venv.
2) Установите инструмент:
pip install pip-tools
3) Напишите верхнеуровневые пакеты в requirements.in (те, которые без версий!).
4) Скомпилируйте замороженный список:
pip-compile requirements.in -o requirements.txt
- "--upgrade" - обновить всё до свежих допустимых версий
- "-P httpx" - обновить только httpx
- " --generate-hashes" - добавить SHA256-хеши для безопасности
5) После этого, выполните установку пакетов из сформированного requirements.txt:
pip-sync requirements.txt
pip-sync удалит лишние пакеты из venv и установит ровно те, что в файле.
Таким образом можно и разделять Prod и Dev инструменты, чтобы не тащить лишнее в продакшн. Создаете requirements.in - это прод зависимости и requirements-dev.in - инструменты для разработки. Типичное содержание такого файла:
-r requirements.in
pytest
ruff
mypy
То есть, включаем тесты и т.д., а также базовый requirements.in. Дальше компилируем и получаем два файла requirements.txt и requirements-dev.txt, с актуальными версиями, для разработчика и для продакшена:
pip-compile requirements.in -o requirements.txt
pip-compile requirements-dev.in -o requirements-dev.txt
pip-sync requirements.txt requirements-dev.txt
Не рекомендую, кстати, смешивать prod и dev в один файл — тяжёлые и нестабильные билды получаются...
Please open Telegram to view this post
VIEW IN TELEGRAM
😡10❤2👍2
Часто встречаю проекты, от заказчиков, которые стоит доработать, или просто на GitHub, где в requirements указывается просто библиотека, без конкретной версии. И часто из-за этого у конечного пользователя не получается запустить проект. Почему так?
Дело в том, что разные версии библиотек могут иметь разный синтаксис. Например, популярный aiogram, который используют для написания асинхронных телеграм-ботов, во всех версиях 2. имеет совершенно иные методы/функции, нежели в версии 3. И даже внутри одного поколения, к примеру, aiogram 3.7 и aiogram 3.18 - есть значительные отличия. К чему это ведет? Проект написанный на какой-то конкретной, актуальной версии библиотеки, может просто не "стартовать" у пользователя уже через полгода. Для неопытного/начинающего разработчика - это беда.
То есть, мы определили, что зависимости вида:
requests
aiogram
pillow
Это нормально в момент, когда вы разрабатываете проект, знакомитесь с актуальными библиотеками и используете методы/функции, которые представлены в них. Но если вы хотите передавать/распространять/выкладывать свой код в общий доступ, рекомендую выучить команду:
pip freeze > requirements.txt
Есть и более чистый вариант через pip install pip-tools. Что нужно делать?:
1) Создайте (или активируйте) venv.
2) Установите инструмент:
pip install pip-tools
3) Напишите верхнеуровневые пакеты в requirements.in (те, которые без версий!).
4) Скомпилируйте замороженный список:
pip-compile requirements.in -o requirements.txt
- "--upgrade" - обновить всё до свежих допустимых версий
- "-P httpx" - обновить только httpx
- " --generate-hashes" - добавить SHA256-хеши для безопасности
5) После этого, выполните установку пакетов из сформированного requirements.txt:
pip-sync requirements.txt
pip-sync удалит лишние пакеты из venv и установит ровно те, что в файле.
Таким образом можно и разделять Prod и Dev инструменты, чтобы не тащить лишнее в продакшн. Создаете requirements.in - это прод зависимости и requirements-dev.in - инструменты для разработки. Типичное содержание такого файла:
-r requirements.in
pytest
ruff
mypy
То есть, включаем тесты и т.д., а также базовый requirements.in. Дальше компилируем и получаем два файла requirements.txt и requirements-dev.txt, с актуальными версиями, для разработчика и для продакшена:
pip-compile requirements.in -o requirements.txt
pip-compile requirements-dev.in -o requirements-dev.txt
pip-sync requirements.txt requirements-dev.txt
Не рекомендую, кстати, смешивать prod и dev в один файл — тяжёлые и нестабильные билды получаются...
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣15🤬3🤯1💔1🙊1
from transformers import BlipProcessor, BlipForConditionalGeneration
import torch
from PIL import Image
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")
image_path = "img_4.jpg"
image = Image.open(image_path)
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
output = model.generate(**inputs)
description = processor.decode(output[0], skip_special_tokens=True)
print("Image description:", description)
requirements.txt:
transformers
torch
Pillow
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬25👏9😐7❤1
Часто встречаю проекты, от заказчиков, которые стоит доработать, или просто на GitHub, где в requirements указывается просто библиотека, без конкретной версии. И часто из-за этого у конечного пользователя не получается запустить проект. Почему так?
Дело в том, что разные версии библиотек могут иметь разный синтаксис. Например, популярный aiogram, который используют для написания асинхронных телеграм-ботов, во всех версиях 2. имеет совершенно иные методы/функции, нежели в версии 3. И даже внутри одного поколения, к примеру, aiogram 3.7 и aiogram 3.18 - есть значительные отличия. К чему это ведет? Проект написанный на какой-то конкретной, актуальной версии библиотеки, может просто не "стартовать" у пользователя уже через полгода. Для неопытного/начинающего разработчика - это беда.
То есть, мы определили, что зависимости вида:
requests
aiogram
pillow
Это нормально в момент, когда вы разрабатываете проект, знакомитесь с актуальными библиотеками и используете методы/функции, которые представлены в них. Но если вы хотите передавать/распространять/выкладывать свой код в общий доступ, рекомендую выучить команду:
pip freeze > requirements.txt
Есть и более чистый вариант через pip install pip-tools. Что нужно делать?:
1) Создайте (или активируйте) venv.
2) Установите инструмент:
pip install pip-tools
3) Напишите верхнеуровневые пакеты в requirements.in (те, которые без версий!).
4) Скомпилируйте замороженный список:
pip-compile requirements.in -o requirements.txt
- "--upgrade" - обновить всё до свежих допустимых версий
- "-P httpx" - обновить только httpx
- " --generate-hashes" - добавить SHA256-хеши для безопасности
5) После этого, выполните установку пакетов из сформированного requirements.txt:
pip-sync requirements.txt
pip-sync удалит лишние пакеты из venv и установит ровно те, что в файле.
Таким образом можно и разделять Prod и Dev инструменты, чтобы не тащить лишнее в продакшн. Создаете requirements.in - это прод зависимости и requirements-dev.in - инструменты для разработки. Типичное содержание такого файла:
-r requirements.in
pytest
ruff
mypy
То есть, включаем тесты и т.д., а также базовый requirements.in. Дальше компилируем и получаем два файла requirements.txt и requirements-dev.txt, с актуальными версиями, для разработчика и для продакшена:
pip-compile requirements.in -o requirements.txt
pip-compile requirements-dev.in -o requirements-dev.txt
pip-sync requirements.txt requirements-dev.txt
Не рекомендую, кстати, смешивать prod и dev в один файл — тяжёлые и нестабильные билды получаются...
Please open Telegram to view this post
VIEW IN TELEGRAM
🤬24❤3👍1
Для работы использовал FFMPEG.
Как легкий пример для поста выше.
Как легкий пример для поста выше.
import os
import ffmpeg
class VideoToGifConverter:
def __init__(self, source_dir="video", target_dir="gif", frame_rate=2):
self.source_dir = source_dir
self.target_dir = target_dir
self.frame_rate = frame_rate
os.makedirs(self.source_dir, exist_ok=True)
os.makedirs(self.target_dir, exist_ok=True)
def get_video_files(self):
return [
file_name
for file_name in os.listdir(self.source_dir)
if file_name.lower().endswith(".mp4")
]
def convert_videos_to_gif(self):
video_files = self.get_video_files()
for video_file in video_files:
base_name = os.path.splitext(video_file)[0]
gif_file_name = base_name + ".gif"
input_path = os.path.join(self.source_dir, video_file)
output_path = os.path.join(self.target_dir, gif_file_name)
stream = ffmpeg.input(input_path)
stream = stream.filter("fps", fps=self.frame_rate)
stream = ffmpeg.output(stream, output_path)
ffmpeg.run(stream)
def main():
converter = VideoToGifConverter(source_dir="video", target_dir="gif", frame_rate=2)
converter.convert_videos_to_gif()
if __name__ == "__main__":
main()
🤬25❤2🐳1🎃1💘1🙉1