Newsgroup: it.comp.software.newsreader
Titolo: Sincronizzazione Hamster

Nel server News in oggetto c'è un opzione per la sincronizzazione 
automatica ogni tot minuti o bisogna farlo solo via script?
Nel secondo caso qualcuno sa dove posso trovarne uno già bell'e pronto 
da importare?
Grazie
Crylis
:')

Il giorno 27/08/2006 23.41 , *Crylis* ci ha detto:

Dovresti trovarlo nelle faq di Hamster (Menù Guida).
Ecco lo script:
di Daniel Srostlik:
Gli script che seguono provvedono ad inviare e ricevere la posta e le 
news ad intervalli regolari.
Per creare i nuovi script, aprite Hamster, selezionate la pagina Script 
dal menu Script / Gestisci script e moduli, quindi premete il tasto 
Nuovo. Dategli un nome e, nella pagina dell'editor che si aprirà, 
incollate il testo che segue, da ### Inizio script ### a ### Fine script 
###.
Lo script va quindi adattato alle vostre esigenze: leggete le note 
indicate in seguito.
Per fare in modo che lo script venga avviato automaticamente all'avvio 
di Hamster, aggiungete il nome dello script alla linea di comando che 
lancia Hamster ("Destinazione", nella finestra delle proprietà del 
collegamento). Ad esempio, se avete chiamato lo script MailNews.hsc,  la 
linea di comando sarà qualcosa del tipo:
hamster.exe MailNews.hsc
Per ogni comando utilizzato nello script, potete trovare informazioni 
dettagliate scegliendo l'indice della guida in linea, e digitando il 
comando in questione.
Potete trovare tanti altri script nello Scriptarchiv di Michael Gebert, 
al seguente indirizzo:
http://home.t-online.de/home/micha-wr/hamster/index.htm
### Inizio script ###
#!hs2
### Definizione delle variabili ###
Var    ($Connettiti)
VarSet ($Tentativo, 0)
VarSet ($IsConnesso, 0)
### Impostazioni ###
$Connettiti = 1       #[1]
### Scheduler ###
AtAdd (Mail1, "07:00", "19:00", "1111111", 30, true) #[2]
AtAdd (Mail2, "07:00", "19:00", "1111111", 15, true)
AtAdd (News1, "07:00", "19:00", "1111111", 60, true)
AtAdd (News2, "07:00", "19:00", "1111111", 15, true)
AtExecute
quit
### Subroutines ###
Sub Mail1
    If ($Connettiti = 1)
       AttivaConnessione
       If ($Tentativo >= 3)
          Return
       EndIf
    EndIf
    HamWaitIdle
    HamMessage (4, 0) #[5]
    HamMessage (5, 0) #[5]
    HamWaitIdle
    HamMailExchange   #[3]
    HamWaitIdle
    HamMessage (4, 1) #[5]
    HamMessage (5, 1) #[5]
    If ($IsConnesso = 1)
       HamRasHangup
       $IsConnesso = 0
    EndIf
EndSub
Sub News1
    If ($Connettiti = 1)
       AttivaConnessione
       If ($Tentativo >= 3)
          Return
       EndIf
    EndIf
    HamWaitIdle
    HamMessage (3, 0) #[6]
    HamNewsJobsClear
    HamNewsJobsPostDef
    HamNewsJobsPullDef
    HamNewsJobsStart
    HamWaitIdle
    HamMessage (3, 1) #[6]
    If ($IsConnesso = 1)
       HamRasHangup
       $IsConnesso = 0
    EndIf
EndSub
Sub Mail2
    If (HamGetStatus(3, 7) > 0)
       Mail1
    EndIf
EndSub
Sub News2
    If (HamGetStatus(3, 5) > 0)
       News1
    EndIf
EndSub
Sub AttivaConnessione
    $Tentativo = 1
    If (!RasIsConnected)
       $IsConnesso = 1
       While (HamRasDial ("Provider", "$1") != 0) #[4]
          If ($Tentativo >= 3)
             $IsConnesso = 0
             Warning ("Connessione non riuscita!")
             Return
          endif
          Inc ($Tentativo)
          Sleep (10000)
       EndWhile
    EndIf
