hunting / app.py
Koaris's picture
Upload 2 files
7a51ee6 verified
raw
history blame contribute delete
No virus
2.82 kB
import time
import gradio as gr
import requests
import pandas as pd
api_key = 'AIzaSyB3o8PzB6JgCDqBdNfbyofIycOJURGyn_I'
def get_json_places(query_param,key_param):
url = f'https://maps.googleapis.com/maps/api/place/textsearch/json?query={query_param}&key={key_param}'
req = requests.get(url)
json_res = req.json()
return json_res
def get_all_results(json_file, key_param=api_key):
places_results = json_file['results']
is_next = 'next_page_token' in json_file
while is_next is True:
token = json_file['next_page_token']
url = f'https://maps.googleapis.com/maps/api/place/textsearch/json?pagetoken={token}&key={key_param}'
time.sleep(2)
new_req = requests.get(url)
json_file = new_req.json()
places_results += json_file['results']
is_next = 'next_page_token' in json_file
return places_results
def main_execution(text_search, key_param=api_key):
text_search = text_search.replace(" ", "%20")
json_obj = get_json_places(text_search,key_param)
res = get_all_results(json_obj,key_param)
data = pd.DataFrame.from_records(res)
data = data.loc[data.business_status=='OPERATIONAL', ['name','price_level', 'rating','user_ratings_total','formatted_address','types']]
data.columns = ['Όνομα καταστήματος','Επίπεδο τιμών', 'βαθμολογία','αριθμός αξιολογήσεων','διεύθυνση','τύπους']
return gr.DataFrame(data.sort_values(by='αριθμός αξιολογήσεων',ascending=False))
if __name__ == "__main__":
desc = ("## Αυτή η εφαρμογή σας βοηθά να βρείτε όλες τις καφετέριες που αναφέρονται στο google σε μια γειτονιά.")
long_desc = ("""Στο πεδίο αναζήτησης, μπορείτε να πληκτρολογήσετε το όνομα της γειτονιάς καθώς και το είδος των καταστημάτων που θέλετε να αναζητήσετε. \n
π.χ. "Φουρνοι στη Γλυφάδα, Αττική\n
Τα αποτελέσματα εμφανίζονται από τον υψηλότερο καταγεγραμμένο αριθμό αξιολογήσεων χρηστών έως τον χαμηλότερο.""")
with gr.Blocks() as demo:
gr.Markdown("# TS Platinum, εφαρμογή για κυνήγι")
gr.Markdown(desc)
gr.Markdown(long_desc)
region = gr.Textbox(label="Πεδίο αναζήτησης", info="π.χ. Φουρνοι στη Γλυφάδα, Αττική")
output_file = gr.DataFrame()
download_button = gr.Button("Βρείτε τα θηράματα!")
download_button.click(main_execution,inputs=[region], outputs=[output_file])
demo.launch(share=True)