Bump version to v1.5.3
This commit is contained in:
parent
c49864c4aa
commit
4eaef89be8
10 changed files with 3098 additions and 19 deletions
71
pages/01_feed_manager.py
Normal file
71
pages/01_feed_manager.py
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
# pages/01_feed_manager.py
|
||||
|
||||
import streamlit as st
|
||||
from main import load_feeds, save_feeds, load_articles
|
||||
import logging
|
||||
|
||||
# === Logging vorbereiten ===
|
||||
log_dir = "logs"
|
||||
log_file = f"{log_dir}/rss_tool.log"
|
||||
logging.basicConfig(
|
||||
filename=log_file,
|
||||
level=logging.INFO,
|
||||
format="%(asctime)s - %(levelname)s - %(message)s"
|
||||
)
|
||||
|
||||
st.set_page_config(page_title="📡 Feed-Verwaltung")
|
||||
|
||||
st.title("📡 RSS Feed-Verwaltung")
|
||||
feeds = load_feeds()
|
||||
articles = load_articles()
|
||||
|
||||
# === Neuen Feed hinzufügen ===
|
||||
st.subheader("➕ Neuen Feed hinzufügen")
|
||||
|
||||
with st.form("add_feed_form"):
|
||||
new_url = st.text_input("Feed URL", "")
|
||||
new_name = st.text_input("Feed Name", "")
|
||||
submitted = st.form_submit_button("Feed hinzufügen")
|
||||
if submitted:
|
||||
if new_url and new_name:
|
||||
if not any(f.get("url") == new_url for f in feeds):
|
||||
feeds.append({"url": new_url, "name": new_name})
|
||||
save_feeds(feeds)
|
||||
logging.info(f"🔗 Neuer Feed hinzugefügt: {new_name} ({new_url})")
|
||||
st.success(f"Feed '{new_name}' hinzugefügt.")
|
||||
st.rerun()
|
||||
else:
|
||||
st.warning("⚠️ Dieser Feed existiert bereits.")
|
||||
else:
|
||||
st.error("❌ Bitte gib sowohl URL als auch Name ein.")
|
||||
|
||||
# === Bestehende Feeds bearbeiten ===
|
||||
st.subheader("🛠️ Vorhandene Feeds bearbeiten oder löschen")
|
||||
|
||||
for idx, feed in enumerate(feeds):
|
||||
with st.expander(f"🔗 {feed.get('name')}"):
|
||||
url = st.text_input(f"Feed-URL {idx}", value=feed.get("url"), key=f"url_{idx}")
|
||||
name = st.text_input(f"Feed-Name {idx}", value=feed.get("name"), key=f"name_{idx}")
|
||||
count = sum(1 for a in articles if a.get("source") == feed.get("url"))
|
||||
|
||||
col1, col2 = st.columns(2)
|
||||
|
||||
with col1:
|
||||
if st.button("💾 Änderungen speichern", key=f"save_{idx}"):
|
||||
old_url, old_name = feed.get("url"), feed.get("name")
|
||||
feeds[idx]["url"] = url
|
||||
feeds[idx]["name"] = name
|
||||
save_feeds(feeds)
|
||||
logging.info(f"✏️ Feed geändert: '{old_name}' ({old_url}) → '{name}' ({url})")
|
||||
st.success("Änderungen gespeichert.")
|
||||
st.rerun()
|
||||
|
||||
with col2:
|
||||
if st.button("🗑️ Feed löschen", key=f"delete_{idx}"):
|
||||
deleted_feed = feeds.pop(idx)
|
||||
save_feeds(feeds)
|
||||
logging.info(f"❌ Feed gelöscht: {deleted_feed.get('name')} ({deleted_feed.get('url')})")
|
||||
st.warning("Feed gelöscht.")
|
||||
st.rerun()
|
||||
|
||||
st.caption(f"📰 Verknüpfte Artikel: {count}")
|
||||
Loading…
Add table
Add a link
Reference in a new issue