Newsgroup: it.comp.os.linux.sys
Titolo: E' quasi un anno che ci lavoro ma non ci riesco!

Siete la mia unica speranza.
Sto cercando di scrivere uno script con curl per poter utilizzare in
modalita' batch questo sito:
http://tts.loquendo.com/ttsdemo/
Ci ho provato in tutti i modi ma non ci riesco.
Chi mi da una mano?


Io non credo di avere ne' il tempo ne' probabilmente le capacita`, ma
credo che anche a chi potesse/volesse manchino le specifiche di che
cosa si vorrebbe fare a partire da cosa (INPUT e OUTPUT desiderato),
inoltre se e` un anno che ci provi con curl, magari potrebe non essere
lo strumento adatto a fare quello che vuoi.
Andrea


Le specifiche sono semplicissime.
Il sito presenta una form con una textbox, scrivendo qualcosa nella
textbox e premendo il tasto play si riceve un file wav convertito con
un TTS di alto livello.
Mi piacerebbe poter atimatizzare con uno script il tutto.
Con TamperData di Firefox leggo tutti i dati della transazione, ma non
riesco ad utilizzarli con curl (o con wget)

 riesco ad utilizzarli con curl (o con wget)
http://curl.haxx.se/docs/faq.html#Does_curl_support_Javascript_or

 
http://curl.haxx.se/docs/faq.html#Does_curl_support_Javascript_or
Cakkio!
Quindi non ho speranze?


Potresti provare con lynx, guarda i parametri -dump e -post_data,
potresti complilarlo con il supporto a Javascript e fare una prova.
 Giovanni
-- 
/*
 * SnB - 
http://www.snb.it
 */

Davide ha scritto:

Non conoscendo il sito/servizio e, potendo servire anche a me, ho 
scritto 20 righe di python ed ora...
michele:~/tmp$ ./speech.py
Usa: ./speech.py nome_file_out.wav 'testo da dire'
michele:~/tmp$ ./speech.py python.wav "python è forte" && aplay python.wav
File salvato in: python.wav
Playing WAVE 'python.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
Quanto mi dai? :)

Giovanni Bechis wrote:

javascript non c'entra proprio niente.
-- 
give it away

majale wrote:

Ah no?

 Ah no?
esiste GET POST più altri metodi in http ma non JAVASCRIPT
quel che passa il client pinco al server pallo generalmente è GET o POST
tant'è che c'è un michele petrazzo ha fatto un script in python e non ha 
proprio a che fare con javascript
-- 
give it away

majale wrote:

