mirror of
https://github.com/nexus-stc/hyperboria
synced 2025-01-04 15:55:56 +01:00
be61f0300e
- feat: Writing docs GitOrigin-RevId: 4e9303afd4eb5c2b2b906fbcce920e3e22df7177
118 lines
4.3 KiB
Markdown
118 lines
4.3 KiB
Markdown
# Nexus Search: Telegram Bot
|
|
|
|
`Bot` is a daemon processing user input from Telegram. This version has cut `configs`
|
|
subdirectory due to hard reliance of configs on the network infrastructure you are using.
|
|
You have to write your own configs taking example below into account.
|
|
|
|
The bot requires three other essential parts:
|
|
- IDM API (auth)
|
|
- Nexus Hub API (managing files)
|
|
- Nexus Meta API (rescoring API for Summa Search server)
|
|
|
|
or their substitutions
|
|
|
|
## Sample `configs/base.yaml`
|
|
|
|
```yaml
|
|
---
|
|
|
|
application:
|
|
# Amazon Recipient Email in /donate message
|
|
amazon_gift_card_recipient: pirate@ship.space
|
|
# Amazon URL for buying card in /donate message
|
|
amazon_gift_card_url: https://www.amazon.com/dp/B07TMNGSN4
|
|
bot_version: 1.6.0
|
|
# Bitcoin Donation address in /donate message
|
|
btc_donate_address: 3QbF3zRQVjn3qMJBSbmLC1gb6VUc555xkw
|
|
# List of chat IDs that is allowed to bypass maintenance mode
|
|
bypass_maintenance: []
|
|
# Debugging mode
|
|
debug: true
|
|
# All users (except `bypass_maintenance` ones) will get UPGRADE_MAINTENANCE message in response
|
|
is_maintenance_mode: false
|
|
# Disable /settings, uploading new articles (can be used while vacuuming backend Postgres)
|
|
# and preventing creation of new users
|
|
is_read_only_mode: false
|
|
# Require subscription to `related_channel` before allowing to use the bot
|
|
is_subscription_required: false
|
|
# Libera Pay URL in /donate message
|
|
libera_pay_url:
|
|
maintenance_picture_url:
|
|
nexus_version: InterCom
|
|
# Default page size for SERP
|
|
page_size: 5
|
|
# Length of generated Request-ID used for tracking requests across all backends
|
|
request_id_length: 12
|
|
# Enabled schemas (passed to Nexus Meta API)
|
|
schemas:
|
|
- scimag
|
|
- scitech
|
|
# Length of generated Session-ID used in commands to clue user sessions
|
|
session_id_length: 8
|
|
too_difficult_picture_url:
|
|
upgrade_maintenance_picture_url:
|
|
# Configuring behaviour of the bot in some cases
|
|
views:
|
|
settings:
|
|
has_discovery_button: true
|
|
has_language_buttons: true
|
|
has_location_button: false
|
|
has_router: false
|
|
has_system_messaging_button: true
|
|
hub:
|
|
url:
|
|
idm:
|
|
url:
|
|
log_path: '/var/log/nexus-bot/{{ ENV_TYPE }}'
|
|
meta_api:
|
|
url:
|
|
telegram:
|
|
# Telegram App Hash from https://my.telegram.org/
|
|
app_hash: '{{ APP_HASH }}'
|
|
# Telegram App ID from https://my.telegram.org/
|
|
app_id: 00000
|
|
# External bot name shown in messages to users
|
|
bot_external_name: libgen_scihub_bot
|
|
# Internal bot name used in logging
|
|
bot_name: nexus-bot
|
|
bot_token: '{{ BOT_TOKEN }}'
|
|
# WARNING! Potentially buggy telethon option. Sometimes it goes mad and overload users with tons of messages
|
|
# Collect missed messages at startup time and answer to them
|
|
catch_up: false
|
|
# Telegram account for forwarding copyright infringements from /copyright command
|
|
copyright_infringement_account:
|
|
# Telethon database for keeping cache
|
|
database:
|
|
session_id: '/usr/lib/nexus-bot/{{ ENV_TYPE }}/session.db'
|
|
# Enabled handlers
|
|
handlers:
|
|
- nexus.bot.handlers.admin.AdminHandler
|
|
- nexus.bot.handlers.ban.BanHandler
|
|
- nexus.bot.handlers.ban.BanlistHandler
|
|
- nexus.bot.handlers.ban.UnbanHandler
|
|
- nexus.bot.handlers.contact.ContactHandler
|
|
- nexus.bot.handlers.copyright.CopyrightHandler
|
|
- nexus.bot.handlers.close.CloseHandler
|
|
- nexus.bot.handlers.donate.DonateHandler
|
|
- nexus.bot.handlers.download.DownloadHandler
|
|
- nexus.bot.handlers.emoji.EmojiHandler
|
|
- nexus.bot.handlers.help.HelpHandler
|
|
- nexus.bot.handlers.referencing_to.ReferencingToHandler
|
|
- nexus.bot.handlers.referencing_to.ReferencingToPagingHandler
|
|
- nexus.bot.handlers.roll.RollHandler
|
|
- nexus.bot.handlers.settings.SettingsButtonsHandler
|
|
- nexus.bot.handlers.settings.SettingsRouterHandler
|
|
- nexus.bot.handlers.settings.SettingsManualHandler
|
|
- nexus.bot.handlers.shortlink.ShortlinkHandler
|
|
- nexus.bot.handlers.submit.SubmitHandler
|
|
- nexus.bot.handlers.start.StartHandler
|
|
- nexus.bot.handlers.stop.StopHandler
|
|
- nexus.bot.handlers.view.ViewHandler
|
|
- nexus.bot.handlers.vote.VoteHandler
|
|
- nexus.bot.handlers.noop.NoopHandler
|
|
- nexus.bot.handlers.search.SearchHandler
|
|
- nexus.bot.handlers.search.SearchEditHandler
|
|
- nexus.bot.handlers.search.SearchPagingHandler
|
|
# Channel that will be shown in /help, /donate, /contact and in promotions
|
|
related_channel: '@nexus_search'
|
|
``` |