NEWS
[ VORLAGE ] Müll Warnung / Erinnerung via Telegram am Vorabend
-
Da dieses Thema immer wieder aufkommt (so auch jetzt, daraus ist das Skript entstanden), hier als Vorlage ein kleines Javascript, das täglich um 18h via Telegram erinnert, sofern am Fogletag Müllabholung ansteht.
Voraussetzungen:
1. "Ersetze Datum mit Worten" muss aktiv sein im Kalender
2. Der Müllkalender sollte eine eigene Instanz haben, da es sonst zu Überschneidungen der Warnung mit anderen Terminen kommen kann (z.B. morgen Friseur)
3. Telegram Adapter (oder was anderes, müsstet ihr dann anpassen
! ````
! // Skript schaut täglich um 18h, ob im Müllkalender das Wort "Morgen" vorkommt. Wenn ja, wird ein Telegram geschickt mit der betreffenden Müllsorte
! // Skripteinstellungen
! var debug = false;
! // Suchfunktion für Termin-Cutofffunction nthIndex(str, pat, n){
var L= str.length, i= -1;
while(n-- && i++ <l){ i="str.indexOf(pat," i);/if/(i/</0)/break;/}/i_search="i;" müll-funktion/function/muellwarnung()/{/var/inhalt="getState("ical.0.data.html").val.toString();" hier/deine/müll-kalender/instanz/eingeben/count="inhalt.split("Morgen").length" -1;/wie/häufig/wird/"morgen"/gefunden?/posstart="inhalt.indexOf(" 'morgen',/0);/sucht/das/erste/mal/if(debug)/log("posstart/"+posstart);/if(posstart/!="-1){" falls/gefunden/wurde/gehts/weiter/stringshort="inhalt.substring(posStart," inhalt.length);/abschneiden/von/allem,/was/links/vom/ersten/treffer/steht/log("gekürzt/:"/+stringshort);/nthindex(stringshort,/'</span="">', count); // hier wird nun geschaut, wo es rechts abgeschnitten werden muss
stringCut = stringShort.slice(0,i_search); // hier wird alles rechts abgeschnitten und so der finale String extrahiertif(debug) log("Fast Final: "+stringCut);
! // aufbereiten für telegram, entfernen von HTML Tags
! stringCut = stringCut.replace('
',"\n"); // Zeilenumbruch html durch telegram umbruch ersetzen
! // remove all inside SCRIPT and STYLE tags
stringCut=stringCut.replace(/<script.>[\w\W]{1,}(.?)[\w\W]{1,}</script>/gi, "");
stringCut=stringCut.replace(/<style.>[\w\W]{1,}(.?)[\w\W]{1,}</style>/gi, "");// remove BR tags. stringCut=stringCut.replace(/
/gi, "");
stringCut=stringCut.replace(/<br\s>/gi, "");
stringCut=stringCut.replace(/<br>/gi, "");// remove all else stringCut=stringCut.replace(/<(?:.|\s)*?>/g, ""); // get rid of html-encoded characters: stringCut=stringCut.replace(/ /gi," "); stringCut=stringCut.replace(/&/gi,"&"); stringCut=stringCut.replace(/"/gi,'"'); stringCut=stringCut.replace(//gi,'>');
!
sendTo('telegram', stringCut);}
}! // Trigger Schedule
! schedule('0 18 * * ', function(){ // Täglich um 18h
! muellWarnung();
});
! // Bei Start
! muellWarnung();</br></br\s></style.></script.*></l){> -
Cool, danke. Werde ich ausprobieren, wenn ich neue Hardware habe. Mein rpi3 ist schon jetzt voll ausgelastet, kein Platz mehr für neue Instanzen
VG Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Cool, danke. Werde ich ausprobieren, wenn ich neue Hardware habe. Mein rpi3 ist schon jetzt voll ausgelastet, kein Platz mehr für neue Instanzen
VG Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk `
hi,
eine weitere Instanz sollte nichts belasten außer in der halben Sekunde, in der er sich aktualisiert. Beim Müll reicht es ja einmal pro Tag (oder sogar noch seltener). Danach "schläft" der Adapter ja wieder
-
Erstmal danke für das Skript!
Hab es bei mir integriert und funktioniert auch soweit, jedoch bekomme ich von meinem Telegram Bot die Nachricht wie folgt: "Morgen Gelbe Tonne
Scheinbar funktioniert das "wegschneiden" nicht richtig. Hast du eine neuere Version deines Skriptes oder muss ich bei mir was ändern?
-
Hallo,
das Skript ist leider nicht mehr wirklich zu nutzen. Zu der Zeit als ich es geschrieben habe, war der Adapter noch auf Version 1.4.2 und hatte eien HTML Formatierung, die nun nicht mehr uneingeshränkt so gilt. D.h. die Suchfunktion funktioniert nicht mehr zuverlässig.
Der neue Ical Adapter im Stand Version 1.7 ht aber neue Events an Bord, die solch ein Skript ohnehin unnötig machen bzw vereinfachen.
Du kannst dort als Event deinen Müll eingeben und dann täglich um 18h (oder wann auch immer) schauen, ob eins der Events auf 1 steht. Dan wäre dieses Event morgen dran und du kannst dir ein Telegram mit der jeweiligen Info schicken lassen