NEWS
Google-Kalenderdaten usw. morgens täglich an Telegram
-
Ja, das funktioniert schon mal. Ich habe es eben auch in diese Richtung versucht, aber nix hinbekommen
Was bei mir läuft ist ein Script, das in iCal nach Terminen schaut, in dem Fall ob der Mülleiner geleert werden muss.
Das geht schon in die richtige Richtung…
-
Mit diesem Skript
! ````
// Skript schaut täglich um 18h, ob im Kalender das Wort "Morgen" vorkommt. Wenn ja, wird ein Telegram geschickt mit dem betreffenden Termin bzw Terminen
// tempestas 13.2.2018
! // 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;" funktion/function/warnung()/{/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
! Warnung();
});
! // Bei Start
! Warnung();</br></br\s></style.></script.*></l){>erhälst du eine Telegram Nachricht mit allen Terminen (sei es Müll, Omas Geburtstag..), die morgen anstehen. Voraussetzung ist, dass dein Kalender "ersetze Datum mit Worten" aktiviert hat. Wenn du überall wo "Morgen" steht es auf "Heute" abwandelst, bekommst du alle Termine von heute
-
Ich nutze leider die Datumsangabe und möchte auch nicht umstellen. Wie sieht dann das Skript aus und wo muss ich es dann als was speichern?
( Telegram Adapter ist Voraussetzung?)
-
Danke tempestas!
Das werde ich mir mal genauer anschauen, ich kann zwar nur VBA-Excel, aber vielleicht bekomme ich es ja nicht nur zum laufen, sondern auch auf meine Zwecke angepasst. Auf jeden Fall eine gute Basis zum lernen für mich!
TOP erstmal!
-
@ ede: gern. Es ist alles kommentiert. Wenn du Hilfe brauchst, fragen.
@haselchen: na ja, wenn du kein Telegram nutzt gibts noch pushover z.B., aber irgendeine Version brauchst du ja, wenn du es aktiv aufs Handy gespielt bkeommen willst. Sonst kannst du ja auch einfach so aufs Handy gucken für Termine, Wetter usw.
-
Noch einen kleinen Tipp zum Eingangspost.
Die Abfrage nach = 8:00 wird in der Praxis nie wahr. Grund hierfür ist das im Hintergrund auch mit Sekunden (und evt. Noch genauer) gerechnet wird. Die Bedingung würde also nur wahr werden wenn die Zeit genau 8:00:00:00:00:00:00:00….. wäre. Also immer eine kleine Range abfragen. Also z. B. Zwischen 8:00 und 8:01. bin da am Anfang auch drüber gestolpert.
Lg
Günther
-
tempestas, dein Skript läuft bei mir schon und klappt soweit für die Termine morgen gut.
Vielleicht schaffe ich es ja, mit Eurer Hilfe es für mich weiter zu modifizieren.
Hier nochmal mein Wunsch und Zielbild:
6334_aufbau.jpg
6334_zielbild.jpeg -
Telegram habe ich, die Frage war nur, wenn Du ein Skript basteln würdest, brauche ich dann den Telegram Adapter?!
-
Ja, den brauchst du
-
Mit diesem Skript
! ````
// Skript schaut täglich um 18h, ob im Kalender das Wort "Morgen" vorkommt. Wenn ja, wird ein Telegram geschickt mit dem betreffenden Termin bzw Terminen
// tempestas 13.2.2018
! // 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;" funktion/function/warnung()/{/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
! Warnung();
});
! // Bei Start
! Warnung();</br></br\s></style.></script.*></l){>erhälst du eine Telegram Nachricht mit allen Terminen (sei es Müll, Omas Geburtstag..), die morgen anstehen. Voraussetzung ist, dass dein Kalender "ersetze Datum mit Worten" aktiviert hat. Wenn du überall wo "Morgen" steht es auf "Heute" abwandelst, bekommst du alle Termine von heute `
Bei mir läuft das Script nicht.
Ersetze Datum mit Worten ist aktiviert.
Hab zum testen
schedule('0 18 * * *', function(){ // Täglich um 18h
auf aktuelle Zeit plus 2 Minuten gestell, aber da tut sich nichts.
EDIT!!!
Funktioniert jetzt.