creare script per aprire tab per ogni discussione con messag

Mac OS X e le sue Applicazioni

Moderatore: ModiMaccanici

Avatar utente
Why
Stato: Non connesso
Maccanico assiduo
Maccanico assiduo
Avatar utente
Iscritto il: sab, 29 nov 2014 19:45
Messaggi: 193

Top

Furba come soluzione, non conosco proprio le potenzialità di AppleScript.
Comunque un grep al volo può essere:

Codice: Seleziona tutto

grep -o 'viewtopic.php?f=[0-9]*&t=[0-9]*' [nome file con il sorgente della pagina]
Che tira fuori tutti i link corrispondenti.
Per informazione, gem install mechanize produce quanto segue, sia da un utente standard che da uno amministratore:
Io ho Ruby aggiornato installato nella home, quindi non ho problemi di permessi. Mi pare strano comunque che dia quell'errore anche lanciandolo con sudo.
Probabilmente puoi usare anche pip install mechanize o easy_install mechanize, dopo aver scaricato la distribuzione
Non credo sia la stessa libreria disponibile per Python :).

Avatar utente
kato
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: ven, 12 nov 2010 15:16
Messaggi: 4856
Località: Roma

Top

Why ha scritto:Furba come soluzione, non conosco proprio le potenzialità di AppleScript.
Comunque un grep al volo può essere:

Codice: Seleziona tutto

grep -o 'viewtopic.php?f=[0-9]*&t=[0-9]*' [nome file con il sorgente della pagina]
Sì, sto trovando varie soluzione che puntano ad un file con la sorgente della pagina ma vorrei farlo al volo tramite una variabile ed includerlo in un do shell script di AppleScript e mi sto perdendo in quel bicchiere d'acqua...

Avatar utente
Why
Stato: Non connesso
Maccanico assiduo
Maccanico assiduo
Avatar utente
Iscritto il: sab, 29 nov 2014 19:45
Messaggi: 193

Top

Beh puoi passarlo anche in pipe a grep, un po' come quando fai:

Codice: Seleziona tutto

echo "testo" | grep ...
Non so dirti però come si faccia con AppleScript.

Stai attento con grep perché l'implementazione BSD su OS X differisce e ha meno comandi rispetto a quella GNU disponibile su Linux.

Giusto per completezza, con Ruby la stessa operazione sarebbe così:

Codice: Seleziona tutto

cat [file sorgente] | ruby -e 'puts $stdin.read.scan /viewtopic.php\?f=\d&t=\d+/'

PS: Sì, ho i command line tools installati ;).
Ultima modifica di Why il mer, 14 gen 2015 00:09, modificato 1 volta in totale.

Avatar utente
kato
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: ven, 12 nov 2010 15:16
Messaggi: 4856
Località: Roma

Top

Why ha scritto:Beh puoi passarlo anche in pipe a grep, un po' come quando fai:

Codice: Seleziona tutto

echo "testo" | grep ...
Sì, già fatto con

Codice: Seleziona tutto

tell application "Safari"
	set pagina to document of front window
	set sorgente_1 to source of pagina
	set sorgente to quoted form of sorgente_1
	set dacercare to "[0-9]&v"
	do shell script "echo " & sorgente & " | grep " & quoted form of dacercare
end tell
e "funziona" nel senso che il risultato sono tutte e solo le righe dove appare [0-9]&v ma non ricordo come si fa ad avere solo la stringa di ricerca e non tutta la riga :oops: .

Avatar utente
Why
Stato: Non connesso
Maccanico assiduo
Maccanico assiduo
Avatar utente
Iscritto il: sab, 29 nov 2014 19:45
Messaggi: 193

Top

Opzione -o di grep. :)

Da man grep

Codice: Seleziona tutto

     -o, --only-matching
             Prints only the matching part of the lines.

Avatar utente
kato
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: ven, 12 nov 2010 15:16
Messaggi: 4856
Località: Roma

Top

Why ha scritto:Opzione -o di grep. :)
Appena trovato! -o!

Grazie!

Avatar utente
fragrua
Stato: Non connesso
Admin of my life
Admin of my life
Avatar utente
Iscritto il: sab, 08 ott 2005 07:00
Messaggi: 62792
Località: [k]ragnano

Top

Contatta:
Non vedo l'ora di scaricare il cocco "munnato e buono". :)
La prima cosa su cui devi investire è il benessere del tuo corpo, l'unica cosa che ti porterai nella tomba.
Franz Grua (sarebbe fragrua)

In un mondo perfetto io sarei un essere inutile.
©2015 albertocchio

—> Uso corretto del Forum: https://goo.gl/9xOO0a

Immagine

Avatar utente
kato
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: ven, 12 nov 2010 15:16
Messaggi: 4856
Località: Roma

Top

fragrua ha scritto:Non vedo l'ora di scaricare il cocco "munnato e buono". :)
E poi dice che uno risponde... Ora manca solo la parte di aprire tab:

Codice: Seleziona tutto

