-
Notifications
You must be signed in to change notification settings - Fork 0
/
servidor.py
91 lines (77 loc) · 2.07 KB
/
servidor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import socket
from pathlib import Path
from utils import extract_route, read_file, build_response
from views import index
CUR_DIR = Path(__file__).parent
SERVER_HOST = 'localhost'
SERVER_PORT = 8080
NOTE_TEMPLATE = ''' <li>
<h3>{title}</h3>
<p>{details}</p>
</li>
'''
RESPONSE_TEMPLATE = '''HTTP/1.1 200 OK
# <!DOCTYPE html>
# <html>
# <head>
# <meta charset="UTF-8">
# <title>Get-it</title>
# </head>
# <body>
# <img src="img/logo-getit.png">
# <p>Como o Post-it, mas com outro verbo</p>
# <ul>
# {notes}
# </ul>
# <ul>
# <li>
# <h3>Receita de miojo</h3>
# <p>Bata com um martelo antes de abrir o pacote. Misture o tempero, coloque em uma vasilha e aproveite seu snack :)</p>
# </li>
# <li>
# <h3>Pão doce</h3>
# <p>Abra o pão e coloque o seu suco em pó favorito.</p>
# </li>
# <li>
# <h3>Sorvete com cristais de leite</h3>
# <p>Sirva o seu sorvete favorito em uma vasilha e jogue leite em cima.</p>
# </li>
# <li>
# <h3>Iogurte natural</h3>
# <p>Deixe o leite fora da geladeira (esse é mentira, não faça isso).</p>
# </li>
# <li>
# <h3>Homer Simpson</h3>
# <p>~( 8(|)</p>
# </li>
# <li>
# <h3>Numero mágico</h3>
# <p>142857</p>
# </li>
# <li>
# <h3>Série da Fundação - Isaac Asimov</h3>
# <p>É boa, leia.</p>
# </li>
# </ul>
# </body>
# </html>
# '''
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind((SERVER_HOST, SERVER_PORT))
server_socket.listen()
print(f'Servidor escutando em (ctrl+click): http://{SERVER_HOST}:{SERVER_PORT}')
while True:
client_connection, client_address = server_socket.accept()
request = client_connection.recv(1024).decode()
route = extract_route(request)
filepath = CUR_DIR / route
if filepath.is_file():
Respsota=build_response() + read_file(filepath)
elif route == '':
Resposta = index(request)
else:
Resposta = bytes()
client_connection.sendall(Respostsa)
client_connection.close()
server_socket.close()