/db command implemented
This commit is contained in:
parent
f5c661925c
commit
9890988f7f
@ -14,9 +14,9 @@ import datetime
|
||||
|
||||
# Third party modules
|
||||
from davtelepot.utilities import (
|
||||
async_wrapper, Confirmator, get_cleaned_text, get_user, escape_html_chars,
|
||||
line_drawing_unordered_list, make_button, make_inline_keyboard,
|
||||
remove_html_tags
|
||||
async_wrapper, Confirmator, extract, get_cleaned_text, get_user,
|
||||
escape_html_chars, line_drawing_unordered_list, make_button,
|
||||
make_inline_keyboard, remove_html_tags
|
||||
)
|
||||
|
||||
|
||||
@ -543,6 +543,24 @@ default_admin_messages = {
|
||||
'en': "Operation was cancelled",
|
||||
'it': "Operazione annullata"
|
||||
}
|
||||
},
|
||||
'db_command': {
|
||||
'not_sqlite': {
|
||||
'en': "Only SQLite databases may be sent via Telegram, since they "
|
||||
"are single-file databases.\n"
|
||||
"This bot has a `{db_type}` database.",
|
||||
'it': "Via Telegram possono essere inviati solo database SQLite, "
|
||||
"in quanto composti di un solo file.\n"
|
||||
"Questo bot ha invece un database `{db_type}`."
|
||||
},
|
||||
'file_caption': {
|
||||
'en': "Here is bot database.",
|
||||
'it': "Ecco il database!"
|
||||
},
|
||||
'db_sent': {
|
||||
'en': "Database sent.",
|
||||
'it': "Database inviato."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -649,6 +667,33 @@ async def _stop_button(bot, update, user_record, data):
|
||||
return result
|
||||
|
||||
|
||||
async def _send_bot_database(bot, update, user_record):
|
||||
if not all(
|
||||
[
|
||||
bot.db_url.endswith('.db'),
|
||||
bot.db_url.startswith('sqlite:///')
|
||||
]
|
||||
):
|
||||
return bot.get_message(
|
||||
'admin', 'db_command', 'not_sqlite',
|
||||
update=update, user_record=user_record,
|
||||
db_type=bot.db_url.partition(':///')[0]
|
||||
)
|
||||
database_name = extract(bot.db_url, starter='data/')
|
||||
await bot.send_document(
|
||||
chat_id=user_record['telegram_id'],
|
||||
document_path=f'{{path}}/data/{database_name}',
|
||||
caption=bot.get_message(
|
||||
'admin', 'db_command', 'file_caption',
|
||||
update=update, user_record=user_record
|
||||
)
|
||||
)
|
||||
return bot.get_message(
|
||||
'admin', 'db_command', 'db_sent',
|
||||
update=update, user_record=user_record
|
||||
)
|
||||
|
||||
|
||||
def init(bot, talk_messages=None, admin_messages=None, language='en'):
|
||||
"""Assign parsers, commands, buttons and queries to given `bot`."""
|
||||
if talk_messages is None:
|
||||
@ -705,13 +750,11 @@ def init(bot, talk_messages=None, admin_messages=None, language='en'):
|
||||
async def talk_button(bot, update, user_record, data):
|
||||
return await _talk_button(bot, update, user_record, data)
|
||||
|
||||
restart_command_description = bot.get_message(
|
||||
'admin', 'restart_command', 'description',
|
||||
language=language
|
||||
)
|
||||
|
||||
@bot.command(command='/restart', aliases=[], show_in_keyboard=False,
|
||||
description=restart_command_description,
|
||||
description=bot.get_message(
|
||||
'admin', 'restart_command', 'description',
|
||||
language=language, default_message=''
|
||||
),
|
||||
authorization_level='admin')
|
||||
async def restart_command(bot, update, user_record):
|
||||
return await _restart_command(bot, update, user_record)
|
||||
@ -761,3 +804,9 @@ def init(bot, talk_messages=None, admin_messages=None, language='en'):
|
||||
authorization_level='admin')
|
||||
async def stop_button(bot, update, user_record, data):
|
||||
return await _stop_button(bot, update, user_record, data)
|
||||
|
||||
@bot.command(command='/db', aliases=[], show_in_keyboard=False,
|
||||
description="Ask for bot database via Telegram",
|
||||
authorization_level='admin')
|
||||
async def send_bot_database(bot, update, user_record):
|
||||
return await _send_bot_database(bot, update, user_record)
|
||||
|
Loading…
x
Reference in New Issue
Block a user