mirror of
https://github.com/nexus-stc/hyperboria
synced 2024-11-27 13:36:50 +01:00
Merge pull request #17 from the-superpirate/master
- feat: Workaround host networking issues in Docker
This commit is contained in:
commit
e597ff6a4e
@ -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(
|
||||
name = "build_bazel_rules_nodejs",
|
||||
|
@ -1,5 +1,9 @@
|
||||
# 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)
|
||||
@ -7,3 +11,108 @@ The bot requires three other essential parts:
|
||||
|
||||
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():
|
||||
return Configurator([
|
||||
'nexus/bot/configs/base.yaml',
|
||||
'nexus/bot/configs/custom.yaml?',
|
||||
'nexus/bot/configs/metrics.yaml?',
|
||||
'nexus/bot/configs/%s.yaml?' % env.type,
|
||||
'nexus/bot/configs/logging.yaml?',
|
||||
'nexus/bot/configs/promotions.yaml?',
|
||||
'nexus/bot/configs/logging.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