EndSub
### Fine Script ###
[1] Il valore della variabile $Connettiti decide se Hamster debba 
attivare una connessione di Accesso Remoto o meno. Se impostate il 
valore a 1, Hamster verifica se è già attiva una connessione; se non c'è 
alcuna connessione, ne attiva una (vedi anche nota [4]). Se non avete la 
necessità di attivare una connessione (ad esempio perché avete una 
connessione diretta, un router, ecc.), impostate il valore a 0 (zero).
[2] La prima delle righe AtAdd fa in modo che Hamster esegua la routine 
Mail1 ogni 30 minuti, dalle 7:00 alle 19:00 di tutti i giorni della 
settimana, da Lunedì a Domenica.
Se volete che Hamster scambi solo la posta, ma non le news, mettete un # 
all'inizio delle ultime due AtAdd, in modo che Hamster le ignori. Le 
singole subroutine eseguono questi compiti:
Mail1:	riceve ed invia la posta da tutti i server SMTP e POP3 
configurati dal menu Configura / Posta (vedi anche il punto [3]).
Mail2:	verifica (più spesso) se ci sono e-mail in attesa nella cartella 
posta in uscita e, se è il caso richiama la subroutine Mail1 (che 
provvede quindi ad inviarle e, già che è connesso, riceve le e-mail dai 
server remoti).
News1:	riceve ed invia gli articoli da tutti i server NNTP configurati 
dal menu Configura / News.
News2:	verifica (più spesso) se ci sono articoli in attesa nella 
cartella news in uscita e, se è il caso richiama la subroutine News1 
(che provvede quindi ad inviarli e, già che è connesso, riceve i nuovi 
articoli dai server remoti).
Nota	Gli intervalli presenti nello script a cui Hamster aggiorna posta e 
news sono più che adeguati. Né la posta né le news sono sistemi di 
trasmissione in tempo reale, e quindi accorciare gli intervalli di tempo 
sovraccarica inutilmente i server di posta e news, e generalmente non è 
ben visto dagli amministratori dei server stessi (vale anche se avete 
una connessione flat (ADSL, ad esempio), e quindi a voi non costa nulla).
N.d.T.: se prevedete di lasciare Hamster sempre attivo, può addirittura 
essere ragionevole allungare l'intervallo tra le verifiche sui server 
remoti (Mail1 e News1) a 2 ore o più, mentre può essere ragionevole 
accorciare quelli di invio (Mail2 e News2) in modo da inviare subito i 
messaggi scritti.
[3] Per poter utilizzare il comando HamMailExchange è necessario che 
siano stati configurati i server POP3 ed SMTP in Configura / Posta 
(server ed impostazioni).
Se volete inviare la posta in uscita a differenti server SMTP, in 
funzione del mittente, dovete sostituire il comando HamMailExchange. 
Cancellate la linea che lo contiene, e rimpiazzatela con il pezzo che 
segue (aggiustando la configurazione per le vostre esigenze, qui c'è un 
esempio per GMX e per Web.de):
HamFetchMail ("
pop.web.de
")
HamFetchMail ("
pop.gmx.net
")
HamWaitIdle (20000)
HamSendMail ("
smtp.web.de
", "smtp","Utente1@web\.de")
HamSendMail ("
mail.gmx.net
", "smtp","Utente2@gmx\.de")
Se il server SMTP richiede un accesso autenticato con SMTP-Auth, dovrete 
usare il comando HamSendMailAuth al posto di HamSendMail. Le linee 
dell'esempio diventerebbero quindi:
HamSendMailAuth ("
smtp.web.de
", "smtp", "$2", "", "Utente1@web\.de")
HamSendMailAuth ("
mail.gmx.net
","smtp", "$3", "", "Utente2@gmx\.de")
Utilizzando le variabili $2 e $3 vengono passate le combinazioni di 
utente e password necessarie. Queste variabili vanno impostate in 
Configura / Account e password, pagina Password aggiuntive.
Nota	Il comando HamSendMailAuth funziona solo se per il server 
corrispondente viene attivata la casella Autenticazione AUTH nella 
pagina delle proprietà, nel menu Configura Posta, pagina Server SMTP.
Nota	[n.d.t.] quanto detto non è necessario per i server che basano 
l'autenticazione solo sull'indirizzo IP del client, ovvero la maggior 
parte dei provider italiani. In caso di dubbio, verificate.
[4] Il comando HamRasDial attiva una connessione utilizzando il provider 
indicato tra virgolette. Utilizzando la variabile $1 viene passata le 
combinazione di utente e password necessaria.
Fate attenzione al nome della connessione, che deve corrispondere 
esattamente con il nome presente nella cartella delle connessioni di 
Accesso Remoto, comprese le maiuscole/minuscole. La variabile $1 viene 
utilizzata la corrispondente combinazione di nome utente e password 
definita in Configura / Account e password, pagina Password aggiuntive.
[5] Con i comandi HamMessage (4, 0) e HamMessage (5, 0) vengono 
arrestati i server locali POP3 e SMTP, mentre i comandi HamMessage (4, 
1) e HamMessage (5, 1) li riattivano. Questi sono messi per sicurezza, 
per evitare che possano venire scaricati o inviati dei messaggi proprio 
durante la sincronizzazione. Se siete sicuri che nessuno invii o riceva 
messaggi durante la sincronizzazione, potete anche rimuoverli, inserendo 
un # all'inizio di ogni linea marcata dai "[5]".
[6] Con il comando HamMessage (3, 0) viene arrestato il server locale 
NNTP, mentre il comando HamMessage (3, 1) lo riattiva. Questi sono messi 
per sicurezza, per evitare che possano venire scaricati o inviati degli 
articoli proprio durante la sincronizzazione (ad esempio per processarli 
con Korrnews e CopyIf). Se siete sicuri che nessuno invii o riceva 
articoli durante la sincronizzazione, potete anche rimuoverli, inserendo 
un # all'inizio di ogni linea marcata dai "[6]"
-- 
Willy
* /Il mio sito/: 
http://willygroup.altervista.org
* Faq di /it-alt.comp.software.mozilla/: 
http://snipurl.com/mozfaq
* Contatti: 
http://snipurl.com/contatti

 Solo via script. Se vuoi ti mando il mio, opportunamente modificato.
Te ne sarei molto grato!