Entrée
Bonjour, Habr!
Récemment, je voulais installer une application pour contrôler la souris sur un ordinateur, mais j'ai eu des problèmes pour connecter le téléphone et j'ai eu l'idée de faire quelque chose de similaire moi-même, mais comment? Après avoir parcouru plusieurs options, je me suis souvenu des bots de télégrammes qui peuvent être tout à fait appropriés pour faire quelque chose de similaire dans la version texte, par exemple, vous écrivez le bot
"/ open chrome" et Chrome s'ouvre sur votre ordinateur.
De quoi avons-nous besoin?
J'écrirai le bot en Python et j'utiliserai les bibliothèques suivantes: flask, pyngrok, requêtes, win32com.client, os, subprocess. Plus loin dans l'article, j'expliquerai pourquoi nous avons besoin d'une bibliothèque. Nous avons également besoin de Telegram sur un téléphone, une tablette ou même sur un autre ordinateur. Et nous avons également besoin d'un robot télégramme dont nous écrirons comment vous pouvez le créer vous-même, car il y a déjà suffisamment d'articles de ce type sur Habré!
Comment tout cela fonctionnera-t-il?
Lorsque nous écrivons à notre bot, il enverra une post-demande avec des données sur le message et sur l'utilisateur qui l'a envoyé à notre URL, après quoi notre script python, selon le texte, effectuera certaines actions telles que le lancement d'applications, la saisie de texte, ou même arrêt de l'ordinateur.
Implémentation
Tout d'abord, créez notre fichier python, que j'appellerai main.py, importez toutes les bibliothèques dont nous avons besoin (mais nous devons d'abord les installer via pip):
from flask import Flask, request from pyngrok import ngrok import requests import subprocess import os import win32com.client
Maintenant, pour recevoir les demandes du bot, nous devons exécuter Flask puis Pyngrok pour accéder à notre site non seulement sur le réseau local:
app = Flask(__name__)
Maintenant, configurons le bot - nous allons envoyer des requêtes à notre serveur:
token = 'token BotFather'
Créons une fonction pour que le bot puisse répondre à nos messages:
def sendMessage(chat_id,text): url = URL+"sendMessage?chat_id="+str(chat_id)+"&text="+str(text) requests.get(url)
Maintenant, allez à la fonction qui traitera les messages du bot et exécutera les commandes:
@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
Et encore faut-il ajouter quelques lignes que Flask a commencé à travailler:
if __name__=='__main__': app.run()
Quelques mots de plus de l'auteur
Peut-être que ce script ne sera pas en mesure de remplacer complètement le contrôle de l'ordinateur, mais vous pouvez proposer de nombreuses commandes allant de l'activation de la musique au lancement de votre environnement de développement. Merci à tous d'avoir lu ceci! Si vous avez des problèmes ou avez des questions, écrivez dans les commentaires, mais je l'ai!