Newsgroup: it.comp.software.newsreader
Titolo: [Hamster] Return-Path

Vorrei che Hamster mi eliminasse sistematicamente prima del posting 
l'header in oggetto prodotta dai clients di posta e di news.
c/p
-- 
Diamo il giusto valore al denaro, stampiamo la banconota da 1 Euro.
http://werted.cjb.net
 | 
http://werted.da.ru
There are only 10 kinds of people in the world.
Those who understand binary, and those who don't. (c) Piccia

 Devi usare KorrNews.
di cosa si tratta, di un aggiuntivo di hamster? 


 Devi usare KorrNews.
cavolo... e' tutto in tedesco... :-((( 


 l'header in oggetto prodotta dai clients di posta e di news.
Apri il messaggio, usi la apposita funzione di Hamster per cancellare gli 
header, salvi il messaggio, e spedisci messaggi.
Questo l'ordine delle operazioni nello script di uscita dal cricetino.
-- 
     __         ____         | We don't need no education.
 __ / /__  ___ / __/__ __ __ | We don't need no thought control.
/ // / _ \/ -_) _// _ \\ \ / | All we need is another brick in the wall
\___/\___/\__/_/  \___/_\_\  | ICQ UIN: 61571298

 header, salvi il messaggio, e spedisci messaggi.
si, questo lo faccio gia' *a mano*. vorrei che il tutto fosse 
in qualche modo *automatizzato*, per cosi' dire, magari nell'operazione 
di posting. tieni conto che questo mi serve per i msg mail-to-news. 


 Traduci! :)
dai, dimmi qualcosa... guarda che ti scateno thorin eh?!?! 


 Questo l'ordine delle operazioni nello script di uscita dal cricetino.
Anzi... scusate...
stoppi il servizio NNTP, apri, cancelli, salvi, spedisci, fai partire il 
servizio... 
altrimenti rischi che tra il salva e spedici, il newsreader invii un 
messaggio che andrebbe fuori.
Domanda... perche' lo vuoi eliminare?


 Domanda... perche' lo vuoi eliminare?
mi crea problemi con l'invio verso gruppi moderati. mi puoi dare una 
mano a capire come far funzionare KorrNews? i files help allegati sono 
tutti in tedesco e, in verita', non e' la mia lingua preferita... :) 


 cavolo... e' tutto in tedesco...
No, la 4.1 è anche in inglese.
-- 
Home: 
http://digilander.libero.it/scaiuan
ICCICCU': 7014443
Are you still here? The message is over. Shoo! Go away!

 No, la 4.1 è anche in inglese.
