feat: display changelog when update is available
This commit is contained in:
parent
662396bcc5
commit
19d868d352
@ -241,7 +241,10 @@ paused = Music paused.
|
|||||||
stopped = Music stopped.
|
stopped = Music stopped.
|
||||||
cleared = Playlist emptied.
|
cleared = Playlist emptied.
|
||||||
database_dropped = Database dropped. All records have gone.
|
database_dropped = Database dropped. All records have gone.
|
||||||
new_version_found = <h3>Update Available!</h3> New version of botamusique is available, send <i>!update</i> to update!
|
new_version_found = <h2>Update Available!</h2> Version {new_version} of botamusique is available! <hr />
|
||||||
|
<h3>Changelog</h3> {changelog} <hr /> Send <i>!update</i> to update!
|
||||||
|
update_successful = <h2>botamusique v{version} Installed!</h2><hr />
|
||||||
|
<h3>Changelog</h3> {changelog} <hr /> Visit <a href="https://github.com/azlux/botamusique">our github repo</a> for more details!
|
||||||
start_updating = Start updating...
|
start_updating = Start updating...
|
||||||
file_missed = Music file '{file}' missed! This item has been removed from the playlist.
|
file_missed = Music file '{file}' missed! This item has been removed from the playlist.
|
||||||
unknown_mode = Unknown playback mode '{mode}'. It should be one of <i>one-shot</i>, <i>repeat</i>, <i>random</i>.
|
unknown_mode = Unknown playback mode '{mode}'. It should be one of <i>one-shot</i>, <i>repeat</i>, <i>random</i>.
|
||||||
|
30
mumbleBot.py
30
mumbleBot.py
@ -69,11 +69,6 @@ class MumbleBot:
|
|||||||
self.on_killing = threading.Lock() # lock to acquire when killing ffmpeg thread is asked but ffmpeg is not
|
self.on_killing = threading.Lock() # lock to acquire when killing ffmpeg thread is asked but ffmpeg is not
|
||||||
# killed yet
|
# killed yet
|
||||||
|
|
||||||
if var.config.getboolean("bot", "auto_check_update"):
|
|
||||||
th = threading.Thread(target=self.check_update, name="UpdateThread")
|
|
||||||
th.daemon = True
|
|
||||||
th.start()
|
|
||||||
|
|
||||||
if args.host:
|
if args.host:
|
||||||
host = args.host
|
host = args.host
|
||||||
else:
|
else:
|
||||||
@ -131,7 +126,7 @@ class MumbleBot:
|
|||||||
self.ducking_release = time.time()
|
self.ducking_release = time.time()
|
||||||
self.last_volume_cycle_time = time.time()
|
self.last_volume_cycle_time = time.time()
|
||||||
|
|
||||||
if not var.db.has_option("bot", "ducking") and var.config.getboolean("bot", "ducking", fallback=False)\
|
if not var.db.has_option("bot", "ducking") and var.config.getboolean("bot", "ducking", fallback=False) \
|
||||||
or var.config.getboolean("bot", "ducking"):
|
or var.config.getboolean("bot", "ducking"):
|
||||||
self.is_ducking = True
|
self.is_ducking = True
|
||||||
self.ducking_volume = var.config.getfloat("bot", "ducking_volume", fallback=0.05)
|
self.ducking_volume = var.config.getfloat("bot", "ducking_volume", fallback=0.05)
|
||||||
@ -156,6 +151,17 @@ class MumbleBot:
|
|||||||
|
|
||||||
self.redirect_ffmpeg_log = var.config.getboolean('debug', 'redirect_ffmpeg_log', fallback=True)
|
self.redirect_ffmpeg_log = var.config.getboolean('debug', 'redirect_ffmpeg_log', fallback=True)
|
||||||
|
|
||||||
|
if var.config.getboolean("bot", "auto_check_update"):
|
||||||
|
th = threading.Thread(target=self.check_update, name="UpdateThread")
|
||||||
|
th.daemon = True
|
||||||
|
th.start()
|
||||||
|
|
||||||
|
last_startup_version = var.db.get("bot", "version", fallback=None)
|
||||||
|
if not last_startup_version or version.parse(last_startup_version) < version.parse(self.version):
|
||||||
|
var.db.set("bot", "version", self.version)
|
||||||
|
changelog = util.fetch_changelog().replace("\n", "<br>")
|
||||||
|
self.send_channel_msg(constants.strings("update_successful", version=self.version, changelog=changelog))
|
||||||
|
|
||||||
# Set the CTRL+C shortcut
|
# Set the CTRL+C shortcut
|
||||||
def ctrl_caught(self, signal, frame):
|
def ctrl_caught(self, signal, frame):
|
||||||
self.log.info(
|
self.log.info(
|
||||||
@ -178,8 +184,11 @@ class MumbleBot:
|
|||||||
self.log.debug("update: checking for updates...")
|
self.log.debug("update: checking for updates...")
|
||||||
new_version = util.new_release_version()
|
new_version = util.new_release_version()
|
||||||
if version.parse(new_version) > version.parse(self.version):
|
if version.parse(new_version) > version.parse(self.version):
|
||||||
|
changelog = util.fetch_changelog()
|
||||||
self.log.info("update: new version %s found, current installed version %s." % (new_version, self.version))
|
self.log.info("update: new version %s found, current installed version %s." % (new_version, self.version))
|
||||||
self.send_channel_msg(constants.strings('new_version_found'))
|
self.log.info("update: changelog: " + changelog)
|
||||||
|
changelog = changelog.replace("\n", "<br>")
|
||||||
|
self.send_channel_msg(constants.strings('new_version_found', new_version=new_version, changelog=changelog))
|
||||||
else:
|
else:
|
||||||
self.log.debug("update: no new version found.")
|
self.log.debug("update: no new version found.")
|
||||||
|
|
||||||
@ -545,10 +554,10 @@ class MumbleBot:
|
|||||||
self._max_rms = max(rms, self._max_rms)
|
self._max_rms = max(rms, self._max_rms)
|
||||||
if self._display_rms:
|
if self._display_rms:
|
||||||
if rms < self.ducking_threshold:
|
if rms < self.ducking_threshold:
|
||||||
print('%6d/%6d ' % (rms, self._max_rms) + '-'*int(rms/200), end='\r')
|
print('%6d/%6d ' % (rms, self._max_rms) + '-' * int(rms / 200), end='\r')
|
||||||
else:
|
else:
|
||||||
print('%6d/%6d ' % (rms, self._max_rms) + '-'*int(self.ducking_threshold/200)
|
print('%6d/%6d ' % (rms, self._max_rms) + '-' * int(self.ducking_threshold / 200)
|
||||||
+ '+'*int((rms - self.ducking_threshold)/200), end='\r')
|
+ '+' * int((rms - self.ducking_threshold) / 200), end='\r')
|
||||||
|
|
||||||
if rms > self.ducking_threshold:
|
if rms > self.ducking_threshold:
|
||||||
if self.on_ducking is False:
|
if self.on_ducking is False:
|
||||||
@ -795,4 +804,3 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
# Start the main loop.
|
# Start the main loop.
|
||||||
var.bot.loop()
|
var.bot.loop()
|
||||||
|
|
||||||
|
13
util.py
13
util.py
@ -16,7 +16,7 @@ import youtube_dl
|
|||||||
from importlib import reload
|
from importlib import reload
|
||||||
from sys import platform
|
from sys import platform
|
||||||
import traceback
|
import traceback
|
||||||
import urllib.request
|
import requests
|
||||||
from packaging import version
|
from packaging import version
|
||||||
|
|
||||||
log = logging.getLogger("bot")
|
log = logging.getLogger("bot")
|
||||||
@ -101,8 +101,15 @@ def get_user_ban():
|
|||||||
|
|
||||||
|
|
||||||
def new_release_version():
|
def new_release_version():
|
||||||
v = urllib.request.urlopen(urllib.request.Request("https://packages.azlux.fr/botamusique/version")).read()
|
r = requests.get("https://packages.azlux.fr/botamusique/version")
|
||||||
return v.rstrip().decode()
|
v = r.text
|
||||||
|
return v.rstrip()
|
||||||
|
|
||||||
|
|
||||||
|
def fetch_changelog():
|
||||||
|
r = requests.get("https://packages.azlux.fr/botamusique/changelog")
|
||||||
|
c = r.text
|
||||||
|
return c
|
||||||
|
|
||||||
|
|
||||||
def update(current_version):
|
def update(current_version):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user