Skip to main content

Topluyo Bot Python kütüphanesi - WebSocket tabanlı bot istemcisi

Project description

TopluyoBOTPY 🤖

Topluyo Bot Python kütüphanesi – WebSocket tabanlı asenkron bot istemcisi

PyPI version Python 3.8+ MIT License


📋 İçerik


💻 Kurulum

PyPI'den (Önerilen)

pip install topluyobot

Geliştirme İçin

git clone https://github.com/yourusername/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çersiz
  • error – Hata oluştu
  • message – 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


🤝 Katkıda Bulunma

Pull request'ler hoş karşılanır! Büyük değişiklikler için önce bir issue açın.

  1. Fork et
  2. Feature branch oluştur (git checkout -b feature/AmazingFeature)
  3. Commit et (git commit -m 'Add some AmazingFeature')
  4. Push et (git push origin feature/AmazingFeature)
  5. 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

topluyobot-1.0.3.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

topluyobot-1.0.3-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file topluyobot-1.0.3.tar.gz.

File metadata

  • Download URL: topluyobot-1.0.3.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

Hashes for topluyobot-1.0.3.tar.gz
Algorithm Hash digest
SHA256 90e25dc93c341859f52a78cc2071d50bb9b84089f6c5ad8b322adac40204427f
MD5 9d22c32c7cc0c2ef84dc5814bf0d7ba2
BLAKE2b-256 38d8c7f1b1f76ba64e0c6e703dbba4273f4f5102f68dd1361d068b5588334709

See more details on using hashes here.

File details

Details for the file topluyobot-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: topluyobot-1.0.3-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

Hashes for topluyobot-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4478c2e6fde5722e69a8d24ae0219e7f9257ad2d84fb859359fcb96a123bb1ac
MD5 d1c3449bfd3f1f028ef6e0a6b6234cab
BLAKE2b-256 9a4ee715b11ec833ce2e5f9e399ae43f4cd3317d96cf5c93de1fe0722d9fe45c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page