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("
", 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("
", 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)