Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1851 Le 21/05/2015, à 12:46

ljere

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

merci pour le lien tiramiseb, j'irai y jeter un oeil ça peut toujours être utile wink


astuce nvidia FX5200
Toshiba satellite_c670d-11l ubuntu 15.04 64 bit

Hors ligne

#1852 Le 08/06/2015, à 18:41

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

[ Modération : Image animée supprimée ]

Voila je viens ici pour faire une demande de script pour un conky radiotray.

je cherche à afficher l'image de la pochette joué par radiotray

j'ai réussi à faire écrire un fichier txt qui met ce qui est en train d'être joué donc je voudrais (si cela est possible ) qu'un script

récupère la première ligne (en fait il ni qu'une ligne qui est régénéré à chaque changement de titre )et aille chercher dans

google-image la pochette ou l'image correspondant à l'artiste et la télécharge automatiquement dans le dossier du conky.

Un truc de ce genre :

!/bin/bash

  wget ligne de : artite_titre.txt
      
     # puis demander à google image 
    wget  https://www.google.com/searchbyimage?image_url= résultat de artiste_titre.txt
    
    #puis prendre la première image la mettre dans le dossier suivant 

     ~/.conky/radiotray/cover

       # la convertir et l'afficher dans :
    convert ~/.conky/radiotray/cover/$nomimage.jpg ~/.conky/radiotray/cover/cover.png



exit

et enfin la supprimer lors du changement de titre .

Je sais que c'est du balèze et si cela n'est pas faisable je laisse tomber .

Merci d'avance et


   
       
         
   

[ Modération : Image animée supprimée ]


[b]Modération[/b]

Merci de respecter les membres du forum qui ont une connexion limitée en n'utilisant pas d'images animées quand cela n'est pas nécessaire à la résolution d'un problème.

Dernière modification par cqfd93 (Le 02/07/2015, à 20:07)

Hors ligne

#1853 Le 02/07/2015, à 19:50

WW

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut @loutch,

  Peux-tu nous partager ton script permettant de connaître le morceau en cours de lecture, s'il te plait ?
Tu as réussi à détecter le changement de titre je te laisse donc la suppression de l'image du morceau précédent.

D'après ce que je comprend ce qui te pose problème c'est la récupération de la pochette via google image.

La réponse courte

titre=$(head -1 artiste_titre.txt)
lienMiniature=$(wget -U'Googlebot-Image/1.0' -qO - "www.google.fr/search?q=$titre\&tbm=isch" | perl -pe 's!.*?<img .*?src="([^"]*)".*!$1!')
wget -qO miniatureGoogleImage $lienMiniature


La réponse longue

[HS]Pour information le moyen le plus sûr et souvent le plus simple pour interroger des services distants comme google image est d'utiliser les interfaces de programmation mis à disposition par les propriétaires des services.
A savoir que ces interfaces sont souvent utilisables avec une clé gratuite ou non. Pour exemple : http://stackoverflow.com/questions/5338 … search-api
Si tu veux faire des recherches là-dessus l'acronyme anglais est API, on parle aussi pour ces cas de web services.[/HS]

Cependant la solution ci-après utilise directement les pages web, les données souhaitées sont isolées via l'analyse des sources HTML de ces pages.
Leur récupération s'effectue à l'aide d'expressions rationnelles (toujours pour des recherches l'abréviation anglaise est regex).
Cela a pour inconvénient d'être extrêmement sensible aux modifications des sources HTML et de récupérer toute la page pour une seule information.

J'utilise ici les options longues alors que la réponse courte utilise les courtes et même un raccourci -1 de head qui n'est pas une option standard la "bonne" syntaxe est head -n 1.
Les options longues sont préférables dans les scripts car plus compréhensible pour un travail ultérieur.

# Récupération de ton travail :)
titre=$(head --lines=1 artiste_titre.txt)

