import pandas as pd import streamlit as st # Set page configuration with a title and layout st.set_page_config(page_title="Umami Data Processing", layout="wide") # Display the main title of the application st.title("Umami Data Processing") st.subheader('Importing CSVs from Umami Cloud to Self-Hosted Umami Data Processing Online') # Provide a link to a tutorial for more detailed instructions st.markdown(""" For detailed instructions on how to use this tool, please visit [myblog](https://blog.closex.org/posts/29bdb155/) or [Youtube Video](). """) # Widget to upload the CSV file uploaded_file = st.file_uploader("Choose an Umami Cloud CSV file", type=['csv']) # Text input for new website ID new_website_id = st.text_input("Enter the new website ID:") if uploaded_file is not None and new_website_id: # Load the CSV file df = pd.read_csv(uploaded_file) # Update the website_id column with the user-provided website ID df['website_id'] = new_website_id # Define the columns for the website_event table website_event_columns = [ 'event_id', 'website_id', 'session_id', 'created_at', 'url_path', 'url_query', 'referrer_path', 'referrer_query', 'referrer_domain', 'page_title', 'event_type', 'event_name', 'visit_id' ] # Create DataFrame for website_event data df_website_event = df[website_event_columns] df_website_event.to_csv('website_event.csv', index=False) st.download_button(label="Download Website Event CSV", data=df_website_event.to_csv(index=False), file_name='website_event.csv', mime='text/csv') # Define the columns for the session table session_columns = [ 'session_id', 'website_id', 'hostname', 'browser', 'os', 'device', 'screen', 'language', 'country', 'subdivision1', 'subdivision2', 'city', 'created_at' ] # Create DataFrame for session data df_session = df[session_columns] df_session.to_csv('session.csv', index=False) st.download_button(label="Download Session CSV", data=df_session.to_csv(index=False), file_name='session.csv', mime='text/csv') st.success("Successfully generated website_event.csv and session.csv")