Ah ecco l'esperto del web. E' ovvio che alla fine quello che va al server e' 
GET o POST, ma molto spesso i parametri della GET o POST vengono generati 
dinamicamente da degli script Javascript presenti nella pagina. Curl e wget 
non sono in grado da soli di eseguire il codice Javascript che genererebbe i 
corretti dati per il GET o POST, quindi in quel caso con curl e wget *da 
soli* si farebbe ben poco (ma che te lo dico a fa').
(Si', in quella pagina le funzioni Javascript sono vuote)

 (Si', in quella pagina le funzioni Javascript sono vuote)
Se uno dice "javascript non c'entra niente -in merito a questa situazione- 
dato che c'è già chi ha fatto lo script in python" (vedi nuove risposta in 
alto) 
perché rispondi "ah no?" per fare l'esperto degli interwebs?
hai fatto una domanda ("Ah no?") e ti ho risposto.
volevi fare l'espertone tu probabilmente sfoderando le tue conoscenze di 
vediamo un po'
ajax, web 2.0???
va a musté 'i gat a rampjesie
-- 
give it away

 vediamo un po'
Ok e' la mia ultima risposta, perche' sei gia' nel kill file.
Javascript c'entra, perche' ai vari elementi del form sono associati delle 
azioni in Javascript che modificano dinamicamente la stringa che viene 
mandata col POST (forse e' un concetto troppo avanzato per te, mi rendo 
conto). Curl e wget non sanno interpretare Javascript.
Se tu ti metti li' con pazienza e ti sniffi un po' di traffico, riesci 
(forse) a capire il formato delle richieste, e a scrivere MANUALMENTE 
qualcosa che permetta di fare le stesse cose con curl, wget, python o 
qualunque linguaggio ti pare (inclusi replicare cookie e altri cazzi che 
sicuramente conoscerai benissimo visto che sei un'esperto di web).
Se non vuoi fare reverse engineering tramite sniffing, allora devi andarti a 
guardare cosa fa il codice Javascript della pagina. Quando l'hai capito, 
puoi scrivere dei comandi per replicare cio' che verrebbe messo nel POST.
Siccome l'OP non ha sicuramente provato a fare nessuna delle due cose, e 
tentava di usare curl, gli ho dato un suggerimento. Se tu ti sei sentito 
personalmente chiamato in causa per voler fare il saccente (come d'altronde 
hai ampiamente dimostrato recentemente), non e' un problema mio.
*plonk*

 Quanto mi dai? :)
Ti ho gia' dato... l'idea.
Io dico che siamo pari.
E dico che potresti condividere con noi altri le tue capacita'
Confido nel tuo buon cuore ;-)

 Quanto mi dai?
Se mi scrivi la patch per RATEEST ne possiamo parlare...;-P

antani wrote:
 <?php
$testo = "Javascript c'entra, perche' ai vari elementi del form sono 
associati delle azioni in Javascript che modificano dinamicamente la stringa 
che viene mandata col POST (forse e' un concetto troppo avanzato per te, mi 
rendo conto). Curl e wget non sanno interpretare Javascript.";
$url = "
http://tts.loquendo.com:8080/TTS7/LoquendoTTS?id=971401397
";
$POST = "testo=".
$testo."&voce=Paola&tipo=40&play=Play&yeruy47yyehedher7=yeruy47yyehedher7";
$COOKIE = "./text.txt";
loq($url, '', $COOKIE);
print(loq($url, $POST, $COOKIE));
function loq($url, $POST, $COOKIE) {
   $ch = curl_init();
 
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_USERAGENT, "User-Agent: Mozilla/5.0 (X11; U; 
Linux x86_64; en-US; rv:1.9.1.5pre) Gecko/20091018 Shiretoko/3.5.5pre");
   curl_setopt($ch, CURLOPT_POSTFIELDS, $POST);
   curl_setopt($ch, CURLOPT_REFERER, 
"
http://tts.loquendo.com/ttsdemo/default.asp?page=id&voice=Paola
");
   curl_setopt($ch, CURLOPT_COOKIEJAR, $COOKIE);
   curl_setopt($ch, CURLOPT_COOKIEFILE, $COOKIE);
   curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   $data = curl_exec($ch);
   $info = curl_getinfo($ch);
   curl_close($ch);
   return $data;
}
?>
php test.php > file.waw
ora sparisici idiota
-- 
give it away

 php test.php > file.waw
Se volevi dare una lezione di programmazione in PHP, oltre ad aver 
sbagliato NG, hai fatto il tipico esempio di come NON si programma in PHP 
e di come si scrivono programmi alla cazzo di cane.

http://pastebin.com/f391ea1b7
-- 
give it away

CtRiX wrote:

puoi succhiarmi l'uccello se ti viene meglio.
-- 
give it away

 puoi succhiarmi l'uccello se ti viene meglio.
Ecco perchè qui sei fuori logo.
Non riesci a stare in topic.

Davide wrote:

http://pastebin.com/f391ea1b7
ti basta creare un file "test.txt" nella stessa directory del file php come 
contenitore dei cookie e poi ti basta fare php file.php > file.waw
dovrebbe funzionare
-- 
give it away

CtRiX wrote:

si stava discutendo con quell'altro sapientino tu che ci fai qui??
comunque il punto era dimostrare che non serviva a un emerito cazzo 
javascript per quanto aveva richiesto Davide.
la dimostrazione è funzionante, magari non è scritta come tu o Dio di ogni 
linguaggio sapresti fare e per questo mi sto già fustigando da diversi 
minuti.
ma è veloce, funzionante e dimostra che qui è pieno di cazzari come ovunque.
potete dire un po' il cazzo che volete ma siete fondamentalmente patetici
-- 
give it away

Davide ha scritto:

http://unipex.it/vario/speech.py
Ed ho anche aggiunto una piccolezza: il nome, quindi lingua, della voce 
riprodotta.
michele:~/tmp$ ./speech.py
Usage: ./speech.py file_name_out.wav 'text to speech' [voice]

 
http://unipex.it/vario/speech.py
elegante, bisogna solo capire se quella chiave yeruy47yyehedher7 viene 
cambiata ogni tanto dal server, buh
-- 
give it away

 patetici
E allora perchè continui a frequentarci ?
Dai su... per di là...

 Se mi scrivi la patch per RATEEST ne possiamo parlare...;-P
Se vuoi, ma sicuramente _io_ non mi fiderei ad usare una patch mia in
kernel space :)
E poi in C, troppi asterischi ed e commerciali ( * & ) per i miei gusti 
pythonici :)
Comunque qui
http://dirac.org/linux/writing/lkmpg/2.6/lkmpg-2.6.0.html#AEN740
ed il capitolo successivo 6 spiegano bene come fare!
Quindi aspetto io ora la patch :)

CtRiX wrote:

perché c'è un sacco di gente in gamba qui.
purtroppo c'è una piccola parte di gente che si sente a livello di un semi 
dio perché sa fare 4 operazioni raffinate.
tante volte ho ricevuto risposte preziose senza superbia
-- 
give it away

 pythonici :)
scusa se ti rompo, puoi guardare questo file python e dirmi come mai non 
posso aggiungere una stampante di rete su KDE?
c'è il backtrace e sembrerebbbe proprio una cavolata 
https://bugs.kde.org/show_bug.cgi?id=200504
line 3613, in on_btnNPApply_clicked
    self.mainapp.cups.addPrinter(name, ppdname=ppd,
AttributeError: 'NoneType' object has no attribute 'addPrinter'
Exiting
la mia versione nel comp è leggermente diversa da 
http://websvn.kde.org/trunk/KDE/kdeadmin/system-config-printer-kde/system-
config-printer-kde.py?view=log 
comunque ho provato l'ultima e non funziona nemmeno quella lì.
sono in ufficio e non riesco a collegare la dannata stampante di rete.
se hai tempo..
-- 
give it away

 superbia
il bue che dice cornuto all'asino.
Tieni, 
http://tinyurl.com/yhx3htl
 
giusto per documentarti su cosa fare prima di postare insulti, parolacce 
o cose che non ti qualificano molto bene.

On 22 Ott, 16:10, Michele Petrazzo

Vi ringrazio molto! E smettetela di litigare ;-)
Ciao.

majale ha scritto:

Mi sono già messo un avviso su thunderbird per la prossima settimana :)
Al massimo si può prima scaricare la pagina, cercare la chiave nella
pagina ed automaticamente usarla!
Però quello lo lascio a "Davide", altrimenti è troppo semplice!
Michele

 E smettetela di litigare ;-)
E no, ora che mi sto facendo quattro risate!

 'NoneType' object has no attribute 'addPrinter' Exiting
vedendo posso dirti che:
- che sono contento di essere ancora su kde 3 :)
- è scritto molto male il codice, andando contro ogni logica di
programmazione di python. (Secondo me è scritto da persone che derivano
da programmazione in C)
- Non so perché accade, ma l'errore è sicuramente qui
         try:
             self.cups = cups.Connection()
         except RuntimeError:
             self.cups = None
o negli altri punti dove viene messo l'attributo cups a None

 o negli altri punti dove viene messo l'attributo cups a None
uff, io mi trovo bene con kde 4.3.qualcosa, immaginavo fosse un errore 
bestiale e infatti mi confermi che il codice è scritto coi piedi.
trovo veramente allucinante che un bug del genere sia in stato normal e 
nessuno pensi che la gente a volte coi computer ci lavora.
dovrei tornare a kde 3 ma oramai l'eye candy mi ha deviato
-- 
give it away

 puoi succhiarmi l'uccello se ti viene meglio.
Lo dai via da succhiare al primo che capita?
Tzk.
BTW, non ti pare di aver un tantino esagerato?

 BTW, non ti pare di aver un tantino esagerato?
Sembra anche a me, anche se la "spirale di violenza verbale" non l'ha 
cominciata lui, ma si è fatto cmq prendere la mano. Sathia, relax, che non 
siamo su ISC :P
-- 
Vide

 BTW, non ti pare di aver un tantino esagerato?
hai ragione.
è due thread che cerca di umiliarmi, non ho ben capito perché.
io cerco di essere sempre gentile con tutti, ma dopo un certo punto mi 
attengo alla linea del dr. House:
treat people like jerks, you get treated like a jerk.
io ho dimostrato che javascript non c'entrava nulla e il tizio è andato 
completamente offtopic sulla qualità del codice php.
ot per ot gli ho detto quel che pensavo in quel momento preciso.
comunque sì, cercherò di non insultare i nessuno d'ora in poi.
-- 
give it away

 
giusto, non deriverò più nel pecoreccio. promessa
-- 
give it away

 comunque sì, cercherò di non insultare i nessuno d'ora in poi.
Ok ma se rispondevi "era solo un proof of concept" quindi non fare il 
figo, mi avresti zittito senza flammare e senza scadere nel volgare.
Comunque non sono l'unico eh... con cui ti sei esibito.
Sei già nel killfile di alcuni, l'inizio è buono.
Non dubito, però, che non raggiungerai i livelli di un troll che si 
diverte su INNA (e questo è un complimento).

 figo, mi avresti zittito senza flammare e senza scadere nel volgare.
