Control por computadora a través de Telegram

Entrada


Hola Habr!

Recientemente, quería instalar una aplicación para controlar el mouse en una computadora, pero tuve problemas para conectar el teléfono y tuve la idea de hacer algo similar, pero ¿cómo? Después de pasar por varias opciones, recordé los bots de telegramas que pueden ser bastante adecuados para hacer algo similar en la versión de texto, por ejemplo, escribes el bot "/ open chrome" y Chrome se abre en tu computadora.

Que necesitamos


Escribiré el bot en Python y usaré las siguientes bibliotecas: frasco, pyngrok, solicitudes, win32com.client, os, subproceso. Más adelante en el artículo explicaré por qué necesitamos una biblioteca. También necesitamos Telegram en un teléfono, tableta o incluso en otra computadora. ¡Y también necesitamos un bot de telegramas que escribiremos cómo puedes crearlo tú mismo, porque ya hay suficientes artículos sobre Habré!

¿Cómo funcionará todo esto?


Cuando escribimos a nuestro bot, enviará una solicitud posterior con datos sobre el mensaje y sobre el usuario que lo envió a nuestra url, después de lo cual nuestro script de Python, dependiendo del texto, realizará ciertas acciones, como iniciar aplicaciones, ingresar texto o incluso Apagado de la computadora.

Implementación


Primero, cree nuestro archivo python, al que llamaré main.py, importe todas las bibliotecas que necesitemos (pero primero debemos instalarlas a través de pip):

from flask import Flask, request from pyngrok import ngrok import requests import subprocess import os import win32com.client 

Ahora, para recibir solicitudes del bot, necesitamos ejecutar Flask y luego ejecutar Pyngrok para acceder a nuestro sitio no solo en la red local:

 app = Flask(__name__) # flask ngrok_url = ngrok.connect(port=5000).replace('http','https') # ngrok 

Ahora configuremos el bot: haremos que las solicitudes lleguen a nuestro servidor:

 token = 'token       BotFather' #token  URL = 'https://api.telegram.org/bot'+token+'/' requests.get(URL+'setWebhook?url='+ngrok_url) # url  webhook   shell = win32com.client.Dispatch("WScript.Shell") #         

Creemos una función para que el bot pueda responder a nuestros mensajes:

 def sendMessage(chat_id,text): url = URL+"sendMessage?chat_id="+str(chat_id)+"&text="+str(text) requests.get(url) 

Ahora ve a la función que procesará los mensajes del bot y ejecutará los comandos:

 @app.route('/', methods=['POST','GET']) #          index def index(): if request.method=='POST': #   post  r = request.get_json() # json chat_id = r["message"]["chat"]["id"] #   id      username = r["message"]["from"]["username"] # username     text = r["message"]["text"] #   msg = text.split() #       cmd = msg[0] #    l = len(msg) #  if username==' username': #     if cmd=='/cmd' and l>1: #  /cmd proc = subprocess.Popen(text[5:], shell=True, stdout=subprocess.PIPE).communicate() #      /cmd sendMessage(chat_id, proc[0].decode('cp866')) #     Telegram elif cmd=='/ntp': #  /ntp os.system('notepad.exe') #  elif cmd=='/off': #  /off os.system('shutdown -p') #  elif cmd=='/p': #  /p shell.SendKeys(text[3:]) #      return 'Hello World!' # -   ngrok_url     

Y aún es necesario agregar algunas líneas que Flask comenzó a funcionar:

 if __name__=='__main__': app.run() 

Algunas palabras más del autor.


Quizás este script no pueda reemplazar por completo el control de la computadora, pero puede generar muchos comandos desde encender la música hasta iniciar su entorno de desarrollo. ¡Gracias a todos por leer esto! Si tiene problemas o tiene alguna pregunta, escriba los comentarios, ¡pero lo tengo!

Source: https://habr.com/ru/post/450524/


All Articles