Temperatur script v1.5

Generella Windowsfrågor och frågor gällande Windowsmjukvara som saknar egen forumkategori skall postas i detta forum
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
cparadis
Wannabe
Inlägg: 3
Blev medlem: 30 aug 2008, 21:38
Ort: stockholm

Temperatur script v1.5

Inlägg av cparadis »

Hejsan hejsan alla.
Har gjort ett temperatur script till mIRC.
Ni som inte vet vad det är så är det ett program man använder till att ansluta sig mot olika nätverk där man sedan kan snacka med massa folk.

Anledningen till att jag lägger upp den här är för att dela med mig den till alla och för att jag gillar den enkla sidan så mycket, som jag tar informationen ifrån.

Och eftersom andra ville ha ett enkelt script som dom kan ändra kommun och ort på. Så skapade jag det för dom. Lade även till en liten logo i dialogen så det blir som lite reklam, och som också länkar till temperatur.nu. Och så ansluter den inte hela tiden mot temperatur.nu. Eftersom den kanske segar ned sidan då, och det är nog inget roligt för ägaren.

En liten bild på hur det ser ut:
Bild

[Version 1.5 - 2009/08/26 - 00:13:10]
* Fixade till 'Varmaste/kyligaste'
* Fixade till delar utav kommun-uppdateraren.
- Tog bort "varnings" popupsen.

[Version v1.4 - 2008/09/11 - 16:30:23]

+ Lade till så att det står när temperatusfilen har uppdaterats.
Och så laddas senaste kommunen med orten men valt upp i dialogen om den nu är öppen.
* Fixade till uppdatering utav kommunerna och orterna.


[Version v1.3 - 2008/07/31 - 18:08:51]


+ Lade till /Me, så det blir som "* cparadis Det är 13.0'C i kiruna." Alltså action.
+ Lade till Varmaste/Kyligaste Kommunen med Ort.
/ ändrade så inställningarna är i Menybaren. Och inte i kanalen och Queryn.

[Version v1.2 - 2008/07/23 - 23:32:24]

* Fixade så den tar bort alla variables som sparas för att få ut infon.
* Fixade buggen på [Kommun] som gjorde att den skrev ut 'Kommun: Ort' istället för vad den skall göra.
Efter man har tagit bort påminnelse popupsen. (Tack till Schani, som hittade buggen)


Funktioner:

- Klicka på Varmaste/Kyligaste fönstret så stängs det.
- Högerklicka på Varmaste/Kyligaste fönstret så sparas det i clipboard.
- Man kan kolla efter uppdateringar till temperatur-orterna.
- Man kan Byta format lätt och enkelt.
- Om man trycker i editbaren så kommer det vara ett litet streck där. Och om man trycker sedan på T.ex, [tid] så kommer [tid] automatiskt att läggas till i editbaren.

- Man kan se hur 'säg-texten' ser ut i färger i dialogen.
- ändra Kommun med Ort så smidigt som möjligt.
- Om kanalen har '+c' alltså att färger inte får användas. Så kommer scriptet ta bort färgerna och ändå skriva ut hur du angivit så som formaten ska se ut.
- Inställningarna sparas inte i variablar. Ifall om något skulle hända med 'remote.ini'.
- Kommunerna och Orterna som laddas ned via sockets från temperatur.nu. Sparas i temperatur.tbl.
- Även bilder genereras för att sedan sättas in i dialogen. Det är temperatur.nu-loggan och texten till formaten. Tmpad.bmp och tmpsh.bmp.

Kod: Markera allt

;
;####### Version: 1.5 #######
;


;### Menyn i kanal och Queryn ###

menu menubar {
  Temperatur
  .Inställningar:tmpw | dialog -m tmp tmp
  .Varmaste/Kyligaste:tmpvk
}

menu channel,query {
  Temperatur
  .-
  .Msg:set %tmpdo msg $active | temp
  ./Me:set %tmpdo describe $active | temp
  .Echo:set %tmpdo !echo -ag | temp
}


