Metadata-Version: 2.5
Name: bibi-discord
Version: 0.1.0
Summary: Bibi — prosty język do tworzenia botów Discord.
Author: Bibi contributors
License: MIT
License-File: LICENSE
Keywords: bot,discord,dsl,language,replit
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Internet
Requires-Python: >=3.10
Requires-Dist: discord-py<3,>=2.3
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: twine>=6.0; extra == 'dev'
Description-Content-Type: text/markdown

# Bibi Discord

Bibi/AE to mały, czytelny język do pisania botów Discord. Piszesz plik `.ae`,
a runtime uruchamia go przez `discord.py`.

## Szybki start w Replit

W terminalu projektu:

```bash
cd bibi-discord
python3 -m pip install -e ".[dev]"
bibi check example/bot.ae
```

Dodaj sekret `DISCORD_BOT_TOKEN` w zakładce Secrets. W panelu Discord Developer
Portal włącz też **Message Content Intent**, ponieważ Bibi obsługuje komendy
tekstowe.

Uruchom bota:

```bash
bibi run example/bot.ae
```

## Składnia

```bibi
bot "Mój bot" {
  token env "DISCORD_BOT_TOKEN"
  prefix "!"

  on ready {
    log "Bot działa!"
    status "z Bibi"
  }

  command "ping" {
    reply "Pong!"
  }

  command "hello" {
    reply "Cześć, {user}!"
  }
}
```

Dostępne akcje to `reply`, `log` i `status`. W tekście możesz użyć:

- `{user}` — wyświetlana nazwa autora wiadomości,
- `{user_id}` — ID autora,
- `{server}` — nazwa serwera lub `DM`,
- `{args}` — argumenty po nazwie komendy.

## Podpowiedzi podczas pisania

W projekcie są gotowe snippetsy w `.vscode/bibi.code-snippets`. Otwórz lub
utwórz plik z końcówką `.ae`, a następnie wpisz na przykład `bot`,
`command`, `ready` albo `reply` i wybierz podpowiedź z `Ctrl+Space`.
Snippet wstawi cały blok kodu i przeprowadzi Cię po polach klawiszem `Tab`.

To jest pierwszy etap budowania języka. Kolejny etap to osobne rozszerzenie
edytora z kolorowaniem składni i inteligentnym LSP, które będzie znało
komendy, błędy oraz dostępne zmienne.

## Edytowanie języka

Instrukcja rozwijania składni, runtime'u, podpowiedzi i testów znajduje się w
pliku `EDYCJA_JEZYKA.md` w repozytorium projektu.

Po opublikowaniu pakietu każdy może go zainstalować:

```bash
python3 -m pip install bibi-discord
```

## Publikowanie i aktualizacja PyPI

Token PyPI trzymaj wyłącznie w Replit Secrets jako `PYPI_API_TOKEN`.
Nie wpisuj go do pliku, komendy ani repozytorium.

Sprawdź pakiet i opublikuj aktualną wersję:

```bash
cd bibi-discord
bibi publish
```

Zmień wersję, zbuduj paczkę i opublikuj aktualizację:

```bash
bibi update 0.1.1
```

Przed głównym PyPI możesz użyć serwera testowego:

```bash
bibi update 0.1.1 --repository testpypi
```

Komendy publikacji korzystają z `python -m build` i `python -m twine`,
ustawiają nazwę użytkownika PyPI na `__token__` i pobierają hasło wyłącznie
z `PYPI_API_TOKEN`.

## Instalacja jako biblioteka

Po publikacji użytkownik może zainstalować runtime:

```bash
python3 -m pip install bibi-discord
```

## Rozwój języka

Parser jest w `src/bibi/parser.py`, AST w `src/bibi/ast.py`, a połączenie z
Discordem w `src/bibi/runtime.py`. To daje prostą bazę do dodawania kolejnych
zdarzeń, embedów, przycisków i slash commands bez zmiany składni istniejących
botów.

## Licencja

MIT