Spaces:
Sleeping
Sleeping
| 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") | |