wconnect (wmessenger)
wconnect (wmessenger) es una librería en Python diseñada para simplificar la creación de bots e integración con plataformas de mensajería (Telegram). Ofrece abstracciones orientadas a objetos, soporte para el protocolo Context Manager (with), descarga automática de archivos adjuntos (auto_save_in), y decoradores intuitivos compatibles con la convención de wkafka y wredis.
🛠️ Tecnologías y Librerías Relevantes
Este componente utiliza las siguientes tecnologías y librerías clave de su ecosistema:
- python-telegram-bot: Cliente asíncrono para interactuar con la Telegram Bot API y gestionar la infraestructura de handlers y polling/webhooks.
- wauth: Librería del ecosistema para almacenamiento seguro y encriptado de credenciales, tokens y lista de usuarios autorizados.
- requests: Cliente HTTP síncrono para envíos directos y descarga de archivos binarios desde Telegram CDN.
- aiohttp: Motor HTTP asíncrono para operaciones I/O sin bloqueo.
📦 Instalación
pip install wconnect
🔐 Métodos de Autenticación
wconnect soporta 3 formas flexibles para inicializar el cliente Wtelegram:
1. Vía WAuth Vault (Base de Datos Encriptada)
from wauth import WAuth
from wconnect import Wtelegram
vault = WAuth(db_path="./my_secrets.db")
bot = Wtelegram(auth_instance=vault)
2. Vía Token Directo
from wconnect import Wtelegram
bot = Wtelegram(token="8823336064:AAE2sky0B4vOD5_z2cKsDekv4T9LSKiSlGA")
3. Vía Variable de Entorno (TELEGRAM_BOT_TOKEN)
export TELEGRAM_BOT_TOKEN="8823336064:AAE2sky0B4vOD5_z2cKsDekv4T9LSKiSlGA"
from wconnect import Wtelegram
bot = Wtelegram() # Detecta automáticamente TELEGRAM_BOT_TOKEN
📥 Recepción de Mensajes (Receiver)
Permite registrar escuchadores mediante decoradores como @bot.on_command(...) y @bot.on_message(...) o @bot.consumer(...).
Ejemplo con Descarga Automática (auto_save_in y saved_path)
from wconnect import WMessage, Wtelegram
# auto_save_in descarga imágenes y documentos en ./downloads sin código adicional
bot = Wtelegram(token="YOUR_BOT_TOKEN", auto_save_in="./downloads")
@bot.on_command(command="status")
def handle_status(message: WMessage) -> None:
bot.send(to=message.chat_id, message="Servicio Online ✅")
@bot.on_message(value_type="image")
def handle_image(message: WMessage) -> None:
print(f"Imagen guardada automáticamente en: {message.saved_path}")
@bot.on_message(value_type="document")
def handle_document(message: WMessage) -> None:
print(f"Archivo guardado automáticamente en: {message.saved_path}")
# Mismo estándar de consumo que wkafka / wredis
bot.run_consumers(block=True)
📤 Envío de Contenido (Sender)
Soporta envíos de texto, imágenes (auto-detectando si es URL o archivo local) y documentos utilizando el protocolo Context Manager (with):
from wconnect import WFile, Wtelegram
with Wtelegram(token="YOUR_BOT_TOKEN") as producer:
# 1. Mensaje de Texto
producer.send(to="CHAT_ID", message="✅ Operación completada")
# 2. Imagen desde URL o Ruta Local
producer.send_image(
to="CHAT_ID",
url="https://httpbin.org/image/png",
caption="Gráfico Analytics",
)
# 3. Documento en memoria (WFile) o desde disco
data_bytes = b"id,value\n1,100"
doc_file = WFile(content=data_bytes, name="report.csv")
producer.send_document(to="CHAT_ID", file=doc_file)
📁 Estructura de Ejemplos
Puedes consultar ejemplos listos para ejecutar en la carpeta examples/01 telegram/:
00 config/: Formas de inicialización (Vault, Token Directo, Env Var).01 receiver/: Casos de uso de recepción (01 text,02 image,03 document,04 command,05 all).02 sender/: Casos de uso de envío (01 text,02 image,03 document).
📄 Licencia
MIT License - Copyright (c) 2025 William Rodriguez
Release files for wconnect 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wconnect-0.1.0.tar.gz | 14.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wconnect-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.2 kB
Release files / wconnect-0.1.0.tar.gz
| Download URL | wconnect-0.1.0.tar.gz |
|---|---|
| Size | 14.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
58ce1bcb5459e1e7dcb176cff1a97e4e51e284c357641d5b48db927bf04be0ea
|
|
BLAKE2b-256 checksum How to use checksums |
3ffbc9c19fb08a30c021342cc1cf11cae9eeb0a12e637575d5b968e4b92c1cf3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / wconnect-0.1.0-py3-none-any.whl
| Download URL | wconnect-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
010662343a00dc374c8536271d331f25790574a53b95ff860e8af3765ab36460
|
|
BLAKE2b-256 checksum How to use checksums |
d876f5cf1cf5ee7b36d535c1ecb5bb8a814346579973bd90bf3c0634fd48d603
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|