update readmes

This commit is contained in:
2026-08-21 15:51:06 +06:00
parent 016400a821
commit ce48393895
104 changed files with 2615 additions and 333 deletions

75
ResenderBot/README.md Normal file
View File

@@ -0,0 +1,75 @@
# ResenderBot
A multiplatform long-polling example that recreates received content in the same
chat. Shared behavior lives in `ResenderBotLib`; JVM, browser/JS, and native entry
points start it in platform-specific ways.
## Resend behavior
The bot defines no commands. For each content message, it shows a typing action and
uses `createResend` to send equivalent content back to the originating chat. When
present, it carries over the replied-to message metadata, text quote entities and
position, and the message effect ID.
Business content sent by the business-connection owner is ignored; other delivered
content messages are eligible. Processing is separated by chat. The bot prints each
received update and each resend result, and reports its `getMe` result through the
launcher's output callback.
## Source sets and launchers
- `ResenderBotLib/commonMain` provides the public `activateResenderBot` function and
all Telegram handlers for JVM, JS, and native consumers.
- `ResenderBotLib/jsMain` provides a browser form. Each submission starts another
bot and displays callback output in its own page element; console output remains
in the browser developer tools.
- `jvm_launcher` provides a suspending CLI entry point and optional debug logging.
- `native_launcher` wraps the shared suspending function in `runBlocking`. Its
shared native template selects Linux x64/Arm64 or Windows x64 for the host.
## Setup and permissions
Create a bot, obtain its token, and keep it private. Start a private chat with the
bot or add it to a chat where Telegram will deliver the desired content. The bot
must be allowed to send each content type it should reproduce; no administrator-only
methods are used. Long polling is used, so run only one launcher per token.
The browser form handles the token in client-side code and uses a plain text input.
Use it only on a trusted local page, submit once, and close the page when finished.
Linux native builds also require the repository's documented libcurl dependency.
## Run from the repository root
### JVM
The first argument is the required token. `debug` is recognized only as the second
argument; later arguments are ignored.
```bash
./gradlew :ResenderBot:jvm_launcher:run --args="BOT_TOKEN"
./gradlew :ResenderBot:jvm_launcher:run --args="BOT_TOKEN debug"
```
### Browser/JS
```bash
./gradlew :ResenderBot:ResenderBotLib:jsBrowserDevelopmentRun
```
Enter the token in the page form and select **Start bot**. There are no browser
command-line arguments.
### Kotlin/Native
Build the host-specific debug executable, then pass the required token directly to
it. Additional native arguments are ignored.
```bash
./gradlew :ResenderBot:native_launcher:linkDebugExecutableNative
./ResenderBot/native_launcher/build/bin/native/debugExecutable/native_launcher.kexe "BOT_TOKEN"
```
On Windows, run
`ResenderBot\\native_launcher\\build\\bin\\native\\debugExecutable\\native_launcher.exe "BOT_TOKEN"`
after the same Gradle link task. macOS hosts are not configured by the native
launcher template.