Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bot-base/scan-tool-bot

Scan and create QR codes in Telegram
https://github.com/bot-base/scan-tool-bot

bot grammy grammyjs qrcode qrcode-generator qrcode-scanner telegram telegram-api telegram-bot telegram-bot-api telegram-web-app

Last synced: about 2 months ago
JSON representation

Scan and create QR codes in Telegram

Awesome Lists containing this project

README

        

🤖 Scan Tool Bot


Open in Telegram

or


just type @ScanToolBot in message input field

## Features

- Scan QR codes with a camera
- Generate QR codes
- Works in any chat via inline mode

## Launch

1. Close repository:

```sh
git clone [email protected]:bot-base/scan-tool-bot.git
```

2. Create an environment variables file:

```bash
cp .env.example .env
```

3. Launch web app following the instructions in [webapp/README.md](webapp/README.md).

4. Set BOT_TOKEN, WEBAPP_URL, API_URL [environment variables](#environment-variables) in `.env` file.

5. Launch bot

Development mode:

```bash
# 1. Install dependencies
npm i

# 2. Set BOT_SERVER_HOST to localhost
# Set BOT_SERVER_PORT to any available port

# 2. Run bot (in watch mode)
npm run dev
```

Production mode:

```bash
# 1. Install dependencies
npm i --only=prod

# 2. Set NODE_ENV to production
# Change BOT_WEBHOOK to the actual URL to receive updates

# 3. Run bot
npm start
# or
npm run start:force # if you want to skip type checking
```

### List of available commands
- `npm run lint` — Lint source code.
- `npm run format` — Format source code.
- `npm run typecheck` — Runs type checking.
- `npm run dev` — Starts the bot in development mode.
- `npm run start` — Starts the bot.
- `npm run start:force` — Starts the bot without type checking.

## Environment Variables


Variable
Type
Description


NODE_ENV
String
Application environment (development or production)


BOT_TOKEN

String


Token, get it from @BotFather.



BOT_WEBHOOK

String


Webhook endpoint, used to configure webhook in production environment.



WEBAPP_URL

String


HTTPS link to Web App.



API_URL

String


`/api` endpoint (must be public and available to Telegram)



LOG_LEVEL

String


Optional.
Application log level.
See Pino docs for a complete list of available log levels.

Defaults to info.



BOT_SERVER_HOST

String


Optional. Server address.

Defaults to 0.0.0.0.



BOT_SERVER_PORT

Number


Optional. Server port.

Defaults to 80.



BOT_ALLOWED_UPDATES

Array of String


Optional. A JSON-serialized list of the update types you want your bot to receive. See Update for a complete list of available update types.

Defaults to an empty array (all update types except chat_member).



BOT_ADMIN_USER_ID

Number or
Array of Number


Optional. Administrator user ID. Commands such as /setcommands will only be available to a user with this ID.

Defaults to an empty array.