Spaces:
Paused
Paused
| import streamlit as st | |
| import os | |
| import sys | |
| # Ensure current directory is in sys.path | |
| sys.path.append(os.path.dirname(os.path.abspath(__file__))) | |
| st.set_page_config(page_title="Shamela4 SQLite Ingest", layout="centered", page_icon="⚙️") | |
| st.title("⚙️ Shamela4 SQLite Ingest") | |
| st.markdown("<br>", unsafe_allow_html=True) | |
| st.info("Aplikasi ini secara khusus digunakan untuk mengambil data (ingest) metadata kitab dari HuggingFace dan mengubahnya menjadi format dump database SQLite (.sql). Seluruh proses ini tidak memerlukan koneksi ke PostgreSQL.", icon="ℹ️") | |
| st.markdown("<br>", unsafe_allow_html=True) | |
| st.markdown("### 💾 Ekspor Skema & Metadata (SQLite)") | |
| st.write("Unduh skema lengkap database (termasuk struktur tabel `pages`, `toc` dll yang kosong) beserta *insert data* untuk metadata (`authors`, `categories`, `books`).") | |
| st.markdown("---") | |
| col_btn1, col_btn2 = st.columns(2) | |
| with col_btn1: | |
| if st.button("🔄 Generate Ulang File SQL", use_container_width=True): | |
| with st.spinner("Sedang men-generate file metadata_dump.sql dari HuggingFace... (Ini bisa memakan waktu beberapa saat)"): | |
| try: | |
| from create_sqlite_dump import generate_sqlite_dump | |
| generate_sqlite_dump() | |
| st.success("File berhasil diperbarui!") | |
| except Exception as e: | |
| st.error(f"Terjadi kesalahan: {e}") | |
| with col_btn2: | |
| if os.path.exists("metadata_dump.sql"): | |
| with open("metadata_dump.sql", "r", encoding="utf-8") as f: | |
| sql_data = f.read() | |
| st.download_button( | |
| label="⬇️ Download metadata_dump.sql", | |
| data=sql_data, | |
| file_name="metadata_dump.sql", | |
| mime="application/sql", | |
| type="primary", | |
| use_container_width=True | |
| ) | |
| else: | |
| st.button("🚫 File belum tersedia", disabled=True, use_container_width=True) | |