Author Topic: Mały skrypcik.  (Read 1826 times)

0 Members and 1 Guest are viewing this topic.

Offline FcLan

  • mgr inż.
  • PRO
  • **
  • Posts: 176
  • Gender: Male
Mały skrypcik.
« on: 11 November 2010, 12:50:51 »
Witam, otóż nudząc się postanowiłem napisać takie małe coś:

Jest to skrypt, który wyśle wiadomość na kanał, jeżeli na stronie sensiblesoccer.de pojawi się nowo wpisany wynik (chodzi o amigę ooo)
Skrypt jest kompatybilny z klientem "mIRC", który można pobrać z http://mirc.com, zresztą większość używa właśnie tego.
Udostępniam go publicznie, jeśli ktoś będzie chciał go wykorzystać musi wykonać następujące czynności:

Korzystając z mIRCA wciskamy kombinację klawiszy: ALT+R

Pojawi nam się okienko do pisania skryptów, kopiujemy tam poniższy kod:

Code: [Select]
on 1:TEXT:!wyniki:#sensible.pl:/msg #sensible.pl $read(res.txt,1)
alias start {

  // Ustawienia
  set %channel #sensible.pl
  set %czas 5

  /timer1 0 %czas /ticker
  echo Skrypt uruchomiony.

}

alias stop {

  /timer1 off
  echo Skrypt zatrzymany.

}
alias wyniki {

  /ticker
}
alias ticker {
  set %old.r $remove(%p1 %r1 $+ : $+ %r2 %p2  $+ %d $+ ,&nbsp;<,&nbsp;,<)
  write -c res.txt
  sockopen ticker www.sensiblesoccer.de 80

}
on *:SOCKOPEN:ticker: {
  sockwrite -n $sockname GET /index.php?site=online_amigaoneonone_result HTTP/1.1
  sockwrite -n $sockname Host: www.sensiblesoccer.de
  sockwrite -n $sockname $crlf

}

on *:SOCKREAD:ticker: {
  sockread %temp

  if (<TD class="ranking2" align="right" width="140"> isin %temp) {
    set %p1 $left($gettok(%temp,3,62),-3)

  }
  elseif (<TD align="center" width="50"> isin %temp) {
    set %r1 $left($gettok(%temp,5,62),-3)
    set %r2 $left($gettok(%temp,9,62),-3)
  }
  elseif (<TD class="ranking2" align="left" width="140"> isin %temp) {
    set %p2 $left($gettok(%temp,3,62),-3)
  }
  elseif (<td align="center" class="medium" style="color:#c0c0c0"> isin %temp) {
    set %d $left($gettok(%temp,2,62),-3)

    write res.txt $remove(%p1 %r1 $+ : $+ %r2 %p2  $+ %d $+ ,&nbsp;<,&nbsp;,<)

    clear @Wyniki
    if %old.r != $remove(%p1 %r1 $+ : $+ %r2 %p2  $+ %d $+ ,&nbsp;<,&nbsp;,<) { 

      /msg %channel $read(res.txt,1)
    }

    sockclose ticker

  }
}

Będzie to mniej więcej tak wyglądać:



Klikamy OK i skrypt jest już gotowy do użycia.

Ustawienia:
Na samym początku skryptu mamy coś takiego:
Code: [Select]
// Ustawienia
  set %channel #sensible.pl
  set %czas 60

Można tu ustawić na jaki kanał ma być wysyłana wiadomość oraz co jaki czas (w sekundach) skrypt będzie sprawdzał, czy pojawiły się jakieś nowe wyniki na stronie.

Istnieje również możliwość sprawdzenia ostatniego wyniku, wystarczy wpisać "!wyniki" na kanale. Komenda ta nie działa dla osoby, która uruchomiła skrypt.

Aby uruchomić skrypt wpisujemy w jakimkolwiek oknie /start aby zatrzymać go wpisujemy /stop

No, to chyba tyle  :P

« Last Edit: 11 November 2010, 14:23:29 by FcLan »

