Kontrol komputer melalui Telegram

Entri


Halo, Habr!

Baru-baru ini saya ingin menginstal aplikasi untuk mengendalikan mouse di komputer, tetapi saya memiliki masalah menghubungkan ponsel dan saya memiliki ide untuk melakukan sesuatu yang serupa, tetapi bagaimana caranya? Setelah melalui beberapa opsi, saya ingat bot telegram yang bisa sangat cocok untuk melakukan sesuatu yang serupa dalam versi teks, misalnya, Anda menulis bot "/ buka chrome" dan Chrome terbuka di komputer Anda.

Apa yang kita butuhkan


Saya akan menulis bot dengan Python dan saya akan menggunakan perpustakaan berikut: flask, pyngrok, permintaan, win32com.client, os, subprocess. Nanti dalam artikel saya akan menjelaskan mengapa kita membutuhkan perpustakaan. Kami juga membutuhkan Telegram di ponsel, tablet, atau bahkan di komputer lain. Dan kami juga memerlukan bot telegram yang akan kami tulis bagaimana Anda dapat membuatnya sendiri, karena sudah ada cukup artikel seperti itu di Habré!

Bagaimana ini semua bekerja?


Ketika kami menulis ke bot kami, itu akan mengirim permintaan pasca dengan data tentang pesan dan tentang pengguna yang mengirimnya ke url kami, setelah itu skrip python kami, tergantung pada teks, akan melakukan tindakan tertentu seperti meluncurkan aplikasi, memasukkan teks, atau bahkan shutdown komputer.

Implementasi


Pertama, buat file python kami, yang akan saya panggil main.py, impor semua perpustakaan yang kami butuhkan (tetapi pertama-tama kita perlu menginstalnya melalui pip):

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

Sekarang, untuk menerima permintaan dari bot, kita perlu menjalankan Flask dan kemudian menjalankan Pyngrok untuk mengakses situs kami tidak hanya di jaringan lokal:

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

Sekarang mari kita mengkonfigurasi bot - kita akan membuat permintaan datang ke server kami:

 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") #         

Mari kita membuat fungsi agar bot dapat menanggapi pesan kami:

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

Sekarang buka fungsi yang akan memproses pesan dari bot dan jalankan perintah:

 @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     

Dan masih perlu menambahkan beberapa baris yang mulai berfungsi Flask:

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

Beberapa kata lagi dari penulis


Mungkin skrip ini tidak akan dapat sepenuhnya menggantikan kontrol komputer, tetapi Anda dapat menghasilkan banyak perintah mulai dari menyalakan musik hingga meluncurkan lingkungan pengembangan Anda. Terima kasih sudah membaca ini! Jika Anda memiliki masalah atau memiliki pertanyaan, tulis di komentar, tapi saya punya!

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


All Articles