ahah, no invece pensavo di mandarlo alla NASA 'a creatura i php.
boh non sprechiamo bit che qualche server dovrà pure salvarli da qualche 
parte.
saluti
-- 
give it away


Cavolo era semplicissimo!
curl -A "Mozilla" -d "testo=$TESTO&voce=
$VOCE&tipo=40&play=Play&yeruy47yyehedher7=yeruy47yyehedher7"
http://tts.loquendo.com:8080/TTS7/LoquendoTTS?id=971401397
 >$OUT
Tutto qui! Io praticamente non mettevo lo User Agent, ecco perche' non
mi funzionava!
Voi vi chiederete a cosa mi serviva tutto cio'.
Ebbene, siccome da un po' mi diverto ad installare centralini
Asterisk, ho fatto uno script con cui il centralino mi chiede di
inserire un numero seguito dal tasto cancelletto, questo numero viene
usato per fare una ricerca su pagine bianche e su info412, se il
numero e' registrato lo script prende la ragione sociale, o comunque
l'intestatario, e me lo detta in italiano perfetto ala telefono.
Una versione piu' vecchia del mio script mi permetteva solo di sparare
il nome trovato sui display dei telefoni che squillano quando arriva
una telefonata
Vi giuro che fanno colpo ste cosa sui clienti ^__^

 Voi vi chiederete a cosa mi serviva tutto cio'.
[cut]
e io che pensavo volessi far sporcacciate con crontab e Diana. ;)
ciao
-- 
give it away

 Quindi aspetto io ora la patch :)
Spetta, eh, che qui sul tavolo ho già
- Understanding the Linux kernel
- Linux device drivers
- Linux network internals.
Direi che ne ho per alcuni anni...;-P

 Ci ho provato in tutti i modi ma non ci riesco.
Maa.....
.... usare festival? (Ed avere i file nel formato che vuoi tu e senza il 
paguro che canta "loquendooooOOO" in sottofondo?)
-- 
Saluti, Grizzly - 
http://www.g-sr.eu/
  73 de 1uGRZ - PMR Chan  8 CTCSS 24 - SIRACUSA
  Compra i miei libri su 
http://www.lulu.com/g-sr
-Questo messaggio e' sottoposto a Licenza Creative Commons-
(CC)by-nc-nd 
http://creativecommons.org/licenses/by-nc-nd/2.5/it/
#301: Prima Legge del Zuse del Software:
  In qualunque linguaggio di programmazione, il primo programma e' sempre
  "Ciao, mondo!". Dal secondo in poi, invece, c'e' sempre almeno un bug.
  - Andrea `Zuse' Balestrero, "Matemastica e Deformatica"

 .... usare festival?
Quale festival? Si mangia gratis?
(ok, vado via, un cliente mi aspetta)

 .... usare festival? (Ed avere i file nel formato che vuoi tu e senza il
Festival, a mio avviso, e' osceno!
Er Finestra di Radio DJ sta avanti anni luce.
p.s.
la chiave yeruy47yyehedher7 e' sempre quella da mesi.
E cmq non sarebbe un problema ricavarsela nello script dopo un primo
POST

 Er Finestra di Radio DJ sta avanti anni luce.
Boh, di solito in laboratorio ascolto RTL 102.5 (-:
E comunque ripeto, almeno uno non sente "(loqu)SIGNOR GRIZZLY(end)DI 
SIRACUSA(dooooooooOOOOO)TELEFONO 123-45(loqu)67(end)89(dooooOOO) (((-:
-- 
Saluti, Grizzly - 
http://www.g-sr.eu/
  73 de 1uGRZ - PMR Chan  8 CTCSS 24 - SIRACUSA
  Compra i miei libri su 
http://www.lulu.com/g-sr
-Questo messaggio e' sottoposto a Licenza Creative Commons-
(CC)by-nc-nd 
http://creativecommons.org/licenses/by-nc-nd/2.5/it/
#315: Legge del Zuse del CL-MTBF (Christmas Light Mean Time Between
Failures):
  L'MTBF di una qualunque serie di luci colorate per l'albero di Natale
  o per il presepe e' esattamente di un anno solare.
  - Andrea `Zuse' Balestrero

 
hardcore sarebbe mandare prima delle prime lettere qualche spazio che duri 
una decina di secondi, scaricare il file e poi con mencoder o simili 
troncare i primi secondi mentre dice loquendo. ma è quasi criminale.
-- 
give it away