il tutorial intendo... :(( 


 tutti in tedesco e, in verita', non e' la mia lingua preferita... :) 
Non c'e' problema... ma dovrei prima iniziare ad usarlo... tutto quello 
che so che fa, riesco a farlo fare al cricetino.


 mail-to-news. 
Hai dimenticato di leggere questo "Questo l'ordine delle operazioni nello 
script di uscita dal cricetino."... la parte piu importante.


 script di uscita dal cricetino."... la parte piu importante.
scusa ma e' troppo criptico, per me. :( 


il tutorial intendo... :(( 
Dai un'occhiata qua:
http://plaza.v-wave.com/rtruell/korr-eng.htm
http://home.clara.net/mgk/hamster/kn/korrnews.html
Forse qualcosa la trovi anche girando da queste parti, ma non sono
sicuro:
http://home.nexgo.de/whdk/hamster/#ML2NG
-- 
Ciao, Massimo | ICQ# 57669970
"Sulla sua strada gelata la croce uncinata lo sa
D'ora in poi trovera` Stalingrado in ogni citta`."


Dovrebbe essere la traduzione in inglese
 
http://home.hetnet.nl/~ojb-hamster/EnWIP/EnWeb/html/faq18mw.htm
-- 
OKK

 Dai un'occhiata qua:
grazie. 


 scusa ma e' troppo criptico, per me. :( 
Intendevo di fare uno script nel quale prima dell'operazione di post
   HamNewsJobsPostDef
sia preceduta dalla operazione di modifica degli header che ti 
interessano....
Una cosa del tipo (non so se funziona, e' solo una traccia scritta su 
due piedi senza l'help di hamster a disposizione)
########################################################################
# Script per la cancellazione degli Heaader (in particolare in questo  # 
# caso "Return-Path") dagli articoli (news) in uscita da Hamster       # 
########################################################################
#!load hmessage.hsm
if ( HamGetStatus(3,5) > 0 )
     HamMessage ( 3, 0 )
     DelHeader
     HamWaitIdle
     HamNewsJobsPostDef
     HamWaitIdle
     HamMessage ( 3, 1 )
endif
quit
#####
# Nel caso in cui ci siano articoli da spedire(HamGetStatus), stoppiamo
# innanzitutto il server news di Hamster (HamMessage), eseguiamo la
# subroutine di eliminazione dell'Header incriminato (DelHeader),
# infine spediamo i messaggi (HamNewsJobsPostDef) e facciamo ripartire
# il server news (HamMessage)
#####
sub DelHeader
var( $FilesList, $NumFiles, $FileName, $Message )
     $FilesList = ListAlloc
     $Message = ListAlloc
 
#####
# Creiamo due liste, la prima per l'elenco dei files da spedire,
# la seconda per il messaggio (uno alla volta) che andremo a modificare
#####
 
  ListFiles( $FilesList, HamPath + "Groups\News.Out\" + "*.msg", true )
#
## Importiamo l'elenco dei files (*.msg) presenti nella cartella di 
News.Out
#
   $NumFiles = ListCount( $FilesList ) 
# E contiamo quanti files abbiamo, o meglio, quante righe ci sono nella 
# lista.
   while ($NumFiles > 0)
## Fino a che NumFiles e' maggiore di Zero eseguiamo il blocco.
          $FileName = ListGet( $FilesList, $NumFiles - 1 )
## Ottenamo il nome dell'ultimo file della lista ...
          ListLoad($Message, $FileName)
## ... e lo carichiamo nella lista apposita
            MsgDelHeader( $Message, "Return-Path" )
## cancelliamo l'Header cattivo ;-)
            ListSave( $Message, $FileName )
## Ovviamente questo va salvato.
            ListDelete( $Message, 0 )
## Cancelliamo il contenuto della lista del messaggio
            dec ($NumFiles)
## E decrementiamo il numero dei messaggi da elaborare.
     endwhile
## Fine del loop ("nel caso in cui ci sono messaggi da spedire ...")
     ListFree($Message)
     ListFree($FilesList)
#####
# Una volta che abbiamo elaborato tutti i files liberiamo le risorse
# occupate, visto che noi siamo piu educati di Windows
#####
endsub
#
## Fine dello script :-)
#
E questo ci risolve il problema per le news... nel caso in cui vogliamo
farlo anche sulle mail e' sufficiente sostituire le istanze secondo la
seguente tabella.
HamNewsJobsPostDef                    HamSendMail ( "
mail.libero.it
" )
"Groups\News.Out\"                    "Mails\Mail.Out\"
HamGetStatus(3,5) > 0                 HamGetStatus(3,7) > 0
HamMessage ( 3, 0 )                   HamMessage ( 5, 0 )                   
HamMessage ( 3, 1 )                   HamMessage ( 5, 1 )                   
Sempre sperando di non avere sbagliato nulla...
Fammi sapere...


 Fammi sapere..
sempre grande. grazie. ci studio su'... 


 i files help allegati sono tutti in tedesco 
Korrnews   a   program  by  Thomas  G.  Liesner  for  use  with  Hamster
translated help pages by Rick Truell :
http://ca.geocities.com/ricktruell/korr-eng.htm
Markus G. Kloetzer now hosts an excellant site via:
http://www.hamster.resourcez.com/
which features links to various Hamster resources
(including a korrnews help translation)
HTH


; Tue, 27 Aug 2002 03:57:48 -0500 
(EST)
Received: from 
werted.da.ru
 (151.27.48.75) by 
smtp3.libero.it
 (6.5.028)
        id 3D5121BE005464D3 for 
wer...@despammed.com
; Tue, 27 Aug 2002 
10:57:17 +0200
Date: Tue, 27 Aug 2002 10:57:52 +0200
 
...dove alla prima riga appare...


 sempre grande. grazie. ci studio su'... 
Ehm... sopra a su, non ci vuole l'accento. :-/
Comunque, andavo a memoria ricordando uno script che aveva inviato qualcun 
altro (Ghost?) su questo NG tempo addietro...


 ...dove alla prima riga appare...
Uhm... me pare strano assai. :-)
Comunque... dici che ti e' tornato. Non e' che per caso lo inserisce il 
tuo provider? Non si sa mai. Controlla quello che esce da Hamster, e non 
quello che ti torna indietro.
Prova a controllare eventualmente con un altro header (che so, la data, il 
subject, il to, o qualsiasi altro ti venga in mente) che effettivamente 
venga eliminato.
Hamster, nel log, ti da qualche errore?
Come prima, fammi sapere.


 ora ti faccio spremere le meningi :)
CC (dicesi anche Col Ca....ppero)...
Un Joe Fox che ama i criceti ma gli stanno un po' sui cosiddetti altri 
roditori saccenti.... ;-)


 Hamster, nel log, ti da qualche errore?
nessuno. 


funzione MsgAddHeader
Comunque avevi già postato questo script, per aggiungere gli header,
magari può servire:
Message-ID: <Xns9206E9695347...@net.fox>


 nessuno. 
Quindi lo script funziona... che poi non faccia quello che deve fare, e' 
una altra storia :-)
Dammi un paio di giorni per poter avere abbastanza tempo da controllare e 
poi di dico...


 poi di dico...
anche tre. :-) 


 funzione MsgAddHeader
si puo' fare anche nello stesso script? nel senso:
            MsgDelHeader( $Message, "X-Newsreader: MicroPlanet Gravity 
v2.60" )
            MsgAddHeader( $Message, "X-Newsreader: PipperoNews v1.1" ) 
:-)


             MsgAddHeader( $Message, "X-Newsreader: PipperoNews v1.1" ) 
MsgAddHeader ($Message, "X-Newsreader", "El Pippero v.0.99" )
Li puoi usare insieme, ma e' una masturbazione mentale. A quel punto ti 
conviene usare MsgSetHeader ... che e' la funzione adibita a modificarli. 
Ed ora non te ne venire fuori con un XNews Platinum v.6.2 o un UltraStar 
Gravity v.3.01 ... ;-)


 conviene usare MsgSetHeader
