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