-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
200 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
#!/usr/bin/env python3 | ||
# -*- coding: utf-8 -*- | ||
#import | ||
#time.sleep(60) | ||
|
||
import os | ||
import re | ||
import socket | ||
import telebot | ||
from telebot import types | ||
from requests import get | ||
|
||
#Aqui debes poner entre las '' el token de tu bot | ||
TOKEN = '' | ||
|
||
bot = telebot.TeleBot(TOKEN) | ||
|
||
#Lista de comandos que tiene el bot, esta se mostrará en la ayuda | ||
commands = { | ||
'about': 'Información sobre el bot y creador', | ||
'ayuda': 'Lista de comandos disponibles', | ||
'reiniciar': 'Reinicia la Raspberry', | ||
'apagar': 'Apaga la Raspberry', | ||
'exec': 'Ejecuta un comando por terminal', | ||
'temperatura': 'Temperatura del procesador', | ||
'usb': 'Dispositivos conectados a puertos USB', | ||
'red': 'Visualiza la conf de la red e interfaces', | ||
'ping': 'Realiza ping, comprueba la conexión', | ||
'memoria': 'Uso y capacidad de las memorias', | ||
'liberar': 'Vacia la memoria swap', | ||
'ip_privada': 'Expone la IP privada', | ||
'ip_publica': 'Expone la IP publica', | ||
'hostname': 'Muestra el nombre del equipo' | ||
} | ||
|
||
#Comando /start cuando se inicia el bot | ||
@bot.message_handler(commands=['start']) | ||
def command_help(m): | ||
name = m.from_user.first_name | ||
bot.send_message(m.chat.id, '¡Hola ' + name + '! Este bot es desarrollado por Amdr0meda, para ver la guia de uso y más información visita:') | ||
bot.send_message(m.chat.id, 'https://github.com/Amdr0meda/Raspberry_telegram_bot') | ||
bot.send_message(m.chat.id, 'Utiliza /ayuda ver los comandos disponibles') | ||
|
||
#Comando /about información del bot y codigo | ||
@bot.message_handler(commands=['about']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
about_bot = 'Este bot es desarrollado por Amdr0meda, para ver la guia de uso y más información visita el repositorio del proyecto en:\n\n https://github.com/Amdr0meda/Raspberry_telegram_bot' | ||
bot.send_message(m.chat.id, about_bot) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /ayuda que responde enviando un texto con los comandos disponibles | ||
@bot.message_handler(commands=['ayuda']) | ||
def command_help(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
help_text = 'Lista de comandos disponibles.\n\n' | ||
for key in commands: | ||
help_text += '/' + key + ' - ' | ||
help_text += commands[key] + '\n' | ||
bot.send_message(m.chat.id, help_text) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /reiniciar reinicia la Raspberry | ||
@bot.message_handler(commands=['reiniciar']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
bot.send_message(m.chat.id, 'Reiniciando, recibirás un mensaje cuando se complete.') | ||
os.system('sudo shutdown -r now') | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /apagar apaga la Raspberry | ||
@bot.message_handler(commands=['apagar']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
bot.send_message(m.chat.id, 'Reiniciando, recibirás un mensaje cuando se complete.') | ||
os.system('sudo shutdown -r now') | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /ip_privada que muestra la ip privada del equipo | ||
@bot.message_handler(commands=['ip_privada']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
f = os.popen('hostname -I') | ||
ip_private = f.read() | ||
bot.send_message(m.chat.id, 'Tu direccion IP privada es: ') | ||
bot.send_message(m.chat.id, ip_private) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /ip_publica que muestra la ip publica del equipo | ||
@bot.message_handler(commands=['ip_publica']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
ip_public = get('https://api.ipify.org').text | ||
bot.send_message(m.chat.id, 'Tu direccion IP publica es: ') | ||
bot.send_message(m.chat.id, ip_public) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /hostame muestra el nombre del equipo | ||
@bot.message_handler(commands=['hostname']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
hostname = socket.gethostname() | ||
bot.send_message(m.chat.id, 'El nombre de tu equipo es:') | ||
bot.send_message(m.chat.id, hostname) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /exec que responde ejecutando X comando en la terminal | ||
@bot.message_handler(commands=['exec']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
bot.send_message(m.chat.id, 'Resultado del comando:') | ||
f = os.popen(m.text[len('/exec '):]) | ||
result = f.read() | ||
bot.send_message(m.chat.id, result) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /temperatura muestra la temperatura del procesador y un comentario | ||
@bot.message_handler(commands=['temperatura']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
f = os.popen('vcgencmd measure_temp') | ||
dump = f.read() | ||
cleaned = re.sub(r"[temp='C]","", dump) | ||
temperature = cleaned.rstrip() | ||
if (temperature <= '40'): | ||
bot.send_message(m.chat.id,'Temperatura normal: ' + temperature + ' °C') | ||
elif (temperature <= '50'): | ||
bot.send_message(m.chat.id,'Temperatura alta: ' + temperature + ' °C') | ||
else: | ||
bot.send_message(m.chat.id,'Temperatura muy alta: ' + temperature + ' °C') | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /usb muestra los dispositivos conectados a puertos USB | ||
@bot.message_handler(commands=['usb']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
f = os.popen('lsusb') | ||
result = f.read() | ||
bot.send_message(m.chat.id, result) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /red Visualiza la conf de la red y sus interfaces | ||
@bot.message_handler(commands=['red']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
f = os.popen('ifconfig') | ||
result = f.read() | ||
bot.send_message(m.chat.id, result) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /ping con un ping a Google 2 veces | ||
@bot.message_handler(commands=['ping']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
f = os.popen('ping www.google.com -c 1') | ||
result = f.read() | ||
bot.send_message(m.chat.id, 'El resultado del ping a www.google.com es: \n\n' + result) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /memoria muestra el uso y capacidad de las memorias | ||
@bot.message_handler(commands=['memoria']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
f = os.popen('free -m') | ||
result = f.read() | ||
bot.send_message(m.chat.id, '(Memoria mostrada en megabytes)') | ||
bot.send_message(m.chat.id, result) | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Comando /memoria muestra el uso y capacidad de las memorias | ||
@bot.message_handler(commands=['liberar']) | ||
def command_long_text(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
f = os.popen('sudo swapoff -a ; sudo swapon -a') | ||
bot.send_message(m.chat.id, 'La memoria swap ha sido liberada') | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
#Texto para cuando el usuario escribe cualquier comando / palabra que no este declarada | ||
@bot.message_handler(func=lambda message: True, content_types=['text']) | ||
def command_default(m): | ||
if m.chat.id == (TU_ID_AQUI): | ||
bot.send_message(m.chat.id, 'No te entiendo, escribe /ayuda para ver los comandos disponibles') | ||
else: | ||
bot.send_message(m.chat.id, 'No estas autorizado. Utiliza /about para obtener mas información') | ||
|
||
bot.infinity_polling() |