se allora volessi usare la sub che modifica le header all'interno di uno 
script che posta i msg su due srv diversi a che punto dello script 
dovrei inserire la sub? cioe', va bene cosi'?
#!hs2
  #trace(1)
  var ($LOut, $Ca, $S1, $S2, $TempDir)
  # definizione dei server usati
  $S1 = "
news.cu.mi.it
,nntp"
  $S2 = "
powernews.libero.it
,nntp"
  # $S3 = "
news.readfreenews.net
,nntp"
  $TempDir = HamPath + "TempHSC\"
  $LOut = ListAlloc
  # sposta tutti i messaggi nella dir temporanea
  DirMake( $TempDir )
  Listfiles( $LOut, HamPath+"Groups\News.out\*.msg", false )
  For( $Ca, 0, ListCount($LOut)-1 )
    FileCopy( HamPath + "Groups\News.out\" + ListGet($Lout,$Ca), 
$TempDir + ListGet($Lout,$Ca) )
  endfor
var( $FilesList, $NumFiles, $FileName, $Message )
     $FilesList = ListAlloc
     $Message = ListAlloc
 
  ListFiles( $FilesList, HamPath + "Groups\News.Out\" + "*.msg", true )
   $NumFiles = ListCount( $FilesList ) 
   while ($NumFiles > 0)
          $FileName = ListGet( $FilesList, $NumFiles - 1 )
          ListLoad($Message, $FileName)
            MsgSetHeader($Message, "X-Newsreader", "El Pippero v.0.99" )
            ListSave( $Message, $FileName )
            ListDelete( $Message, 0 )
            dec ($NumFiles)
     endwhile
     ListFree($Message)
     ListFree($FilesList)
endsub
  HamNewsPost( $S1 )   
  HamWaitIdle
  # reimmette in coda i messaggi
  For( $Ca, 0, ListCount($LOut)-1 )
    FileCopy( $TempDir + ListGet($Lout,$Ca), HamPath + 
"Groups\News.out\" + ListGet($Lout,$Ca) )
  endfor
  HamNewsPost( $S2 )
  HamWaitIdle
  # cancella i file dalla dir temporanea
  For( $Ca, 0, ListCount($LOut)-1 )
    FileDelete( $TempDir + ListGet($Lout,$Ca) )
  endfor
  ListFree( $LOut )
 
  # fa il pull normale
  HamNewsPull
quit


 Gravity v.3.01 ... ;-)
no, no. :-) era solo curiosita'.
che ne diresti di un "Werted News Professional v.1.0" ?


   HamNewsPull
Allora...con questo script (sempre che non ci siano errori "grammaticali") 
ti spedisce due copie dello stesso messaggio. Una con l'heaeder non 
modificato, sul server 1 ed una con l'header modificato sul server 2 ...
Praticamente... se i due server hanno un feed tra di loro o su un terzo 
server, ci saranno persone che dopo due gg ti mettono nel killfile, 
vedendo regolaremente due copie di ogni messaggio, la cui unica differenza 
e' che quelli che arrivano dal primo server sono "regolari", mentre quelli 
che arrivano dal secondo server hanno un "fake header"...
Che cosa vuoi fare esattamente? modificarli tutti? Discriminare a seconda 
del ng sul quale vanno?


 che ne diresti di un "Werted News Professional v.1.0" ?
Sbagliato... visto che ci sono Software House che dalla versione 2 sono 
saltate direttamente alla 6 del loro word processor, che dalla versione 
3.11 sono passati direttamente alla 95 del loro "sistema operativo" e ne 
hanno pubblicato uno per la prima volta con la versione 3.1 ... direi 
proprio che incominicare dalla 1.0 e' alquanto banale. Non e' detto che tu 
diventa l'uomo piu' ricco del mondo, ma non si sa mai... tentar non nuoce. 
Prova ad incominciare direttamente dalla versione 69, "un anno che e' 
tutto un programma" :-)))))))


 Un FileDelete ( $TempDir + "*.msg" ) non funziona?
non so.


 del ng sul quale vanno?
no, io volevo modificarli tutti ma ci dev'essere un errore nello script. 
la posizione della sub? 


 Prova ad incominciare direttamente dalla versione 69
LOL 


 non so.
Prova... impegneresti di meno il sistema. E sarebbe assai piu' veloce.


