This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

Weather script for wetter.com [German]

Support & discussion of released scripts, and announcements of new releases.
Post Reply
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

Cellgen benutzt auch einfach HTTP Package. Nur sehe ich gerade, dass das mit dem proxyhost in die configure Zeile und nicht in die geturl gehört ;).
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

Okay, Ich traue mich mal einen meiner Versuche mit den externen Aufrufen zu veröffentlichen. Ansonsten gibt es an 0.12 nichts wirklich neues. Da das ganze über externen TCL interpreter nicht wollte, habe ich jetzt einfach mal Lynx missbraucht. Also wenn euch HTTP zu langsam ist und ihr Lynx (oder anderen commandozeilen Browser, der irgendwie den Sourcedode auf stdout schreibt) auf der Shell habt, probiert einfach mal auf extern umzustellen :). Ist zugegeben keine elegante Lösung, aber zumindest bei mir immer noch schneller wie das TCL HTTP package :D.

0.12.1 10.05.2006: Wiederaufnahme des Versuchs mit externem Aufruf mit Lynx
0.12 29.03.2006: Hinzufügung von externen HTTP Aufrufen für höhere Geschwindigkeit BETA

PS: habe in 0.12.2 das Auslesen von Lynx doch wieder syncron gemacht, da es auf einer 2ten Shell sonst zu unvollständigem Auslesen kam.
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
H
Hazard
Voice
Posts: 18
Joined: Thu May 25, 2006 6:18 pm

Post by Hazard »

hmm bei mir läuft das script leider nicht, nutze windrop in der neuesten version.

Wenn ich den bot starten will kommt:

Code: Select all

"if {![info exists wetter(useragent)]} {
        set wetter(useragent) {}
} elseif {[file executable /bin/uname]} {
# solle unter BSD/Linux/Cygwin etc. funkti..."
    (file "scripts/wetter.tcl" line 146)
    invoked from within
alle anderen scripte laufen bei mir normal, HTTP hab ich auch laufen in der version 2.5.
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

schön, dass man sieht in welcher if struktur der Fehler geschieht. Aber leider fehlt, was für ein Fehler eigentlich vorliegt :D.
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
H
Hazard
Voice
Posts: 18
Joined: Thu May 25, 2006 6:18 pm

Post by Hazard »

ja wenn ich den bot starten will, bekomm ich den fehler in der console, also der bot geht garnicht erst an, hier mal das komplette was in der console steht (in der log steht garnichts)

Code: Select all

Eggdrop v1.6.18+spelling-errors-suck (C) 1997 Robey Pointer (C) 2006 Eggheads
[12:53] --- Loading eggdrop v1.6.18+spelling-errors-suck (Fri May 26 2006)
[12:53] Module loaded: dns
[12:53] Module loaded: channels
[12:53] Module loaded: server
[12:53] Module loaded: ctcp
[12:53] Module loaded: irc
[12:53] Module loaded: notes            (with lang support)
[12:53] Module loaded: console          (with lang support)
[12:53] Module loaded: blowfish
[12:53] Listening at telnet port 3333 (all).
[12:53] Modul geladen: uptime
[12:53] egghttp.tcl API v1.1.0 by strikelight now loaded.
[12:53] IMDB info (21.01.2006) loaded
[12:53] Tcl error in file 'egg.conf':
[12:53] couldn't execute "uname": no such file or directory
    while executing
"exec uname -sr"
    invoked from within
"if {![info exists wetter(useragent)]} {
        set wetter(useragent) {}
} elseif {[file executable /bin/uname]} {
# solle unter BSD/Linux/Cygwin etc. funkti..."
    (file "scripts/wetter.tcl" line 146)
    invoked from within
"source scripts/wetter.tcl"
    (file "egg.conf" line 153)
[12:53] * KONFIGURATIONSDATEI NICHT GELADEN (NICHT GEFUNDEN ODER FEHLER)
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

versuche mal [exec uname -sr] mit [exec /bin/uname -sr] zu ersetzen :D. Ist ja witzig, dass /bin/uname ausführbar ist, aber nicht im suchpfad :D. Notfalls setzt du den useragent einfach leer, das geht auf jeden Fall :).
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
H
Hazard
Voice
Posts: 18
Joined: Thu May 25, 2006 6:18 pm

Post by Hazard »

danke dir hat mit [exec /bin/uname -sr] geklappt.

aber ist das normal das der solang für die abfrage braucht ? (20-30sek)
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

lesen bildet ^-^.
kA seit wann das HTTP package so lahm ist, jeden falls hab ich 0.12 nicht aus Spaß gemacht :D.
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
H
Hazard
Voice
Posts: 18
Joined: Thu May 25, 2006 6:18 pm

Post by Hazard »

ja nur weiss ich nicht wie ich lynx richtig benutzen soll, aber das ja nich soo wichtig, hauptsache es läuft nun ;)
User avatar
sKy
Op
Posts: 194
Joined: Thu Apr 14, 2005 5:58 pm
Location: Germany

Post by sKy »

Hi!
Ohne jetzt den ganzen Thread zu lesen. Sorry...

dnslookup www.wetter.com getwetterdns:cb
proc getwetterdns:cb {ip host status} {
set ::wetter(server) $ip
}

Das verursacht beim ersten laden des scripts einen Fehler weil wahrscheinlich die proc noch nicht existiert...
socketapi | Code less, create more.
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

Wenn die Proc nicht existiert, dann ist das DNS Module (noch) nicht geladen. Sofern du es überhaupt nicht laden möchtest, kannst du natürlich auch wetter(server) mit www.wetter.com oder 193.28.195.15 setzen. Das eine könnte den Bot blockieren, das andere müsste evtl. geändert werden, wenn der Server eine neue IP bekommt :D.

PS: du hast nicht geschrieben welche Proc es nicht gibt, ich ginge jetzt davon aus, dass es "dnslookup" nicht gibt. Und keine Sorge, bist der erste mit dem Problem, der sich meldet.

@hazard: einfach schauen, dass Lynx installiert ist in Cygwin, und dann /bin/lynx als Pfad benutzen.
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
User avatar
sKy
Op
Posts: 194
Joined: Thu Apr 14, 2005 5:58 pm
Location: Germany

Post by sKy »

Es gibt die proc getwetterdns:cb nicht. Da erst der dnslookup gemacht wird und die callback proc erst später erstellt wird.

EDIT:
Also irgendwie ist das komisch. Ich habe das dns module nicht geladen, aber die proc dnslookup gibt es trotzdem immer.
Weiß nicht ob dnslookup jetzt async ist oder nicht.

kleiner test:

Code: Select all

.tcl set x [dnslookup www.aa22.com show_ lookup done] ; putlog done
show_: 0.0.0.0 www.aa22.com 0 lookup done
done
Tcl: 

.tcl set x [dnslookup www.google.com show_ lookup done] ; putlog done
done
Tcl: 
show_: 64.233.183.104 www.google.com 1 lookup done
Also keine Ahnung.
socketapi | Code less, create more.
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

Da TCL in Eggdrop single Threaded ist, kann eigentlich nicht passieren, dass DNS den Callback aufruft, bevor das Script fertig geladen hat. Aber wie gesagt, du kannst auch probieren den dnslookup Aufruf nach der proc Deklartion zu stellen, um 100% sicher sein zu können. Evtl. wird durch das DNS Module "dnslookup" erst asyncron und ist vorher eine syncrone function.
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
User avatar
sKy
Op
Posts: 194
Joined: Thu Apr 14, 2005 5:58 pm
Location: Germany

Post by sKy »

Denke mal das putlog kam sofort weil ich kein [list ....] verwendet habe.
Nach einigen tests.... Also irgendwie ist die dnslookup funktion komisch. Ich glaube wenn das Ergebniss schon cashed ist oder "schnell verfügbar" ist das Command syncron, ansonsten per callback asyncron.

Den dnslookup könntest daher lieber unter die proc packen.
socketapi | Code less, create more.
User avatar
De Kus
Revered One
Posts: 1361
Joined: Sun Dec 15, 2002 11:41 am
Location: Germany

Post by De Kus »

Wenn es ein [info dns avaible] gäbe, würde ich das glatt machen. Aber warum die Gefahr eingehen den Bot beim Versuchen einen Domain Namen aufzulösen, wenn man auch einfach die IP vorher schon nachschlagen kann? Wie gesagt, du kannst gerne auch direkt die IP setzen oder den Domainnamen als "IP" eintragen, dann wird er vom HTTP Package oder von Lynx jedesmal nachgeschlagen, was bei einer statischen IP wie so einer Webseite aber meiner Meinung nach einfach nicht nötig ist. Was vermeidbar ist, wird bei mir vermieden, sofern es verhältnismäßig im Aufwand bleibt.
De Kus
StarZ|De_Kus, De_Kus or DeKus on IRC
Copyright © 2005-2009 by De Kus - published under The MIT License
Love hurts, love strengthens...
Post Reply