voglio un chilo di loghi canale

Forum principale per problemi di compilazione, installazione, configurazione etc.

Moderatori: ragno, tapino, alez, zulu, davidea

Avatar utente
Gringo
Messaggi: 1796
Iscritto il: 21 gen 2007, 19:36

Re: voglio un chilo di loghi canale

Messaggio da Gringo »

A proposito il logo di "RaiSport" nuovo non è ancora disponibile ma si può usare quello presente in Wikipedia per costruirselo.
VDRBOX:
Software: ArchLinux 0.8 Don't Panic, VDR 1.6.0-2 con Extension Patch v.62 (> 70 plugins in IT)
Hardware: Intel P4 2,4 Ghz, 1 GB RAM, DVB-S Hauppauge WinTV Nexus-S rev 2.1, DVB-T Terratec Cinergy 1400, telecomando Terratec
Case: Compaq D510 SFF
Avatar utente
alez
Messaggi: 3074
Iscritto il: 09 mag 2007, 17:11

Re: voglio un chilo di loghi canale

Messaggio da alez »

Trovato:

Codice: Seleziona tutto

sed -e 's,_, ,g'
Ciao alez
mona66
Messaggi: 27
Iscritto il: 18 set 2008, 00:56

Re: voglio un chilo di loghi canale

Messaggio da mona66 »

alez ha scritto:Trovato:

Codice: Seleziona tutto

sed -e 's,_, ,g'
Ciao
Grazie della risposta ma non funziona mi sembra eguale al comando da me postato sed -e 's/_/ /g'
Avatar utente
von fritz
Messaggi: 1479
Iscritto il: 18 gen 2007, 23:33

Re: voglio un chilo di loghi canale

Messaggio da von fritz »

Hello

Codice: Seleziona tutto

[fritz@Think_fritz ~]$ echo "Ma_perché_non_dovrebbe_funzionare_?" | sed -e 's/_/ /g'
Ma perché non dovrebbe funzionare ?
[fritz@Think_fritz ~]$
bye
VDRBOX-HD : in pensione!
ALTRO : freerunner (openmoko) ; nokia n900 ; 2 seagate dockstar, samsung ps64d8000, diversi dispositivi ARM (Allwinner, Amlogic) ;)
Don't feed the trolls non alimentate sistemi proprietari ;)

Linux rulez! :)
mona66
Messaggi: 27
Iscritto il: 18 set 2008, 00:56

Re: voglio un chilo di loghi canale

Messaggio da mona66 »

Ciao
grazie della risposta, sembra scontato ma applicandolo ad un gruppo di file non funziona, la soluzione era semplice bastava un ciclo di rename a tutti i file .png e/o jpg :oops:

Codice: Seleziona tutto

for n in *.png; do
rename -v 's/_/ /' *.png
done
Avatar utente
Gringo
Messaggi: 1796
Iscritto il: 21 gen 2007, 19:36

Re: voglio un chilo di loghi canale

Messaggio da Gringo »

johnnyrun ha scritto:Direi che ci siamo.
Facciamo così: qui ci sono i loghi scaricati con lo script senza integrarli con niente..
Risorse -> altro -> logos_AUTO_TEST.tar.gz
Utili per tirare fuori qualcosa a manina.

Poi qui invece metto uno script: settando bene le prime variabili: controlla se il canale è già stato preso, senò lo cerca con i tre metodi.
Non tocca nessuna directory di vdr, se non in lettura. Lavora in /tmp
I nuovi loghi trovati li mette (insieme ai vecchi) in /tmp/logos

Codice: Seleziona tutto

# chili_loghi.sh - VDR -JohnnyRun

# questi file /dir non vengono toccati
CF="/video/channels.conf"
LOGODIR="/video/plugins/skinenigmang/logos"
##... perchè i loghi li trovi poi qui
DESTLOGO="/tmp/logos";
NAZIONE="it";

OPTS=" -resize 80x80 -colors 16";

