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 .
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.
"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.
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)
versuche mal [exec uname -sr] mit [exec /bin/uname -sr] zu ersetzen . Ist ja witzig, dass /bin/uname ausführbar ist, aber nicht im suchpfad . Notfalls setzt du den useragent einfach leer, das geht auf jeden Fall .
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 .
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.
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.
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.
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.
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.