Gostaria de compartilhar uma solução simples para verificar a velocidade da rede quando não estiver em casa.
Basta enviar para o seu Bot a seguinte mensagem “teste” e ele fará os testes e enviará uma imagem resultado do teste.
Segue um exemplo da resposta:
No trecho “bot = telepot.Bot(“<Token>”)”
Será necessário preencher Token do Bot gerado pelo BotFather do Telegram.
Para este trecho “chat = <ID>”
Basta informar o ID do grupo ou chat.
Para descobrir o Chat id. Basta enviar uma mensagem para o seu BOT e acessar o seguinte endereço:
Será exibido um Json semelhante a este:
import telepot import urllib.request import os import time import subprocess import re bot = telepot.Bot(“<Token>”) #Token Telegram chat = <ID> # ID do grupo ou Chat individual
def speedTest():
speedtest = subprocess.Popen(‘speedtest-cli —
share’,shell=True,stdout=subprocess.PIPE).stdout.read().decode(‘utf-
8′) operadora =
re.sub(‘\’\]’,”,re.sub(‘\[\”,”,str(re.findall(‘Testing from\s(.*?)\s’, speedtest, re.MULTILINE)))) ip =
re.sub(‘\’\]’,”,re.sub(‘\[\”,”,str(re.findall(‘\d{1,3}\.\d{1,3}\.\d
{1,3}\.\d{1,3}’,speedtest, re.MULTILINE)))) download = re.findall(‘Download:\s(.*?)\s’, speedtest, re.MULTILINE)
upload = re.findall(‘Upload:\s(.*?)\s’,speedtest,re.MULTILINE) URL = re.findall(‘Share results:\s(.*)’,speedtest,re.MULTILINE) return operadora,ip,download,upload,URL
def enviaIP(msg):
retorno = msg[‘text’] if retorno.upper() == ‘IP’: print(‘Executando…’)
operadora,ip,download,upload,URL = speedTest() resposta = ‘O seu IP é ‘ + str(ip) + ‘ na operadora ‘ + str(operadora)
bot.sendMessage(chat,resposta); elif retorno.upper() == ‘TESTE’: bot.sendMessage(chat,’Vou fazer os testes pra você…’) print(‘SpeedTest Iniciado…’) time.sleep(2)
operadora,ip,download,upload,URL = speedTest() photo = re.sub(‘\’\]’,”,re.sub(‘\[\”,”,str(URL))) print(photo)
bot.sendPhoto(chat,str(photo))
if __name__ == “__main__”: bot.sendMessage(chat,’Raspiberry Online – Script OK’) bot.message_loop(enviaIP) while 1: pass;
Autor: Igor Augusto Veloso Ceranto