File size: 2,979 Bytes
94b0868
9de570c
c86fd67
cfefe11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94b0868
c86fd67
94b0868
c86fd67
9e2e456
d8ae2ac
 
 
94b0868
cfefe11
 
9de570c
06489f3
 
 
 
b219ee9
f2f5850
d8ae2ac
 
 
9e2e456
f2f5850
 
b219ee9
 
 
b5c4b4f
 
c86fd67
b5c4b4f
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
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'})
    st.dataframe(styled_df)
if **name** == "__main__":
    main()