#Help Kanalo Forumas
http://lt-help.com/fm/

Vardadieniai TCL
http://lt-help.com/fm/viewtopic.php?f=7&t=3559
Puslapis 11

Autorius:  Karalukas [ 2013-02-13, 13:06 ]
Pranešimo tema:  Vardadieniai TCL

Sveiki,

persidariau vieną scriptuką kad išiminėtų man vardadieniu tačiau problema tame kad išiminėja eilutės:
Kodas:
 while {[regexp -nocase {<a class="grey" href="/vardadieniai/(.*?)">(.*?)</a>} $html - oname]} {

(.*?) pirmąją reikšmę kuri yra be lietuvybių. Gal galit pagelbėti kaip man pasidaryti kad išiminėtų antrąją reikšmę (.*?)

Pilnas kodas:

Kodas:
variable online_url "http://www.tostai.lt/vardadieniai"
variable online_chans "#Kanalas"

package require http

bind pub - !vardadieniai pub:online

proc pub:online {nick host hand chan text} {
  if {[lsearch -exact [split $::online_chans] $chan] == -1} {return}
  set token [http::config -useragent "Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.7e"]
  catch {set token [http::geturl $::online_url -timeout 5000]} error
  if {[string match -nocase "*couldn't open socket*" $error]} {
    puthelp "PRIVMSG $chan :Sorry, cannot create a socket to \"$::online_url\"."
    return 0
  } elseif {[::http::status $token] == "timeout"} {
    puthelp "PRIVMSG $chan :Sorry, your request to \"$::online_url\" has timed out."
    return 0
  }
  set html [http::data $token]
  http::cleanup $token
  regsub -all {(?:\t|\n|\r|\v)} $html "" html
  set onames {}
  while {[regexp -nocase {<a class="grey" href="/vardadieniai/(.*?)">(.*?)</a>} $html - oname]} {
    lappend onames $oname
    regsub -nocase {<a class="grey" href="/vardadieniai/} $html "" html
  }
  putserv "privmsg $chan :Šiandien vardadienius švenčia: [join $onames ", "]"
  return 1
}

Autorius:  iso [ 2013-02-13, 21:12 ]
Pranešimo tema:  Re: Vardadieniai TCL

regsub -all -inline pamegink naudot.


beto forume buvo gi pilnas skriptas. ;]

Kodas:
bind pub -|- !vardadieniai vdiena

proc vdiena {nick uhost hand chan text} {
        package require http
        set laikas [clock format [clock seconds] -format {[%m/%d]}]
        ::http::config -useragent "Mozilla/5.0; infodude"
        set http_req [::http::geturl http://day.lt/ -timeout 2000]
        if {[::http::status $http_req] != "ok"} {
                puthelp "PRIVMSG $chan :Puslapis neveikia";
        }
        set data [::http::data $http_req]
        ::http::cleanup $http_req
        if {[regexp {<p class="vardadieniai" title=".iandien vardadienius .ven.ia">(.+)</p>} $data x vday]} {
        set vresult [regexp -all -inline -- {<a href="vardai[^>]+?>(.*?)</a>} $vday]
        foreach {junk sudai} $vresult { lappend vrd $sudai }
        putserv  "privmsg $chan :Šiadien vardadienius švenčia: $vrd"
             } else {
                puthelp "PRIVMSG $chan :Klaida. Nėra informacijos."

        }
   }


Tiesa is kito puslapio

Autorius:  Karalukas [ 2013-02-14, 00:29 ]
Pranešimo tema:  Re: Vardadieniai TCL

Gal gali paaiškinti plačiau šitą eilutę:

Kodas:
foreach {junk sudai} $vresult { lappend vrd $sudai }


Be to gal galėtum pasidalinti TV scriptu? Būčiau labai dėkingas 0:)

P.S. Man atvaizduoja tik:

Cituoti:
<Maryte> `iadien vardadienius aven

Puslapis 11 Visos datos yra UTC + 1 valanda [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/