LYNGCOLL="/tmp/lyng"; ##collezione lyngsat
JPG="/tmp/jpg"
# questi vengono usati solo nel fetch da google
DAL=1;
QUANTI=300; # dal 100, ne aggiungo 50, quindi fino al 150
# fine google

mkdir -p $LOGODIR $DESTLOGO;
if [ -d $LOGODIR ]; then
 cp $LOGODIR/* $DESTLOGO;
fi
#scarico roba da lyng:
if [ -d /tmp/templyng ]; then
 echo temp lyng già presente..skippo il download
else 
  cd /tmp
  mkdir templyng;
  cd templyng;
  for num in $(seq 1 15); do 
    wget -p http://www.lyngsat-logo.com/tvcountry/$NAZIONE"_"$num.html;
  done
fi
mkdir -p /tmp/lyng
cp /tmp/templyng/www.lyngsat-logo.com/logo/tv/*/*jpg $LYNGCOLL;
cd $LYNGCOLL
echo cancello quel cazz di _$NAZIONE .... e l\'estensione .jpg
for file in *_$NAZIONE*; do echo $file;mv $file $(echo $file|sed s/_$NAZIONE//|sed s/.jpg//);done
echo fatto

# Metodo 1: da file già scaricati da lyngsat
mkdir -p $JPG;
if [ -d $LYNGCOLL ] ; then echo collezione presente;
else echo manca collezione lyngsat;
exit;
fi;


IFS=$(echo -en "\n\b")
for chan in $(cat $CF |awk -F \; '{print $1}'|awk -F : '{print $1}'); do 
  if [ -r "$DESTLOGO/$chan.xpm" ] ; then echo skip $chan;continue; fi;
  printf ".";
  rechan[0]=$(echo $chan|tr \[:upper:\] \[:lower:\]|sed s/\ /\_/g|sed s/\+1/plus1/); 
  rechan[1]=$(echo $chan|tr \[:upper:\] \[:lower:\]|sed s/\ /\_/g|sed s/\+1/_plus1/); 
  rechan[2]=$(echo ${rechan[0]}|sed s/\([0-9]*\)/_\1/);
  rechan[3]=$(echo ${rechan[2]}|sed s/^/mediaset_/);
  rechan[4]=$(echo ${rechan[2]}|sed s/_premium//);
  rechan[5]=$(echo ${rechan[2]}|sed s/_-_premium//);

  for num in $(seq 0 5); do 
#echo cerco $LYNGCOLL/${rechan[$num]} ;
    if [ -r $LYNGCOLL/${rechan[$num]} ]; then 
  echo trovato $num $chan ${rechan[$num]}
bash -c "convert $OPTS $LYNGCOLL/\"${rechan[$num]}\" $DESTLOGO/\"$chan\".xpm"
break;
    fi
  done
done

#metodo 2: cerco su google qualcosa che c'entra con lyngsat
for MODE in l g; do
 IFS=$(echo -en "\n\b")
 for CHAN in $(cat $CF|grep -v ^:|tail -n +$DAL|head -n $QUANTI |awk -F\; '{print $1}'|awk -F: '{print $1}'); do
   echo $CHAN;
   OC=$CHAN;
   if [ -r $DESTLOGO/$OC.xpm ] ; then echo skip $OC;continue; fi
   CHAN=$(echo $CHAN|sed s/+/%2B/|sed s/\ /+/g);
   echo cerco $CHAN;
   if [[ $MODE = "l" ]]; then
   echo LYNGSAT  MODE;
   LOGOURL=$(curl -A "mozilla/1.0" 'http://www.google.it/images?hl=it&gbv=2&tbs=isch%3A1&sa=1&q='$CHAN'+site%3Alyngsat-logo.com&aq=f&aqi=&aql=&oq=&gs_rfai='|lynx -stdin -dump|grep -m1 imgurl|sed s/.*imgurl=//|sed s/\&.*//);
     else
   echo GOOGLE  MODE;
   LOGOURL="http://t2.gstatic.com/images?q=tbn:"$(curl -A "mozilla/1.0" 'http://www.google.it/images?um=1&hl=it&gbv=2&'q=$CHAN'+logo&aq=f&aqi=g10&aql=&oq=&gs_rfai='|lynx -stdin -dump|grep -m1 tbnid|sed s/.*tbnid=//|sed s/:.*//)
    fi
   if [[ $LOGOURL = "" ]] ; then continue;fi
   echo $LOGOURL
   wget -t 4 --timeout=5 -O $JPG/"$OC" $LOGOURL;
   bash -c "convert $OPTS $JPG/\"$OC\" \"$DESTLOGO/$OC.xpm\""
   sleep 0.2;
 done
done
echo "trovi i loghi in $DESTLOGO";
Ciao Jonnyrun,
ho provato il tuo script e devo dire che funziona alla grande.

Una cosa però ho notato, per creare i loghi di Skinenigma-NG a suo tempo avevo parlato con lo sviluppatore che mi suggeriva di usare determinati parametri e perciò nel mio script avevo impostato questa riga:

Codice: Seleziona tutto

-resize 80x80! -colors 21 -depth 8 -type PaletteMatte -filter cubic -density 72x72
al posto della tua:

Codice: Seleziona tutto

-resize 80x80 -colors 16
Cosa ne pensi? Il logo potrebbe essere ancora più nitido?

Ma soprattutto come caspita si fa a rimuovere lo sfondo in modo che sia visibile solo il logo senza lo sfondo bianco? Io di solito lo facevo con GIMP usando Livello -> Trasparenza -> Colore ad alfa ma farlo per ogni logo è da impazzire :-(
VDRBOX:
Software: ArchLinux 0.8 Don't Panic, VDR 1.6.0-2 con Extension Patch v.62 (> 70 plugins in IT)
Hardware: Intel P4 2,4 Ghz, 1 GB RAM, DVB-S Hauppauge WinTV Nexus-S rev 2.1, DVB-T Terratec Cinergy 1400, telecomando Terratec
Case: Compaq D510 SFF
Avatar utente
jan23
Messaggi: 202
Iscritto il: 08 gen 2008, 21:23
Località: in giro...

Re: voglio un chilo di loghi canale

Messaggio da jan23 »

Ciao johnnyrun

e grazie mille davvero per il tuo lavoro.
Disattivando il "metodo 2" mi sono accorto che lo script converte solo una piccola parte delle immagini
scaricate da lyngsat. Il problema sembra legato al fatto che l'estensione non viene cancellata in tutti i file,
così ho risolto in questo modo:

Codice: Seleziona tutto

#for file in *_$NAZIONE*; do echo $file;mv $file $(echo $file|sed s/_$NAZIONE//|sed s/.jpg//);done
for file in *_$NAZIONE*; do echo $file;mv $file $(echo $file|sed s/_$NAZIONE//);done
for file in *.jpg*; do echo $file;mv $file $(echo $file|sed s/.jpg//);done


Tuttavia solo 100 delle 300 e passa immagini salvate vengono convertite.
Non capisco perché.
Avresti qualche idea?

ciao a tutti

Mi auto-rispondo: converte solo i loghi dei canali che riconosce nel channels.conf.
Rimangono eslusi i mediaset e molti altri. :(

Ciao
VDR: vdr-2.0.5 (FHS) e 2.1.3 (LCLBLD) su Opensuse-13.1 (x86_64), TT S2-6400, LNB Inverto Twin Black Ultra, rotore Moteck SG-2100
ceo16
Messaggi: 324
Iscritto il: 21 gen 2008, 18:40

Re: voglio un chilo di loghi canale

Messaggio da ceo16 »

ciao mona non sò se hai risolto ma grazie a Grazy con questa riga funziona

Codice: Seleziona tutto

for i in * ; do [ -f $i ] && mv -i $i "`echo $i | sed -r 's/_/ /g'`" ; done
ciao
Ceo16
Rispondi