Offline cinek

  • Management
  • SWOS Legend
  • *****
  • Posts: 1378
Re: Mały skrypcik.
« Reply #1 on: 11 November 2010, 12:55:06 »
Ty chyba masz ostatnio za dużo czasu :P Dobra robota!

Offline ulg81

  • Superstar
  • ****
  • Posts: 928
Re: Mały skrypcik.
« Reply #2 on: 11 November 2010, 13:14:00 »
zajefajne :D

Offline FcLan

  • mgr inż.
  • PRO
  • **
  • Posts: 176
  • Gender: Male
Re: Mały skrypcik.
« Reply #3 on: 11 November 2010, 14:13:25 »
Proponuję zmienić czas sprawdzania z 60 sekund, na częstsze 5-10 sekund, bo w trakcie jednej minuty da radę wpisać więcej niż 1 wynik i wtedy niektóre wyniki są pomijane  :P

Offline bobrix

  • Cpt.
  • ***
  • Posts: 334
  • Gender: Male
Re: Mały skrypcik.
« Reply #4 on: 12 November 2010, 21:26:11 »
Fajnie teraz jak ci się naprawdę nudzi można zrobić  tak żeby zczytywało  bezpośrednio z emulatora końcowy wynik i pisało na ircu, coś jak dzembot tylke nie cały mecz bo wykopie za spam :D. Czytanie z pamieci winuae kiedy gol itp to jakis sajgon jest :P

Offline FcLan

  • mgr inż.
  • PRO
  • **
  • Posts: 176
  • Gender: Male
Re: Mały skrypcik.
« Reply #5 on: 12 November 2010, 22:04:28 »
Aż tak mi się nie nudzi  :P

Offline olesio

  • Cpt.
  • ***
  • Posts: 391
Re: Mały skrypcik.
« Reply #6 on: 13 November 2010, 19:28:57 »
bobrix: jest gotowa i odświeżona wersja przygotowana SS Reportera na bazie kodu od
RedHaira i jego IRC Reportera, można z niej skopiować wyniki na koniec do schowka i
podać je na kanale. Niestety RedHair nie odpisał mi do tej pory na propozycję czy owy
program można by udostępnić dla szarszego grona. Jak coś się zmieni - to dam znać.
Pozdrawiam / best regards: olesio
Amiga EXE Games: http://thecompany.pl

Offline Jack_33

  • RES
  • *
  • Posts: 99
