Spaces:
Sleeping
Sleeping
File size: 3,776 Bytes
94b0868 9de570c c86fd67 8441f78 cfefe11 94b0868 8441f78 c86fd67 94b0868 c86fd67 8441f78 9e2e456 d8ae2ac 8441f78 94b0868 cfefe11 8441f78 cfefe11 9de570c 8441f78 06489f3 8441f78 06489f3 b219ee9 f2f5850 8441f78 d8ae2ac 9e2e456 8441f78 44cddda f2f5850 b219ee9 44cddda b5c4b4f 8441f78 44cddda 482d631 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
import streamlit as st
import pandas as pd
import requests
# Define array of file paths for each book
book_files = {
"Maliks_Muwataa": [
"maliks_muwataa_ahadith.utf8.csv",
"maliks_muwataa_ahadith_mushakkala_mufassala.utf8.csv"
],
"Musnad_Ahmad_Ibn-Hanbal": [
"musnad_ahmad_ibn-hanbal_ahadith.utf8.csv",
"musnad_ahmad_ibn-hanbal_ahadith_mushakkala.utf8.csv"
],
"Sahih_Al-Bukhari": [
"sahih_al-bukhari_ahadith.utf8.csv",
"sahih_al-bukhari_ahadith_mushakkala_mufassala.utf8.csv"
],
"Sahih_Muslim": [
"sahih_muslim_ahadith.utf8.csv",
"sahih_muslim_ahadith_mushakkala_mufassala.utf8.csv"
],
"Sunan_Abu-Dawud": [
"sunan_abu-dawud_ahadith.utf8.csv",
"sunan_abu-dawud_ahadith_mushakkala_mufassala.utf8.csv"
],
"Sunan_Al-Darimi": [
"sunan_al-darimi_ahadith.utf8.csv",
"sunan_al-darimi_ahadith_mushakkala_mufassala.utf8.csv"
],
"Sunan_Al-Nasai": [
"sunan_al-nasai_ahadith.utf8.csv",
"sunan_al-nasai_ahadith_mushakkala_mufassala.utf8.csv"
],
"Sunan_Al-Tirmidhi": [
"sunan_al-tirmidhi_ahadith.utf8.csv",
"sunan_al-tirmidhi_ahadith_mushakkala_mufassala.utf8.csv"
],
"Sunan_Ibn-Maja": [
"sunan_ibn-maja_ahadith.utf8.csv",
"sunan_ibn-maja_ahadith_mushakkala_mufassala.utf8.csv"
]
}
# Main Streamlit app
def main():
st.title("Hadith Viewer")
st.sidebar.title("Navigation")
st.sidebar.subheader("Actions")
if st.sidebar.button("Home"):
display_home()
st.sidebar.title("Books")
selected_book = st.sidebar.selectbox("Select a Book", list(book_files.keys()))
selected_files = book_files[selected_book]
selected_file = st.sidebar.selectbox("Select a File", selected_files)
# Load CSV file immediately when selected from the list
file_url = f"https://raw.githubusercontent.com/halimbahae/Hadith/main/{selected_book}/{selected_file}"
csv_df = pd.read_csv(file_url, header=None) # Assuming no header in CSV files
if csv_df is not None:
# Display dataframe with search
display_table(csv_df)
def display_home():
st.title("Hadith Viewer")
st.image("https://raw.githubusercontent.com/halimbahae/Hadith/main/Hadith_Books.jpg", caption="Hadith Books", use_column_width=True)
st.write("Welcome to the Hadith Viewer! This is a viewer for the Hadith collections. You can select a book from the dropdown menu on the left to view its contents.")
# def display_table(csv_df):
# font_size = st.slider("Adjust Font Size", min_value=10, max_value=30, value=20)
# st.write("### Table View")
# search_query = st.sidebar.text_input("Search", "")
# filtered_df = csv_df[csv_df.apply(lambda row: row.astype(str).str.contains(search_query, case=False).any(), axis=1)]
# styled_df = filtered_df.style.set_properties(**{'font-size': f'{font_size}px'})
# styled_df = styled_df.set_table_styles([{'selector': 'tr', 'props': [('line-height', '30px')]}])
# st.dataframe(styled_df)
def display_table(csv_df):
font_size = st.slider("Adjust Font Size", min_value=10, max_value=30, value=20)
st.write("### Table View")
search_query = st.sidebar.text_input("Search", "")
filtered_df = csv_df[csv_df.apply(lambda row: row.astype(str).str.contains(search_query, case=False).any(), axis=1)]
styled_df = (
filtered_df.style
.set_properties(**{'font-size': f'{font_size}px'})
.set_table_styles([{'selector': 'th', 'props': [('font-size', f'{font_size}px')]},
{'selector': 'td', 'props': [('font-size', f'{font_size}px'), ('line-height', '1.5')]}])
)
st.dataframe(styled_df)
if __name__ == "__main__":
main()
|