import streamlit as st import pandas as pd import requests from io import StringIO # Define the base URL for the raw GitHub content base_url = "https://raw.githubusercontent.com/halimbahae/Hadith/main" # Define folder names and their corresponding book names folders = { "Maliks_Muwataa": "Maliks Muwataa", "Musnad_Ahmad_Ibn-Hanbal": "Musnad Ahmad Ibn Hanbal", "Sahih_Al-Bukhari": "Sahih Al-Bukhari", "Sahih_Muslim": "Sahih Muslim", "Sunan_Abu-Dawud": "Sunan Abu Dawud", "Sunan_Al-Darimi": "Sunan Al-Darimi", "Sunan_Al-Nasai": "Sunan Al-Nasai", "Sunan_Al-Tirmidhi": "Sunan Al-Tirmidhi", "Sunan_Ibn-Maja": "Sunan Ibn Maja" } # Define function to read CSV file from GitHub def read_csv_from_github(file_path): response = requests.get(f"{base_url}/{file_path}") if response.status_code == 200: return pd.read_csv(StringIO(response.text)) else: return None # Main Streamlit app def main(): st.title("Hadith Viewer") st.image("https://github.com/halimbahae/Hadith/blob/main/Hadith_Books.jpg", caption="Hadith Books", use_column_width=True) st.sidebar.title("Books") selected_folder = st.sidebar.selectbox("Select a Book", list(folders.values())) mufassala = st.sidebar.checkbox("Mufassala") file_name = f"{selected_folder.replace(' ', '_').lower()}_ahadith_mushakkala_mufassala.utf8.csv" if mufassala else f"{selected_folder.replace(' ', '_').lower()}_ahadith.utf8.csv" csv_df = read_csv_from_github(f"{selected_folder}/{file_name}") if csv_df is not None: st.sidebar.subheader("Description") st.sidebar.write("This is a viewer for the Hadith collections. You can select a book from the dropdown menu on the left, and choose whether you want to view the 'Mufassala' version or not.") st.dataframe(csv_df) else: st.error("Error loading CSV file") if __name__ == "__main__": main()