Re: Mały skrypcik.
« Reply #7 on: 14 November 2010, 19:02:44 »
FcLan, dobre.
napisz jescze pod AmigaSwos :D
 zeby podczas meczu maja, nie ktorzy i nie chca udostepnic :(

Offline FcLan

  • mgr inż.
  • PRO
  • **
  • Posts: 176
  • Gender: Male
Re: Mały skrypcik.
« Reply #8 on: 05 November 2011, 15:03:34 »
Mała aktualizacja:

Mając włączonego mIRC-a wciskamy na klawiaturze ALT+R i wklejamy następujący kod:

Code: [Select]
alias wyniki {
  /ticker
}
alias ticker {
  write -c ooo.txt
  sockopen ticker2 www.sensiblesoccer.de 80
}
on *:SOCKOPEN:ticker2: {
  sockwrite -n $sockname GET /index.php?site=online_amigaoneonone_result HTTP/1.1
  sockwrite -n $sockname Host: www.sensiblesoccer.de
  sockwrite -n $sockname $crlf
}
on *:SOCKREAD:ticker2: {
  sockread %temp
  if (<TD class="ranking2" align="right" width="140"> isin %temp) {
    set %p1 $left($gettok(%temp,3,62),-3)
  }
  elseif (<TD align="center" width="50"> isin %temp) {
    set %r1 $left($gettok(%temp,5,62),-3)
    set %r2 $left($gettok(%temp,9,62),-3)
  }
  elseif (<TD class="ranking2" align="left" width="140"> isin %temp) {
    set %p2 $left($gettok(%temp,3,62),-3)
  }
  elseif (<td align="center" class="medium" style="color:#c0c0c0"> isin %temp) {
    set %d $left($gettok(%temp,2,62),-3)
    write ooo.txt $remove(%p1 %r1 $+ : $+ %r2 %p2 %d,&nbsp;<,&nbsp;,<)
    /lv
    clear @A-OOO
    echo  @A-OOO $read(ooo.txt,1)
    echo  @A-OOO $read(ooo.txt,2)
    echo  @A-OOO $read(ooo.txt,3)
    echo  @A-OOO $read(ooo.txt,4)
    echo  @A-OOO $read(ooo.txt,5)
    echo  @A-OOO $read(ooo.txt,6)
    echo  @A-OOO $read(ooo.txt,7)
    echo  @A-OOO $read(ooo.txt,8)
    echo  @A-OOO $read(ooo.txt,9)
    echo  @A-OOO $read(ooo.txt,10)
    /ticker1
    sockclose ticker2
  }
}
alias lv {
  if (!%lv_col) set %lv_col 10
  if (!window(wyniki)) window -l13S @A-OOO
}
alias lv2 {
  if (!%lv2_col) set %lv2_col 10
  if (!window(wyniki2)) window -l13S @Liga
}
alias ticker1 {
  write -c liga.txt
  sockopen ticker3 www.sensiblesoccer.de 80
}
on *:SOCKOPEN:ticker3: {
  sockwrite -n $sockname GET /index.php?site=online_amiga_ergebnisse HTTP/1.1
  sockwrite -n $sockname Host: www.sensiblesoccer.de
  sockwrite -n $sockname $crlf
}
on *:SOCKREAD:ticker3: {
  sockread %temp2
  if (<td class="right_rank_header" style="color:#farbe_liga#"> isin %temp2) {
    set %n $left($gettok(%temp2,11,62),-4)
  }
  elseif (<TD class="right_rank_header" align="right" width="110" style="color:#ffffff;text-transform:uppercase"> isin %temp2) {
    set %pl1 $left($gettok(%temp2,2,62),-4)
  }
  elseif (<tr><td width="15" align="right" class="right_rank_header" style="color:#ffffff"> isin %temp2) {
    set %rl1 $left($gettok(%temp2,5,62),-4)
    set %rl2 $left($gettok(%temp2,9,62),-4)
  }
  elseif (<TD class="right_rank_header" align="left" width="110" style="color:#ffffff;text-transform:uppercase"> isin %temp2) {
    set %pl2 $left($gettok(%temp2,2,62),-4)
  }
  elseif (<td align="center" class="right_rank_header" style="color:#c0c0c0"> isin %temp2) {
    set %dt $left($gettok(%temp2,2,62),-4)
    write liga.txt $remove(4 $+ %n $+   %pl1 %rl1 $+ : $+ %rl2 %pl2 %dt,&nbsp;)
    /lv2
    clear @Liga
    echo  @Liga $read(liga.txt,1)
    echo  @Liga $read(liga.txt,2)
    echo  @Liga $read(liga.txt,3)
    echo  @Liga $read(liga.txt,4)
    echo  @Liga $read(liga.txt,5)
    echo  @Liga $read(liga.txt,6)
    echo  @Liga $read(liga.txt,7)
    echo  @Liga $read(liga.txt,8)
    echo  @Liga $read(liga.txt,9)
    echo  @Liga $read(liga.txt,10)
    sockclose ticker3
  }
}

Wynikiem działania tego skryptu będzie pokazanie się dwóch okienek z ostatnimi 10 wynikami ligi oraz ooo. Nie są to żadne wiadomości na kanał, tylko zwykłe osobne okna:



Bezproblemowo można zrobić, by okienka z wynikami otwierały się po włączeniu mirca. Wystarczy w ustawieniach "perform" (tam gdzie jest /join #sensible.pl) wpisać: /wyniki.

Aby sprawdzić ostatnie wyniki również należy wpisać w dowolnym oknie: /wyniki

pozdro :P