Parva postica in Flask vel quomodo computatrum in retiacula locali moderari

Heus Habr!

Nuper vidi versionem receptam programmandi fluminis "Quomodo ad applicationem telae tuae in Flask creare". Et decrevi in ​​aliquo consilio meam scientiam confirmare. Diu nesciebam quid scriberem et idea ad me veniebat: "Cur mini- posticum in Flask?"

Primae optiones ad effectum deducendi et facultates posticae statim in capite meo apparuerunt. Sed decrevi statim indicem facultatum posticae facere;

  1. Scire quomodo aperire websites
  2. Habere order versus accessum
  3. Aperire programmata imagines, videos

Primum igitur punctum perfacile est ad efficiendum moduli interretiarii usus. Secundum punctum os moduli utentem efficere decrevi. Et tertius etiam est per os moduli, sed utar "nexibus" (plura postea).

Scribo servo

Ita, *drumroll* omnes servo codice:

from flask import Flask, request
import webbrowser
import os
import re

app = Flask(__name__)
@app.route('/mycomp', methods=['POST'])
def hell():
    json_string = request.json
    if json_string['command'] == 'test':
        return 'The server is running and waiting for commands...'
    if json_string['command'] == 'openweb':
        webbrowser.open(url='https://www.'+json_string['data'], new=0)
        return 'Site opening ' + json_string['data'] + '...'
    if json_string['command'] == 'shell':
        os.system(json_string['data'])
        return 'Command execution ' + json_string['data'] + '...'
    if json_string['command'] == 'link':
        links = open('links.txt', 'r')
        for i in range(int(json_string['data'])):
            link = links.readline()
        os.system(link.split('>')[0])
        return 'Launch ' + link.split('>')[1]
if __name__ == '__main__':
    app.run(host='0.0.0.0')

Totum codicem iam proieci, essentiam explicare tempus est.

Totum signum decurrit in computatro locali in portu 5000. Ut cum servo penitus, JSON POST petitionem mittere debemus.

JSON peto structuram;

{β€˜command’:  β€˜comecommand’, β€˜data’: β€˜somedata’}

Bene facit sensum ut 'mandatum' sit mandatum quod volumus exequi. Et 'data' sunt praeceptum argumentorum.

Potes scribere et mittere JSON petitiones mutuas cum servo manually (petitiones adiuvabunt). Aut tu clientem solare potes scribere.

Scribens clientis

Code:

import requests

logo = ['nn',
        '******      ********',
        '*******     *********',
        '**    **    **     **',
        '**    **    **     **      Written on Python',
        '*******     **     **',
        '********    **     **',
        '**     **   **     **      Author: ROBOTD4',
        '**     **   **     **',
        '**     **   **     **',
        '********    *********',
        '*******     ********',
        'nn']

p = ''
iport = '192.168.1.2:5000'
host = 'http://' + iport + '/mycomp'

def test():
    dict = {'command': 'test', 'data': 0}
    r = requests.post(host, json=dict)
    if r.status_code == 200:
        print (r.content.decode('utf-8'))

def start():
    for i in logo:
        print(i)

start()
test()

while True:
    command = input('>')
    if command == '':
        continue
    a = command.split()
    if command == 'test':
        dict = {'command': 'test', 'data': 0}
        r = requests.post(host, json=dict)
        if r.status_code == 200:
            print (r.content.decode('utf-8'))
    if a[0] == 'shell':
        for i in range(1, len(a)):
            p = p + a[i] + ' '
        dict = {'command': 'shell', 'data': p}
        r = requests.post(host, json=dict)
        if r.status_code == 200:
            print (r.content.decode('utf-8'))
        p = ''
    if a[0] == 'link':
        if len(a) > 1:
            dict = {'command': 'link', 'data': int(a[1])}
            r = requests.post(host, json=dict)
            if r.status_code == 200:
                print (r.content.decode('utf-8'))
        else:
            print('Комманда Π½Π΅ содСрТит Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²!')
    if a[0] == 'openweb':
            if len(a) > 1:
                dict = {'command': 'openweb', 'data': a[1]}
                r = requests.post(host, json=dict)
                if r.status_code == 200:
                    print (r.content.decode('utf-8'))
            else:
                print('Комманда Π½Π΅ содСрТит Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²!')
    if a[0] == 'set':
        if a[1] == 'host':
            ip = a[2] + ':5000'
    if command == 'quit':
        break

Resolutiones:

Imprimis petitiones moduli importantur (pro commercio cum servo). Infra descriptiones functionum incepti et probati sunt. Et erit circulus in quo magica fiunt. Legistine codicem? Sic intelligis significationem magicae quae fit in cyclo. Intra imperium - supplicium est. Testa - imperat ad lineam mandatum (logica est scala).

Test - reprehendo si servo currit (postica)
Link - uti a "brevis"
Openweb - agemus website
Quit - exitus client
Set - occasum IP computatrum tuum in loci network

Nunc efficitur eleifend magna.

Est nexus.txt fasciculus proximus servo. Nexus (plenam viam) ad imaginum continet (videos, imagines, programmata).

Structura talis est:

ΠΏΠΎΠ»Π½Ρ‹ΠΉ_ΠΏΡƒΡ‚ΡŒ>описаниС
ΠΏΠΎΠ»Π½Ρ‹ΠΉ_ΠΏΡƒΡ‚ΡŒ>описаниС

exitum

Servum posticum habemus in retis localis moderandis computatralibus (in retis wi-fi). Technice, possumus clientem ex aliqua arte Pythonis interpretis habere.

PS mandatum statutum addidi ut, si computatrale in retis localibus IP aliud tribuatur, directe in clientelam mutari possit.

Source: www.habr.com