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

Ваши предложения📝 @cmd_dark @CMD_Vega
Download Telegram
🚀 Полезные библиотеки Python

💾 PyWebDAV3

📌 Библиотека Python для взаимодействия с серверами WebDAV, что позволяет управлять файлами и папками на удалённых серверах через HTTP. WebDAV часто используется для облачного хранения, управления файлами на серверах и совместного использования данными.

Ключевые возможности:

1. Клиент WebDAV:

- Загрузка, скачивание, удаление файлов.

- Создание и удаление каталогов.

- Получение метаинформации о файлах (размер, дата изменения и т. д.).

2. Сервер WebDAV:

- Настройка собственного WebDAV-сервера для управления файлами.

3. Поддержка аутентификации:

- Поддержка HTTP Basic Auth для подключения к защищённым серверам.

4. Кроссплатформенность:

-Работает на всех платформах, где поддерживается Python.

⚙️ Установка 👇👇👇

pip install PyWebDAV3


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
7👍4
YouTube-Telegram-Notification-Bot-main.zip
18.1 KB
📌 Скрипт мониторинг YouTube каналов

💻  ЯП:  Python 3.11+🐍
💾  Модули: requests , pyTelegramBotAPI
📂  База данных: -

📌 Скрипт Telegram бот который отслеживает каналы YouTube и отправляет мгновенные уведомления в группы Telegram при загрузке новых видео. Идеально подходит для менеджеров сообществ и создателей контента, которые хотят держать свою аудиторию в курсе событий.

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
👍152
📌 Отслеживание резких изменений цены токена(price alert) используя публичное API Bybit👨‍💻
import requests
import time

# Константы
BASE_URL = "https://api.bybit.com/v5/market/tickers"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка
CHECK_INTERVAL = 10 # Интервал проверки цены (в секундах)
THRESHOLD_PERCENT = 1 # Порог изменения цены (в процентах)

