Esempio n. 1
0
    def check_sopel(self):
        info = requests.get(self.sopel["version_url"], verify=botconfig.core.verify_ssl).json()
        if self.sopel["version_local"].releaselevel == 'final':
            self.sopel["version_online_num"] = info['version']
            self.sopel["notes"] = info['release_notes']
        else:
            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(self.sopel["version_online_num"])
Esempio n. 2
0
def check_version(bot):
    version = version_info
    success = False

    try:
        r = requests.get(version_url, timeout=(5, 5))
    except requests.exceptions.RequestException:
        _check_failed(bot)
    else:
        success = True

    try:
        if success:
            info = r.json()
    except ValueError:
        # TODO: use JSONDecodeError when dropping Pythons < 3.5
        _check_failed(bot)
        success = False

    if not success:
        if bot.memory.get('update_failures', 0) <= max_failures:
            # not enough failures to worry; silently ignore this one
            return

        # too many failures to ignore; notify owner
        bot.say(
            "[update] I haven't been able to check for updates in a while. "
            "Please verify that {} is working and I can reach it.".format(
                version_url), bot.config.core.owner)
        bot.say(
            "[update] If this issue persists, please alert the Sopel dev team "
            "in #sopel on Libera Chat, or open a GitHub issue: "
            "https://github.com/sopel-irc/sopel/issues", bot.config.core.owner)
        return

    _check_succeeded(bot)

    if version.releaselevel == 'final':
        latest = info['version']
        notes = info['release_notes']
        message = stable_message
    else:
        latest = info['unstable']
        notes = info.get('unstable_notes', '')
        if notes:
            notes = ' Full release notes at ' + notes
        message = unstable_message
    latest_version = _version_info(latest)

    if version < latest_version:
        msg = message.format(latest, current_version, notes)
        bot.say('[update] ' + msg, bot.config.core.owner)
Esempio n. 3
0
def check_version(bot):
    version = sopel.version_info

    info = requests.get(version_url).json()
    if version.releaselevel == 'final':
        latest = info['version']
        notes = info['release_notes']
    else:
        latest = info['unstable']
        notes = info.get('unstable_notes', '')
        if notes:
            notes = 'Full release notes at ' + notes
    latest_version = sopel._version_info(latest)
    msg = message.format(latest, sopel.__version__, notes)

    if version < latest_version:
        bot.msg(bot.config.core.owner, msg)
Esempio n. 4
0
def check_version(bot):
    version = sopel.version_info

    info = json.loads(sopel.web.get(version_url))
    if version.releaselevel == 'final':
        latest = info['version']
        notes = info['release_notes']
    else:
        latest = info['unstable']
        notes = info.get('unstable_notes', '')
        if notes:
            notes = 'Full release notes at ' + notes
    latest_version = sopel._version_info(latest)
    msg = message.format(latest, sopel.__version__, notes)

    if version < latest_version:
        bot.msg(bot.config.core.owner, msg)
Esempio n. 5
0
def check_version(bot):
    """Check latest sopel version. Notify bot owner if there is an update."""
    version = sopel.version_info

    info = requests.get(version_url).json()
    if version.releaselevel == 'final':
        latest = info['version']
        notes = info['release_notes']
    else:
        latest = info['unstable']
        notes = info.get('unstable_notes', '')
        if notes:
            notes = 'Full release notes at ' + notes
    latest_version = sopel._version_info(latest)
    msg = message.format(latest, sopel.__version__, notes)

    if version < latest_version:
        bot.say(msg, bot.config.core.owner)
Esempio n. 6
0
def check_version(bot):
    version = sopel.version_info
    success = False

    try:
        r = requests.get(version_url, timeout=(5, 5))
    except requests.exceptions.RequestException:
        _check_failed(bot)
    else:
        success = True

    try:
        if success:
            info = r.json()
    except ValueError:
        # TODO: use JSONDecodeError when dropping Pythons < 3.5
        _check_failed(bot)

    if not success and bot.memory.get('update_failures', 0) > 4:
        bot.say(
            "I haven't been able to check for updates in a while. "
            "Please verify that {} is working and I can reach it.".format(
                version_url), bot.config.core.owner)
        bot.say(
            "If this issue persists, please alert the Sopel dev team in "
            "#sopel on freenode, or open a GitHub issue: "
            "https://github.com/sopel-irc/sopel/issues", bot.config.core.owner)
        return

    _check_succeeded(bot)

    if version.releaselevel == 'final':
        latest = info['version']
        notes = info['release_notes']
    else:
        latest = info['unstable']
        notes = info.get('unstable_notes', '')
        if notes:
            notes = 'Full release notes at ' + notes
    latest_version = sopel._version_info(latest)
    msg = message.format(latest, sopel.__version__, notes)

    if version < latest_version:
        bot.say(msg, bot.config.core.owner)
Esempio n. 7
0
def check_version(bot):
    version = sopel.version_info

    # TODO: Python3 specific. Disable urllib warning from config file.
    # requests.packages.urllib3.disable_warnings()
    info = requests.get(version_url, verify=bot.config.core.verify_ssl).json()
    if version.releaselevel == 'final':
        latest = info['version']
        notes = info['release_notes']
    else:
        latest = info['unstable']
        notes = info.get('unstable_notes', '')
        if notes:
            notes = 'Full release notes at ' + notes
    latest_version = sopel._version_info(latest)
    msg = message.format(latest, sopel.__version__, notes)

    if version < latest_version:
        bot.msg(bot.config.core.owner, msg)
Esempio n. 8
0
def check_version(bot):
    version = sopel.version_info

    # TODO: Python3 specific. Disable urllib warning from config file.
    # requests.packages.urllib3.disable_warnings()
    info = requests.get(version_url, verify=bot.config.core.verify_ssl).json()
    if version.releaselevel == "final":
        latest = info["version"]
        notes = info["release_notes"]
    else:
        latest = info["unstable"]
        notes = info.get("unstable_notes", "")
        if notes:
            notes = "Full release notes at " + notes
    latest_version = sopel._version_info(latest)
    msg = message.format(latest, sopel.__version__, notes)

    if version < latest_version:
        bot.msg(bot.config.core.owner, msg)
Esempio n. 9
0
def check_version(bot):
    version = sopel.version_info

    # TODO: Python3 specific. Disable urllib warning from config file.
    # requests.packages.urllib3.disable_warnings()
    info = requests.get(version_url, verify=bot.config.core.verify_ssl).json()
    if version.releaselevel == 'final':
        latest = info['version']
        notes = info['release_notes']
    else:
        latest = info['unstable']
        notes = info.get('unstable_notes', '')
        if notes:
            notes = 'Full release notes at ' + notes
    latest_version = sopel._version_info(latest)
    msg = message.format(latest, sopel.__version__, notes)

    if version < latest_version:
        bot.say(msg, bot.config.core.owner)