"Joe Fox" wrote:
[snippone]
ehi joe, non riesco ad uscirne fuori... :°-((


 script. la posizione della sub? 
Allora... i blocchi in se vanno bene come sono (sempre che non ci siano 
problemi di "grammatica") ... ma non va bene la sequenza.
Dunque ... io farei una cosa di questo tipo.
a. stoppi il servizio NNTP
b. modifichi *senza spostare/copiare* i messaggi
c. spedisci al server 1
d. spedisci al server 2 (i messaggi che rimangono)
In questo modo eviti di spedire due messaggi "uguali". Di copiare avanti 
ed indietro dei files e di dover cancellare qualcosa alla fine.
Occhio e croce te la cavi in circa un quarto del tempo.


 ehi joe, non riesco ad uscirne fuori... :°-((
Script completo con eventuali note in mailbox.... insieme ad un sacco di 
pazienza! :-)


 ehi joe, non riesco ad uscirne fuori... :°-((
Prova cosi....
=============== Script per mandare le News ==========================     
AtAdd( SendNews, "00:00", "24:00", "1111111", 10, true )
AtExecute
Quit
Sub SendOut
     if ( HamGetStatus(3,5) > 0 )
          HamMessage ( 3, 0 )
          SetNewsReader
          HamWaitIdle
          HamNewsJobsPostDef( "
one.newsserv.er
,nntp_
 
two.newsserv.er
,nntp" )
          HamWaitIdle
          HamMessage ( 3, 1 )
     endif
EndSub
sub SetNewsReader
var( $FilesList, $NumFiles, $FileName, $Message )
$Xnr = "El Pippero v.0.99"
     $FilesList = ListAlloc
     $Message = ListAlloc
 
  ListFiles( $FilesList, HamPath + "Groups\News.Out\" + "*.msg", true )
  $NumFiles = ListCount( $FilesList ) 
  while ($NumFiles > 0)
         $FileName = ListGet( $FilesList, $NumFiles - 1 )
         ListLoad($Message, $FileName)
         MsgSetHeader($Message, "X-Newsreader", $Xnr )
         ListSave( $Message, $FileName )
         ListDelete( $Message, 0 )
         dec ($NumFiles)
  endwhile
  ListFree($Message)
  ListFree($FilesList)
endsub
=====================================================================


 AtAdd( SendNews, "00:00", "24:00", "1111111", 10, true )
a parte l'errore che mi dava sulla prima riga (che credo corretto 
modificare in ( SendOut, ecc. )) ecco qui:
Error in line 25 of script-file "..."
Error 13: Unknown variable: $Xnr [THscEngineHamster]
Error-line: $Xnr = "..."
che sia da aggiungere:
var( $FilesList, $NumFiles, $FileName, $Message, $Xnr ) ?  


 var( $FilesList, $NumFiles, $FileName, $Message, $Xnr ) ?  
Prova :-)


 versione 3.1 ... direi proprio che incominicare dalla 1.0 e' alquanto
Ehm... se ti riferisci a Windows, esistono anche le versioni precedenti 
3.0, 2.0 e 1.0 (poco piu' della Shell del Dos).
-- 
Ciao.
Tiziano.

 sacco di pazienza! :-)
Posso chiederti se puoi inviarmi il tuo script?
E' da poco che uso hamster e fra un po' mi tocchera' configurare una
rete con una diecina di PC. E' interessante conoscere la funzione di
controllo delle dimensioni della cartella per il backup.
-- 
Tusede© - salcama ~ tiscalinet [.] it
Il 04/08/1997 lo Skynet diventa operativo.

 
:-)


 :-)
eeco lo script funzionante. 
===Script News Post due Server con modifica Header X-NewsReader=== 
#!hs2
#!load hmessage.hsm                                                                                   
#!load hstrings.hsm                                                                                                                                                                                         
AtAdd( SendOut, "00:00", "24:00", "1111111", 60, true )                                                                                                                                                     
AtExecute                                                                                                                                                                                                   
Quit                                                                                                                                                                                                                                                                                                              
Sub SendOut
     if ( HamGetStatus(3,5) > 0 )                                                                     
          HamMessage ( 3, 0 )                                                                         
          SetNewsReader                                                                               
          HamMessage ( 3, 1 )                                                                         
          HamNewsJobsPostDef( "
prov.one.com
,nntp;_                                                                                           
 
prov.two.com
,nntp" )
          HamNewsPost   
          HamWaitIdle                                                                                 
          HamNewsPull
     endif                                                                                            
EndSub
Sub SetNewsReader                                                                                     
var( $FilesList, $NumFiles, $FileName, $Message, $Xnr, )                                                                                                                                                     
$Xnr = "Your Fantasy NR"                                                                           
     $FilesList = ListAlloc
     $Message = ListAlloc                                                                             
  ListFiles( $FilesList, HamPath + "Groups\News.Out\" + "*.msg", true )
  $NumFiles = ListCount( $FilesList )
  while ($NumFiles > 0)
         $FileName = ListGet( $FilesList, $NumFiles - 1 )
         ListLoad( $Message, $FileName )
         MsgSetHeader( $Message, "X-Newsreader:", $Xnr )
         ListSave( $Message, $FileName )
         ListDelete( $Message, 0 )
         dec ($NumFiles)
  endwhile
  ListFree($Message)
  ListFree($FilesList)
endsub
===Script News Post due Server con modifica Header X-NewsReader=== 
chiaramente con la funzione MsgAddHeader all'interno della 
sub SetNewsReader si possono aggiungere tutte le headers che vogliamo.


 :-)
sai che ci sto prendendo gusto? :-P esiste una funzione che aggiunga una 
signature diversa a seconda di verso quale gruppo stai postando? ;-) o 
meglio: esiste una funzione che aggiunga la signature che poi, con una 
serie di if, credo, possa essere differenziata a seconda del gruppo di 
destinazione del post? sul tutorial non l'ho trovata...


 destinazione del post? sul tutorial non l'ho trovata...
Che io sappia la funzione non esiste, ma e' sufficiente aggiungere al file 
le righe di una signature a piacere. Leggi l'header che ti identifica il 
NG, ed aggiungi le righe lette da un file a piacere.


 sub SetNewsReader si possono aggiungere tutte le headers che vogliamo.
L'errore dunque dove era?


 3.0, 2.0 e 1.0 (poco piu' della Shell del Dos).
Oh, ma che grande novita' hai rivelato al mondo! :-(
Per tua informazione, parlavo si di Windows, ma di WinNT, mi pareva piu 
che ovvio. 
P.S. Windows 2.0 l'ho anche usato. Spesso.


 controllo delle dimensioni della cartella per il backup.
Funzione di controllo? Quando ho impostato quella funzione non esisteva, 
non so se adesso c'e'. Non faccio altro che un semplice dir del dos 
reindirizzato in un file. E leggo il file. So che non e' elegante, ma non 
ho trovato di meglio. Per ora.


 L'errore dunque dove era?
ce n'erano diversi. la posizione della riaccensione del server *dopo* 
l'invio dei msg. mancava il "due punti" all'head XNewsreader. e altri 
che ora non ricordo. ah, mancava il comando HamNewsPost. :-) 


 ed aggiungi le righe lette da un file a piacere.
e come si fa a dirgli che le metta alla fine del bosy? 


 che ora non ricordo. ah, mancava il comando HamNewsPost. :-) 
Beh, per avere fatto tutto a memoria senza fare un unico test, mi devo 
fare comunuque i complimenti. #^_^#


 signature diversa a seconda di verso quale gruppo stai postando?
Korrnews aggiunge signature a caso, ma nn a gruppi specifici.
La funzione potrebbe essere comoda.


 fare comunuque i complimenti.
e ci mancherebbe altro! :-))) 


