Closed ludo453 closed 3 years ago
Salut,
Le problème vient de chez Free. Le certificat SSL de l'API a expiré.
$ curl "https://smsapi.free-mobile.fr"
curl: (60) SSL certificate problem: certificate has expired
Salut,
Merci
Je n'ai pas penser à ça. On peut faire quelque chose ?
Bonne journée
remplacer la ligne : https://github.com/Pinaute/OctoPrint_FreeMobile-Notifier/blob/4968dab515a19b8ee80482cc928159b15e54eaaf/octoprint_freemobilenotifier/__init__.py#L91
par :request.urlopen(url, context=ssl._create_unverified_context())
source https://stackoverflow.com/questions/19268548/python-ignore-certificate-validation-urllib2
OK je regarde ça merci -------- Message d'origine --------De : Antoine Cavard @.> Date : 24/06/2021 12:23 (GMT+01:00) À : Pinaute/OctoPrint_FreeMobile-Notifier @.> Cc : ludo453 @.>, Author @.> Objet : Re: [Pinaute/OctoPrint_FreeMobile-Notifier] Mise à jour (#7) remplacer la ligne : https://github.com/Pinaute/OctoPrint_FreeMobile-Notifier/blob/4968dab515a19b8ee80482cc928159b15e54eaaf/octoprint_freemobilenotifier/__init__.py#L91 par :request.urlopen(url, context=ssl._create_unverified_context())
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.
Je ne vois pas ou le faire. Dans le pluggins sur l'octoprint ?
j'ai réinstaller et rien ça ne fonctionne pas de mon coté.
Mais ça ne viendrai pas du faite que je suis je crois sur Python 3 ?
De: "Antoine Cavard" @.> À: "Pinaute/OctoPrint_FreeMobile-Notifier" @.> Cc: "ludovic durousseau" @.>, "Author" @.> Envoyé: Jeudi 24 Juin 2021 12:23:21 Objet: Re: [Pinaute/OctoPrint_FreeMobile-Notifier] Mise à jour (#7)
remplacer la ligne : [ https://github.com/Pinaute/OctoPrint_FreeMobile-Notifier/blob/4968dab515a19b8ee80482cc928159b15e54eaaf/octoprint_freemobilenotifier/__init__.py#L91 | https://github.com/Pinaute/OctoPrint_FreeMobile-Notifier/blob/4968dab515a19b8ee80482cc928159b15e54eaaf/octoprint_freemobilenotifier/__init__.py#L91 ]
par : request.urlopen(url, context=ssl._create_unverified_context())
— You are receiving this because you authored the thread. Reply to this email directly, [ https://github.com/Pinaute/OctoPrint_FreeMobile-Notifier/issues/7#issuecomment-867522517 | view it on GitHub ] , or [ https://github.com/notifications/unsubscribe-auth/AUB4EQC6FTUENCW3EFNKDZLTUMBRTANCNFSM47HFMOCQ | unsubscribe ] .
Ça fonctionne pour moi.
Tu as ajouté la lib ssl ?
import ssl
OK normalement oui Mais tu peux faire une mise à jour sinon avec le changement ? -------- Message d'origine --------De : Antoine Cavard @.> Date : 24/06/2021 18:52 (GMT+01:00) À : Pinaute/OctoPrint_FreeMobile-Notifier @.> Cc : ludo453 @.>, Author @.> Objet : Re: [Pinaute/OctoPrint_FreeMobile-Notifier] Mise à jour (#7)
Ça fonctionne pour moi.
Tu as ajouté la lib ssl ?
import ssl
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.
La je ne comprend plus rien dit moi ou et comment ajouter la ligne request.urlopen(url, context=ssl._create_unverified_context())
Et comment vérifier la lib ssl
La dessus je n’ai rien toucher
De : Antoine Cavard @.> Envoyé : jeudi 24 juin 2021 18:52 À : Pinaute/OctoPrint_FreeMobile-Notifier @.> Cc : ludo453 @.>; Author @.> Objet : Re: [Pinaute/OctoPrint_FreeMobile-Notifier] Mise à jour (#7)
Ça fonctionne pour moi.
Tu as ajouté la lib ssl ?
import ssl
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Pinaute/OctoPrint_FreeMobile-Notifier/issues/7#issuecomment-867798088 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AUB4EQBWBHMD6467YKUBFZDTUNPC5ANCNFSM47HFMOCQ . https://github.com/notifications/beacon/AUB4EQCR7VR6LFNO564LQH3TUNPC5A5CNFSM47HFMOC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOGO4YYSA.gif
OK normalement oui Mais tu peux faire une mise à jour sinon avec le changement ?
Je ne vais pas faire le changement dans le projet officiel du plugin. Ne pas vérifier la validité du certificat introduit une faille de sécurité. Libre à chacun de faire le changement de son coté.
Le problème vient de chez Free, dans quelque jours le problème sera peut-être résolut.
La je ne comprend plus rien dit moi ou et comment ajouter la ligne request.urlopen(url, context=ssl._create_unverified_context())
A la racine du plugin, tu peux remplacer le fichier __init__.py
par celui ci-dessous.
J'ai ajouté l'import de la lib ssl et l'option pour ignorer la vérification du certificat.
```python # coding=utf-8 from __future__ import absolute_import import os import sys import ssl import octoprint.plugin from future import standard_library standard_library.install_aliases() from urllib import request,parse class FreemobilenotifierPlugin(octoprint.plugin.EventHandlerPlugin, octoprint.plugin.SettingsPlugin, octoprint.plugin.AssetPlugin, octoprint.plugin.TemplatePlugin): #~~ SettingsPlugin def get_settings_defaults(self): return dict( login="", pass_key="", print_events=dict( PrintStarted=dict( Enabled=False, Message="A new print has started! - Filename: {filename}", ), PrintFailed=dict( Enabled=False, Message="Oh no! The print has failed... - Filename: {filename}", ), PrintCancelled=dict( Enabled=False, Message="Uh oh... someone cancelled the print! - Filename: {filename}", ), PrintDone=dict( Enabled=True, Message="Print finished successfully! - Filename: {filename}, Time: {time}", ), PrintPaused=dict( Enabled=False, Message="Printing has been paused... - Filename: {filename}", Color="warning", ), PrintResumed=dict( Enabled=False, Message="Phew! Printing has been resumed! Back to work... - Filename: {filename}", ), ), ) def get_settings_version(self): return 1 #~~ TemplatePlugin def get_template_configs(self): return [dict(type="settings", name="FreeMobile Notifier", custom_bindings=False)] def on_event(self, event, payload): events = self._settings.get(['print_events'], merged=True) if event in events and events[event] and events[event]['Enabled']: login = self._settings.get(['login']) if not login: self._logger.exception("Free login is not set!") return pass_key = self._settings.get(['pass_key']) if not pass_key: self._logger.exception("Free key is not set!") return filename = payload["name"] message = {} ## event settings event = self._settings.get(['print_events', event], merged=True) import datetime import octoprint.util if "time" in payload and payload["time"]: elapsed_time = octoprint.util.get_formatted_timedelta(datetime.timedelta(seconds=payload["time"])) else: elapsed_time = "" message = parse.quote(event['Message'].format(**{'filename': filename, 'time':elapsed_time})) login = self._settings.get(["login"]) pass_key = self._settings.get(["pass_key"]) url = 'https://smsapi.free-mobile.fr/sendmsg?&user='+login+'&pass='+pass_key+'&msg='+message try: request.urlopen(url, context=ssl._create_unverified_context()) except Exception as e: # report problem sending sms self._logger.exception("SMS notification error: %s" % (str(e))) else: # report notification was sent self._logger.info("Print notification sent to %s" % (self._settings.get(['login']))) else: self._logger.debug("SMS not configured for event.") return ##~~ Softwareupdate hook def get_update_information(self): return dict( freemobilenotifier=dict( displayName="FreeMobile Notifier", displayVersion=self._plugin_version, # version check: github repository type="github_release", user="Pinaute", repo="OctoPrint_FreeMobile-Notifier", current=self._plugin_version, # update method: pip pip="https://github.com/Pinaute/OctoPrint_FreeMobile-Notifier/archive/{target_version}.zip" ) ) __plugin_name__ = "FreeMobile Notifier" __plugin_pythoncompat__ = ">=2.7,<4" # python 2 and 3 def __plugin_load__(): global __plugin_implementation__ __plugin_implementation__ = FreemobilenotifierPlugin() global __plugin_hooks__ __plugin_hooks__ = { "octoprint.plugin.softwareupdate.check_config": __plugin_implementation__.get_update_information } ```
Ensuite redémarre le serveur pour prendre en compte les changements.
Salut Normalement le certificat est ok maintenant.
Pour toi c'est ok ?
Salut,
Ca ne fonctionne plus depuis les dernières mise à jour octoprint.
Prévois tu une mise à jour ?
Merci