import speedtest from jarvis.skills import Skill, SkillRegistering from jarvis.skills.decorators import intent_file_handler class SpeedTestSkill(Skill, metaclass=SkillRegistering): def __init__(self, data=dict): super().__init__("SpeedTestSkill", data) @intent_file_handler("start_speedtest.intent", "StartSpeedTestIntent") def handle_speedtest(self, data): try: self.speak_dialog_threaded('starting_speedtest') result = start_speedtest() down_speed = result[0] up_speed = result[1] self.speak_dialog('result_speedtest', {'DOWN': down_speed, 'UP': up_speed}) except: self.speak("Error speedtest") def start_speedtest(): speed = speedtest.Speedtest(timeout=2) speed.get_servers([]) speed.get_best_server() speed.download() speed.upload(pre_allocate=False) result = speed.results.dict() down_speed = ('%.2f' % float((result["download"]) / 1000000)) up_speed = ('%.2f' % float((result["upload"]) / 1000000)) return [down_speed, up_speed] def create_skill(data): return SpeedTestSkill(data)