Name:       
werted.cjb.net
Date:       Sunday 01 September 2002 19:53
Ho iniziato un nuovo thread... nuovo script, nuovo thread... o no? :-)
Dunque... che cosa dobbiamo fare?
Ammettiamo per semplicita' di avere due soli NG.
it.comp.software.newsreader
it.test
Creiamo due files con le relative signature, e non dimentichiamo, 
ovviamente, il "dash, dash, space".
=== icsn.sig ====================================================
## 
     __         ____         | Signature personalizzata per ICSN
 __ / /__  ___ / __/__ __ __ |                                      
/ // / _ \/ -_) _// _ \\ \ / |                                            
\___/\___/\__/_/  \___/_\_\  | ICQ UIN: 61571298
=================================================================
=== test.sig ====================================================
## 
     __         ____         | Signature personalizzata per it.test
 __ / /__  ___ / __/__ __ __ |                                      
/ // / _ \/ -_) _// _ \\ \ / |                                            
\___/\___/\__/_/  \___/_\_\  | ICQ UIN: 61571298
=================================================================
N.B. ho messo i # al posto dei - per non confondere i nr con questo 
messaggio...
Dunque... questo e' la sequenza di cio' che dobbiamo fare.
a. Controlliamo se c'e' qualche messaggio da spedire.
b. Fermiamo il server NNTP.
c. Carichiamo le signature in memoria.
d. Carichiamo un messaggio per volta.
e. Leggiamo l'header che identifica il ng.
f. Aggiungiamo una o l'altra signature.
g. Salviamo il file.
h. Spediamo i messaggi.
i. Riattiviamo il server NNTP
I punti h ed i forse devono essere invertiti, su questo necessita qualche 
test
C'e' una altra questione. Il fatto che io ho sempre detto che bisogna 
stoppare il server ed alla fine riavviarlo. E' scorretto. Bisogna vedere 
se il server e' attivo, eventualmente spegnerlo, ed EVENTUALMENTE 
attivarlo alla fine. Altrimenti se per qualsiasi motivo dovesse essere 
spento, noi alla fine lo riattiviamo arbitrariamente. Ed e' quello che 
faccio sul mio server a casa. Prossimamente inviero' la parte dello script 
relativa a questa funzione.
Invio solo la subroutine, il resto dello script e' a vostra discrezione. 
Personalmente ho tutte le subroutine in modulo e anche la SendNews e' in 
un modulo, e ogni volta aggiungo la chiamata alla subroutine che ho 
eventualmente scritto.
Quindi... solo i punti da c a g.
=========================================================================
Sub InsSignature
var( $FilesList, $NumFiles, $FileName, $Message, $Sig1, $Sig2, $ng )
$FilesList = ListAlloc
$Message = ListAlloc                                                                             
$Sig1 = ListAlloc
$Sig2 = ListAlloc
ListLoad( Sig1, HamPath + "Signatures\" + "icsn.sig" )
ListLoad( Sig1, HamPath + "Signatures\" + "test.sig" )
ListFiles( $FilesList, HamPath + "Groups\News.Out\" + "*.msg", true )
$NumFiles = ListCount( $FilesList )
while ($NumFiles > 0)
       $FileName = ListGet( $FilesList, $NumFiles - 1 )
       ListLoad( $Message, $FileName )
       $ng = MsgGetHeader( $Message, "Newsgroups:" )
       If $ng = "it.comp.software.newsreader"
          ListAdd ( $Message, $Sig1 )
       EndIf
       If $ng = "it.test"
          ListAdd ( $Message, $Sig2 )
       EndIf
       ListSave( $Message, $FileName )
       ListDelete( $Message, 0 )
       dec ($NumFiles)
endwhile
ListFree($Message)
ListFree($FilesList)
endsub
=========================================================================
Allora... vale sempre la solita raccomandazione. Io non l'ho provato. Non 
ci sono errori di concetto, pare, ma forse qualcuno grammaticale.
L'unica cosa da provare prima di lanciarlo e' quella che non so se si 
possono addizionare due ListAlloc come ho fatto io. Credo di si, mi pare 
che nel mio script io lo faccio normalmente. Ma non sono sicuro.
E poi una altra cosa. Questo script NON funziona con articoli che vengono 
mandati in xpost. E non saprei neanche come fare. La stringa e' 
divisibile, si potrebbero anche mandare due messaggi separati. Ma se gia' 
l'Xpost sarebbe da evitare, di per se, due messaggi identici a due ng 
differenti, e' molto molto peggio.
Vedremo come risolvere.
Mi raccomando... in questo modo NON bisogna inserire alcuna signature con 
il newsreader... altrimenti ne avrete due.
Seconda cosa... puo essere molto utile ai poveretti che si ostinano ad 
usare Outlook Express... con le ovvie modifiche si puo' usare per non 
doversi mai piu' preoccuparsi della signature. Gia' la inserisce al posto 
giusto con il delimitatore standard.
Fatemi sapere dove sono gli errori, ed una volta corretti, come funziona, 
ed eventuali miglioramenti.
Grazie per l'attenzione.


 La funzione potrebbe essere comoda.
Con Korrnews s potrebbe fare una cosa tipo
If Header(Newsgroups) = "hamster.it.misc"
    Set Sig
        La mia signature su hamster.it.misc
    end
endif

 mandati in xpost.
non ho ancora testato lo script ma gia' mi viene in mente una cosa. 
mettiamo di avere altri 2 o 3 gruppi che non siano icsnr e it.test, 
occorrerebbe che lo script apponesse una signature "default" quando il 
gruppo letto nel messaggio non corrisponde ad una delle variabili di cui 
sopra. in questo modo potrebbe esserci la soluzione anche all'x/post? 


 Con Korrnews s potrebbe fare una cosa tipo
si ma stiamo cercando di fare tutto senza usarlo e affidandoci solo 
alle potenzialita' del castorino. :-) 



Sorry non avevo seguito con attenzione. Per quanto qui si potrebbe
discutere, visto che le persone che li fanno sono sempre le stesse, se KN
non sia altro che una parte di Hamster che in alcuni casi mi fa le stesse
cose che potrebbe fare Hamster ma in maniera piu' intuitiva e rapida per chi
gestisce il criceto di quanto non faccia il criceto stesso. Senza polemica
eh, solo uno spunto di discussione.

 stesso. Senza polemica eh, solo uno spunto di discussione.
hai perfettamente ragione, se non che io faccio aprire tutte le mail in 
entrata, quindi editarle (farlo fare al cricetino) subito e' sicuramente 
piu' veloce che farlo fare ad un programma esterno. Inoltre, sulla 
intuibilita' bisogna discutere. Hamster lo conosco /abbastanza/ bene. KN, 
no...


 all'x/post? 
esempio.
a. metti sempre la signature XXX a meno che il messaggio non sia 
indirizzato ad uno solo dei seguenti gruppi. Nel qual caso aggiungi la 
signature YYY, ZZZ, KKK ecc...
Nulla di piu semplice.


 Nulla di piu semplice.
forse per te... (sob!) :-( 


 Ho iniziato un nuovo thread... nuovo script, nuovo thread... o no?
ecco lo script:
#!hs2
#!load hmessage.hsm                                                                                   
#!load hstrings.hsm
     if ( HamGetStatus(3,5) > 0 )                                                                     
          HamMessage ( 3, 0 )                                                                         
          InsSignature
          HamMessage ( 3, 1 )                                                                         
          HamWaitIdle                                                                                 
     endif                                                                                            
Sub InsSignature
var( $FilesList, $NumFiles, $FileName, $Message, $Sig1, $Sig2, $ng )
$FilesList = ListAlloc
$Message = ListAlloc                                                                             
$Sig1 = ListAlloc
$Sig2 = ListAlloc
ListLoad( $Sig1, HamPath + "Signatures\" + "icsn.sig" )
ListLoad( $Sig2, HamPath + "Signatures\" + "it.test.sig" )
ListFiles( $FilesList, HamPath + "Groups\News.Out\" + "*.msg", true )
$NumFiles = ListCount( $FilesList )
while ($NumFiles > 0)
       $FileName = ListGet( $FilesList, $NumFiles - 1 )
       ListLoad( $Message, $FileName )
       $ng = MsgGetHeader( $Message, "Newsgroups:" )
       If $ng = "it.comp.software.newsreader"
          ListAdd ( $Message, $Sig1 )
       EndIf
       If $ng = "it.test"
          ListAdd ( $Message, $Sig2 )
       EndIf
       ListSave( $Message, $FileName )
       ListDelete( $Message, 0 )
       dec ($NumFiles)
endwhile
ListFree($Message)
ListFree($FilesList)
endsub
ed ecco il log:
2002/09/02 13.07.33 Sys {ffe2c083} Avvio lo script: InsSignature.hsc, 
Wait=0
2002/09/02 13.07.33 Sys {ffe47337} {script InsSignature.hsc} Avvio
2002/09/02 13.07.33 D   {ffe47337} PRNG seeded with standard library
2002/09/02 13.07.33 I   {ffe2c083} Shutdown local NNTP-server ...
2002/09/02 13.07.33 WAR {ffe47163} Connection closed 
(timeout):
127.0.0.1:2110
 (140)
2002/09/02 13.07.33 I   {ffe2c083} Il client 
127.0.0.1:2110
 (140) si è 
disconnesso
2002/09/02 13.07.33 Sys {ffe2c083} Local NNTP-server stopped.
2002/09/02 13.07.33 ERR {ffe47337} Error in line 30 of script-file 
"InsSignature.hsc"
2002/09/02 13.07.33 ERR {ffe47337} Error 7: "(" expected: If<(?>$ng = 
"it.comp.software.newsreader" [THscParsedFunc]
2002/09/02 13.07.33 ERR {ffe47337} Error-line: If $ng = 
"it.comp.software.newsreader"
2002/09/02 13.07.33 WAR {ffe47337} {InsSignature.hsc} Ressources not 
released by script: HSC-list 3, HSC-list 2, HSC-list 1, HSC-list 0
2002/09/02 13.07.33 Sys {ffe47337} {script InsSignature.hsc} Terminato
2002/09/02 13.07.33 Sys {ffe2c083} Script 
C:\PROGRAMMI\HAMSTER\InsSignature.hsc terminato.
...sembra che non trovi messaggi verso iscn, anche se invece c'era... ma 
questo e' un problema!!! :-))) 

 ListLoad( Sig1, HamPath + "Signatures\" + "test.sig" )
queste dovrebbero essere cosi:
ListLoad( $Sig1, HamPath + "Signatures\" + "icsn.sig" )
ListLoad( $Sig2, HamPath + "Signatures\" + "test.sig" ) 
-- 
Non so cosa devo fare, ma devo farlo subito.

 forse per te... (sob!) :-( 
Non essendovi una istruzione tipo "case-else", e' necessario ingegnarsi 
per fare qualcosa di comunque funzionale.
la piu semplice e' sicuramente una serie di "if-then-else" nidificati...
tre ng con signature personalizzata
- pippo
- topolino
- paperino
tutti gli altri ng
- banda bassotti
if $nr="pippo"
   imposta firma per pippo
else
   if $nr="topolino"
      imposta firma per topolino
   else
      if $nr="paperino"
         imposta firma per paperino
      else
         imposta firma per la banda bassotti
      endif
   endif
endif
Purtroppo avendo molti NG, la cosa diventa molto disordinata...
Si potrebbe anche procedere in un modo piu' elegante.
Impostare all'inizio una firma generica (oppure farla mettere al 
newsreader) e poi...
if $nr="pippo"
   imposta firma per pippo
endif
if $nr="topolino"
   imposta firma per topolino
endif
if $nr="paperino"
   imposta firma per paperino
endif
Certo anche cosi' non e' che sia propio bellissimo... si allunga il tutto 
inutilmente.
Soluzione. Signature.ini
=========== Signature.ini =========================================
[ng-names]
number=5
ng1=it.comp.software.mailreader
ng2=it.comp.software.newsreader
ng3=hamster.it.misc
ng4=it.sesso.racconti
ng5=it.fan.culo
[it.comp.software.mailreader]
Line1=     __         ____         | Signature personalizzata per
Line2= __ / /__  ___ / __/__ __ __ | it.comp.software.mailreader       
Line3=/ // / _ \/ -_) _// _ \\ \ / | 
Line4=\___/\___/\__/_/  \___/_\_\  | ICQ UIN: 61571298                       
[it.comp.software.newsreader]
Line1=     __         ____         | Signature personalizzata per 
Line2= __ / /__  ___ / __/__ __ __ | it.comp.software.newsreader  
Line3=/ // / _ \/ -_) _// _ \\ \ / |                              
Line4=\___/\___/\__/_/  \___/_\_\  | ICQ UIN: 61571298                       
[hamster.it.misc]
Line1=     __         ____         | Signature personalizzata per 
Line2= __ / /__  ___ / __/__ __ __ | hamster.it.misc  
Line3=/ // / _ \/ -_) _// _ \\ \ / |                              
Line4=\___/\___/\__/_/  \___/_\_\  | ICQ UIN: 61571298                       
[it.sesso.racconti]
Line1=     __         ____         | Signature personalizzata per 
Line2= __ / /__  ___ / __/__ __ __ | it.sesso.racconti  
Line3=/ // / _ \/ -_) _// _ \\ \ / |                              
Line4=\___/\___/\__/_/  \___/_\_\  | ICQ UIN: 61571298                       
[it.fan.culo]
Line1=     __         ____         | Signature personalizzata per 
Line2= __ / /__  ___ / __/__ __ __ | it.fan.culo  
Line3=/ // / _ \/ -_) _// _ \\ \ / |                              
Line4=\___/\___/\__/_/  \___/_\_\  | ICQ UIN: 61571298               
[generale]
Line1=     __         ____         | Signature generale
Line2= __ / /__  ___ / __/__ __ __ | 
Line3=/ // / _ \/ -_) _// _ \\ \ / |                              
Line4=\___/\___/\__/_/  \___/_\_\  | ICQ UIN: 61571298                      
===================================================================
Addirittura in un caso come questo si potrebbe fare di meglio. Visto che 
la Line4 e' sempre uguale, si potrebbe non ripeterla ogni volta. Se non 
addirittura comporre le Line1/Line2/Line3 come la somma di una parte fissa 
e l'altra personalizzata. Ma stiamo parlando di masturbazioni mentali. 
Quindi... l'ideale per noi, che non vogliamo la vita facile.
Dunque. A questo punto si tratta solo di leggere questo benedetto INI 
file...
Nulla di piu' semplice.
IniRead( <filename>, <section>, <ident>, <default> )
Quindi... ipotizzando che nella nostra variabile $ng abbiamo il nome del 
ng a cui deve andare il messaggio, ed in $Message il messaggio intero...
======================================================================
$number = IniRead( "signatures.ini", "ng-names", "numbers", "" )
$line1 = IniRead( "signatures.ini", "generale" , Line1, "" )
$line2 = IniRead( "signatures.ini", "generale" , Line2, "" )
$line3 = IniRead( "signatures.ini", "generale" , Line3, "" )
$line4 = IniRead( "signatures.ini", "generale" , Line4, "" )
# e per ora abbiamo caricato la signature generale.
While( $number < 0 )
  $ngsig="ng" + $number
  $niuggi = IniRead( "signatures.ini", "ng-names", $ngsig, "" )
  if $ng = $niuggi
     $line1 = IniRead( "signatures.ini", $niuggi, Line1, "" )
     $line2 = IniRead( "signatures.ini", $niuggi, Line2, "" )
     $line3 = IniRead( "signatures.ini", $niuggi, Line3, "" )
     $line4 = IniRead( "signatures.ini", $niuggi, Line4, "" )
     $number = 0
  endif
endwhile
# in questo modo abbiamo nelle variabili $line1/2/3/4 le quattro linee 
della firma.
ListAdd ( $Message, "-- " )
ListAdd ( $Message, $Line1 )
ListAdd ( $Message, $Line2 )
ListAdd ( $Message, $Line3 )
ListAdd ( $Message, $Line4 )
===================================================
L'idea l'ho buttata giu'. Non ho assolutamente controllato se ho fatto 
errori, e non posso fare test, al momento. Provatela, e fatemi sapere.
Ovviamente, vale sempre la raccomandazione dell'Xpost, in tal caso viene 
sempre aggiunta la signature generale.
N.B. non mi piace la soluzione "prima carica la sig generale, ed 
eventualmetne sostituisci" ... si puo' fare di meglio, ma ci devo pensare, 
e la pausa pranzo e' finita. Devo tornare al lavoro. Ci pensero' tornando 
a casa stasera.
P.S. le idee piu' astruse per la programmazione mi vengono guidando sulla 
autostrada. Adesso capisco tutto quel traffico in tangenziale a Milano, 
sono tutti i programmatori che cercano ispirazione. :-D


 ListLoad( $Sig2, HamPath + "Signatures\" + "test.sig" ) 
Giusto. Ti assumo come tester. Io programmo nella mia mente, ti mando i 
listati, tu li correggi e fai i test... :-D
Datemi un Hamster su cui posso giocareeeeeeeeeee!!!!!!!!!!


 /abbastanza/ bene. KN, no...
Nel caso in esame mi sembra che con tre righe di codice te la cavi. Poi si
entra nel campo dei gusti personali, di quanto tempo si abbia per
approfondire la conoscenza di un software a scapito di un altro ecc. Ad ogni
modo io gli script che passano da qui li studio e li conservo tutti, quindi
piu ne arrivano e meglio e' anche se poi non avro occasione di usarli :-)

 ecc.
Ho fame di conoscenza. Le uniche due cose di cui non posso fare a meno, 
nella vita, sono la cioccolata e apprendere cose nuove.


 nella vita, sono la cioccolata e apprendere cose nuove.
Oddio, ce ne sarebbe un altra ... Anche a quella e' mooolto difficile
rinunciare. (Faccine a profusione)

 rinunciare. (Faccine a profusione)
Figurati. Dopo anni a spendere soldi a profusione per avvicinarne una, 
capisci che Margherita non ti abbandona, non ti tradisce ma soprattutto 
costa molto molto meno.


 listati, tu li correggi e fai i test... :-D
LOL 

 $number = IniRead( "signatures.ini", "ng-names", "numbers", "" )
e questo dove si mette? 

 e questo dove si mette? 
Questo cosa? Tutto quello che ho scritto? Direi in una subroutine....
