xTrivia — File Browser

xTriviav1.0 / xTriviav1.0 / xTriviaByRibellina / xtrivia / bot / Addons / Ansa.mrc

Ansa.mrc — 27.65 KB — Download this file

; ##############################################################
; #                                                            #
; #                            Ansa                            #
; #                                                            #
; #                       by Dale Cooper                       #
; #                                                            #
; ##############################################################

; Ultima modifica:
; 03/12/2009

; Istruzioni (comandi testuali):
; - caricare lo script (/load -rs <percorso>/ansa.mrc)
; (Comandi per op):
; - attivare Ansa col comando "!ansa on" sui canali desiderati;
; - associare le rubriche a ogni canale attivato col comando
;   "!ansa add <rubrica>" (rubriche disponibili: topnews, italia,
;   mondo, calcio, sport, spettacolo, economia, cultura, scienza,
;   internet, moda, musica, cinema);
; - per eliminare una rubrica da un canale, usare il comando
;   "!ansa del <rubrica>";
; - per disattivare Ansa su un canale, usare il comando "!ansa off"
;   (questo comando non cancella le rubriche associate al canale);
; (Comandi per tutti):
; - per vedere le ultime 5 notizie di una rubrica, usare il comando
;   "!ansa list <rubrica>";
; - per leggere una notizia, usare il comando "!ansa <id notizia>".

