Second wave of initial code changes.
This commit is contained in:
60
mumbleBot.py
60
mumbleBot.py
@ -1,5 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Bragi - A Mumble music bot
|
||||
# Forked from botamusique by azlux (https://github.com/azlux/botamusque)
|
||||
#
|
||||
import re
|
||||
import threading
|
||||
import time
|
||||
@ -36,7 +40,7 @@ class MumbleBot:
|
||||
|
||||
def __init__(self, args):
|
||||
self.log = logging.getLogger("bot")
|
||||
self.log.info(f"bot: botamusique version {self.get_version()}, starting...")
|
||||
self.log.info(f"bot: bragi version {self.get_version()}, starting...")
|
||||
signal.signal(signal.SIGINT, self.ctrl_caught)
|
||||
self.cmd_handle = {}
|
||||
|
||||
@ -48,8 +52,6 @@ class MumbleBot:
|
||||
self.channel = var.config.get("server", "channel")
|
||||
|
||||
var.user = args.user
|
||||
var.is_proxified = var.config.getboolean(
|
||||
"webinterface", "is_web_proxified")
|
||||
|
||||
# Flags to indicate the bot is exiting (Ctrl-C, or !kill)
|
||||
self.exit = False
|
||||
@ -187,26 +189,7 @@ class MumbleBot:
|
||||
|
||||
self.redirect_ffmpeg_log = var.config.getboolean('debug', 'redirect_ffmpeg_log')
|
||||
|
||||
if var.config.getboolean("bot", "auto_check_update"):
|
||||
def check_update():
|
||||
nonlocal self
|
||||
new_version, changelog = util.check_update(self.get_version())
|
||||
if new_version:
|
||||
self.send_channel_msg(tr('new_version_found', new_version=new_version, changelog=changelog))
|
||||
|
||||
th = threading.Thread(target=check_update, name="UpdateThread")
|
||||
th.daemon = True
|
||||
th.start()
|
||||
|
||||
last_startup_version = var.db.get("bot", "version", fallback=None)
|
||||
try:
|
||||
if not last_startup_version or version.parse(last_startup_version) < version.parse(self.version):
|
||||
var.db.set("bot", "version", self.version)
|
||||
if var.config.getboolean("bot", "auto_check_update"):
|
||||
changelog = util.fetch_changelog()
|
||||
self.send_channel_msg(tr("update_successful", version=self.version, changelog=changelog))
|
||||
except version.InvalidVersion:
|
||||
var.db.set("bot", "version", self.version)
|
||||
var.db.set("bot", "version", self.version)
|
||||
|
||||
# Set the CTRL+C shortcut
|
||||
def ctrl_caught(self, signal, frame):
|
||||
@ -753,31 +736,13 @@ class MumbleBot:
|
||||
self.pause_at_id = ""
|
||||
|
||||
|
||||
def start_web_interface(addr, port):
|
||||
global formatter
|
||||
import interface
|
||||
|
||||
# setup logger
|
||||
werkzeug_logger = logging.getLogger('werkzeug')
|
||||
logfile = util.solve_filepath(var.config.get('webinterface', 'web_logfile'))
|
||||
if logfile:
|
||||
handler = logging.handlers.RotatingFileHandler(logfile, mode='a', maxBytes=10240, backupCount=3) # Rotate after 10KB, leave 3 old logs
|
||||
else:
|
||||
handler = logging.StreamHandler()
|
||||
|
||||
werkzeug_logger.addHandler(handler)
|
||||
|
||||
interface.init_proxy()
|
||||
interface.web.env = 'development'
|
||||
interface.web.secret_key = var.config.get('webinterface', 'flask_secret')
|
||||
interface.web.run(port=port, host=addr)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
supported_languages = util.get_supported_language()
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description='Bot for playing music on Mumble')
|
||||
description='Bragi - Bot for playing music on Mumble')
|
||||
|
||||
# General arguments
|
||||
parser.add_argument("--config", dest='config', type=str, default='configuration.ini',
|
||||
@ -950,17 +915,6 @@ if __name__ == '__main__':
|
||||
var.bot_logger.info("bot: load playlist from previous session")
|
||||
var.playlist.load()
|
||||
|
||||
# ============================
|
||||
# Start the web interface
|
||||
# ============================
|
||||
if var.config.getboolean("webinterface", "enabled"):
|
||||
wi_addr = var.config.get("webinterface", "listening_addr")
|
||||
wi_port = var.config.getint("webinterface", "listening_port")
|
||||
tt = threading.Thread(
|
||||
target=start_web_interface, name="WebThread", args=(wi_addr, wi_port))
|
||||
tt.daemon = True
|
||||
bot_logger.info('Starting web interface on {}:{}'.format(wi_addr, wi_port))
|
||||
tt.start()
|
||||
|
||||
# Start the main loop.
|
||||
var.bot.loop()
|
||||
|
Reference in New Issue
Block a user