Zitat von pio
Beitrag anzeigen
GoogleWeather(Forchheim,Germany)
fände ich am besten.
:begin GoogleWeather (PLZ, Ort, Land)
:info $Google Weather Infos in Strings$\\
$Postleitzahl$\\
$Ort$\\
$Land$\\
:shortinfo $Google Weather Infos in Strings$
Ort^WetterTrigger=AUS
// Google Weather: Es kommen 2 TCP Pakete an.
Ort^xmlText=$$
Ort^xmlText_Data1=$$
Ort^xmlText_Data2=$$
Ort^xmlCount=0
Ort^Port=0u16
Ort^IP=0u32
Ort^GooglePort = 80u16
Ort^GoogleIP = resolve($www.google.com$)
// TCP Verbindung aufmachen
if htime(00, 00, 00) or systemstart() then Ort^WetterTrigger=EIN endif
if (after(Ort^WetterTrigger,10000u64) == EIN) then {
connecttcp(Ort^GooglePort,Ort^GoogleIP)
}endif
// TCP Anfrage schicken
if (after(Ort^WetterTrigger,11000u64) == EIN) then {
sendtcp(Ort^GooglePort,Ort^GoogleIP,$GET /ig/api?weather=$+PLZ+Land+$&hl=de HTTP/1.1$,0x0D,0x0A,0x0D,0x0A)
}endif
// Es kommen 2 Pakete an
if event(readtcp(Ort^Port,Ort^IP,Ort^xmlText)) and Ort^IP == Ort^GoogleIP then {
if (Ort^xmlCount==0) then Ort^xmlText_Data1=Ort^xmlText endif;
if (Ort^xmlCount==1) then Ort^xmlText_Data2=Ort^xmlText endif;
Ort^xmlCount=Ort^xmlCount+1
}endif
// TCP Verbindung wieder ordentlich schließen
if after(Ort^WetterTrigger,20000u64) then {
closetcp(Ort^Port,Ort^IP);
Ort^WetterTrigger=AUS
} endif
// Parsen der xml Daten
Temperatur=0.0
Luftfeuchte=0.0
VorhersageMax=0.0
VorhersageMin=0.0
Wolken=$$
VorhersageWolken=$$
Ort^PosStart=0u16
Ort^PosEnd=0u16
// Und nun parsen
if Ort^xmlCount==2 then {
/* Die eigentlichen Daten passen in einen einizigen String, daher Ausschneiden des Headers */;
Ort^PosStart=find(Ort^xmlText_Data1,$<forecast_information>$,0u16)+size($<forecast_information>$);
Ort^xmlText=split(Ort^xmlText_Data1,Ort^PosStart,END)+Ort^xmlText_Data2;
/* Parsen nach Temperatur */;
Ort^PosStart=find(Ort^xmlText,$<temp_c data="$,0u16)+size($<temp_c data="$);
Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"$,0u16)+Ort^PosStart;
Temperatur=convert(split(Ort^xmlText,Ort^PosStart,Ort^PosEnd),0.0);
/* Parsen nach Luftfeuchte */;
Ort^PosStart=find(Ort^xmlText,$<humidity data="Feuchtigkeit:$,0u16)+size($<humidity data="Feuchtigkeit:$);
Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$%$,0u16)+Ort^PosStart;
Luftfeuchte=convert(split(Ort^xmlText,Ort^PosStart,Ort^PosEnd),0.0);
/* Parsen nach Vorhersage Min*/;
Ort^PosStart=find(Ort^xmlText,$<low data="$,0u16)+size($<low data="$);
Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"$,0u16)+Ort^PosStart;
VorhersageMin=convert(split(Ort^xmlText,Ort^PosStart,Ort^PosEnd),0.0);
/* Parsen nach Vorhersage Max*/;
Ort^PosStart=find(Ort^xmlText,$<high data="$,0u16)+size($<high data="$);
Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"$,0u16)+Ort^PosStart;
VorhersageMax=convert(split(Ort^xmlText,Ort^PosStart,Ort^PosEnd),0.0);
/* Parsen nach Wolken*/;
Ort^PosStart=find(Ort^xmlText,$<condition data="$,0u16)+size($<condition data="$);
Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"/>$,0u16)+Ort^PosStart-1u16;
Wolken=split(Ort^xmlText,Ort^PosStart,Ort^PosEnd);
/* Parsen nach Wolkenvorhersage für 1. Tag*/;
Ort^PosStart=find(Ort^xmlText,$<condition data="$,1u16)+size($<condition data="$);
Ort^PosEnd=find(split(Ort^xmlText,Ort^PosStart,END),$"/>$,0u16)+Ort^PosStart-1u16;
VorhersageWolken=split(Ort^xmlText,Ort^PosStart,Ort^PosEnd);
Ort^xmlCount=0
} endif
:end

? [/QUOTE]
...

Datei: "./tmpMacroOut.txt" wurde geschriebenSyntaxfehler in Zeile:[167]
>if (event(readtcp(Port,IP,xmlText)) and IP == GoogleIP then { sendmail($xxxxx@xxxxx.ch$,betreff,xmlText)}endif<
Gültig bis Spaltenposition: {0}
STOP Parser --> if (event(readtcp(Port,IP,xmlText)) and IP == GoogleIP then { sendmail($xxxxx@xxxxx.ch$,betreff,xmlText)}endif
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.


Einen Kommentar schreiben: