Newsgroup: it.comp.software.newsreader
Titolo: [hamster] Aiuto su generazione script

Salve ragazzi
Vorrei effettuare uno script che mi consenta, partendo dall'header "X-
Newsreader: Agent" nel momento dell'invio, scegliere il newsreader (in 
questo caso fittizio) da visualizzare negli header. Vorrei poter 
scegliere tra piů opzioni (tipo con una finestra di dialogo durante 
l'invio) Tutto ciň č possibile od č pura utopia? Purtroppo non ci 
capisco nulla del linguaggio script :( Qualcuno sarebbe cosě gentile da 
costruire lo script di cui sopra :) Grazie, non finirň mai di 
ringraziarvi. Saluti

 costruire lo script di cui sopra :) 
Trovi la sub "modifica" in un post che ho inviato poco fa nel thread 
"hamster : questioni varie" [cerca su 
http://groups.google.com
 :o}]
Non la riposto perche` e` lunghina, e due volte in un giorno... ^__^
Poi per inviare i post usa questa sub [ti conviene metterla in AtAdd in 
uno script con cui avvierai Hamster]:
sub sendnews # non ho provato la modifica, sappimi dire se va ;o}
	var($newsreader)
	if (RasIsConnected)
		if (FileExists(HamPath + "Groups\News.Out\*.msg"))
		$newsreader = InputBox("Scegli", "", "Forte Agent")
		# "scegli" e` il testo visualizzato nella input box
		# "Forte Agent" e` il default usato se lasci vuoto
		# puoi cambiare entrambe le cose ovviamente
		modifica(HamPath + "Groups\News.Out\", _
		"X-Newsreader:", $newsreader)
		HamWaitIdle
		HamNewsJobsClear
		HamNewsJobsPostDef
		HamNewsJobsStart
	  endif
	endif
endsub
un Gandalf e le modifiche al volo
-- 
 _____           _     _ ___  il Maghetto di OT (©Pap'2001) ICQ#16553733
|   __|___ ___ _| |___| |  _| il SitoComune® di ITHN: 
http://fly.to/ITHN
|  |  | .'|   | . | .'| |  _| founder del chan #Nokia su 
IRC.Azzurra.org
|_____|__,|_|_|___|__,|_|_| > 
ftp://ftp.microplanet.com/pub/grav25.exe
 <

		"X-Newsreader:", $newsreader)
Ma sbaglio o hamster non riconosce il Return-Path: ?
ho provato uno script per cambiare il from,
ma il return-path rimane l'originale.
una cosa così:
		modifica(HamPath + "Mails\Mail.Out\", _
		"Return-Path:", "qualsiasicosa")
-- 
extrabug


Date: Sat, 6 Oct 2001 13:11:02 +0200
From: Gandalf il Grigio <mio@indirizzo>
Subject: Funziona!
To: 
extrabugSpam...@libero.it
Message-ID: <MPG.1629052d552d97ef11e1a304@localhost>
X-Mailer: MicroPlanet Gravity v2.60
X-Posting-Agent: Hamster/
1.3.22.104
Return-Path: qualsiasicosa
un Gandalf che funziona :o}


un Gandalf che funziona :o}
Nella prova che ho fatto, si tratterebbe di eliminare ogni traccia
dell'indirizzo originale, ma dipende dai campi che aggiunge il mailer,
ieri non funzionava, ora si, bo, devo ricontrollare meglio.
Non voglio creare un account per ogni indirizzo in OE;
voglio fare uno script con lista per decidere quale usare.
-- 
extrabug