# Affection du lien de la 1ere miniature de google image à la variable lienMiniature
# Utilisation de wget avec un agent utilisateur robot --user-agent 'Googlebot-Image/1.0' : la page téléchargée est plus légère
# --quiet : silencieux, pas d'affichage par wget
# --output-document=- : document dans lequel sont sauvés les sources HTML téléchargées.
# - : ici la page étant un résultat intermédiaire il n'est pas nécessaire de la sauver son contenu est envoyé en flux à la commande suivant le tube
# | : un tube permet de traiter le résultat d'une commande avec la commande qui suit le tube
# \ : ici notre tube est suivi de \ afin de taper la commande de traitement du résultat sur une nouvelle ligne (de même & est échappé)
lienMiniature=$(wget --user-agent 'Googlebot-Image/1.0' --quiet --output-document=- "www.google.fr/search?q=${title}\&tbm=isch" |\

# la commande suivant le tube est celle-ci
# filtre pour ne récupérer que le lien de la première image
# .*?<img : tout jusqu'à la première balise img
# .*?src=" : tout jusqu'au premier attribut src (ici celui de la première balise img)
# ([^"]*)" : tout ce qui n'est pas un " jusqu'au prochain " = récupération du lien
# .* : d'autres caractères après sont autorisées
# $1 : premier et unique élément récupéré
perl -pe 's!.*?<img .*?src="([^"]*)".*!$1!')

# Téléchargement silencieux vers le fichier miniatureGoogleImage depuis le lien précédement récupéré
wget --quiet --output-document="miniatureGoogleImage" ${lienMiniature}

Si tu veux télécharger l'image cible et non la miniature générée par google une solution possible :

titre=$(head --lines=1 artiste_titre.txt)
# Ajout d'un compteur si jamais tu veux faire défiler plusieurs images
count=1

imageLink=$(wget --user-agent 'Firefox/38.0' -qO - "https://www.google.fr/search?q=${titre}\&tbm=isch" |\
sed 's/</\n</g' | grep "a href=\"http://www.google.fr/imgres?imgurl=" | head --lines=${count} |\
sed 's!.*http://www.google.fr/imgres?imgurl=\([^&]*\).*!\1!')
wget -quiet --output-document="googleImage" $imageLink

Ici j'utilise sed qui est l'utilitaire des substitutions (à savoir que le "tout" (comprendre .*) de sed ne prend pas en charge les accents).

[HS]D'ailleurs avec les accents viennent les problèmes d'encodage. Pour les caractères accentués et autres caractères spécifiques le problème peut être gérer via l'utilisation de la codification unicode ou par des mécanismes d'échappement.
Pour interpréter les unicodes : echo -e (celui inclus dans bash pas le /bin/echo)
Un mécanisme d'échappement de Perl :
perl -e 'use URI::Escape; print uri_escape($ARGV[0]);' "$variableATraiter"
perl -e 'use URI::Escape; print uri_unescape($ARGV[0]);' "$variableATraiter"[/HS]

Bonne soirée


Quand on sait c'est facile, mais qui n'a jamais été débutant.

Hors ligne

#1854 Le 08/07/2015, à 13:07

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Hello WW

j'ai fait un script avec la réponse courte et ça fonctionne au poil j'ai juste rajouté une fonction convert pour transformer miniatureGoogleImage en pochette.png

le script:

#bin/bash

 
titre=$(head -1 ~/.conky/radiotray/artiste_titre.txt)
lienMiniature=$(wget -U'Googlebot-Image/1.0' -qO - "www.google.fr/search?q=$titre\&tbm=isch" | perl -pe 's!.*?<img .*?src="([^"]*)".*!$1!')
wget -qO miniatureGoogleImage $lienMiniature

convert ~/miniatureGoogleImage ~/.conky/radiotray/pochette.png
WW a écrit :

Peux-tu nous partager ton script permettant de connaître le morceau en cours de lecture, s'il te plait ?

Il ni a pas de script j'ai juste rajouté au conky cette ligne et créé le fichier artiste_tritre.txt:

${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray getCurrentMetaData| fold -s -w40 > ~/.conky/radiotray/artiste_titre.txt}

La partie après TEXT :