on *:load:{
  set %fstart 1
  unset %temp.*
  !echo -ag Laddade Temperaturs tillägg $tmpvrs Skapat utav: Desajn
  !echo -ag -


  tmpwr form 1,8(Temperatur.nu) [grader] -X- [kommun]
  tmpwr ort Abisko
  tmpsh
  sockopen ctmp wap.temperatur.nu 80
}

on *:unload:{ 
  unset %tmp* | .remove temperatur.dat | .remove tmpsh.bmp 
  .remove tmpads.bmp | .remove temperatur.tbl
  !echo -ag Tog bort alla filer från temperatur scriptet.
}


;### Temperatur ###

alias temp {
  if (!%tmpdo) { set %tmpdo msg $active }
  sockopen tmp wap.temperatur.nu 80
}
on *:sockopen:tmp:{
  sockwrite -n $sockname GET /index2.php?stad= $+ $gettok($read(temperatur.tbl, w, $+(*,$tmpr(ort),*)),1,177) HTTP/1.0
  sockwrite -n $sockname host: wap.temperatur.nu
  sockwrite -n $sockname user-agent: $+(mIRC/,$version)
  sockwrite -n $sockname
}

on *:sockread:tmp:{
  var %tmp
  sockread %tmp
  while ($sockbr) {
    if (Just nu är det problem isin %tmp) { set %tmp.err 1 }
    if (Temp: isin %tmp) && (<p> isin %tmp) {
      set %tmp.err 0
      set %tmp.c $gettok($gettok(%tmp,2,32),1,60)
      set %tmp.t $gettok($gettok(%tmp,3,62),1,32)
    }
    sockread %tmp
  }
}


on *:sockclose:tmp:{
  if (%tmp.err == 0) {
    var %tmp.mon = $replace($asctime(mm),01,Januari,02,Februrari,03,Mars,04,April,05,Maj,06,Juni,07,Juli,08,Augusti,09,September,10,Oktober,11,November,12,December)
    set %tmp.dat $+($asctime(d),:,$iif($asctime(dd) isnum 01-02,a,e)) %tmp.mon $asctime(yyyy)
    var %tmp.kom = $iif($count($tmpr(ort),$chr(47)) == 1,$gettok($tmpr(ort),1,47),$tmpr(ort))
    var %tmp.ort = $iif($count($tmpr(ort),$chr(47)) == 1,$gettok($tmpr(ort),2,47),$null)
    var %tmp.both = $iif($count($tmpr(ort),$chr(47)) == 1,$replace($tmpr(ort),$chr(47), $chr(32) > $chr(32)),$tmpr(ort))
    var %tmp.form = $replace($tmpr(form),[tid],%tmp.t,[grader],%tmp.c,[kommun],%tmp.kom,[ort],%tmp.ort,[kommun&ort],%tmp.both,[datum],%tmp.dat)
    if (%tmpdo) { %tmpdo $iif($chr(35) isin %tmpdo,$iif(c isincs $chan($wildtok(%tmpdo,$+(*,$chr(35),*),1,32)).mode,$strip(%tmp.form),%tmp.form),%tmp.form) | unset %tmp* }
  }
  else { !echo -ag $+($chr(2),$chr(40),$chr(2),Temp,$chr(2),$chr(41),$chr(2)) Just nu är det ett problem med att visa temperaturen från $+($chr(2),$chr(3),4,$tmpr(ort),$chr(3),$chr(2)) $+ . | unset %tmp* }
}

;### Kollar efter ändringar i databasen ###

on *:sockopen:ctmp:{
  sockwrite -n $sockname GET / HTTP/1.0
  sockwrite -n $sockname host: wap.temperatur.nu
  sockwrite -n $sockname user-agent: $+(mIRC/,$version)
  sockwrite -n $sockname
}

