mirror of
https://github.com/SpiceBot/SpiceBot.git
synced 2026-11-13 06:59:53 -05:00
sopel version dialogue
This commit is contained in:
parent
3504bfa166
commit
3c992ede46
@ -22,8 +22,10 @@ class BotUpdates():
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.sopel = {
|
self.sopel = {
|
||||||
"version_local": sopel.version_info,
|
"version_local": sopel.version_info,
|
||||||
|
"version_local_num": sopel.__version__,
|
||||||
"version_url": 'https://sopel.chat/latest.json',
|
"version_url": 'https://sopel.chat/latest.json',
|
||||||
"version_online": None,
|
"version_online": None,
|
||||||
|
"version_online_num": None,
|
||||||
}
|
}
|
||||||
self.spicebot = False
|
self.spicebot = False
|
||||||
|
|
||||||
@ -32,15 +34,20 @@ class BotUpdates():
|
|||||||
def check_sopel(self):
|
def check_sopel(self):
|
||||||
info = requests.get(self.sopel["version_url"], verify=botconfig.core.verify_ssl).json()
|
info = requests.get(self.sopel["version_url"], verify=botconfig.core.verify_ssl).json()
|
||||||
if self.sopel["version_local"].releaselevel == 'final':
|
if self.sopel["version_local"].releaselevel == 'final':
|
||||||
latest = info['version']
|
self.sopel["version_online_num"] = info['version']
|
||||||
|
self.sopel["notes"] = info['release_notes']
|
||||||
else:
|
else:
|
||||||
latest = info['unstable']
|
self.sopel["version_online_num"] = info['unstable']
|
||||||
|
self.sopel["notes"] = info.get('unstable_notes', '')
|
||||||
|
if self.sopel["notes"]:
|
||||||
|
self.sopel["notes"] = 'Full release notes at ' + self.sopel["notes"]
|
||||||
|
|
||||||
self.sopel["version_online"] = sopel._version_info(latest)
|
self.sopel["version_online"] = sopel._version_info(self.sopel["version_online_num"])
|
||||||
|
|
||||||
def check_spicebot(self):
|
def check_spicebot(self):
|
||||||
return
|
return
|
||||||
self.sopel = True
|
self.sopel = True
|
||||||
|
# get actual version number, and commit count, and assemble a version
|
||||||
|
|
||||||
|
|
||||||
version = BotUpdates()
|
version = BotUpdates()
|
||||||
|
|||||||
@ -103,6 +103,7 @@ def setup_startupmonologue(bot):
|
|||||||
botevents.BOT_STARTUPMONOLOGUE_CHANNELS,
|
botevents.BOT_STARTUPMONOLOGUE_CHANNELS,
|
||||||
botevents.BOT_STARTUPMONOLOGUE_COMMANDS,
|
botevents.BOT_STARTUPMONOLOGUE_COMMANDS,
|
||||||
botevents.BOT_STARTUPMONOLOGUE_AI,
|
botevents.BOT_STARTUPMONOLOGUE_AI,
|
||||||
|
botevents.BOT_STARTUPMONOLOGUE_SOPEL_VERSION,
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -19,6 +19,16 @@ def bot_startup_monologue_start(bot, trigger):
|
|||||||
SpiceBot.events.trigger(bot, SpiceBot.events.BOT_STARTUPMONOLOGUE_CONNECTED, "SpiceBot_StartupMonologue")
|
SpiceBot.events.trigger(bot, SpiceBot.events.BOT_STARTUPMONOLOGUE_CONNECTED, "SpiceBot_StartupMonologue")
|
||||||
|
|
||||||
|
|
||||||
|
@sopel.module.event(SpiceBot.events.BOT_CONNECTED)
|
||||||
|
@sopel.module.rule('.*')
|
||||||
|
def bot_startup_monologue_sopel_version(bot, trigger):
|
||||||
|
SpiceBot.events.trigger(bot, SpiceBot.events.BOT_STARTUPMONOLOGUE_SOPEL_VERSION, "SpiceBot_StartupMonologue")
|
||||||
|
displayval = "I am running Sopel " + str(SpiceBot.version.sopel["version_local_num"])
|
||||||
|
if SpiceBot.version.sopel["version_local"] < SpiceBot.version.sopel["version_online"]:
|
||||||
|
displayval += " Update Available to " + SpiceBot.version.sopel["version_online_num"]
|
||||||
|
SpiceBot.startupmonologue.dict["sopel_version"] = displayval
|
||||||
|
|
||||||
|
|
||||||
@sopel.module.event(SpiceBot.events.BOT_CHANNELS)
|
@sopel.module.event(SpiceBot.events.BOT_CHANNELS)
|
||||||
@sopel.module.rule('.*')
|
@sopel.module.rule('.*')
|
||||||
def bot_startup_monologue_channels(bot, trigger):
|
def bot_startup_monologue_channels(bot, trigger):
|
||||||
|
|||||||
27
sopel_modules/SpiceBot_Core_Processing/Updates_Available.py
Normal file
27
sopel_modules/SpiceBot_Core_Processing/Updates_Available.py
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# coding=utf8
|
||||||
|
from __future__ import unicode_literals, absolute_import, division, print_function
|
||||||
|
|
||||||
|
import sopel
|
||||||
|
|
||||||
|
import sopel_modules.SpiceBot as SpiceBot
|
||||||
|
|
||||||
|
wait_time = 24 * 60 * 60 # check once per day
|
||||||
|
|
||||||
|
message = (
|
||||||
|
'A new Sopel version, {}, is available. I am running {}. Please update '
|
||||||
|
'me. Full release notes at {}'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@sopel.module.interval(wait_time)
|
||||||
|
def check_updates_sopel_interval(bot):
|
||||||
|
SpiceBot.version.check_sopel()
|
||||||
|
|
||||||
|
msg = message.format(
|
||||||
|
SpiceBot.version.sopel["version_online_num"],
|
||||||
|
SpiceBot.version.sopel["version_local_num"],
|
||||||
|
SpiceBot.version.sopel["notes"]
|
||||||
|
)
|
||||||
|
|
||||||
|
if SpiceBot.version.sopel["version_local"] < SpiceBot.version.sopel["version_online"]:
|
||||||
|
bot.osd(msg, bot.config.core.owner)
|
||||||
@ -17,6 +17,7 @@ from .osd import *
|
|||||||
from .StartupMonologue import *
|
from .StartupMonologue import *
|
||||||
from .Logs import *
|
from .Logs import *
|
||||||
from .Kick import *
|
from .Kick import *
|
||||||
|
from .Updates_Available import *
|
||||||
# from .Watch_URL import *
|
# from .Watch_URL import *
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user