47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import logging
|
|
import argparse
|
|
|
|
from bot import Butler
|
|
|
|
|
|
coloredlogsError = None
|
|
try:
|
|
import coloredlogs
|
|
except ImportError as e:
|
|
coloredlogsError = e
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description='Vylion\'s butler bot.')
|
|
parser.add_argument('token', metavar='TOKEN',
|
|
help='The Bot Token to work with the Telegram Bot API')
|
|
parser.add_argument('-l', '--loglevel', default='INFO', metavar='LOG_LEVEL',
|
|
help='The level for logging.')
|
|
parser.add_argument('-c', '--chats', nargs='*', default=[], metavar='[CHATS]',
|
|
help='A whitelist of allowed chats. Empty enables all.')
|
|
args = parser.parse_args()
|
|
|
|
logger = logging.getLogger(__name__)
|
|
loglevel = logging.getLevelName(args.loglevel)
|
|
bot = Butler(logger, args.token, args.chats)
|
|
|
|
# Enable logging
|
|
log_format = "[{}][%(asctime)s]%(name)s::%(levelname)s: %(message)s".format(bot.get_username().upper())
|
|
|
|
if coloredlogsError:
|
|
logging.basicConfig(format=log_format, level=logging.INFO)
|
|
logger.warning("Unable to load coloredlogs:")
|
|
logger.warning(coloredlogsError)
|
|
else:
|
|
coloredlogs.install(level=logging.INFO, fmt=log_format)
|
|
|
|
logger.info("Bot started up!")
|
|
logger.info("Current whitelist: {}".format(args.chats))
|
|
logger.setLevel(loglevel)
|
|
bot.run()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|