; Istruzioni (dialog):
; - per aprire la dialog, premere il tasto destro del mouse in una finestra
;   qualsiasi (status, canali o query). Selezionare "Ansa by Dale Cooper"
;   (in fondo al menu) e poi una delle 3 voci disponibili;
; - per aggiungere un canale, premere il bottone "Aggiungi un canale" e,
;   nella nuova finestra che comparirà, scrivere il nome del canale
;   (compreso di # o di &) e premere OK o il tasto invio;
; - per aggiungere o togliere una rubrica, selezionare il canale nella
;   lista "Canali attivi", poi selezionare una rubrica da una delle due liste
;   ("Seguite" e "Non seguite") e successivamente il bottone con la freccia
;   che si attiverà;
; - per togliere un canale, selezionare il canale dalla lista "Canali attivi"
;   e premere il bottone "Togli canale". Si aprirà una nuova finestra che vi
;   chiederà se volete eliminare anche le rubriche associate al canale:
;   rispondete "Yes" per eliminarle oppure "No" per non cancellarle.
;   ATTENZIONE: premendo il tasto Esc o cliccando sulla X per chiudere la
;   finestra, avrà lo stesso effetto del cliccare "No".

; FAQ:
; - Le notizie non si aggiornano
; -> mIRC potrebbe avere difficoltà a collegarsi al sito Ansa. Il sito
;    potrebbe essere sovraffollato oppure potrebbe essere un problema di
;    DNS. Potete provare a "forzare" lo script sostituendo "www.ansa.it"
;    (nelle due righe dello script che iniziano per "sockopen") con il DNS
;    corretto (per vedere il DNS, scrivere in mIRC "/dns www.ansa.it").
;    Potrebbe anche essere cambiata la struttura delle pagine del sito, in
;    tal caso, aspettare il rilascio di una nuova versione di questo addon.
; - La notizia è troppo lunga e non compare per intero sul canale.
; -> Nella seconda scheda della dialog diminuisci il numero di caratteri
;    dopo i quali spezzare la notizia su due righe. Se vuoi puoi anche
;    aggiungere i puntini di sospensione selezionando l'apposita casella.
; - Come evito che vengano dati troppi comandi che fanno cadere mIRC?
; -> Nella terza scheda della dialog puoi aumentare il numero di secondi
;    che devono passare tra un comando e l'altro. Se ciò non bastasse,
;    abilita la protezione flood di mIRC.
; - Nello status mi compaiono migliaia di scritte "timer news3 activated"!
; -> E' tutto "normale", sta aggiornando le notizie. Puoi nasconderli
;    selezionando l'opzione "Nascondi timer" dalla dialog (in "Altre opzioni").
; - Stampa lista notizie al primo collegamento... che significa?
; -> Significa che appena ti connetti a irc vengono scaricate tutte le notizie
;    disponibili e che quindi vengono riconosciute tutte come nuove e stampate
;    in canale: per questo, se seguite più canali e rubriche, è SCONSIGLIATO
;    usare questa opzione per evitare di cadere per excess flood.

; Il file originale è QUESTO E SOLO QUESTO, scaricabile da
; http://quizzit.altervista.org e da http://www.mondoirc.net
; Se avete trovato questo addon su un altro sito, per segnalare
; eventuali bug o per suggerimenti, scrivete a quizzit@altervista.org

; - Dale Cooper -

menu menubar {
  -
  Ansa
  .Gestione canali:if ( !$dialog(ansa) ) { /dialog -m ansa ansa } | /did -f ansa 1
  .Output notizie:if ( !$dialog(ansa) ) { /dialog -m ansa ansa } | /did -f ansa 2
  .Altre opzioni:if ( !$dialog(ansa) ) { /dialog -m ansa ansa } | did -f ansa 34
}
on *:connect: {
  if ( !$readini(ansa.ini,n,opzioni,ansa1) ) { writeini -n ansa.ini opzioni ansa1 10 }
  if ( !$readini(ansa.ini,n,opzioni,ansa2) ) { writeini -n ansa.ini opzioni ansa2 400 }
  if ( !$readini(ansa.ini,n,opzioni,ansa7) ) { writeini -n ansa.ini opzioni ansa7 5 }
  hfree -w ansa*
  hmake ansa 100
  if ( !$readini(ansa.ini,n,opzioni,ansa4) ) { set %newsconnect 0 }
  else { set %newsconnect 1 }
  set %newsrubriche topnews cronaca politica mondo calcio altrisport spettacolo economia cultura scienza tecnologia cinema
  $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timernews 1 10 news
}
on *:text:!ansa on:#: {
  if ( !%newsantiflood ) {
    if ( !$ini(ansa.ini,canali,$chan)  ) && ( $nick isop $chan ) {
      if ( $dialog(ansa) ) {
        did -a ansa 9 $chan
      }
      writeini -n ansa.ini canali $chan on
      msg $chan Ansa attivata su $chan
      set %newsantiflood on
      $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timeransaantiflood 1 $readini(ansa.ini,n,opzioni,ansa7) unset $(%newsantiflood,0)
    }
  }
}
on *:text:!ansa off:#: {
  if ( !%newsantiflood ) {
    if ( $ini(ansa.ini,canali,$chan) ) && ( $nick isop $chan ) {
      if ( $dialog(ansa) ) {
        if ( $did(ansa,9).seltext == $chan ) {
          did -r ansa 3,4,15
          did -b ansa 5,6,11
        }
        set %newsdel $ini(ansa.ini,canali,$chan)
        did -d ansa 9 %newsdel
      }
      remini ansa.ini canali $chan
      msg $chan Ansa disattivata su $chan
      set %newsantiflood on
      $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timeransaantiflood 1 $readini(ansa.ini,n,opzioni,ansa7) unset $(%newsantiflood,0)
    }
  }
}
on *:text:!ansa add *:#: {
  if ( !%newsantiflood ) {
    if ( $ini(ansa.ini,canali,$chan) ) && ( $nick isop $chan ) {
      if ( $istok(%newsrubriche,$3,32) ) {
        if ( !$istok($readini(ansa.ini,n,rubriche,$chan),$3,32) ) {
          if ( $dialog(ansa) ) {
            if ( $did(ansa,9).seltext == $chan ) {
              did -a ansa 4 $3
              set %newsdel 1
              while ( %newsdel <= $did(ansa,3).lines ) {
                if ( $3 == $did(ansa,3,%newsdel).text ) {
                  if ( $did(ansa,3).seltext == $did(ansa,3,%newsdel).text ) {
                    did -b ansa 5
                  }
                  did -d ansa 3 %newsdel
                }
                inc %newsdel
              }
            }
          }
          writeini -n ansa.ini rubriche $chan $readini(ansa.ini,n,rubriche,$chan) $3
          msg $chan Le rubriche seguite da $chan ora sono: $readini(ansa.ini,n,rubriche,$chan)
          set %newsantiflood on
          $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timeransaantiflood 1 $readini(ansa.ini,n,opzioni,ansa7) unset $(%newsantiflood,0)
        }
      }
    }
  }
}
on *:text:!ansa del *:#: {
  if ( !%newsantiflood ) {
    if ( $ini(ansa.ini,canali,$chan) ) && ( $nick isop $chan ) {
      if ( $istok(%newsrubriche,$3,32) ) {
        if ( $istok($readini(ansa.ini,n,rubriche,$chan),$3,32) ) {
          if ( $dialog(ansa) ) {
            if ( $did(ansa,9).seltext == $chan ) {
              did -a ansa 3 $3
              set %newsdel 1
              while ( %newsdel <= $did(ansa,4).lines ) {
                if ( $3 == $did(ansa,4,%newsdel).text ) {
                  if ( $did(ansa,4).seltext == $did(ansa,4,%newsdel).text ) {
                    did -b ansa 6
                  }
                  did -d ansa 4 %newsdel
                }
                inc %newsdel
              }
            }
          }
          if ( $numtok($readini(ansa.ini,n,rubriche,$chan),32) == 1 ) {
            remini ansa.ini rubriche $chan
          }
          else {
            writeini -n ansa.ini rubriche $chan $remove($readini(ansa.ini,n,rubriche,$chan),$3)
          }
          msg $chan Le rubriche seguite da $chan ora sono: $readini(ansa.ini,n,rubriche,$chan)
          set %newsantiflood on
          $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timeransaantiflood 1 $readini(ansa.ini,n,opzioni,ansa7) unset $(%newsantiflood,0)
        }
      }
    }
  }
}
dialog ansa {
  title "AnSa •CeNeSvEnToLa•"
  size -1 -1 405 300
  icon $mircdirImmagini\1.ico, 0
  tab "Gestione canali", 1, 5 5 395 290
  tab "Output notizie", 2
  tab "Altre opzioni",34
  text "Rubriche",12, 145 30 250 225, tab 1
  text "Non seguite",13, 155 220 90 15,center, tab 1
  text "Seguite",14,295 220 90 15,center, tab 1
  text "",15,155 235 230 15,center, tab 1
  list 3, 155 45 90 190, tab 1
  list 4, 295 45 90 190, tab 1
  button "->",5,255 105 30 20,disable, tab 1
  button "<-",6,255 145 30 20,disable, tab 1
  text "Canali attivi",8, 10 30 130 255, tab 1
  list 9, 20 45 110 190, tab 1
  button "Aggiungi canale",10, 20 220 110 30, tab 1
  button "Togli canale",11, 20 250 110 30,disable, tab 1
  text "Inizio Riga",36,17 30 50 15, tab 2
  list 151, 15 45 90 60, tab 2
  check "Non colorato",154, 15 90 80 15, tab 2
  check "Grassetto",152,15 105 65 15, tab 2
  check "Sottolineato",153,15 120 75 15, tab 2
  text "Rubrica",40,112 30 40 15, tab 2
  list 161, 110 45 90 60, tab 2
  check "Non colorato",164, 110 90 80 15, tab 2
  check "Grassetto",162,110 105 65 15, tab 2
  check "Sottolineato",163,110 120 75 15, tab 2
  text "Ora e Data",44,207 30 60 15, tab 2
  list 171, 205 45 90 60, tab 2
  check "Non colorato",174, 205 90 80 15, tab 2
  check "Grassetto",172,205 105 65 15, tab 2
  check "Sottolineato",173,205 120 75 15, tab 2
  text "Titolo",48,302 30 40 15, tab 2
  list 181, 300 45 90 60, tab 2
  check "Non colorato",184, 300 90 80 15, tab 2
  check "Grassetto",182,300 105 65 15, tab 2
  check "Sottolineato",183,300 120 75 15, tab 2
  text "Testo Notizia",69,17 140 70 15, tab 2
  list 191, 15 155 90 60, tab 2
  check "Non colorato",194, 15 200 80 15, tab 2
  check "Grassetto",192,15 215 65 15, tab 2
  check "Sottolineato",193,15 230 75 15, tab 2
  text "Dividi su due righe la notizia se più lunga di", 20, 110 165 205 20, tab 2
  edit "",22, 315 160 30 20,limit 3, tab 2
  text "caratteri",21, 350 165 40 20, tab 2
  check "Aggiungi puntini di sospensione",23, 135 180 175 15,tab 2
  text "Lista notizie",35,10 30 385 160, tab 34
  text "Inizio Riga",53,17 45 60 15, tab 34
  list 111, 15 60 90 60, tab 34
  check "Non colorato",114, 15 105 80 15, tab 34
  check "Grassetto",112,15 120 65 15, tab 34
  check "Sottolineato",113,15 135 75 15, tab 34
  text "Rubrica",57,112 45 40 15, tab 34
  list 121, 110 60 90 60, tab 34
  check "Non colorato",124, 110 105 80 15, tab 34
  check "Grassetto",122,110 120 65 15, tab 34
  check "Sottolineato",123,110 135 75 15, tab 34
  text "Titolo",61,207 45 60 15, tab 34
  list 131, 205 60 90 60, tab 34
  check "Non colorato",134, 205 105 80 15, tab 34
  check "Grassetto",132,205 120 65 15, tab 34
  check "Sottolineato",133,205 135 75 15, tab 34
  text "ID Notizia",65,302 45 60 15, tab 34
  list 141, 300 60 90 60, tab 34
  check "Non colorato",144, 300 105 80 15, tab 34
  check "Grassetto",142,300 120 65 15, tab 34
  check "Sottolineato",143,300 135 75 15, tab 34
  check "Aggiungi '!ansa' nelle liste delle notizie prima del numero della notizia", 30, 15 155 340 15, tab 34
  check "Stampa lista notizie al primo collegamento (quando ti connetti a irc)",24, 15 170 335 15, tab 34
  text "Controlla nuove notizie ogni",17, 15 200 135 20, tab 34
  edit "",19, 155 195 20 20,limit 2, tab 34
  text "minuti",18, 180 200 40 20, tab 34
  text "Aspetta",31,15 220 40 20, tab 34
  edit "",32, 60 215 20 20,limit 2, tab 34
  text "secondi tra un comando e l'altro",33,85 220 160 20, tab 34
  check "Nascondi timer",27, 15 240 100 15, tab 34
  button "Applica",26,335 260 60 25,disable
  text "#quizzit:",16, 205 265 40 15
  link "Canale irc",28, 255 265 50 15
  link "Sito",29, 310 265 20 15
}
on *:dialog:ansa:*:*: {
  if ( $devent == init ) {
    if ( !$readini(ansa.ini,n,opzioni,ansa1) ) { writeini -n ansa.ini opzioni ansa1 10 }
    did -a ansa 19 $readini(ansa.ini,n,opzioni,ansa1)
    if ( !$readini(ansa.ini,n,opzioni,ansa2) ) { writeini -n ansa.ini opzioni ansa2 400 }
    did -a ansa 22 $readini(ansa.ini,n,opzioni,ansa2)
    if ( !$readini(ansa.ini,n,opzioni,ansa7) ) { writeini -n ansa.ini opzioni ansa7 5 }
    did -a ansa 32 $readini(ansa.ini,n,opzioni,ansa7)
    did -a ansa 111,121,131,141,151,161,171,181,191 Bianco
    did -a ansa 111,121,131,141,151,161,171,181,191 Nero
    did -a ansa 111,121,131,141,151,161,171,181,191 Blu
    did -a ansa 111,121,131,141,151,161,171,181,191 Verde
    did -a ansa 111,121,131,141,151,161,171,181,191 Rosso
    did -a ansa 111,121,131,141,151,161,171,181,191 Marrone
    did -a ansa 111,121,131,141,151,161,171,181,191 Viola
    did -a ansa 111,121,131,141,151,161,171,181,191 Arancio
    did -a ansa 111,121,131,141,151,161,171,181,191 Giallo
    did -a ansa 111,121,131,141,151,161,171,181,191 Verde Chiaro
    did -a ansa 111,121,131,141,151,161,171,181,191 Ciano
    did -a ansa 111,121,131,141,151,161,171,181,191 Azzurro
    did -a ansa 111,121,131,141,151,161,171,181,191 Blu Chiaro
    did -a ansa 111,121,131,141,151,161,171,181,191 Rosa
    did -a ansa 111,121,131,141,151,161,171,181,191 Grigio
    did -a ansa 111,121,131,141,151,161,171,181,191 Grigio Chiaro
    set %newsinit 1
    while ( %newsinit <= 9 ) {
      if ( $chr(3) isin %newscolore [ $+ [ %newsinit ] ] ) { did -c ansa 1 $+ %newsinit $+ 1 $calc($remove(%newscolore [ $+ [ %newsinit ] ] ,$chr(3),$chr(2),$chr(31)) + 1) }
      else { did -c ansa 1 $+ %newsinit $+ 4 | did -b ansa 1 $+ %newsinit $+ 1 }
      if ( $chr(2) isin %newscolore [ $+ [ %newsinit ] ] ) { did -c ansa 1 $+ %newsinit $+ 2 }
      if ( $chr(31) isin %newscolore [ $+ [ %newsinit ] ] ) { did -c ansa 1 $+ %newsinit $+ 3 }
      inc %newsinit
    }
    if ( $readini(ansa.ini,n,opzioni,ansa3) ) { did -c ansa 23 }
    if ( $readini(ansa.ini,n,opzioni,ansa4) ) { did -c ansa 24 }
    if ( $readini(ansa.ini,n,opzioni,ansa5) ) { did -c ansa 27 }
    if ( $readini(ansa.ini,n,opzioni,ansa6) ) { did -c ansa 30 }
    set %newsinit 1
    while ( %newsinit <= $ini(ansa.ini,canali,0) ) {
      did -a ansa 9 $ini(ansa.ini,canali,%newsinit)
      inc %newsinit
    }
  }
  if ( $devent == sclick ) {
    if ( $did == 3 ) && ( $did(3).sel ) {
      did -b ansa 6
      did -u ansa 4
      did -e ansa 5
    }
    if ( $did == 4 ) && ( $did(4).sel ) {
      did -b ansa 5
      did -u ansa 3
      did -e ansa 6
    }
    if ( $did == 5 ) {
      writeini -n ansa.ini rubriche $did(9).seltext $readini(ansa.ini,n,rubriche,$did(9).seltext) $did(3).seltext
      did -a ansa 4 $did(3).seltext
      did -d ansa 3 $did(3).sel
      did -b ansa 5
    }
    if ( $did == 6 ) {
      if ( $numtok($readini(ansa.ini,n,rubriche,$did(9).seltext),32) == 1 ) {
        remini ansa.ini rubriche $did(9).seltext
      }
      else {
        writeini -n ansa.ini rubriche $did(9).seltext $remove($readini(ansa.ini,n,rubriche,$did(9).seltext),$did(4).seltext)
      }
      did -a ansa 3 $did(4).seltext
      did -d ansa 4 $did(4).sel
      did -b ansa 6
    }
    if ( $did == 9 ) && ( $did(9).sel ) {
      did -e ansa 11
      did -r ansa 3,4
      set %newsrubriche topnews cronaca politica mondo calcio altrisport spettacolo economia cultura scienza tecnologia cinema
      did -a ansa 15 Canale: $did(9).seltext
      set %newsinit 1
      while ( %newsinit <= $numtok(%newsrubriche,32) ) {
        if ( $istok($readini(ansa.ini,n,rubriche,$did(9).seltext),$gettok(%newsrubriche,%newsinit,32),32) ) {
          did -a ansa 4 $gettok(%newsrubriche,%newsinit,32)
        }
        else {
          did -a ansa 3 $gettok(%newsrubriche,%newsinit,32)
        }
        inc %newsinit
      }
    }
    if ( $did == 10 ) {
      set %newsins $?="Inserisci il nome del canale (compreso $chr(35) o &)"
      if ( $left(%newsins,1) == $chr(35) ) || ( $left(%newsins,1) == $chr(38) ) {
        if ( !$ini(ansa.ini,canali,%newsins) ) {
          writeini -n ansa.ini canali %newsins on
          did -a ansa 9 %newsins
        }
      }
      elseif ( %newsins ) {
        echo -a 4Canale non valido!
      }
    }
    if ( $did == 11 ) {
      remini ansa.ini canali $did(9).seltext
      if ( $?!="Vuoi eliminare anche le impostazioni delle $crlf $+ rubriche per il canale $did(9).seltext $+ ?" == $true ) {
        remini ansa.ini rubriche $did(9).seltext
      }
      did -r ansa 3,4,15
      did -d ansa 9 $did(9).sel
      did -b ansa 5,6,11
    }
    if ( $did == 26 ) {
      set %newscol 1
      while ( %newscol <= 9 ) {
        if ( $did(1 $+ %newscol $+ 1).sel ) { set %newscolore [ $+ [ %newscol ] ]  $+ $calc($did(1 $+ %newscol $+ 1).sel - 1 ) }
        else { unset %newscolore [ $+ [ %newscol ] ] | did -c ansa 1 $+ %newscol $+ 4 | did -b ansa 1 $+ %newscol $+ 1 }
        if ( $did(1 $+ %newscol $+ 2).state == 1 ) { set %newscolore [ $+ [ %newscol ] ] %newscolore [ $+ [ %newscol ] ] $+  }
        if ( $did(1 $+ %newscol $+ 3).state == 1 ) { set %newscolore [ $+ [ %newscol ] ] %newscolore [ $+ [ %newscol ] ] $+  }
        inc %newscol
      }
      if ( $did(22) ) { writeini -n ansa.ini opzioni ansa2 $did(22) }
      else { writeini -n ansa.ini opzioni ansa2 400 | did -a ansa 22 400 }
      if ( $did(23).state == 1 ) { writeini -n ansa.ini opzioni ansa3 on }
      else { remini ansa.ini opzioni ansa3 }
      if ( $did(30).state == 1 ) { writeini -n ansa.ini opzioni ansa6 on }
      else { remini ansa.ini opzioni ansa6 }
      if ( $did(24).state == 1 ) { writeini -n ansa.ini opzioni ansa4 on }
      else { remini ansa.ini opzioni ansa4 }
      if ( $did(19) ) { writeini -n ansa.ini opzioni ansa1 $did(19) }
      else { writeini -n ansa.ini opzioni ansa1 10 | did -a ansa 19 10 }
      if ( $did(32) ) { writeini -n ansa.ini opzioni ansa7 $did(32) }
      else { writeini -n ansa.ini opzioni ansa7 5 | did -a ansa 32 5 }
      if ( $did(27).state == 1 ) { writeini -n ansa.ini opzioni ansa5 on }
      else { remini ansa.ini opzioni ansa5 }
      did -b ansa 26
    }
    if ( $did == 28 ) {
      run irc://irc.azzurra.org:6667/quizzit
    }
    if ( $did == 29 ) {
      run http://quizzit.altervista.org
    }
    if ( $istok(23 24 27 30 111 112 113 121 122 123 131 132 133 141 142 143 151 152 153 161 162 163 171 172 173 181 182 183 191 192 193,$did,32) ) {
      did -e ansa 26
    }
    if ( $istok(114 124 134 144 154 164 174 184 194,$did,32) ) {
      if ( $did($did).state == 1 ) { did -ub ansa $calc($did - 3) }
      else { did -e ansa $calc($did -3) }
      did -e ansa 26
    }
  }
  if ( $devent == edit ) {
    if ( $did == 19 ) || ( $did == 22 ) || ( $did == 32 ) {
      did -e ansa 26
      if ( $did($did) !isnum ) || ( $chr(46) isin $did($did) ) || ( $left($did($did),1) == 0 ) { did -r ansa $did }
    }
  }
}