${voffset -30}${font URW Chancery L:style=Bold:size=20}${alignc}Radiotray ${font}
Radio : ${alignc}${font URW Chancery L:style=Bold:size=12}${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}$font
${alignc}${voffset 50}En ce moment :
${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray getCurrentMetaData| fold -s -w40 }
${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray getCurrentMetaData| fold -s -w40 > ~/.conky/radiotray/artiste_titre.txt}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "RTL"}${lua fDrawImage ~/.conky/radiotray/logos/rtl.png 100 50 50 50}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "HOTMIX80"}${lua fDrawImage ~/.conky/radiotray/logos/hotmix-80.png 100 50 50 50}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "MAXI80"}${lua fDrawImage ~/.conky/radiotray/logos/maxi80.png 100 50 50 50}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "RTL2"}${lua fDrawImage ~/.conky/radiotray/logos/rtl2.png 100 50 50 50}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "MAGNUM LA RADIO"}${lua fDrawImage ~/.conky/radiotray/logos/magnumradio.png 40 50 150 50}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "LOUNGERADIO"}${lua fDrawImage ~/.conky/radiotray/logos/image.png 100 50 50 50}${else}
${if_match "${execi 10 qdbus net.sourceforge.radiotray /net/sourceforge/radiotray net.sourceforge.radiotray.getCurrentRadio}" == "RFM"}${lua fDrawImage ~/.conky/radiotray/logos/rfm.png 100 50 50 50}${endif}
${endif}${endif}${endif}${endif}${endif}${endif}
${execi 10 ~/.conky/radiotray/pochette.sh}
${lua fDrawImage ~/.conky/radiotray/pochette.png 80 150 100 100}
${voffset -1000}

Encore merci et

@+

Dernière modification par loutch (Le 10/07/2015, à 13:04)

Hors ligne

#1855 Le 08/07/2015, à 13:26

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Re

" mode Hors Sujet"

aux modos ok pas de problème


@+

Dernière modification par loutch (Le 08/07/2015, à 13:36)

Hors ligne

#1856 Le 09/07/2015, à 23:21

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonsoir WW

Je viens d'essayer la version image :

titre=$(head --lines=1 ~/.conky/radiotray/artiste_titre.txt)
# Ajout d'un compteur si jamais tu veux faire défiler plusieurs images
count=1

imageLink=$(wget --user-agent 'Firefox/38.0' -qO - "https://www.google.fr/search?q=${titre}\&tbm=isch" |\
sed 's/</\n</g' | grep "a href=\"http://www.google.fr/imgres?imgurl=" | head --lines=${count} |\
sed 's!.*http://www.google.fr/imgres?imgurl=\([^&]*\).*!\1!')
wget -quiet --output-document="googleImage" $imageLink

Le problème c'est que je ne trouve pas l'image télécharger contrairement @ la miniature qui se trouve dans mon home.

@+

Hors ligne

#1857 Le 12/07/2015, à 13:43

WW

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut @loutch,

  L'image téléchargée de trouve dans le même répertoire que le script tu peux préciser un chemin a la commande wget via l'option --output-document.

Si ca ne recupere rien il y a certainement un problème lors de l'extraction du lien depuis les sources HTML. Peux tu m'indiquer un exemple de recherche Google image posant problème?

À+


Quand on sait c'est facile, mais qui n'a jamais été débutant.

Hors ligne

#1858 Le 12/07/2015, à 19:51

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonsoir WW

WW a écrit :

Peux tu m'indiquer un exemple de recherche Google image posant problème?

Justement non aucune recherche ne fonctionne .

@+

Hors ligne

#1859 Le 12/07/2015, à 20:11

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

RE

C@ marche  j'ai Qwanté un peu et j'ai trouvé il fallait rajouter .jpg après

"googleImage"

.

le script :

 #!/bin/bash


titre=$(head --lines=1 ~/.conky/radiotray/artiste_titre.txt)
# Ajout d'un compteur si jamais tu veux faire défiler plusieurs images
count=1

imageLink=$(wget --user-agent 'Firefox/38.0' -qO - "https://www.google.fr/search?q=${titre}\&tbm=isch" |\
sed 's/</\n</g' | grep "a href=\"http://www.google.fr/imgres?imgurl=" | head --lines=${count} |\
sed 's!.*http://www.google.fr/imgres?imgurl=\([^&]*\).*!\1!')
wget --output-document="googleImage".jpg $imageLink


convert ~/googleImage.jpg ~/.conky/radiotray/image.png

Maintenant il y a aussi un autre problème ,le script ne se lance pas @ la demande du conky, il fonctionne au poil seulement lors d'un double-clic dans dolphin ( pourtant le script est bien éxécutable.)


La commande dans conky:

${execi 10 ~/.conky/radiotray/image.sh}

J'utilise la même commande pour les miniatures et ç@ fonctionne au poil.

${execi 10 ~/.conky/radiotray/pochette.sh}


@+

Edit du 13-07

C@ fonctionne l'image comme la miniature apparait bien dans mon home :

remplacé :

execi 10

par

texeci 10

mais l'image disparait toute les 20-30 secondes   .

encore MERCI  et

@+

Dernière modification par loutch (Le 13/07/2015, à 13:25)

Hors ligne

#1860 Le 13/07/2015, à 09:59

enebre

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour,
Y a t il possibilité d'obtenir un affichage en plein écran de la carte donnée par le site : http://www.radars-auto.com/emplacements … rientales/
Scripturalement parlant.
edit: je suis allé dans le code source de l'image et je constate que c'est une composition assez importante d'images, je pense préférable d'oublier ma demande wink
merci

Dernière modification par enebre (Le 13/07/2015, à 10:39)


X-Voyager.14.04 & 8x, 64b, hp dv6, 8Go ram, seen & unseen - site - ConkyLoungeRadio - ? - !

Hors ligne

#1861 Le 13/07/2015, à 13:43

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour

j'essais ceci :

imlib_cache_flush_interval 20
imlib_cache_size 100

et pour le moment ç@ clignote plus .

@+

Hors ligne

#1862 Le 25/07/2015, à 11:21

enebre

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour,
J'ai un petit script de recherche développé par barbican82@
que j'aimerais modifier pour obtenir le résultat des documents de mon home odt pdf epub pps doc txt et aussi les fichiers en texte brut généré par mousepad sur xfce (sans extension visible)
J'obtiens ce que je recherche sauf les fichiers de texte brut sad
merci de votre aide
si possible j'aimerais aussi sélectionner plusieurs dossiers et avoir la possibilité d'en exclure certains (par exemple dossiers se trouvant dans téléchargement)
Le script :

#!/bin/sh -x
# script of barbican82@
# Modified by rodofr Live Voyager
# script de recherche récursive des videos avec création d'une page web
# on se place dans le home du user courant
# dependance : zenity

cd
ici=`pwd`
##On crée/vide le fichier
> $ici/index.html

# Selection du répertoire à explorer ($HOME par defaut)
chemin=$(zenity  --file-selection --title="Select Directory that contains JPEGS" --directory --filename=$HOME)
#chemin=$(HOME /media/ombre/53a67143-248a-45c3-9785-a210988d2c04/home/ombre/)
#Selection du type de fichier à chercher
#doc=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title="Saisie" --text="Selection" --entry-text="Movies" Music Document Ebook)
doc=Document

#Si on clique sur le bouton Annuler
if [ "$?" -eq 1 ]; then
    #On quitte le script
    exit
fi

case $doc in
		1) 
			exit 
		;;
		
		Movies)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Enter all or part of the name of the movie or leave blank - Entrez tout ou partie du nom du film ou laissez vide" )

#Si on clique sur le bouton Annuler
if [ "$?" -eq 1 ]; then
    #On quitte le script
    exit
fi

#Génération de la page web
# en-tête
echo '<html>' >> index.html
echo '<head><title></title><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>' >> index.html
echo '<h2>Movies</h2>' >> index.html

		# recherche des fichiers videos, on se limite aux avi AVI, mp4 MP4 et mkv MKV
		if [$rep == ""] ;then 
				find  $chemin $file -type f -iname '*.mp4' -o -iname '*.avi' -o -iname '*.mkv' | while read i
			#on ajoute les fichiers trouvés dans la page html
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done

				else 
				find $chemin $file -type f -iname "*$rep*.mp4" -o -iname "*$rep*.avi" -o -iname "*$rep*.mkv" | while read i
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
		fi
			;;

		Music)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Enter all or part of the name of the movie or leave blank - Entrez tout ou partie du nom du film ou laissez vide" )

#Si on clique sur le bouton Annuler
if [ "$?" -eq 1 ]; then
    #On quitte le script
    exit
fi

#Génération de la page web
# en-tête
echo '<html>' >> index.html
echo '<head><title></title><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>' >> index.html
echo '<h1>Music</h1>' >> index.html

		# recherche des fichiers sons on se limite aux mp3, flac, wav
		if [$rep == ""] ;then 
				find $chemin $file -type f -iname '*.mp3' -o -iname '*.flac' -o -iname '*.wav' | while read i
				#on ajoute les fichiers trouvés dans la page html
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else	 
					find $chemin  $file -type f -iname "*$rep*.mp3" -o -iname "*$rep*.flac" -o -iname "*$rep*.wav" | while read i
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
		fi
			;;

		Document)
			#rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Enter all or part of the name of the movie or leave blank - Entrez tout ou partie du nom du film ou laissez vide" )

#Si on clique sur le bouton Annuler
if [ "$?" -eq 1 ]; then
    #On quitte le script
    exit
fi

#Génération de la page web
# en-tête
echo '<html>' >> index.html
echo '<head><title></title><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>' >> index.html
echo '<h2>Document</h2>' >> index.html

			# recherche des fichiers  on se limite aux doc, xls, odt, ods
		if [$rep == ""] ;then 
				find $chemin $file -type f -iname '*.doc' -o -iname '*.odt' -o -iname '*.xls' -o -iname '*.ods' -o -iname '*.pdf' -o -iname '*.epub' -o -iname '*.texte brut' -o -iname '*.pps' | while read i
				#on ajoute les fichiers trouvés dans la page html
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else 
				find $chemin $file -type f -iname "*$rep*.doc" -o -iname "*$rep*.odt" -o -iname "*$rep*.xls" -o -iname "*$rep*.pdf" -o -iname "*$rep*." -o -iname "*$rep*.epub" -o -iname "*$rep*.ods"| while read i
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done	
		fi
			;;
		Ebook)
			rep=$(zenity --entry --ok-label="Valider" --cancel-label="Annuler" --width=400 --height=100 --title=" Saisie" --text="Enter all or part of the name of the movie or leave blank - Entrez tout ou partie du nom du film ou laissez vide" )

#Si on clique sur le bouton Annuler
if [ "$?" -eq 1 ]; then
    #On quitte le script
    exit
fi

#Génération de la page web
# en-tête
echo '<html>' >> index.html
echo '<head><title></title><meta http-equiv="content-type" content="text/html; charset=utf-8" /></head>' >> index.html
echo '<h2>Ebook</h2>' >> index.html

			# recherche des fichiers  on se limite aux epub, pdf 
		if [$rep == ""] ;then 
				find $chemin $file -type f -iname '*.epub' -o -iname '*.pdf'  | while read i
				#on ajoute les fichiers trouvés dans la page html
				do
					echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done
				else 
				find $chemin $file -type f -iname "*$rep*.epub" -o -iname "*$rep*.pdf " | while read i
				do
				echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
				done	
		fi
			;;
			esac
	#Génération de la page web # en-tête
		echo '<html>' >> $ici/index.html
		echo '<li><a href="'${i}'">'${i}'</a></li>' >> $ici/index.html
	
echo '</ul></body></html>' >> $ici/index.html
# firefox ouvre la page
/home/ombre/Téléchargements/firefox/firefox $ici/index.html

#fin
exit 0

Dernière modification par enebre (Le 25/07/2015, à 11:26)


X-Voyager.14.04 & 8x, 64b, hp dv6, 8Go ram, seen & unseen - site - ConkyLoungeRadio - ? - !

Hors ligne

Haut de page ↑