def get_current_price():
"""Получить текущую цену с API Bybit"""
params = {
"category": CATEGORY,
"symbol": SYMBOL
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
data = response.json()["result"]["list"][0]
return float(data["lastPrice"])
else:
raise Exception(f"Ошибка API: {response.status_code}, {response.text}")

def main():
print(f"Начинаем отслеживать резкие изменения цены для {SYMBOL}...")
previous_price = get_current_price()
print(f"Начальная цена: {previous_price}\n")

while True:
try:
current_price = get_current_price()
price_change = ((current_price - previous_price) / previous_price) * 100

# Если изменение цены превышает порог
if abs(price_change) >= THRESHOLD_PERCENT:
print(f"🔔 Резкое изменение цены!")
print(f"Старая цена: {previous_price}, Новая цена: {current_price}")
print(f"Изменение: {price_change:.2f}%\n")
previous_price = current_price # Обновляем предыдущую цену

time.sleep(CHECK_INTERVAL)

except Exception as e:
print(f"Ошибка: {e}")
time.sleep(CHECK_INTERVAL)

if __name__ == "__main__":
main()

📌 Подпишись  Python_Scripts❗️
8🔥5👍4
🚀 Полезные библиотеки Python

💾 WeasyPrint

📌 Библиотека Python, которая преобразует HTML и CSS в PDF-документы или изображения.

Позволяет создавать красивые отчёты, инвойсы, письма и другие документы, которые можно стилизовать с помощью стандартных веб-технологий.

Ключевые возможности:

1. Конвертация HTML и CSS в PDF:
Полная поддержка HTML5 и большинства CSS3 (включая шрифты, цвета, таблицы и многое другое).

2. Создание изображений:
Поддерживает экспорт документа в формате PNG.

3. Поддержка сложных макетов:
Работа с таблицами, вложенными элементами и несколькими страницами.

4. Поддержка Unicode и RTL-текста:
Работает с различными языками, включая те, которые читаются справа налево (например, арабский или иврит).

5. Интеграция с Python-программами:
Можно динамически генерировать PDF-документы из данных.

⚙️ Установка 👇👇👇

pip install weasyprint


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍102
TGgifts-buyer-master.zip
32.2 KB
📌 Скрипт автоматизированной отправки подарков

💻  ЯП:  Python 3.11+🐍
💾  Модули: pyrofork, asyncio
📂  База данных: -

📌 Скрипт продвинутый Telegram юзербот для автоматизированной отправки подарков с динамическими ценовыми диапазонами и саплаем. Поддерживает как лимитированные, так и обычные подарки с настраиваемыми правилами отправки.

Возможности:

- Динамическое количество подарков на основе ценовых диапазонов;
- Мониторинг лимитов саплая;
- Поддержка нескольких языков (EN/RU/UK);
- Автоматическое обнаружение подарков;
- Настраиваемые задержки и интервалы;
- Поддержка нескольких получателей;
-Фильтрация по цене.

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
🔥8👍31👏1
📌Поиск уровня с максимальным объёмом в стакане используется публичное API Bybit👨‍💻
import requests

# Константы
BASE_URL = "https://api.bybit.com/v5/market/orderbook"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка

def get_order_book():
"""Получить данные стакана (Order Book)"""
params = {
"category": CATEGORY,
"symbol": SYMBOL
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
return response.json()["result"] # Данные стакана
else:
raise Exception(f"Ошибка API: {response.status_code}, {response.text}")

def find_max_volume_levels(order_book):
"""Найти уровни с максимальными объёмами для Bid и Ask"""
bids = order_book["b"] # Покупки (Bid)
asks = order_book["a"] # Продажи (Ask)

# Находим цену с максимальным объёмом
max_bid = max(bids, key=lambda x: float(x[1])) # x[1] — объём
max_ask = max(asks, key=lambda x: float(x[1])) # x[1] — объём

return max_bid, max_ask

def main():
try:
print(f"Анализ стакана для {SYMBOL}...\n")

# Получаем данные стакана
order_book = get_order_book()

# Находим уровни с максимальными объёмами
max_bid, max_ask = find_max_volume_levels(order_book)

# Выводим результаты
print("Максимальный объём на покупку (Bid):")
print(f"Цена: {max_bid[0]}, Объём: {max_bid[1]}")
print("\nМаксимальный объём на продажу (Ask):")
print(f"Цена: {max_ask[0]}, Объём: {max_ask[1]}")

except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
main()

📌 Подпишись  Python_Scripts❗️
🔥11👍31
🚀 Полезные библиотеки Python

💾 Hypothesis

📌 Библиотека Python, для автоматизации тестирования кода. Она генерирует тестовые случаи автоматически на основе заданных условий (свойств) и проверяет, выполняются ли они. Этот подход позволяет находить сложные и редкие ошибки, которые могли бы быть упущены в обычных тестах.

Ключевые возможности:

1. Генерация входных данных:

Поддержка множества встроенных стратегий для создания тестовых данных (строки, числа, списки, словари и т.д.).

Возможность создания пользовательских стратегий.

2. Автоматическое упрощение:

Если тест провалился, Hypothesis пытается упростить входные данные, чтобы локализовать причину ошибки.

3. Поддержка сложных типов данных:

Генерация данных для пользовательских объектов, классов, JSON-структур и многого другого.

4. Интеграция с популярными фреймворками:

Работает с pytest, unittest и другими.

5. Детерминированное тестирование:

Повторяемость тестов благодаря фиксированным "seed"-значениям.

⚙️ Установка 👇👇👇

pip install hypothesis


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍54
av_kufar_bot-main.zip
14.7 KB
📌 Скрипт парсер

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram, bs4, lxml
📂  База данных: -

📌 Скрипт для парсинга Kufar.by и Av.by в оболочке Telegram бота.

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
7👍4
📌Вычисление индекса волатильности токена на основе исторических данных используется публичное API Bybit👨‍💻
import requests
import pandas as pd
import math

# Константы
BASE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка
INTERVAL = "60" # Интервал свечей (60 минут)
LIMIT = 24 # Количество свечей (24 часа = 24 свечи по 1 часу)

def get_historical_data():
"""Получить исторические данные (Kline)"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"interval": INTERVAL,
"limit": LIMIT
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
return response.json()["result"]["list"]
else:
raise Exception(f"Ошибка API: {response.status_code}, {response.text}")

def calculate_volatility(klines):
"""Вычислить волатильность на основе исторических данных"""
data = [float(kline[4]) for kline in klines] # Закрытые цены (Close)
df = pd.DataFrame(data, columns=["close"])

# Вычисляем логарифмическую доходность
df["log_return"] = df["close"].apply(math.log).diff()

# Рассчитываем стандартное отклонение (волатильность)
volatility = df["log_return"].std() * math.sqrt(len(df))
return volatility

def main():
try:
print(f"Вычисляем волатильность для {SYMBOL} за последние {LIMIT} часов...\n")

# Получаем исторические данные
klines = get_historical_data()

# Вычисляем волатильность
volatility = calculate_volatility(klines)

# Выводим результат
print(f"Волатильность за {LIMIT} часов: {volatility:.2%}")
except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
main()

📌 Подпишись  Python_Scripts❗️
🔥14👍43
🚀 Полезные библиотеки Python

💾 Poetry-dynamic-versioning

📌 Библиотека Python, которая автоматически синхронизирует версию вашего проекта с Git-тегами.

Позволяет избегать ручного изменения версии в файле pyproject.toml и упрощает управление версиями в процессе разработки и релизов.

Ключевые возможности:

1. Синхронизация версий с Git-тегами:
Версия проекта в pyproject.toml автоматически обновляется на основе текущего Git-тега.

2. Поддержка автоматического версионирования:
Генерация промежуточных версий, например 1.0.1-dev, для незавершённых изменений.

3. Простая интеграция:
Лёгкая настройка без необходимости вручную управлять версиями.

4. Совместимость с Poetry:
Библиотека легко интегрируется в существующие проекты, использующие Poetry.

⚙️ Установка 👇👇👇

pip install poetry-dynamic-versioning


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍84🔥4
TG-VK-bot-integration-master.zip
80.4 KB
📌 Скрипт бот ВК для оперативного реагирования на заявки клиентов

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram, telebot, vk-api
📂  База данных: aiosqlite

📌 Скрипт автоматизирует процесс обработки сообщения от клиентов, перенеся часть задач в Telegram. Это позволяет администраторам быстрее реагировать на запросы, управлять диалогами и обеспечивать высокий уровень обслуживания.
Автоматическая отправка сообщений от клиентов в чат-бота VK.

- Уведомления для администраторов в Telegram о новых сообщениях.
- Возможность модерации и управления сообщениями в режиме реального времени.
- Легко настраиваемый интерфейс и возможность расширения функционала.

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram #vk

📌
Подпишись  Python_Scripts❗️
🔥62
🔍 Google — В С Ё ?

В 2024 году невозможно найти что-то полезное, просто загуглив: выдача поиска забита мусором из ChatGPT, а все годные материалы не попадают в топы поиска.

Хорошо, что есть База Знаний — сеть каналов, в которой команда опытных айтишников постит лучшее из мира IT. Для вашего удобства всё отсортировано по категориям:

👩‍💻 Все языки: @main_it_baza

🖥 Python: @python_baza

👩‍💻 Frontend: @frontend_baza

👩‍💻 Backend: @backend_baza

🎨 Дизайн: @design_baza

📊 Архив: @archive_baza

🕔 Ссылки будут активны ещё 48 часов, успейте сохранить себе, чтобы не потерять
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤩42😁2
📌Расчёт среднего истинного диапазона (ATR). ATR — это индикатор, который помогает измерять волатильность рынка. Он часто используется для установки уровней стоп-лоссов или определения трендов.
Используется публичное API Bybit👨‍💻
import requests
import pandas as pd

# Константы
BASE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка
INTERVAL = "60" # Интервал свечей (60 минут)
LIMIT = 14 # Количество свечей для ATR (по умолчанию 14 периодов)

def get_historical_data():
"""Получить исторические данные (Kline)"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"interval": INTERVAL,
"limit": LIMIT + 1 # Нужно на 1 свечу больше для расчётов
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
return response.json()["result"]["list"]
else:
raise Exception(f"Ошибка API: {response.status_code}, {response.text}")

def calculate_atr(klines):
"""Вычислить ATR (средний истинный диапазон)"""
# Преобразуем данные в DataFrame
data = [
{"high": float(kline[2]), "low": float(kline[3]), "close": float(kline[4])}
for kline in klines
]
df = pd.DataFrame(data)

# Вычисляем истинный диапазон (TR)
df["previous_close"] = df["close"].shift(1)
df["tr"] = df[["high", "previous_close"]].max(axis=1) - df[["low", "previous_close"]].min(axis=1)

# Рассчитываем ATR как скользящее среднее истинного диапазона
df["atr"] = df["tr"].rolling(window=LIMIT).mean()

# Возвращаем последнее значение ATR
return df["atr"].iloc[-1]

def main():
try:
print(f"Вычисляем ATR для {SYMBOL} за последние {LIMIT} периодов...\n")

# Получаем исторические данные
klines = get_historical_data()

# Вычисляем ATR
atr = calculate_atr(klines)

# Выводим результат
print(f"Средний истинный диапазон (ATR) за {LIMIT} периодов: {atr:.2f}")
except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
main()

📌 Подпишись  Python_Scripts❗️
👍9🔥63
🚀 Полезные библиотеки Python

💾 FluPy

📌 Библиотека Python, для функционального программирования, которая предоставляет мощный инструмент для работы с коллекциями данных. Она позволяет выполнять операции над последовательностями данных (например, списками, словарями) с использованием функционального подхода: через цепочки методов, упрощающие обработку данных.

Ключевые возможности:

1. Чистый функциональный стиль:
Использование методов map, filter, reduce, и других, для работы с последовательностями данных.

2. Ленивая обработка данных:
Операции выполняются только по требованию, что экономит ресурсы для больших объёмов данных.

3. Простота использования:
Работает с любыми итерабельными объектами: списками, словарями, генераторами и т. д.

4. Поддержка цепочек вызовов:
Позволяет комбинировать несколько операций в одной строке, делая код более читаемым и компактным.

⚙️ Установка 👇👇👇

pip install flupy


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍103
topup_helper_tg_bot-main.zip
4.1 MB
📌 Скрипт для  помощи в пополнении любого EVM кошелька, если у пользователя нет своего личного кошелька или биржи

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram, requests,web3
📂  База данных: sqlalchemy

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

Пользователи могут пополнить свой баланс внутри бота через Telegram Stars. Stars конвертируются в рубли на баланс, независимо от того, в какой валюте были куплены.Рубли в дальнейшем конвертируются в токены по курсу Binance.

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
👍7👏5🎉42
📌Проверка аномально больших объемов торговли для заданного токена.
Используется публичное API Bybit👨‍💻

import requests
import time

# Константы
BASE_URL = "https://api.bybit.com/v5/market/kline"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "spot" # Тип рынка
INTERVAL = "60" # Интервал свечей (60 минут)
LIMIT = 50 # Количество свечей для анализа (N периодов)
THRESHOLD_MULTIPLIER = 2 # Умножитель для определения аномального объёма

def get_historical_volumes():
"""Получить исторические объёмы (Kline)"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"interval": INTERVAL,
"limit": LIMIT
}
response = requests.get(BASE_URL, params=params)
if response.status_code == 200:
return [float(kline[5]) for kline in response.json()["result"]["list"]] # Объём сделок
else:
raise Exception(f"Ошибка API: {response.status_code}, {response.text}")

def detect_anomalous_volume(volumes):
"""Определить, есть ли аномальный объём"""
avg_volume = sum(volumes[:-1]) / (len(volumes) - 1) # Средний объём без последнего значения
last_volume = volumes[-1] # Последний объём
if last_volume > avg_volume * THRESHOLD_MULTIPLIER:
return True, avg_volume, last_volume
return False, avg_volume, last_volume

def main():
try:
print(f"Начинаем мониторинг объёмов для {SYMBOL}...\n")

while True:
# Получаем исторические данные объёмов
volumes = get_historical_volumes()

# Проверяем на наличие аномального объёма
is_anomalous, avg_volume, last_volume = detect_anomalous_volume(volumes)

if is_anomalous:
print(f"🔔 Аномальный объём обнаружен!")
print(f"Средний объём: {avg_volume:.2f}, Последний объём: {last_volume:.2f}\n")
else:
print(f"Объёмы в пределах нормы. Последний объём: {last_volume:.2f}, Средний объём: {avg_volume:.2f}")

# Задержка между проверками
time.sleep(60 * int(INTERVAL)) # Интервал совпадает с таймфреймом свечи
except Exception as e:
print(f"Ошибка: {e}")

if __name__ == "__main__":
main()

📌 Подпишись  Python_Scripts❗️
15👍3🔥3
🚀 Полезные библиотеки Python

💾 Tenacity

📌 Библиотека Python, для управления повторными попытками выполнения функций. Она позволяет легко настроить логику повторов при сбоях или ошибках, что особенно полезно при работе с ненадёжными API, сетевыми запросами или любыми задачами, где результат может быть нестабильным.

Ключевые возможности Tenacity:

1. Гибкость настройки повторов: Вы можете задать количество попыток, задержки между ними, условия для остановки и исключения, которые должны быть обработаны.

2. Простота использования: Используется в качестве декоратора или вызова функции.

3. Расширяемость:
Вы можете добавлять собственные стратегии управления повторными попытками.

4. Обширный набор предустановок: Параметры для задержек (например, экспоненциальная или фиксированная), лимитов по времени и т. д.

⚙️ Установка 👇👇👇

pip install tenacity


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍7🔥21
gift-sniper-main.zip
218.1 KB
📌 Скрипт  авто покупка подарков

💻  ЯП:  Python 3.11+🐍
💾  Модули: aiogram, pyrogram
📂  База данных: sqlalchemy

📌 Скрипт для автоматического отслеживание и покупки новых Telegram Gifts.

Настройка режимов покупки:
- Покупка на весь баланс
- Процентный лимит от баланса (в разработке)
- Пополнение баланса звёзд
- Общий банк звёзд в системе
- Управление VIP-статусами
- Изменение баланса пользователей

📌 Вся информация приведена исключительно в ознакомительных целях❗️❗️❗️

#telegram

📌
Подпишись  Python_Scripts❗️
👍9👏43🔥1
📌Мониторинг изменения процентной ставки финансирования (Funding Rate) для фьючерсов.
Ставка финансирования помогает понять, кто доминирует на рынке — покупатели (лонги) или продавцы (шорты). Резкие изменения ставки могут указывать на перекос позиций и потенциальный разворот рынка.
Используется публичное API Bybit👨‍💻
import requests
import time

# Константы
FUNDING_URL = "https://api.bybit.com/v5/market/funding/history"
SYMBOL = "BTCUSDT" # Торговая пара
CATEGORY = "linear" # Тип рынка (фьючерсы)
CHECK_INTERVAL = 300 # Интервал проверки (в секундах)

def get_latest_funding_rate():
"""Получить последнюю ставку финансирования"""
params = {
"category": CATEGORY,
"symbol": SYMBOL,
"limit": 1 # Только последнее значение
}
response = requests.get(FUNDING_URL, params=params)
if response.status_code == 200:
funding_data = response.json()["result"]["list"]
if funding_data:
return float(funding_data[0]["fundingRate"]), funding_data[0]["fundingRateTimestamp"]
else:
raise Exception("Нет данных по ставке финансирования.")
else:
raise Exception(f"Ошибка API Funding Rate: {response.status_code}, {response.text}")

def monitor_funding_rate():
"""Мониторинг ставки финансирования"""
try:
print(f"Начинаем мониторинг ставки финансирования для {SYMBOL}...\n")
previous_rate = None

while True:
# Получаем текущую ставку финансирования
funding_rate, timestamp = get_latest_funding_rate()

# Сравниваем с предыдущей ставкой
if previous_rate is not None:
rate_change = (funding_rate - previous_rate) * 100 # Изменение в процентах
print(f"Ставка финансирования: {funding_rate:.6f} (Изменение: {rate_change:+.2f}%)")
if abs(rate_change) > 0.01: # Порог изменения, при котором выводится предупреждение
print(f"🔔 Внимание! Ставка финансирования изменилась на {rate_change:+.2f}%!")
else:
print(f"Ставка финансирования: {funding_rate:.6f}")

# Обновляем предыдущую ставку
previous_rate = funding_rate

# Задержка перед следующей проверкой
time.sleep(CHECK_INTERVAL)
except Exception as e:
print(f"Ошибка: {e}")

if name == "main":
monitor_funding_rate()

📌 Подпишись  Python_Scripts❗️
1🔥10👍53
🚀 Полезные библиотеки Python

💾 PyScaffold

📌 Библиотека Python, для быстрого создания и настройки структуры проектов Python. Помогает разработчикам легко начать новый проект с правильной организацией и поддержкой стандартов.

Особенности:

- Генерация готовой структуры проекта (папки src, тесты, документация).

- Поддержка интеграции с tox, pre-commit, и sphinx.

- Простая настройка через шаблоны.

⚙️ Установка 👇👇👇

pip install pyscaffold


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

#библиотеки

📌 Подпишись Python_Scripts ❗️
👍112