manaviel85370
add pages and all
da88570
import pandas as pd
from src.utils.markdown_processing.md_preprocessing import convert_html_to_md
from src.persistence.db import *
import streamlit_nested_layout
@st.cache_resource
def init_connection():
return init_db()
def render_url_content(element):
with st.container(border=True, height=400):
md = convert_html_to_md(element["cleaned_html"])
st.markdown(md, unsafe_allow_html=True)
db = init_connection()
# Titel der App
st.title("Übersicht über die Datenbank-Inhalte")
st.subheader("Aktuelle Einträge in der DB")
st.write("""
- **unsorted_urls**: Enthält Daten-Objekte bestehend aus Start-Urls, Url-Typ (z.b. "city", "theater") sowie vom Crawler gefundene Sub-Urls.
- **event_urls**: Enthält Daten-Objekte bestehend aus Url, Referenz zur Basis-Url (Start-Url), Klasse (EventDetail / EventOverview) sowie HTML der Seite""")
df = pd.DataFrame({
"DB-Collection":[
CollectionNames.UNSORTED_URLS,
CollectionNames.EVENT_URLS],
"Anzahl an Einträgen":[
db.unsorted_urls.count_documents({}),
db.event_urls.count_documents({})],
"Bereits verarbeitet":[
db.unsorted_urls.count_documents({"crawled": True}),
db.event_urls.count_documents({"final":True})
]})
st.table(df)
overview_pages = list(db.event_urls.find(filter={"class":"EventOverview", "final":True}, projection={"url":1,"base_url_id":1,"cleaned_html":1}))
detail_pages = list(db.event_urls.find(filter={"class":"EventDetail", "final":True}, projection={"url":1,"base_url_id":1,"cleaned_html":1, "data":1}) )
st.subheader("Fertige Einträge in Event Urls:")
st.write("Die fertigen Daten sind mithilfe der gpt-api in markdown übersetzt und nur der Veranstaltungsbereich heraus geschnitten.")
data = [el for el in detail_pages if "data" in el]
st.write(f"Fertig verarbeitete Urls: {len(data)} von {len(detail_pages)}")
st.subheader("Einträge in Event Urls")
st.write("""
Die Übersicht zeigt die finalen Daten aus **event_urls**, sortiert nach ihrer Klasse.""")
with st.expander(f"Event-Übersichtsseiten ({len(overview_pages)})"):
for el in overview_pages:
try:
with st.expander(f"{el['url']} - ({db.unsorted_urls.find_one(filter={'_id':el['base_url_id']}, projection={'url_type':1})['url_type']})"):
render_url_content(el)
except Exception as e:
st.write(f"Fehler: {e}")
with st.expander(f"Event-Detailseiten ({len(detail_pages)})"):
for el in detail_pages:
try:
with st.expander(f"{el['url']}"):
render_url_content(el)
except Exception as e:
st.write(f"Fehler bei {el['url']}: {e} ")