File size: 3,069 Bytes
94b0868
9de570c
 
94b0868
cfefe11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94b0868
 
9de570c
 
 
 
 
 
 
 
94b0868
 
9a134e7
94b0868
cfefe11
94b0868
cfefe11
9de570c
 
 
5fc353b
cfefe11
 
 
94b0868
c880b1e
 
 
9de570c
 
 
 
 
 
 
 
 
 
 
 
 
 
c880b1e
94b0868
 
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
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"
    ]
}

# Define function to read CSV file from GitHub
def read_csv_from_github(file_path):
    response = requests.get(f"https://raw.githubusercontent.com/halimbahae/Hadith/main/{file_path}")
    if response.status_code == 200:
        return pd.read_csv(response.text)
    else:
        return None

# Main Streamlit app
def main():
    st.title("Hadith Viewer")
    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)

    csv_df = read_csv_from_github(selected_file)

    st.sidebar.subheader("Files in Selected Book")
    for file in selected_files:
        st.sidebar.write(file)

    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.")

    if csv_df is not None:
        # Display dataframe with search, filters, and pagination
        st.dataframe(csv_df)
        # Show rows per page selector
        rows_per_page = st.number_input("Rows per Page", min_value=1, value=10)
        # Show page number selector
        page_number = st.number_input("Page Number", min_value=1, value=1)
        # Slice dataframe based on page number and rows per page
        start_idx = (page_number - 1) * rows_per_page
        end_idx = start_idx + rows_per_page
        paginated_df = csv_df.iloc[start_idx:end_idx]
        st.write(paginated_df)
    else:
        st.error("Error loading CSV file")

if __name__ == "__main__":
    main()