JavaScript JavaScript-Filter für RSS-Guard

ihmchen

Cadet 3rd Year
Registriert
Dez. 2012
Beiträge
32
Hallo Forum!

(Hoffentlich bin ich im richtigen Bereich, ggf. gerne verschieben)

Ich kenne mich mit JavaScript nicht so gut aus und brauche daher Hilfe bei kleineren Codes, es geht um die Filter-Funktion vom Feed-Reader RSS-Guard (portable).
Mit den gut dokumentierten Filtern können diverse Aufgaben erledigt werden, ich habe mir mit den Beispielen schon welche zum automatischen verschlagworten/labeln gebastelt:

Javascript:
// Conditions go here, condition is matched if title contains the condition phrase.
var conditions = [
  'notification',
  'tired',
  'upgrade'
];

// Names of your labels go here.
// Count of names must be same as count of conditions above.
var labels = [
  'Notifications',
  'Tired stuff',
  'Upgrades'
];

function filterMessage() {
  var target_idx = conditions.findIndex(i => msg.title.indexOf(i) >= 0);

  if (target_idx >= 0) {
    var target_lbl = msg.findLabelId(labels[target_idx]);

    msg.assignLabel(target_lbl);
  }

  return MessageObject.Accept;
}

(Nutze momentan viele conditions, die alle dasselbe label bekommen sollen. Das ginge bestimmt auch eleganter als dutzende gleiche label aufzuführen, aber es läuft…)

Nun möchte ich nur Nachrichten, bei denen der URL „index.php/news/“ beinhaltet als „news“ labeln lassen. Ich bekomme es aber nicht hin, die url-class richtig zu nutzen. Wie könnte ich das machen?

Besten Dank für eure Hilfestellungen!
 
Lösung
Ich glaube, im Code von @floq0r müsste die Zeile 4 so lauten:

Javascript:
msg.assignLabel(msg.findLabelId('news'));

Außerdem scheint es möglich zu sein, "console.log" in den Filtern zu benutzen, wodurch du eine Debug-Ausgabe bekommst. Das wäre ja schonmal hilfreich, um zu checken, ob die Filterbedingung überhaupt jemals wahr wird.
Danke, hab das mal kurz getestet, ist leider wirkungslos (auch mit kleinen Änderungen).
Oder ist das so zu verstehen, dass das „der untere Teil“ ist, der Zeile 16-26 ersetzt?

Geht beides nicht… Hab keine Ahnung, kann daher kaum was hilfreiches dazu sagen, sorry.
Ich frag mal bei ChatGPT :)
Ergänzung ()
 
Zuletzt bearbeitet:
Danke, scheint aber nicht zu funktionieren.
In meinem alten FeedReader (Projekt scheint tot) konnte ich die Filter "grafisch praktisch" anlegen, mit Programmieren hab ich nicht so viel am Hut.

Ich wollte nur die news aus dem hardwareluxx-feed verschlagworten, im alten QuiteRSS ging das per Filter: Wenn die Adresse "https://www.hardwareluxx.de/index.php/news/" enthält, dann Kennzeichnung "news" hinzufügen. Sowas versuch ich auch im RSS Guard, bisher erfolglos.

Ich habe leider bisher nur neue Filter hinbekommen, die mit Begriffen aus dem Titel arbeiten. URL oder Autoren müssten doch auch funktionieren, oder?
 
Zuletzt bearbeitet:
Ich glaube, im Code von @floq0r müsste die Zeile 4 so lauten:

Javascript:
msg.assignLabel(msg.findLabelId('news'));

Außerdem scheint es möglich zu sein, "console.log" in den Filtern zu benutzen, wodurch du eine Debug-Ausgabe bekommst. Das wäre ja schonmal hilfreich, um zu checken, ob die Filterbedingung überhaupt jemals wahr wird.
 
  • Gefällt mir
Reaktionen: floq0r
@cx01: Besten Dank, sehr hilfreich, Problem gelöst!

Jetzt kann ich den Parallelbetrieb beenden und komplett Umsteigen, die restlichen Filter bastele ich mir selbst zusammen. Auf das angekündigte „Filter-Editor-GUI“ für RSS Guard möchte ich nicht warten müssen, das wird wohl noch etwas dauern...
 
Zurück
Oben