on *:sockread:ctmp:{
  var %ctmp
  sockread %ctmp
  while ($sockbr) {
    if (index2.php isin %ctmp) {
      var %rem = $remove(%ctmp,<a href="index2.php?stad=,>,</a,<br/)
      write temperatur2.tbl $replace(%rem,",$chr(177))
    }
    sockread %ctmp
  }
}

on *:sockclose:ctmp:{
  if ($lines(temperatur2.tbl) > $lines(temperatur.tbl)) || ($lines(temperatur2.tbl) < $lines(temperatur.tbl)) || ($lines(temperatur.tbl) == 0) {
    $iif($dialog(tmp),did -a tmp 17 Ersätter den gamla filen med den nya) | write -c temperatur.tbl
    $iif($dialog(tmp),did -r tmp 8)
    var %fo = 1
    while (%fo <= $lines(temperatur2.tbl)) {
      write temperatur.tbl $read(temperatur2.tbl,%fo)
      if ($tmpr(ort) == $gettok($read(temperatur.tbl,%fo),2,177)) { set %found %fo }
      $iif($dialog(tmp),did -a tmp 8 $replace($gettok($read(temperatur2.tbl,%fo),2,177),/,: $chr(32)))
      inc %fo
    }
    $iif($dialog(tmp),did -s tmp 8 %found)
    $iif($dialog(tmp),did -a tmp 17 Nu är listan laddad med dom nyaste kommunerna och orterna.)
    $iif($dialog(tmp),did -c tmp 8 $iif(%found != $null,%found,1)) | .remove temperatur2.tbl
    if (%fstart == 1) { tmpw | dialog -m tmp tmp | unset %fstart }
  }
  else {
    $iif($dialog(tmp),did -a tmp 17 Finns inga uppdateringar.) | .remove temperatur2.tbl
    if (%fstart == 1) { tmpw | dialog -m tmp tmp | unset %fstart }
  }
}
;### End ###


;### Inställnings-menyn ###

dialog tmp {
  title ""
  size -1 -1 224 95
  option dbu
  text "[Datum] - Visar dagens datum.", 1, 5 9 76 7
  text "[Grader] - Visar hur många grader det är.", 2, 5 17 103 8
  text "[Kommun] - Visar vilken Kommun.", 3, 5 26 80 8
  text "[Ort] - Visar vilken Ort.", 4, 5 35 58 8
  text "[Kommun&&Ort] - Visar Kommun och Ort.", 5, 5 44 96 8
  text "[Tid] - Visar tiden då det uppdaterades.", 6, 5 53 99 8
  box "", 7, 1 0 221 83
  box "Format", 9, 1 0 115 65
  combo 8, 119 10 97 71, size drop
  box "Välj Ort", 14, 115 0 107 40
  button "Spara..", 10, 137 26 27 10
  edit "Temp: [grader]", 12, 3 68 89 11, autohs
  button "Spara..", 13, 94 69 21 9
  button "Uppdatera", 16, 168 26 30 10
  text "", 17, 120 44 95 36
  icon 15, 167 84 59 11,  tmpads.bmp, 0, noborder
  icon 11, -2 83 175 12,  tmpsh.bmp, 0, noborder
}


on *:dialog:tmp:*:*:{
  if ($devent == mouse) && ($did isnum 1-6) { set %dided $did }
  if ($devent == init) {
    if ($lines(temperatur.tbl) != 0) {
      var %fe = 1
      while (%fe <= $lines(temperatur.tbl)) {
        if ($tmpr(ort) == $gettok($read(temperatur.tbl,%fe),2,177)) { set %found %fe }
        did -a $dname 8 $replace($gettok($read(temperatur.tbl,%fe),2,177),/,: $chr(32))
        inc %fe
      }
      did -c $dname 8 $iif(%found != $null,%found,1)
      if ($tmpr(form) != $null) { did -ra $dname 12 $tmpr(form) | tmpsh $tmpr(form) }
      dialog -t $dname Inställningar $+([,$tmpvrs,])
    }
  }
  if ($devent == sclick) {
    if ($did == 0) && ($inrect($mouse.x,$mouse.y,3,7,227,121)) && (%dided) {
      var %f = 1
      while (%f <= $len($did(12))) {
        if ($did(12).selstart == %f) { var %x = %x $+ $replace($mid($did(12),%f,1),$chr(32),$chr(160)) $+ $replace($gettok($did(%dided),1,32),&&,&) }
        else { var %x = %x $+ $replace($mid($did(12),%f,1),$chr(32),$chr(160)) }
        inc %f
      }
      did -ra $dname 12 $replace(%x,$chr(160),$chr(32))
      tmpsh $replace(%x,$chr(160),$chr(32))
      unset %dided
    }
    if ($did == 15) { url http://www.temperatur.nu/temperatur-1-5_2.html) }
    if ($did == 13) { tmpwr form $did(12) }
    if ($did == 10) { tmpwr ort $remove($replace($did(8),:,/),$chr(32)) }
    if ($did == 16) {
      if ($sock(ctmp,0) == 0) {
        did -ra $dname 17 Kollar efter nyare temperaturfil.
        sockopen ctmp wap.temperatur.nu 80
      }
    }
  }
  if ($devent == edit) {
    if ($did == 12) {
      if ($len($did(12)) > 0) { tmpsh $did(12) }
      else { tmpsh }
      did -f $dname 12
    }
  }
  if ($devent == close) { window -c @tmps }
}

;### Logga ###

alias tmpw {
  window -phBdw0n2 +d @tmpw -1 -1 104 21
  drawfill -r @tmpw $rgb(face) $rgb(face) 0 0
  drawrect -rfd @tmpw $rgb(0,0,0) 2 2 2 100 17 16 16
  drawrect -rfd @tmpw $rgb(255,231,96) 2 4 4 96 13 12 12
  drawtext -rbo @tmpw $rgb(0,0,0) $rgb(255,231,96) verdana 10 11 4 temperatur.nu
  drawsave @tmpw tmpads.bmp
}


;### Formattexten ###

alias tmpsh {
  if ($1- != $null) {
    clear @tmps
    var %ttext = $1-
    var %tfont = tahoma, %tsize = 11
    window -dBk0pw0h +dL @tmps -1 -1 335 15
    drawfill -r @tmps $rgb(face) $rgb(face) 0 0
    drawrect -rf @tmps $rgb(face) 1 $calc($width(%ttext,%tfont,%tsize,0,1) + 3) 0 335 15
    drawtext -pb @tmps $color(text) $color(background) %tfont %tsize 2 1 %ttext
    drawrect -r @tmps $color(text) 1 0 0 $calc($width(%ttext,%tfont,%tsize,0,1) + 3) 15
  }
  else {
    clear @tmps
    window -dBk0pw0h +dL @tmps -1 -1 335 15
    drawrect -rf @tmps $rgb(face) 1 0 0 335 15
  }
  drawsave @tmps tmpsh.bmp
  $iif($dialog(tmp) != $null,did -g tmp 11 tmpsh.bmp)
  window -c @tmps
}

;### Övrigt ###

alias tmpwr {
  if ($read(temperatur.dat, w, $+($1,$chr(143),*)) != $null) {
    noop $read(temperatur.dat, w, $+($1,$chr(143),*)) | .write -l $+ $readn temperatur.dat $+($1,$chr(143),$2-)
  }
  else { .write temperatur.dat $+($1,$chr(143),$2-) }
}

alias tmpr { return $gettok($read(temperatur.dat, w, $1 $+ *),2-,143) }
alias tmpvrs { return $+($chr(118),$chr(49),$chr(46),$chr(53)) } 


;----------------------------

;### Varmaste/Kyligaste ###

alias tmpvk {
  if ($sock(tmplt,0) == 0) { sockopen tmplt www.temperatur.nu 80 }
  else { sockclose tmplt | sockopen tmplt www.temperatur.nu 80 }
}

on *:sockopen:tmplt:{
  sockwrite -n $sockname GET /orter.html/temperatur-1-7_0.html?order=t&sort=f HTTP/1.0
  sockwrite -n $sockname host: www.temperatur.nu
  sockwrite -n $sockname
}

on *:sockread:tmplt:{
  var %tmplt
  sockread %tmplt
  while ($sockbr) {
    if (background-color isin %tmplt) {
      tokenize 62 %tmplt
      if (#FF9999 isin %tmplt) { 
        set %tmplh.o $replace($gettok($gettok(%tmplt,4,39),4,32),$chr(32),,$chr(47),: $chr(32),&aring;,å,&auml;,ä,&ouml;,ö))
        set %tmplh.c $replace($gettok($6,1,60),&deg;,$chr(176),$chr(32),) 
      }
      else {
        set %tmplc.o $replace($gettok($gettok(%tmplt,4,39),4,32),$chr(32),,$chr(47),: $chr(32),&aring;,å,&auml;,ä,&ouml;,ö)) 
        set %tmplc.c $replace($gettok($8,1,60),&deg;,$chr(176),$chr(32),)
      }
    }
    sockread %tmplt
  }
}

on *:sockclose:tmplt:{ tmplt }

alias tmplt {
  window -CapdBk0 +Ld @tmplt -1 -1 210 50
  drawfill -r @tmplt $rgb(70,70,70) $rgb(50,50,50) 0 0
  if (%tmplh.o != $null) {
    drawtext -r @tmplt $rgb(50,50,50) tahoma 11 13 9 %tmplh.o
    drawtext -r @tmplt $rgb(255,255,255) tahoma 11 12 8 %tmplh.o
    drawtext -r @tmplt $rgb(50,50,50) tahoma 11 161 9 %tmplh.c 
    drawtext -r @tmplt $rgb(255,90,90) tahoma 11 160 8 %tmplh.c
  }
  if (%tmplc.o != $null) {
    drawtext -r @tmplt $rgb(50,50,50) tahoma 11 13 29 %tmplc.o
    drawtext -r @tmplt $rgb(255,255,255) tahoma 11 12 28 %tmplc.o
    drawtext -r @tmplt $rgb(50,50,50) tahoma 11 161 29 %tmplc.c
    drawtext -r @tmplt $rgb(20,90,255) tahoma 11 160 28 %tmplc.c
  }
  drawrect -r @tmplt $rgb(0,0,0) 1 0 0 210 50
  drawrect -r @tmplt $rgb(255,255,255) 1 1 1 208 48

}

menu @tmplt {
  sclick:unset %tmpl* | window -c @tmplt
  Kopiera:clipboard $+(Varmast: %tmplh.o %tmplh.c,$iif(%tmplc.o != $null,$crlf $+ Kyligast: %tmplc.o %tmplc.c))
}


Det var allt från mig. Jag hoppas ni får någon användning utav scriptet om ni nu använder mIRC.
Senast redigerad av cparadis den 30 aug 2009, 00:26, redigerad totalt 3 gång.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5419
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Temperatur script

Inlägg av elf98 »

Kreativt!

(Flyttade tråden till mjukvaror)
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1245
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Temperatur script

Inlägg av Plutonium »

Det hade varit lite kul att ha ett till irssi..
Kanske om man får tummen ur, och fixar något..
http://essunga.org
Moderator - Temperatur.nu
cparadis
Wannabe
Inlägg: 3
Blev medlem: 30 aug 2008, 21:38
Ort: stockholm

Re: Temperatur script

Inlägg av cparadis »

Mjo vore trevligt med ett script till irssi och kanske till x-chat med.
g33k
Inlägg: 1
Blev medlem: 18 feb 2009, 08:31
Ort: gävle

Re: Temperatur script v1.4

Inlägg av g33k »

ingen som kan fixa ett script till irssi för de här också?
cparadis
Wannabe
Inlägg: 3
Blev medlem: 30 aug 2008, 21:38
Ort: stockholm

Re: Temperatur script v1.5

Inlägg av cparadis »

Uppdaterade koden lite grann.
Skriv svar