mirror of
https://github.com/nexus-stc/hyperboria
synced 2024-12-24 18:45:49 +01:00
- feat: Workaround host networking issues in Docker
- feat: Writing docs GitOrigin-RevId: 4e9303afd4eb5c2b2b906fbcce920e3e22df7177
This commit is contained in:
parent
cca9e8be47
commit
be61f0300e
@ -14,6 +14,15 @@ http_archive(
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# ToDo: wait for https://github.com/bazelbuild/rules_docker/pull/1638
|
||||||
|
http_archive(
|
||||||
|
name = "io_bazel_rules_docker",
|
||||||
|
sha256 = "5aa15ff7a83f8de8ff0346bd8274fb82eec52c947106a066dc190c2624ec1cb4",
|
||||||
|
strip_prefix = "rules_docker-aefbc69e5f758403d50f789eee55b30a3d947418",
|
||||||
|
urls = [
|
||||||
|
"https://github.com/the-superpirate/rules_docker/archive/aefbc69e5f758403d50f789eee55b30a3d947418.tar.gz",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
|
||||||
http_archive(
|
http_archive(
|
||||||
name = "build_bazel_rules_nodejs",
|
name = "build_bazel_rules_nodejs",
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
# Nexus Search: Telegram Bot
|
# 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:
|
The bot requires three other essential parts:
|
||||||
- IDM API (auth)
|
- IDM API (auth)
|
||||||
- Nexus Hub API (managing files)
|
- Nexus Hub API (managing files)
|
||||||
@ -7,3 +11,108 @@ The bot requires three other essential parts:
|
|||||||
|
|
||||||
or their substitutions
|
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'
|
||||||
|
```
|
@ -5,11 +5,10 @@ from library.configurator import Configurator
|
|||||||
def get_config():
|
def get_config():
|
||||||
return Configurator([
|
return Configurator([
|
||||||
'nexus/bot/configs/base.yaml',
|
'nexus/bot/configs/base.yaml',
|
||||||
'nexus/bot/configs/custom.yaml?',
|
|
||||||
'nexus/bot/configs/metrics.yaml?',
|
'nexus/bot/configs/metrics.yaml?',
|
||||||
'nexus/bot/configs/%s.yaml?' % env.type,
|
'nexus/bot/configs/%s.yaml?' % env.type,
|
||||||
'nexus/bot/configs/logging.yaml?',
|
'nexus/bot/configs/logging.yaml',
|
||||||
'nexus/bot/configs/promotions.yaml?',
|
'nexus/bot/configs/promotions.yaml',
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,101 +0,0 @@
|
|||||||
---
|
|
||||||
|
|
||||||
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'
|
|
82
nexus/bot/configs/logging.yaml
Normal file
82
nexus/bot/configs/logging.yaml
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
logging:
|
||||||
|
disable_existing_loggers: false
|
||||||
|
formatters:
|
||||||
|
base:
|
||||||
|
class: library.logging.formatters.BaseFormatter
|
||||||
|
default:
|
||||||
|
class: library.logging.formatters.DefaultFormatter
|
||||||
|
traceback:
|
||||||
|
class: library.logging.formatters.TracebackFormatter
|
||||||
|
handlers:
|
||||||
|
debug:
|
||||||
|
class: library.logging.handlers.BaseFileHandler
|
||||||
|
filename: '{{ log_path }}/debug.log'
|
||||||
|
level: DEBUG
|
||||||
|
error:
|
||||||
|
class: library.logging.handlers.BaseFileHandler
|
||||||
|
filename: '{{ log_path }}/error.log'
|
||||||
|
formatter: default
|
||||||
|
level: ERROR
|
||||||
|
operation:
|
||||||
|
class: library.logging.handlers.BaseFileHandler
|
||||||
|
filename: '{{ log_path }}/operation.log'
|
||||||
|
formatter: base
|
||||||
|
level: DEBUG
|
||||||
|
statbox:
|
||||||
|
class: library.logging.handlers.BaseFileHandler
|
||||||
|
filename: '{{ log_path }}/statbox.log'
|
||||||
|
formatter: default
|
||||||
|
level: DEBUG
|
||||||
|
traceback:
|
||||||
|
class: library.logging.handlers.BaseFileHandler
|
||||||
|
filename: '{{ log_path }}/traceback.log'
|
||||||
|
formatter: traceback
|
||||||
|
level: ERROR
|
||||||
|
warning:
|
||||||
|
class: library.logging.handlers.BaseFileHandler
|
||||||
|
filename: '{{ log_path }}/warning.log'
|
||||||
|
formatter: default
|
||||||
|
level: WARNING
|
||||||
|
loggers:
|
||||||
|
aiobaseclient:
|
||||||
|
handlers:
|
||||||
|
- error
|
||||||
|
- warning
|
||||||
|
propagate: false
|
||||||
|
chardet:
|
||||||
|
handlers:
|
||||||
|
- error
|
||||||
|
propagate: false
|
||||||
|
debug:
|
||||||
|
handlers:
|
||||||
|
- debug
|
||||||
|
propagate: false
|
||||||
|
error:
|
||||||
|
handlers:
|
||||||
|
- error
|
||||||
|
- traceback
|
||||||
|
- warning
|
||||||
|
propagate: false
|
||||||
|
metrics:
|
||||||
|
handlers:
|
||||||
|
- error
|
||||||
|
propagate: false
|
||||||
|
operation:
|
||||||
|
handlers:
|
||||||
|
- operation
|
||||||
|
propagate: false
|
||||||
|
statbox:
|
||||||
|
handlers:
|
||||||
|
- statbox
|
||||||
|
propagate: false
|
||||||
|
telethon:
|
||||||
|
handlers:
|
||||||
|
- debug
|
||||||
|
propagate: false
|
||||||
|
root:
|
||||||
|
handlers:
|
||||||
|
- debug
|
||||||
|
level: DEBUG
|
||||||
|
version: 1
|
0
papers-please/0-welcome-stranger.md
Normal file
0
papers-please/0-welcome-stranger.md
Normal file
0
papers-please/1-brief-history.md
Normal file
0
papers-please/1-brief-history.md
Normal file
0
papers-please/2-knowledge-must-flow.md
Normal file
0
papers-please/2-knowledge-must-flow.md
Normal file
0
papers-please/3-agenda.md
Normal file
0
papers-please/3-agenda.md
Normal file
0
papers-please/4-shared-destiny.md
Normal file
0
papers-please/4-shared-destiny.md
Normal file
0
papers-please/5-development.md
Normal file
0
papers-please/5-development.md
Normal file
Loading…
Reference in New Issue
Block a user