Topluyo Bot Python kütüphanesi - WebSocket tabanlı bot istemcisi
Project description
TopluyoBOTPY 🤖
Topluyo Bot Python kütüphanesi – WebSocket tabanlı asenkron bot istemcisi
📋 İçerik
💻 Kurulum
PyPI'den (Önerilen)
pip install topluyobot
Geliştirme İçin
git clone https://github.com/Topluyo/TopluyoBOTPY.git
cd TopluyoBOTPY
pip install -e .
Gereksinimler:
- Python 3.8+
- aiohttp >= 3.9.0
- websockets >= 12.0
🚀 Hızlı Başlangıç
from topluyobot import TopluyoBOT
# Botu oluştur
bot = TopluyoBOT("YOUR_BOT_TOKEN_HERE")
# Bağlantı başarılı
@bot.on("connected")
def on_connected():
print("✅ Bota bağlandı!")
# Mesaj al
@bot.on("message")
def on_message(data):
print(f"Mesaj alındı: {data}")
# Botu başlat
bot.run()
📩 Mesaj Türleri
Bot aşağıdaki mesaj türlerini işleyebilir:
1. Direkt Mesaj (message/send)
@bot.on("message")
def handler(data):
if data.get("action") == "message/send":
user_id = data["user_id"]
text = data["message"]
print(f"DM from {user_id}: {text}")
2. Kanal Postu (post/add)
if data.get("action") == "post/add":
channel_id = data["channel_id"]
user_id = data["user_id"]
message = data["message"]
3. Bot Mention (post/mention)
if data.get("action") == "post/mention":
user_id = data["user_id"]
message = data["message"]
print(f"Bot mentioned by {user_id}")
4. Bumote Formu (post/bumote)
if data.get("action") == "post/bumote":
form = data["message"]["form"]
submit = data["message"]["submit"]
5. Grup Olayları
# Grup katılma
if data.get("action") == "group/join":
group_id = data["group_id"]
# Grup ayrılma
elif data.get("action") == "group/leave":
group_id = data["group_id"]
# Grup atılma
elif data.get("action") == "group/kick":
group_id = data["group_id"]
6. Turbo Transfer (turbo/transfer)
if data.get("action") == "turbo/transfer":
qty = data["message"]["quantity"]
note = data["message"]["message"]
📚 API Referansı
TopluyoBOT
__init__(token: str)
Botu token ile oluşturur.
bot = TopluyoBOT("your_token")
@bot.on(event: str)
Event listener kaydeder.
Desteklenen eventler:
connected– Bağlantı başarılıclose– Bağlantı kapandıauth_problem– Token geçersizerror– Hata oluştumessage– Mesaj alındı
@bot.on("connected")
def handler():
pass
@bot.on("error")
def handler(err):
print(f"Error: {err}")
bot.run()
Botu başlatır (bloklayıcı).
bot.run() # Ctrl+C ile durdur
bot.post_sync(method: str, params: dict)
API'ye senkron POST isteği gönderir.
response = bot.post_sync("messages.send", {
"user_id": "12345",
"message": "Merhaba!"
})
await bot.post_async(method: str, params: dict)
API'ye asenkron POST isteği gönderir.
response = await bot.post_async("messages.send", {
"user_id": "12345",
"message": "Merhaba!"
})
💡 Örnekler
Örnek 1: Echo Bot
from topluyobot import TopluyoBOT, BotMessage
bot = TopluyoBOT("YOUR_TOKEN")
@bot.on("message")
def handle_message(data: BotMessage):
if data.get("action") == "message/send":
user_id = data["user_id"]
text = data["message"]
# Geri yanıt
bot.post_sync("messages.send", {
"user_id": user_id,
"message": f"Echo: {text}"
})
bot.run()
Örnek 2: Olay Yöneticisi
from topluyobot import TopluyoBOT
bot = TopluyoBOT("YOUR_TOKEN")
@bot.on("connected")
def on_connected():
print("✅ Bağlandı")
@bot.on("close")
def on_close():
print("🔌 Bağlantı kapandı")
@bot.on("auth_problem")
def on_auth():
print("❌ Token geçersiz")
@bot.on("error")
def on_error(err):
print(f"⚠️ Hata: {err}")
@bot.on("message")
def on_msg(data):
print(f"📨 {data}")
bot.run()
Örnek 3: Mesaj Türlerine Göre İşlem
Detaylı örnek için example.py dosyasına bakın.
🔧 Geliştiriciler İçin
Kütüphane Yapısı
topluyobot/
├── __init__.py # Ana exports
├── bot.py # TopluyoBOT sınıfı
├── py.typed # PEP 561 type hints
└── ...
Type Hints
Kütüphane tam type hint desteğine sahiptir:
from topluyobot import TopluyoBOT, BotMessage
bot: TopluyoBOT = TopluyoBOT("token")
@bot.on("message")
def handler(data: BotMessage) -> None:
pass
Test Etme
pip install pytest pytest-asyncio
pytest
Derleme
pip install build
python -m build
📝 Lisans
MIT License – Detaylar için LICENSE dosyasını okuyun.
📧 İletişim
- Resmi Site: topluyo.com
- Email: info@topluyo.com
- Issues: GitHub Issues
🤝 Katkıda Bulunma
Pull request'ler hoş karşılanır! Büyük değişiklikler için önce bir issue açın.
- Fork et
- Feature branch oluştur (
git checkout -b feature/AmazingFeature) - Commit et (
git commit -m 'Add some AmazingFeature') - Push et (
git push origin feature/AmazingFeature) - Pull Request aç
Türkçe Dokümantasyon | English Docs (gelecek)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file topluyobot-1.0.6.tar.gz.
File metadata
- Download URL: topluyobot-1.0.6.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52b44d639a489843c5727b070bc510b34b6567eaa1e8b17f50714264d141ab21
|
|
| MD5 |
85088f5c01bf55a4afef0ec675dbe2a9
|
|
| BLAKE2b-256 |
d8a057978b801963b46352cc0e1221fc0622a92871e941062321e0fbaaff5983
|
File details
Details for the file topluyobot-1.0.6-py3-none-any.whl.
File metadata
- Download URL: topluyobot-1.0.6-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e7b94ae37426a243b77cf3b9e3137f41ad017fb2ce063972aee8210013af504c
|
|
| MD5 |
276477fc791af604d6353697a38326ef
|
|
| BLAKE2b-256 |
ae0391d7b2afd312cf5bef5272f9f050dfb243a418d207db7c6cd0d5773b24c2
|