Promote develop → main (2026-05-01 20:17 UTC)
This commit was merged in pull request #11.
Dieser Commit ist enthalten in:
@@ -21,15 +21,21 @@ from source_rules import (
|
||||
|
||||
logger = logging.getLogger("osint.orchestrator")
|
||||
|
||||
# Reputations-Score nach Quellenkategorie (für Relevanz-Scoring)
|
||||
# Reputations-Score nach Quellenkategorie (fuer Relevanz-Scoring).
|
||||
# Keys muessen mit den tatsaechlichen DB-Werten in sources.category uebereinstimmen
|
||||
# (siehe DOMAIN_CATEGORY_MAP in source_rules.py).
|
||||
CATEGORY_REPUTATION = {
|
||||
"nachrichten_de": 0.9,
|
||||
"nachrichten_int": 0.9,
|
||||
"presseagenturen": 1.0,
|
||||
"behoerden": 1.0,
|
||||
"fachmedien": 0.8,
|
||||
"international": 0.7,
|
||||
"sonstige": 0.4,
|
||||
"nachrichtenagentur": 1.0, # Reuters, AP, dpa, AFP — Primärquellen
|
||||
"behoerde": 1.0, # BMI, BSI, Europol — offizielle Quellen
|
||||
"oeffentlich-rechtlich": 0.95, # tagesschau, ZDF, ARD, BBC, ORF
|
||||
"qualitaetszeitung": 0.85, # Spiegel, Zeit, FAZ, NZZ, Süddeutsche
|
||||
"think-tank": 0.85, # SWP, IISS, Brookings, Chatham House
|
||||
"fachmedien": 0.8, # heise, golem, netzpolitik, Handelsblatt
|
||||
"international": 0.75, # CNN, Guardian, NYT, Al Jazeera, France24
|
||||
"regional": 0.65, # regionale Tageszeitungen
|
||||
"telegram": 0.5, # OSINT-Kanaele — gemischte Qualitaet
|
||||
"sonstige": 0.4, # unkategorisiert
|
||||
"boulevard": 0.3, # Bild, Sun etc.
|
||||
}
|
||||
|
||||
# Research-Modus: Automatisch 3 Durchläufe für optimale Ergebnisse
|
||||
|
||||
@@ -50,18 +50,18 @@ PIPELINE_STEPS = [
|
||||
"icon": "map-pin",
|
||||
"tooltip": "Aus den Meldungen werden Ortsangaben erkannt und auf der Karte verortet.",
|
||||
},
|
||||
{
|
||||
"key": "summary",
|
||||
"label": "Lagebild verfassen",
|
||||
"icon": "file-text",
|
||||
"tooltip": "Aus allen geprüften Meldungen wird ein zusammenhängendes Lagebild geschrieben, mit Quellenangaben am Text.",
|
||||
},
|
||||
{
|
||||
"key": "factcheck",
|
||||
"label": "Fakten prüfen",
|
||||
"icon": "shield",
|
||||
"tooltip": "Behauptungen aus den Meldungen werden gegeneinander abgeglichen: Bestätigt? Umstritten? Noch unklar?",
|
||||
},
|
||||
{
|
||||
"key": "summary",
|
||||
"label": "Lagebild verfassen",
|
||||
"icon": "file-text",
|
||||
"tooltip": "Aus allen geprüften Meldungen wird ein zusammenhängendes Lagebild geschrieben, mit Quellenangaben am Text.",
|
||||
},
|
||||
{
|
||||
"key": "qc",
|
||||
"label": "Qualitätscheck",
|
||||
|
||||
@@ -646,7 +646,7 @@
|
||||
<script src="/static/js/ws.js?v=20260316b"></script>
|
||||
<script src="/static/js/components.js?v=20260427a"></script>
|
||||
<script src="/static/js/layout.js?v=20260316b"></script>
|
||||
<script src="/static/js/pipeline.js?v=20260501a"></script>
|
||||
<script src="/static/js/pipeline.js?v=20260501i"></script>
|
||||
<script src="/static/js/app.js?v=20260501h"></script>
|
||||
<script src="/static/js/cluster-data.js?v=20260322f"></script>
|
||||
<script src="/static/js/tutorial.js?v=20260316z"></script>
|
||||
|
||||
@@ -141,20 +141,29 @@ const Pipeline = {
|
||||
}
|
||||
}
|
||||
|
||||
// Wenn ein neuer Pass startet (pass_number > prev und status="active" beim ERSTEN step):
|
||||
// alle Schritte zurück auf pending setzen, damit die Animation neu durchläuft.
|
||||
// Wenn der ERSTE Schritt (sources_review) auf "active" geht, beginnt ein neuer
|
||||
// Refresh oder ein neuer Multi-Pass-Durchlauf — alle nachfolgenden Schritte auf
|
||||
// "pending" (grau) zuruecksetzen, damit der User sieht: das ist neu und
|
||||
// noch nicht durchlaufen. Sonst stehen sie als "done" vom letzten Mal da.
|
||||
let didReset = false;
|
||||
if (d.status === 'active' && this._definition && this._definition.length
|
||||
&& key === this._definition[0].key && passNr > 1 && (!prev || prev.pass_number < passNr)) {
|
||||
// Alle anderen Steps in "pending" zurueck (visuell), Werte behalten wir
|
||||
&& key === this._definition[0].key) {
|
||||
this._definition.forEach(s => {
|
||||
if (s.key !== key && this._stateByKey[s.key]) {
|
||||
this._stateByKey[s.key].status = 'pending';
|
||||
didReset = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (didReset) {
|
||||
// Beim Reset alle Bloecke neu zeichnen, nicht nur den aktuellen
|
||||
this._render();
|
||||
this._renderMini();
|
||||
} else {
|
||||
this._patchBlock(key);
|
||||
this._patchMiniBlock(key);
|
||||
}
|
||||
},
|
||||
|
||||
_onRefreshDone(msg) {
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren