Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Online Python Compiler.
- Code, Compile, Run and Debug python program online.
- Write your code in this editor and press "Run" button to execute it.
- '''
- import json
- import urllib.parse
- from http import server
- lines = []
- file = None
- try:
- file = open('RU.txt', 'r', encoding="utf-8")
- lines = file.readlines()
- finally:
- file.close()
- for line in lines:
- line = line.split('\t')
- class CustomHandler(server.SimpleHTTPRequestHandler):
- def do_GET(self):
- conter = {"error": True}
- p = self.path.split('?')
- if p[0] == '/geonameid':
- geonameid = p[1].split('=')
- id = geonameid[1]
- res = [line for line in lines if id == line[0] and "P" == line[6]]
- content = {
- "error": False,
- "Information about city": res
- }
- elif p[0] == '/geolist':
- page_param = p[1].split('&')
- page_number = int(page_param[0].split('='))
- page_lenght = int(page_param[1].split('='))
- cities = [line for line in lines if line[6] == "P"]
- cities = cities[(page_n - 1) * lenght:page_n * lenght]
- content = {"error": False,
- "cities": cities}
- elif p[0] == '/tip':
- tip_message = p[1].split('=')
- city_part_name = tip_message[1]
- city_part_name1 = urllib.parse.unquote(city_part_name)
- tip = [line[3] for line in lines if city_part_name1.lower() in line[3].lower()]
- content = {
- "error": False,
- "tip": tip
- }
- elif p[0] == '/geocompare':
- compared_cities = p[1].split('&')
- first_city = compared_cities[0].split('=')
- second_city = compared_cities[1].split('=')
- first_city = urllib.parse.unquote(first_city[1])
- second_city = urllib.parse.unquote(second_city[1])
- first_city_list = []
- second_city_list = []
- count = -1
- for line in lines:
- line = line.split('\t')
- line_names = line[3].split(',')
- line_check = first_city
- if line_check in line_names and int(line[14]) > count:
- count = int(line[14])
- first_city_list = line
- count2 = -1
- for line in lines:
- line = line.split('\t')
- line_names = line[3].split(',')
- line_check = second_city
- if line_check in line_names and int(line[14]) > count2:
- count2 = int(line[14])
- second_city_list = line
- print(first_city_list)
- print(second_city_list)
- if first_city_list[4] > second_city_list[4]:
- north_city = first_city
- elif first_city_list[4] < second_city_list[4]:
- north_city = second_city
- else:
- north_city = 'Находятся на одинаковой широте'
- print(north_city)
- if first_city_list[17] == second_city_list[17]:
- time_zone = 'Одинаковая'
- else:
- time_zone = 'разная'
- print(time_zone)
- content = {"error": False,
- "First city": first_city_list,
- "Second city": second_city_list,
- "to the north is": north_city,
- "time zone": time_zone}
- else:
- content["error_msg"] = "Bad request"
- content = json.dumps(content)
- content = content.encode('utf-8')
- self.protocol_version = 'HTTP/1.1'
- self.send_response(200)
- self.send_header('Content-Type', 'application/json; charset=utf-8')
- self.end_headers()
- self.wfile.write(content)
- server_address = ('127.0.0.1', 8000)
- http = server.HTTPServer(server_address, CustomHandler)
- http.serve_forever()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement