Aide pour modifier un AppleScript

gluzy

Membre confirmé
15 Juin 2010
48
1
Bonjour,
J'avais posté sur Macbidouille une demande d'un script qui téléchargeais automatiquement les nouvelles musiques publiées sur ce site de musique HipHop & Rn'B.
Cette demande a été entendu et une personne m'avait réalisé ce script et régulièrement, quand j'avais un problème avec, elle me le modifiait cependant, cette personne ne réponds plus à l'appel ( (je pense que son compte à été supprimé) donc je suis "mal" car je rencontre de nouveau un problème donc j'aimerais savoir si quelqu'un pouvait le réadapter pour qu'il re-fonctionne.

Pour plus d'info, voici les deux posts où il m'avait aider et poster des MAJ sur script :
http://forum.macbidouille.com/index.php?sh...80&hl=gluzy
http://forum.macbidouille.com/index.php?sh...68&hl=gluzy

L'AppleScript en question :
Bloc de code:
on openSite_Safari(t_url)
	tell application "Safari" to try
		make new document with properties {URL:t_url}
		delay 6
		tell front document
			set i to 1
			repeat until its source contains "</body>"
				delay 4
				set i to i + 1
				if i > 4 then error -128 -- la page n'est pas chargée aprés 18 secondes
			end repeat
		end tell
		return t_url
	on error
		try
			close front document
		end try
		return ""
	end try
end openSite_Safari

set r to (do shell script "/usr/bin/curl 'http://www.hotnewhiphop.com/'" without altering line endings)
if paragraph 1 of r contains "database" or r is "" then return -- probleme, ce sera pour la prochaine fois
set s to quoted form of r

set t_folder to "~/Documents/.dossier_hiphopearly.com/"
set last_URLs to do shell script "/bin/mkdir -p " & t_folder & "; cd " & t_folder & ";if [ ! -e old_links.txt ];then /usr/bin/touch old_links.txt; fi;echo " & s & " | /usr/bin/perl -ne '$i=0;while (<>) {if ( /<div class=\"titre group\">[^<].*, 201[1-9]</ .. eof) { if  (/.*<h3><a href=\"/) {s/.*<a href=\"//, s/\".*//, print;$i++} if ((/<div class=\"titre group\">/) && ($i>0)) {exit;}}}' > current_links.txt; /usr/bin/diff -a --changed-group-format=\"%>\" --unchanged-line-format=\"\" old_links.txt current_links.txt; /bin/mv -f  current_links.txt old_links.txt;"

if last_URLs is not "" then
	repeat with siteURL in (get paragraphs of last_URLs)
		set MP3_URL to do shell script "/usr/bin/curl " & (quoted form of siteURL) & " | /usr/bin/grep 'id=\"downloadLink1\"' | /usr/bin/sed \"s/.*doShareLink('//;s/');.*$//\" "
		if MP3_URL is not "" then
			set MP3_URL to my openSite_Safari(MP3_URL)
			if MP3_URL is not "" then
				tell application "Safari"
					tell front document
						try
							set URL to MP3_URL
							delay 6
							set i to 1
							repeat until its source contains "</body>"
								delay 4
								set i to i + 1
								if i > 4 then error -128 -- la page n'est pas chargée aprés 18 secondes
							end repeat
							delay 15 -- temps d'attente à cause du compteur limelinx
							set URL to MP3_URL -- download le mp3
							delay 13
						end try
						close
					end tell
				end tell
			end if
		end if
	end repeat
	-- si iTunes ne copie pas les fichiers dans son emplacement ( preferences d'iTunes --> onglet avancé ) :
	-- ne pas utiliser cette fonction sans  modifier la fonction, supprime la ligne suivante 
	my ajoute_fichiers_dans_itunes()
end if

on ajoute_fichiers_dans_itunes() --- *** ajoute les mp3 dans iTunes, 
	set PlistFile to "~/Library/Preferences/com.apple.safari.plist"
	try
		tell application "System Events" to set down_Folder to value of property list item "DownloadsPath" of contents of property list file PlistFile
		if down_Folder starts with "~" then
			set down_Folder to "~/" & (quoted form of (text 3 thru -1 of down_Folder))
		else
			set down_Folder to quoted form of down_Folder
		end if
	on error
		set down_Folder to quoted form of POSIX path of (path to downloads folder)
	end try
	
	repeat 5 times -- boucle : vérifie le dossier de téléchargement,  1 minute 15 secondes au maximum
		set n to do shell script "/usr/bin/find " & down_Folder & " -maxdepth 1 -name '*.mp3.download*' -print | wc -l"
		set r to do shell script "/usr/bin/find " & down_Folder & " -maxdepth 1 -name '*.mp3' -print"
		if r is not "" then repeat with i in (get paragraphs of r)
			try
				set t_mp3 to (POSIX file i) as alias
				tell application "iTunes" to set track_ajouter to add t_mp3
				track_ajouter -- erreur si non défini, iTunes n'a pas ajouté le fichier dans sa bibliotheque
				do shell script "/bin/rm -f " & (quoted form of i) -- si le mp3 est copier dans iTunes, supprime le fichier mp3
			end try
		end repeat
		if n is "" or word 1 of n is "0" then exit repeat -- aucun fichier .mp3.download  en cours de téléchargement
		delay 15 -- augmenter le temps en secondes, si votre  internet est  lent
	end repeat
end ajoute_fichiers_dans_itunes

En espérant que quelqu'un pourra et voudra reprendre la relève,
Gluzy :)
 
Si tu expliquais ce qui ne fonctionne plus, ça permettrait d'orienter nos recherches!
 
Je ne m'y connais absolument pas enfaite. Je constate juste qu'il ne marche plus donc l'erreur est peut être à cherché lorsque le script analyse le site car je pense qu'il n'arrive plus à trouver les liens