Spaces:
Build error
Build error
Ronio Jerico Roque
Update spinner messages to reflect file upload actions across multiple classes
c75d56b | import streamlit as st | |
| import requests | |
| from dotenv import load_dotenv | |
| import os | |
| import time | |
| from helper.telemetry import collect_telemetry | |
| from helper.upload_File import uploadFile | |
| from helper.button_behaviour import hide_button, unhide_button | |
| from helper.initialize_analyze_session import initialize_analyze_session | |
| import pandas as pd | |
| class WebsiteAndTools: | |
| def __init__(self, model_url): | |
| self.uploaded_files = [] | |
| self.file_dict = {} | |
| self.file_gt = {} | |
| self.model_url = model_url | |
| #self.analyst_name = analyst_name | |
| #self.data_src = data_src | |
| #self.analyst_description = analyst_description | |
| self.initialize() | |
| self.row1() | |
| def initialize(self): | |
| # FOR ENV | |
| load_dotenv() | |
| # AGENT NAME | |
| #st.header(self.analyst_name) | |
| # EVALUATION FORM LINK | |
| #url = os.getenv('Link') | |
| #st.write('Evaluation Form: [Link](%s)' % url) | |
| # RETURN BUTTON | |
| '''try: | |
| if st.button("Return", type='primary'): | |
| st.switch_page("./pages/home.py") | |
| except Exception: | |
| pass''' | |
| if 'website_responsiveness' not in st.session_state: | |
| st.session_state['website_responsiveness'] = '' | |
| if 'content_management_system' not in st.session_state: | |
| st.session_state['content_management_system'] = '' | |
| if 'SSL_certificate' not in st.session_state: | |
| st.session_state['SSL_certificate'] = '' | |
| if 'mobile_responsiveness' not in st.session_state: | |
| st.session_state['mobile_responsiveness'] = '' | |
| if 'desktop_loading_speed' not in st.session_state: | |
| st.session_state['desktop_loading_speed'] = '' | |
| if 'mobile_loading_speed' not in st.session_state: | |
| st.session_state['mobile_loading_speed'] = '' | |
| if 'web_analytics' not in st.session_state: | |
| st.session_state['web_analytics'] = '' | |
| if 'client_relations_management_system' not in st.session_state: | |
| st.session_state['client_relations_management_system'] = '' | |
| def process(self): | |
| session = st.session_state.analyze | |
| start_time = time.time() | |
| if (self.website_responsiveness or self.content_management_system or self.SSL_certificate or self.web_analytics or self.client_relations_management_system or self.mobile_responsiveness or self.mobile_loading_speed or self.desktop_loading_speed) and session == 'clicked': | |
| website_responsiveness = "" | |
| content_management_system = "" | |
| SSL_certificate = "" | |
| mobile_responsiveness = "" | |
| desktop_loading_speed = "" | |
| mobile_loading_speed = "" | |
| web_analytics = "" | |
| client_relations_management_system = "" | |
| mobile_loading_speed = "" | |
| with st.spinner('Uploading Website and Tools...', show_time=True): | |
| st.write('') | |
| ''' | |
| try: | |
| for file_info in st.session_state['uploaded_files'].values(): | |
| if file_info['type'] == 'pdf': | |
| combined_text += file_info['content'] + "\n" | |
| elif file_info['type'] == 'csv': | |
| try: | |
| combined_text += "CrawlFile CSV: {"+ file_info['content'].to_csv(index=True) + "\n" | |
| except AttributeError: | |
| pass | |
| except KeyError: | |
| pass | |
| try: | |
| for f in st.session_state['uploaded_gt'].values(): | |
| if f['type'] == 'pdf': | |
| crawl_file += "GTmetrix: {"+ f['content'] + "}\n" | |
| elif f['type'] == 'csv': | |
| crawl_file += f['content'].to_csv(index=True) + "\n" | |
| except KeyError: | |
| pass | |
| ''' | |
| try: | |
| website_responsiveness += f"\nWebsite Responsiveness: {self.website_responsiveness}" | |
| except KeyError: | |
| pass | |
| try: | |
| content_management_system += f"\nContent Management System: {self.content_management_system}" | |
| except KeyError: | |
| pass | |
| try: | |
| SSL_certificate += f"\nSSL Certificate: {self.SSL_certificate}" | |
| except KeyError: | |
| pass | |
| try: | |
| mobile_responsiveness += f"\nMobile Responsiveness: {self.mobile_responsiveness}" | |
| except KeyError: | |
| pass | |
| try: | |
| desktop_loading_speed += f"\nDesktop Loading Speed: {self.desktop_loading_speed}" | |
| except KeyError: | |
| pass | |
| try: | |
| mobile_loading_speed += f"\nMobile Loading Speed: {self.mobile_loading_speed}" | |
| except KeyError: | |
| pass | |
| try: | |
| web_analytics += f"\nWeb Analytics: {self.web_analytics}" | |
| except KeyError: | |
| pass | |
| try: | |
| client_relations_management_system += f"\nClient Relations Management System: {self.client_relations_management_system}" | |
| except KeyError: | |
| pass | |
| # OUTPUT FOR WEBSITE RESPONSIVENESS | |
| payload_txt_website_responsiveness = {"question": website_responsiveness} | |
| #result_website_responsiveness = self.request_model(website_responsiveness) | |
| # OUTPUT FOR CONTENT MANAGEMENT SYSTEM | |
| payload_txt_content_management_system = {"question": content_management_system} | |
| #result_content_management_system = self.request_model(content_management_system) | |
| # OUTPUT FOR SSL CERTIFICATE | |
| payload_txt_SSL_certificate = {"question": SSL_certificate} | |
| #result_SSL_certificate = self.request_model(SSL_certificate) | |
| # OUTPUT FOR WEB ANALYTICS | |
| payload_txt_web_analytics = {"question": web_analytics} | |
| #result_web_analytics = self.request_model(web_analytics) | |
| # OUTPUT FOR CLIENT RELATIONS MANAGEMENT SYSTEM | |
| payload_txt_client_relations_management_system = {"question": client_relations_management_system} | |
| #result_client_relations_management_system = self.request_model(client_relations_management_system) | |
| # OUTPUT FOR LEAD GENERATION MECHANISM | |
| # OUTPUT FOR SEO ANALYST | |
| #payload_txt = {"question": combined_text} | |
| #result = self.request_model(payload_txt) | |
| #end_time = time.time() | |
| #time_lapsed = end_time - start_time | |
| debug_info_website_responsiveness = {'data_field' : 'Website Responsiveness', 'result': website_responsiveness} | |
| debug_info_content_management_system = {'data_field' : 'Content Management System', 'result': content_management_system} | |
| debug_info_SSL_certificate = {'data_field' : 'SSL Certificate', 'result': SSL_certificate} | |
| debug_info_mobile_responsiveness = {'data_field' : 'Mobile Responsiveness', 'result': mobile_responsiveness} | |
| debug_info_desktop_loading_speed = {'data_field' : 'Desktop Loading Speed', 'result': desktop_loading_speed} | |
| debug_info_mobile_loading_speed = {'data_field' : 'Mobile Loading Speed', 'result': mobile_loading_speed} | |
| debug_info_web_analytics = {'data_field' : 'Web Analytics', 'result': web_analytics} | |
| debug_info_client_relations_management_system = {'data_field' : 'Client Relations Management System', 'result': client_relations_management_system} | |
| ''' | |
| debug_info = {#'analyst': self.analyst_name, | |
| 'url_uuid': self.model_url.split("-")[-1], | |
| 'time_lapsed' : time_lapsed, | |
| 'crawl_file': [file.name for file in self.uploaded_files] if self.uploaded_files else ['Not available'], | |
| 'gt_metrix': [file.name for file in self.gtmetrix] if self.gtmetrix else ['Not available'], | |
| 'payload': payload_txt, | |
| 'result': result} | |
| if self.gtmetrix: | |
| collect_telemetry(debug_info) | |
| ''' | |
| if self.website_responsiveness: | |
| st.session_state['website_responsiveness'] = 'uploaded' | |
| collect_telemetry(debug_info_website_responsiveness) | |
| if self.content_management_system: | |
| st.session_state['content_management_system'] = 'uploaded' | |
| collect_telemetry(debug_info_content_management_system) | |
| if self.SSL_certificate: | |
| st.session_state['SSL_certificate'] = 'uploaded' | |
| collect_telemetry(debug_info_SSL_certificate) | |
| if self.mobile_responsiveness: | |
| st.session_state['mobile_responsiveness'] = 'uploaded' | |
| collect_telemetry(debug_info_mobile_responsiveness) | |
| if self.desktop_loading_speed: | |
| st.session_state['desktop_loading_speed'] = 'uploaded' | |
| collect_telemetry(debug_info_desktop_loading_speed) | |
| if self.mobile_loading_speed: | |
| st.session_state['mobile_loading_speed'] = 'uploaded' | |
| collect_telemetry(debug_info_mobile_loading_speed) | |
| if self.web_analytics: | |
| st.session_state['web_analytics'] = 'uploaded' | |
| collect_telemetry(debug_info_web_analytics) | |
| if self.client_relations_management_system: | |
| st.session_state['client_relations_management_system'] = 'uploaded' | |
| collect_telemetry(debug_info_client_relations_management_system) | |
| #with st.expander("Debug information", icon="⚙"): | |
| # st.write(debug_info) | |
| st.session_state['analyzing'] = False | |
| try: | |
| self.file_dict.popitem() | |
| except KeyError: | |
| pass | |
| def row1(self): | |
| #st.write(self.data_src) | |
| #self.uploaded_files = st.file_uploader("Upload Backlink List (PDF)", type=['pdf', 'csv'], accept_multiple_files=True, key="seo_on") | |
| #self.gtmetrix = st.file_uploader("GTmetrix:", type=['pdf', 'csv'], accept_multiple_files=True, key="seo_on_gt") | |
| ''' | |
| if self.uploaded_files: | |
| upload.multiple_upload_file(self.uploaded_files) | |
| self.file_dict = upload.file_dict | |
| if self.gtmetrix: | |
| upload.upload_gt(self.gtmetrix) | |
| ''' | |
| self.website_responsiveness = st.text_input("Website Overall Health Scores - GTMetrix:", placeholder='Enter Website Overall Health Scores') | |
| self.content_management_system = st.text_input("Content Management System - BuiltWith:", placeholder='Enter Content Management System') | |
| self.SSL_certificate = st.text_input("SSL Certificate - BuiltWith:", placeholder='Enter SSL Certificate') | |
| self.mobile_responsiveness = st.text_input("Mobile Responsiveness - GTMetrix:", placeholder='Enter Mobile Responsiveness') | |
| self.desktop_loading_speed = st.text_input("Desktop Loading Speed - GTMetrix:", placeholder='Enter Desktop Loading Speed') | |
| self.mobile_loading_speed = st.text_input("Mobile Loading Speed - GTMetrix:", placeholder='Enter Mobile Loading Speed') | |
| self.web_analytics = st.text_input("Web Analytics - BuiltWith (GA4):", placeholder='Enter Web Analytics') | |
| self.client_relations_management_system = st.text_input("Client Relations Management System - BuiltWith:", placeholder='Enter Client Relations Management System') | |
| #st.write("") # FOR THE HIDE BUTTON | |
| #st.write("") # FOR THE HIDE BUTTON | |
| #st.write("AI Analyst Output: ") | |
| st.session_state['analyzing'] = False | |
| #st.write("") # FOR THE HIDE BUTTON | |
| self.process() | |
| if __name__ == "__main__": | |
| st.set_page_config(layout="wide") | |
| upload = uploadFile() |