Metadata-Version: 2.4
Name: jubbio
Version: 0.1.3
Summary: Modern, asenkron ve güçlü Jubbio Python SDK kütüphanesi.
Author-email: Jubbio Developers <info@jubbio.com>
License-Expression: MIT
Keywords: jubbio,bot,sdk,api,asyncio,chat
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: websockets>=12.0
Requires-Dist: pydantic>=2.0.0
Requires-Dist: python-dotenv>=1.0.0
Dynamic: license-file

# JubbioPY (Jubbio Python SDK) 🚀

[![PyPI Version](https://img.shields.io/pypi/v/jubbio.svg)](https://pypi.org/project/jubbio/)
[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://python.org)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)

**JubbioPY**, Türk yapımı yeni nesil iletişim platformu [Jubbio](https://jubbio.com) için geliştirilmiş modern, tam asenkron, tip güvenli ve güçlü resmi Python SDK kütüphanesidir.

---

## ✨ Özellikler

* ⚡ **Tam Asenkron Altyapı**: `asyncio`, `aiohttp` ve `websockets` tabanlı yüksek performans.
* 🛡️ **Gelişmiş Komut Sistemi**: Hem klasik Prefix komutları (`!komut`) hem de modern Slash komutları (`/komut`).
* 🧠 **Dahili Önbellek (LRU Cache Layer)**: Sunucu, kanal, üye ve mesajlar için düşük bellek tüketimli akıllı RAM önbelleği.
* 🎨 **Zengin Görsel Bileşenler**: Embed kartları, Butonlar (`Button`), Açılır Menüler (`SelectMenu`) ve Modal Formları (`Modal`).
* 📄 **Dahili Sayfalayıcı (Paginator)**: Uzun listeleri ve rehberleri butonlarla gezilebilir kılan hazır UI bileşeni.
* ⏱️ **Zamanlanmış Görevler (Tasks Loop)**: Arka planda periyodik çalışan asenkron döngüler (`@tasks.loop`).
* 🧩 **Modüler Eklenti (Plugin) Mimarisi**: Komutları ve dinleyicileri bağımsız dosyalara bölme desteği.
* 🔍 **Tip Güvenliği & IntelliSense**: Tam tip desteği (`py.typed`) ve otomatik argüman dönüştürücüler (`converters`).

---

## 📦 Kurulum

Python 3.10 veya daha yeni bir sürüm gereklidir:

```bash
pip install jubbio
```

---

## 🚀 Hızlı Başlangıç

### 1. Basit Bir Bot Oluşturma

```python
import jubbio
from jubbio.builders import Embed

# Bot istemcisini başlat
bot = jubbio.Bot(
    token="BOT_TOKENINIZI_BURAYA_YAZIN",
    prefix="!",
)

# 1. Hazır Olma Olayı
@bot.event
async def on_ready(client: jubbio.Client):
    print(f"🤖 {client.user.username} olarak oturum açıldı ve hazır!")

# 2. Klasik Prefix Komutu (!ping)
@bot.command(name="ping", description="Gecikme süresini gösterir")
async def ping(ctx: jubbio.Context):
    latency = bot.latency * 1000
    await ctx.reply(f"🏓 Pong! Gecikme: `{latency:.1f}ms`")

# 3. Zengin Embed Yanıtı (!bilgi)
@bot.command(name="bilgi")
async def info(ctx: jubbio.Context):
    embed = Embed(
        title="Jubbio Bot Bilgisi",
        description="JubbioPY ile geliştirilmiş örnek bot.",
        color="blurple",
        fields=[
            ("👥 Sunucu", ctx.guild.name if ctx.guild else "Özel Mesaj", True),
            ("📁 Kanal", f"#{ctx.channel.name}" if ctx.channel else "DM", True),
        ],
        footer=f"İsteyen: {ctx.author.username}",
        timestamp=True,
    )
    await ctx.reply(embed=embed)

# 4. Slash Komutu (/selam)
@bot.slash(name="selam", description="Kullanıcıya özel selam verir")
async def selam(interaction: jubbio.CommandInteraction, kisi: jubbio.User):
    await interaction.reply(f"Merhaba {kisi.mention}! 👋", ephemeral=True)

# Botu çalıştır
bot.run()
```

---

## 🎛️ Butonlar ve İnteraktif Görünümler (Views)

```python
import jubbio
from jubbio.ui import View, button
from jubbio.enums import ButtonStyle

class OnayView(View):
    @button(label="Evet", style=ButtonStyle.SUCCESS, emoji="✅")
    async def on_yes(self, interaction: jubbio.ButtonInteraction):
        await interaction.reply("İşlem onaylandı! 🎉", ephemeral=True)

    @button(label="Hayır", style=ButtonStyle.DANGER, emoji="❌")
    async def on_no(self, interaction: jubbio.ButtonInteraction):
        await interaction.reply("İşlem iptal edildi.", ephemeral=True)

@bot.command(name="onayla")
async def confirm_cmd(ctx: jubbio.Context):
    await ctx.reply("Bu işlemi onaylıyor musunuz?", view=OnayView())
```

---

## 📚 Dokümantasyon

Kapsamlı rehberler, API referansı ve mimari detaylar için [JubbioPY Dokümantasyonu](https://github.com/remos/JubbioPY/tree/main/docs)'nu ziyaret edebilirsiniz:

* [Hızlı Başlangıç Rehberi](docs/getting-started.md)
* [Prefix Komutları Rehberi](docs/guides/commands.md)
* [Slash Komutları Rehberi](docs/guides/slash-commands.md)
* [Bileşenler ve Butonlar](docs/guides/components.md)
* [Görünümler ve Sayfalayıcı (View & Paginator)](docs/guides/views.md)
* [API Referansı (Client, Context, Models)](docs/api/client.md)

---

## 📄 Lisans

Bu proje **MIT Lisansı** ile lisanslanmıştır. Detaylar için [LICENSE](LICENSE) dosyasına bakabilirsiniz.
