Skip to main content

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/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ç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)

Metadata

Release files for topluyobot 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for topluyobot 1.0.6
File Size Uploaded
topluyobot-1.0.6.tar.gz 13.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for topluyobot 1.0.6
File Interpreter ABI Platform
topluyobot-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 23.0 kB

Release files / topluyobot-1.0.6.tar.gz

Download URL topluyobot-1.0.6.tar.gz
Size 13.2 kB
Tags Source
SHA-256 checksum
How to use checksums
52b44d639a489843c5727b070bc510b34b6567eaa1e8b17f50714264d141ab21
BLAKE2b-256 checksum
How to use checksums
d8a057978b801963b46352cc0e1221fc0622a92871e941062321e0fbaaff5983
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / topluyobot-1.0.6-py3-none-any.whl

Download URL topluyobot-1.0.6-py3-none-any.whl
Size 9.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e7b94ae37426a243b77cf3b9e3137f41ad017fb2ce063972aee8210013af504c
BLAKE2b-256 checksum
How to use checksums
ae0391d7b2afd312cf5bef5272f9f050dfb243a418d207db7c6cd0d5773b24c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page