alias news {
  $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timernews 1 $calc(60 * $readini(ansa.ini,n,opzioni,ansa1)) news
  set %newsrubricanum 1
  set %newsrubrica $gettok(%newsrubriche,%newsrubricanum,32)
  unset %newsread
  news2
}
alias news2 {
  unset %news [ $+ [ %newsrubrica ] ] [ $+ [ nuove ] ]
  unset %news [ $+ [ %newsrubrica ] ] [ $+ [ titolo* ] ]
  set %news [ $+ [ %newsrubrica ] ] [ $+ [ count ] ] 1
  sockclose news3
  sockopen news3 www.ansa.it 80
}
on *:sockopen:news3: {
  sockwrite -n $sockname GET http://194.244.5.206/web/notizie/rubriche/ $+ %newsrubrica $+ / $+ %newsrubrica $+ .shtml HTTP/1.1
  sockwrite -n $sockname Connection: Keep-Alive
  sockwrite -n $sockname
}
on *:sockread:news3: {
  sockread %news3.temp
  if ( <h3> isin %news3.temp ) && ( %newsread ) {
    hadd ansa news [ $+ [ %newsrubrica ] ] [ $+ [ titolo_ [ $+ [ %news [ $+ [ %newsrubrica ] ] [ $+ [ count ] ] ] ] ] ] $replace($remove($gettok(%news3.temp,3,62),</a),&eacute;,é,&egrave;,è,&aacute;,á,&agrave;,à,&eocute;,ó,&ograve;,ò,&iacute;,í,&igrave;,ì,&uacute;,ú,&ugrave;,ù)
    if ( $hget(ansa,newsnotizia_ [ $+ [ $gettok($gettok(%news3.temp,3,95),1,46) ] ] ) == $null ) {
      inc %news [ $+ [ %newsrubrica ] ] [ $+ [ nuove ] ]
    }
    hadd ansa news [ $+ [ %newsrubrica ] ] [ $+ [ id_ [ $+ [ %news [ $+ [ %newsrubrica ] ] [ $+ [ count ] ] ] ] ] ] $gettok($gettok(%news3.temp,3,95),1,46))
    inc %news [ $+ [ %newsrubrica ] ] [ $+ [ count ] ]
    hadd ansa newsnotizia_ [ $+ [ $gettok($gettok(%news3.temp,3,95),1,46) ] ] http://194.244.5.206/ $+ $remove($gettok(%news3.temp,2,34),opencms/export/)
  }
  if ( class="pagination-bar" isin %news3.temp ) {
    unset %newsread
    newsnotizie
    inc %newsrubricanum
    if ( %newsrubricanum <= $numtok(%newsrubriche,32) ) {
      set %newsrubrica $gettok(%newsrubriche,%newsrubricanum,32)
      $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timernews3 1 2 news2
    }
    else { unset %newsrubrica | set %newsconnect 1 }
  }
  if ( <h2>Ultime isin %news3.temp ) { set %newsread on }
}
alias newsnotizie {
  if ( %news [ $+ [ %newsrubrica ] ] [ $+ [ nuove ] ] != $null ) {
    set %news [ $+ [ %newsrubrica ] ] [ $+ [ temp ] ] 1
    set %news [ $+ [ %newsrubrica ] ] [ $+ [ elenco ] ] %newscolore1 $+ ANSA $+  %newscolore2 $+ $chr(91) $+ %newsrubrica $+ ]
    while ( %news [ $+ [ %newsrubrica ] ] [ $+ [ temp ] ] <= %news [ $+ [ %newsrubrica ] ] [ $+ [ nuove ] ] ) && ( %news [ $+ [ %newsrubrica ] ] [ $+ [ temp ] ] <= 5 ) {
      set %news [ $+ [ %newsrubrica ] ] [ $+ [ elenco ] ] %news [ $+ [ %newsrubrica ] ] [ $+ [ elenco ] ] $+  %newscolore3 $+ $hget(ansa,news [ $+ [ %newsrubrica ] ] [ $+ [ titolo_ [ $+ [ %news [ $+ [ %newsrubrica ] ] [ $+ [ temp ] ] ] ] ] ] ) $+  %newscolore4 $+ ( $+ $iif($readini(ansa.ini,n,opzioni,ansa6),!ansa $chr(32)) $+ $hget(ansa,news [ $+ [ %newsrubrica ] ] [ $+ [ id_ [ $+ [ %news [ $+ [ %newsrubrica ] ] [ $+ [ temp ] ] ] ] ] ] ) $+ )
      inc %news [ $+ [ %newsrubrica ] ] [ $+ [ temp ] ]
    }
    if ( %newsconnect == 1 ) {
      set %canalitemp 1
      set %canalitimer 1
      while ( %canalitemp <= $ini(ansa.ini,canali,0) ) {
        if ( $istok($readini(ansa.ini,rubriche,$ini(ansa.ini,canali,%canalitemp)),%newsrubrica,32) ) {
          $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timer 1 $calc(2 * %canalitimer) /msg $ini(ansa.ini,canali,%canalitemp) %news [ $+ [ %newsrubrica ] ] [ $+ [ elenco ] ]
          inc %canalitimer
        }
        inc %canalitemp
      }
    }
  }
}
on *:text:!ansa *:%game_channel: {
  if ( !%newsantiflood ) {
    if ( $ini(ansa.ini,canali,$chan) ) {
      if ( $2 == list ) {
        if ( $istok($readini(ansa.ini,n,rubriche,$chan),$3,32) ) {
          unset %news [ $+ [ $3 ] ] [ $+ [ elenco ] ]
          set %news [ $+ [ $3 ] ] [ $+ [ temp ] ] 1
          set %news [ $+ [ $3 ] ] [ $+ [ elenco ] ] %newscolore1 $+ ANSA $+  %newscolore2 $+ $chr(91) $+ $3 $+ ]
          while ( %news [ $+ [ $3 ] ] [ $+ [ temp ] ] <= 5 ) && ( %news [ $+ [ $3 ] ] [ $+ [ temp ] ] <= $hfind(ansa,news $+ $3 $+ titolo_*,0,w) ) {
            set %news [ $+ [ $3 ] ] [ $+ [ elenco ] ] %news [ $+ [ $3 ] ] [ $+ [ elenco ] ] $+  %newscolore3 $+ $hget(ansa,news [ $+ [ $3 ] ] [ $+ [ titolo_ [ $+ [ %news [ $+ [ $3 ] ] [ $+ [ temp ] ] ] ] ] ] ) $+  %newscolore4 $+ ( $+ $iif($readini(ansa.ini,n,opzioni,ansa6),!ansa $chr(32)) $+ $hget(ansa,news [ $+ [ $3 ] ] [ $+ [ id_ [ $+ [ %news [ $+ [ $3 ] ] [ $+ [ temp ] ] ] ] ] ] ) $+ )
            inc %news [ $+ [ $3 ] ] [ $+ [ temp ] ]
          }
          /msg $chan $remove(%news [ $+ [ $3 ] ] [ $+ [ elenco ] ] ,$iif($readini(ansa.ini,n,opzioni,ansa6) != on,!ansa $+ $chr(32)))
        }
        else { /msg $chan ANSA - Le categorie disponibili su $chan sono: $readini(ansa.ini,n,rubriche,$chan) }
        set %newsantiflood on
        $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timeransaantiflood 1 $readini(ansa.ini,n,opzioni,ansa7) unset $(%newsantiflood,0)
      }
      if ( $2 isnum ) {
        if ( $hget(ansa,newsnotizia_ [ $+ [ $2 ] ] ) != $null ) {
          set %newsnum $2
          set %newscont 1
          while ( %newscont <= $numtok(%newsrubriche,32) ) {
            if ( $gettok(%newsrubriche,%newscont,32) isin $hget(ansa,newsnotizia_ [ $+ [ $2 ] ] ) ) { set %newscat $gettok(%newsrubriche,%newscont,32) }
            inc %newscont
          }
          if ( $istok($readini(ansa.ini,n,rubriche,$chan),%newscat,32) ) {
            /set %newsleggi $hget(ansa,newsnotizia_ [ $+ [ $2 ] ] ) | set %game_channel $chan | sockclose newsleggi
            sockopen newsleggi www.ansa.it 80
          }
        }
        else {
          /msg $chan ANSA :: ERROR Notizia non trovata.
          set %newsantiflood on
          $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timeransaantiflood 1 $readini(ansa.ini,n,opzioni,ansa7) unset $(%newsantiflood,0)
        }
      }
    }
  }
}
on *:sockopen:newsleggi: {
  unset %newsscrivinotizia*
  set %newsscrivi off
  set %newsscrivi2 off
  set %newslog <div class="header-content">
  set %newsfine </div><!-- /#corpo -->
  set %newsinizio "content-corpo"
  sockwrite -n $sockname GET %newsleggi HTTP/1.1
  sockwrite -n $sockname Connection: Keep-Alive
  sockwrite -n $sockname
}
on *:sockread:newsleggi: {
  sockread %newsleggi.temp
  if ( %newsscrivi2 == on ) {
    if ( <h1> isin %newsleggi.temp ) { set %newstitle $upper($remove(%newsleggi.temp,<h1>,</h1>)) }
    if ( <h2> isin %newsleggi.temp ) { set %newssecond $remove(%newsleggi.temp,<h2>,</h2>) }
    if ( <span isin %newsleggi.temp ) { set %newsscrivititolo %newscolore7 $+ ( $+ $remove($gettok(%newsleggi.temp,2,62),</span) $+ ) $+  %newscolore8 $+ %newstitle - %newssecond | set %newsscrivi2 off }
  }
  if ( %newslog isin %newsleggi.temp ) { set %newsscrivi2 on }
  if ( %newsfine isin %newsleggi.temp ) && ( %newsscrivi == on ) { /set %newsscrivinotizia $remove(%newsscrivinotizia,<br/>) | set %newsscrivi off | stampa }
  if ( %newsscrivi == on ) { /set %newsscrivinotizia %newsscrivinotizia %newsleggi.temp }
  if ( %newsinizio isin %newsleggi.temp ) { set %newsscrivi on | set %newsscrivinotizia $gettok(%newsleggi.temp,3,62) }
}
alias stampa {
  msg %game_channel %newscolore5 $+ ANSA $+  %newscolore6 $+ $chr(91) $+ %newscat $+ ] $+  $replace(%newsscrivititolo,&eacute;,é,&egrave;,è,&aacute;,á,&agrave;,à,&eocute;,ó,&ograve;,ò,&iacute;,í,&igrave;,ì,&uacute;,ú,&ugrave;,ù)
  set %newsscrivinotizia $replace($gettok(%newsscrivinotizia,2-,45),&eacute;,é,&egrave;,è,&aacute;,á,&agrave;,à,&eocute;,ó,&ograve;,ò,&iacute;,í,&igrave;,ì,&uacute;,ú,&ugrave;,ù)
  if ( $len(%newsscrivinotizia) > $readini(ansa.ini,n,opzioni,ansa2) ) {
    echo -a $len(%newsscrivinotizia)
    set %newsscrivinotizia2 %newsscrivinotizia
    set %newsscrivinotizia $mid(%newsscrivinotizia,1,$readini(ansa.ini,n,opzioni,ansa2))
    set %newsscrivinotizia $gettok(%newsscrivinotizia,1 - $calc($numtok(%newsscrivinotizia,32) - 1),32)
    set %newsscrivinotizia2 $remove(%newsscrivinotizia2,%newsscrivinotizia)
  }
  /msg %game_channel %newscolore9 $+ %newsscrivinotizia $iif(($readini(ansa.ini,n,opzioni,ansa3) && (%newsscrivinotizia2)),...)
  if ( %newsscrivinotizia2 != $null ) { /msg %game_channel %newscolore9 $+ $iif($readini(ansa.ini,n,opzioni,ansa3) != $null,...) %newsscrivinotizia2 }
  set %newsantiflood on
  $iif($readini(ansa.ini,n,opzioni,ansa5),.) $+ timeransaantiflood 1 $readini(ansa.ini,n,opzioni,ansa7) unset $(%newsantiflood,0)
}