tell application "Safari"
	set pagina to document of front window
	set sorgente_1 to source of pagina
	set sorgente to quoted form of sorgente_1
	set dacercare to "[0-9][0-9][0-9][0-9][0-9]&v"
	set IDnuovi to do shell script "echo " & sorgente & " | grep -o " & quoted form of dacercare
	set numeroID to count of paragraph of IDnuovi
	repeat with n from 1 to numeroID
		set IDtab to characters 1 thru 5 of paragraph n of IDnuovi as text
		display dialog IDtab as text
	end repeat
end tell

Avatar utente
Why
Stato: Non connesso
Maccanico assiduo
Maccanico assiduo
Avatar utente
Iscritto il: sab, 29 nov 2014 19:45
Messaggi: 193

Top

È nella pagina precedente:

Codice: Seleziona tutto

tell application "Safari" to open location "url"
Immagino quindi si possa togliere il "tell application "Safari" to".

Avatar utente
kato
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: ven, 12 nov 2010 15:16
Messaggi: 4856
Località: Roma

Top

Ho perso tempo a leggere le discussioni che ha aperto... Eccola funzionante ma senza particolari verifiche o abbellimenti.

Codice: Seleziona tutto

tell application "Safari"
	set pagina to document of front window
	set sorgente_1 to source of pagina
	set sorgente to quoted form of sorgente_1
	set dacercare to "[0-9][0-9][0-9][0-9][0-9]&v"
	set IDnuovi to do shell script "echo " & sorgente & " | grep -o " & quoted form of dacercare
	set numeroID to count of paragraph of IDnuovi
	repeat with n from 1 to numeroID
		set IDtab to characters 1 thru 5 of paragraph n of IDnuovi as text
		set URLtab to "https://www.imaccanici.org/forum/viewtopic.php?f=9&t=" & IDtab & "&view=unread#unread"
		open location URLtab
	end repeat
end tell
Con questa versione bisogna avere la finestra di Safari già aperta in primo piano sulla pagina dei "Messaggi non letti". Domani la versione da usare come Servizio e senza la necessità di aprire prima la pagina del forum.

Buonanotte e grazie!

Avatar utente
kato
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: ven, 12 nov 2010 15:16
Messaggi: 4856
Località: Roma

Top

Mi sono accorto che alcuni ID sono di quattro cifre ed altri di cinque. Versione ancora un po' rozza ma migliorata anche su altri fronti e pare funzionare decentemente dal menù Script.

Codice: Seleziona tutto

tell application "Safari"
	activate
	open location "https://www.imaccanici.org/forum/search.php?search_id=unreadposts"
	delay 2
	set pagina to document of front window
	set sorgente_1 to source of pagina
	set sorgente to quoted form of sorgente_1
	set grep4 to "=[0-9][0-9][0-9][0-9]&v"
	set grep5 to "=[0-9][0-9][0-9][0-9][0-9]&v"
	set ID4 to do shell script "echo " & sorgente & " | grep -o " & quoted form of grep4
	set ID5 to do shell script "echo " & sorgente & " | grep -o " & quoted form of grep5
	set numeroID to count of paragraph of ID4
	repeat with n from 1 to numeroID
		set IDtab to characters 2 thru 5 of paragraph n of ID4 as text
		set URLtab to "https://www.imaccanici.org/forum/viewtopic.php?f=9&t=" & IDtab & "&view=unread#unread"
		open location URLtab
		delay 0.2
	end repeat
	set numeroID to count of paragraph of ID5
	repeat with n from 1 to numeroID
		set IDtab to characters 2 thru 6 of paragraph n of ID5 as text
		set URLtab to "https://www.imaccanici.org/forum/viewtopic.php?f=9&t=" & IDtab & "&view=unread#unread"
		open location URLtab
		delay 0.2
	end repeat
end tell

Avatar utente
dot•
Stato: Non connesso
Maccanico assiduo
Maccanico assiduo
Avatar utente
Iscritto il: lun, 25 ago 2014 20:22
Messaggi: 161

Top

Mi sono accorto che alcuni ID sono di quattro cifre ed altri di cinque
su indesign si può usare in questo modo

Codice: Seleziona tutto

[0-9]{4,5}

Avatar utente
kato
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: ven, 12 nov 2010 15:16
Messaggi: 4856
Località: Roma

Top

dot• ha scritto:su indesign si può usare in questo modo
Grazie, ma in effetti andrebbero catturati nella pagina sorgente tutti quelli univoci tra, ad esempio t= e &v. Quando ho un altro attimo, pettino meglio.

Saluti,

Giulio

Avatar utente
faxus
Stato: Non connesso
Pro-Expert 
Pro-Expert 
Avatar utente
Iscritto il: lun, 02 giu 2014 15:12
Messaggi: 30459
Località: Circondato dalle bufale

Top

Contatta:
kato ha scritto:... pettino meglio...
Ma non le giraffe!

Avatar utente
Uno_qualunque
Stato: Non connesso
Expert
Expert
Avatar utente
Iscritto il: lun, 12 lug 2010 09:32
Messaggi: 3267

Top

Kato e Why, chapeau! :)
Fate il backup, fate il backup, ricordate di fare il backup, non dimenticate di fare il backup.

"Il backup è quella cosa che andava fatta prima" (antico proverbio cinese)

Rispondi

Torna a “Software”

Chi c’è in linea

Visitano il forum: SemrushBot [Bot] e 17 ospiti