DarkSir scopri' di avere strani poteri il Fri, 5 Oct 2001 20:24:14 +0200
quando alzo' la sua spada al cielo e disse:
| Vorrei effettuare uno script che mi consenta, partendo dall'header "X-
| Newsreader: Agent" nel momento dell'invio, scegliere il newsreader (in 
| questo caso fittizio) da visualizzare negli header.
[cut]
uhm, direi che e' fattibile, ma ora come ora nn ho molto tempo...
e' urgente?
vediamo se ho capito:
in pratica vuoi che hamster prenda le news prima di spedirle sui server
(per i post nei ng locali nn ti posso aiutare)
veda se il campo X-Newsreader e' "Agent"
in caso affermativo richieda in finestra di scegliere il nuovo valore
dell'header tra valori gia' preimpostati
cambi il valire e spedisca
nn mi pare difficile
se nn ci sono altri volontari e nn hai fretta un giorno o l'altro te lo
faccio ^^
ricorda che pero' ho un grave problema: comincio le cose e nn le
finisco... spero per te che nn sia cosi' col tuo script ^___-
-- 
   \            |                 |  |          |
  _ \    \   _` |  _|-_)\ \  \ /  __ |  _` |  _||  _` |   \ andrew.harlan
_/  _\_| _|\__,_|_|\___| \_/\_/  _| _|\__,_|_| _|\__,_|_| _| @
infinito.it
"La lunga notte era calata di nuovo."  Notturno. Isaac Asimov

 faccio ^^
Io -senza l'opzione per controllare se Agent e` il NR preesistente- l'ho 
fatto usando cosi` il tuo:
		$newsreader = InputBox("Scegli", "", "Forte Agent")
		modifica(HamPath + "Groups\News.Out\", _
		"X-Newsreader:", $newsreader)
un Gandalf semplicistico ^__^
-- 
 _____           _     _ ___  il Maghetto di OT (©Pap'2001) ICQ#16553733
|   __|___ ___ _| |___| |  _| il SitoComune® di ITHN: 
http://fly.to/ITHN
|  |  | .'|   | . | .'| |  _| founder del chan #Nokia su 
IRC.Azzurra.org
|_____|__,|_|_|___|__,|_|_|   MPG: 
http://members.home.net/gravitypages/

un Gandalf semplicistico ^__^
Nelle mie prove di ieri, scopiazzate dai vostri script, risultava che:
se il campo non esiste, viene aggiunto, ma mi finiva nel corpo del messaggio,
invece che tra gli header, ho aggiunto un controllo per l'esistenza,
    if  ("" != MsgGetHeader($messaggio, $header))   <<<---questo
         if ($contenuto != MsgGetHeader($messaggio, $header))
	  MsgSetHeader($messaggio, $header, $contenuto)
	    ListSave($messaggio, $nomefile)
          endif
     endif
invece quello che mi manca e' una lista di mittenti da sostituire,
al posto della inputbox, ma lì e' complicato.

| uhm, direi che e' fattibile, ma ora come ora nn ho molto tempo...
| e' urgente?
| vediamo se ho capito:
| in pratica vuoi che hamster prenda le news prima di spedirle sui server
| (per i post nei ng locali nn ti posso aiutare)
| veda se il campo X-Newsreader e' "Agent"
| in caso affermativo richieda in finestra di scegliere il nuovo valore
[cut]
Ciao
Ti ringrazio... sei gentilissimo!
E' proprio quello che cerco!
Saluti
Fammi sapere mi raccomando :-)
Ecco l'indirizzo: 
dar...@libero.it

extrabug scopri' di avere strani poteri il Sat, 06 Oct 2001 07:20:23 +0200
quando alzo' la sua spada al cielo e disse:
| 		modifica(HamPath + "Mails\Mail.Out\", _
| 		"Return-Path:", "qualsiasicosa")
anche tu?
nn usate i path cosi' quando ci sono delle costanti in hamster che ve lo
passano!
HamMailsOutPath ti da il path della cartella Mails.Out e quindi
l'equivalente di HamPath + "Mails\Mail.Out\" solo nel caso di default!
se un domani cambi il path nel file hamster.ini dovrai andarti a
modificare tutti gli script!!
ah, nn capisco il tuo problema...
a me la funzione funziona, pero' ho la mia versione... se gand dice che
funzina anche quella che ha passato lui (nn mi va di controllarla, son
pigro) allora forse sbagli involontariamente qualcosa tu... e' facile sai?
basta scordarsi un / in un path, vero gand? ^____-


extrabug scopri' di avere strani poteri il Sun, 07 Oct 2001 16:01:20 +0200
quando alzo' la sua spada al cielo e disse:
| Nelle mie prove di ieri, scopiazzate dai vostri script, risultava che:
| se il campo non esiste, viene aggiunto, ma mi finiva nel corpo del messaggio,
| invece che tra gli header, ho aggiunto un controllo per l'esistenza,
hai pienamente ragione sul fatto che lo script e' da perfezionare nn
esiste ne' in cielo ne' in terra che qualche mio lavoro sia mai riuscito
ad essere perfetto: sbaglio sempre qualcosa ^^
il fatto e' che a me nn lo aggiunge nel corpo del messaggio ma tra gli
headers; ossia se l'header nn esiste lo script nn fa altro che agiiungerlo
in coda agli altri headers, nn nel corpo del messaggio...
boh...
fammi avere per mail il post a cui ti da problemi (magari cancella le info
provate)
|     if  ("" != MsgGetHeader($messaggio, $header))   <<<---questo
|          if ($contenuto != MsgGetHeader($messaggio, $header))
| 	  MsgSetHeader($messaggio, $header, $contenuto)
| 	    ListSave($messaggio, $nomefile)
|           endif
|      endif
ammesso di voler controllare che l'header da modificare esista (io usavo
lo script anche per aggiungere header nn esistenti...) il tuo sistema nn
e' molto efficiente...
chiami due volte la funzione MsgGetHeader con gli stessi parametri!
fai cosi': dichiarati un'altra variabile, esempio $vecchio_contenuto
poi le righe di codice sono queste:
...
   $vecchio_contenuto = MsgGetHeader($msg, $header)
   if ($vecchio_contenuto != $nuovo_contenuto && $vecchio_contenuto != "")
...
un solo if ma soprattutto una sola chiamata alla funzione MsgGet...


in coda agli altri headers, nn nel corpo del messaggio...
era dovuto ad una linea vuota, che non so come, forse un crlf di troppo,
ci finiva in mezzo, e quindi veniva interpretato come DATA
andando nel body del messaggio, comunque, quelli mancanti
li aggiungerebbe alla fine, e si nota che e' stato modificato,
o a te agisce diversamente?

DarkSir scopri' di avere strani poteri il Sun, 7 Oct 2001 09:02:52 +0200
quando alzo' la sua spada al cielo e disse:
| E' proprio quello che cerco!
nn trovo proprio il tempo...
usa lo script di gandalf che va piu' che bene!
se un giorno trovero' tempo faccio qualcosa di piu' carino con la
finestrella...
scusa


extrabug scopri' di avere strani poteri il Sat, 13 Oct 2001 07:11:27 +0200
quando alzo' la sua spada al cielo e disse:
| Sia mai che mi metta a criticare il lavoro altrui,
| era solo una nota, per quelli che come me, scopiazzano  :-)
benvenute le note: aiutano a crescere!
eppoi io faccio come te, scopiazzo, solo che poi mi ci metto di impegno e
cerco anche di impararmi a diventare autonomo ^__^
| era dovuto ad una linea vuota, che non so come, forse un crlf di troppo,
| ci finiva in mezzo, e quindi veniva interpretato come DATA
strano! nn mi sembra che un client mail riesca a fare cosacce del
genere..., imho, smanettando con gli script hai aperto il post e magari,
senza accorgetene hai premuto un return... e' l'unica spiegazione che mi
viene in mente per l'aggiunta di un crlf negli headers...
| andando nel body del messaggio, comunque, quelli mancanti
| li aggiungerebbe alla fine, e si nota che e' stato modificato,
| o a te agisce diversamente?
questa e' la descrizione della funzione:
########################################################################
# MsgSetHeader: Adds a header-line. If message already contains one with
#               the given name, it will be replaced with the new one.
########################################################################
aggiunge una linea di header, quindi prima dei dati e esattamente sotto
l'ultimo header e prima del crlf che separa headers e dati
in piu', se l'header gia' esiste nn fa altro che rimpiazzare il contenuto
dell'header con quello nuovo passato...
esattamente la funzione che volevo!
controlla da dove ti viene l'errore dell'aggiunta del crlf all'interno
degli headers, anche perche' una mail cosi' arriva con parte degli headers
tra i dati anche a chi la riceve...
