Przydatne skrypty

Wyłącznie system! Wątpliwości dotyczące aplikacji proszę umieszczać niżej, w odpowiednich forach.
Awatar użytkownika
kapat
Sędziwy Jeż
Sędziwy Jeż
Posty: 62
Rejestracja: 09 mar 2008, 21:55
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: kapat » 29 wrz 2010, 14:10

LukAs pisze:@PTH, fajnie gdybyś to w demona zamienił tak, żeby z automata kopiował pobrany obraz video. Tylko, że flash to takie dziadostwo, że nigdy nie wiadomo jak się zachowa i film może być uszkodzony lub niepełny.



O ile buforowanie nie zostanie przerwane bo z tym to każdy wie jak jest ;) Jakby się człowiek nie starał, to i tak będzie źle.
A próbowaliście np w ten sposób że do skryptu przekazywany jest argument w postaci linku do strony jeśli staus wykonania jest bez błędu = true to flash został już pobrany i można go przekopiować.
Można by wtedy np wget-a użyć, lub curla
Pozdrawiam. Kapat

"Informatyk nie czyta, on przetwarza informacje."
outslider
Sędziwy Jeż
Sędziwy Jeż
Posty: 68
Rejestracja: 03 lis 2007, 23:14
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: outslider » 30 wrz 2010, 18:45

kapat, tylko nie znamy linku do filmiku flash na YT, a byłby potrzebny dla wgeta. On jest chyba jakoś rozwiązywany przez javascript, a tego języka za czorta nie umiem zrozumieć:D Bo link do strony =/= link do filmiku, oczywiście. Wget nie pobiera flasha, jak się mu poda stronę, chyba że znacie jakieś magiczne parametry? Rozmiar manuala mnie przerasta...
Awatar użytkownika
kapat
Sędziwy Jeż
Sędziwy Jeż
Posty: 62
Rejestracja: 09 mar 2008, 21:55
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: kapat » 01 paź 2010, 00:09

outslider pisze:kapat, tylko nie znamy linku do filmiku flash na YT, a byłby potrzebny dla wgeta. On jest chyba jakoś rozwiązywany przez javascript, a tego języka za czorta nie umiem zrozumieć:D Bo link do strony =/= link do filmiku, oczywiście. Wget nie pobiera flasha, jak się mu poda stronę, chyba że znacie jakieś magiczne parametry? Rozmiar manuala mnie przerasta...
Prosze bardzo :) sposbów napewno jest więcej ;)
http://linux.byexamples.com/archives/30 ... m-youtube/
http://www.go2linux.org/wget-to-download-youtube-videos
Pozdrawiam. Kapat

"Informatyk nie czyta, on przetwarza informacje."
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 3680
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: jacekalex » 01 paź 2010, 03:00

Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
outslider
Sędziwy Jeż
Sędziwy Jeż
Posty: 68
Rejestracja: 03 lis 2007, 23:14
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: outslider » 02 paź 2010, 12:29

No sposobów w ogóle jest pełno:D Dodatki do Firefoksa są jednym z nich, ale chodziło o skrypt;p Może i jest to odkrywanie koła na nowo, ale jak ktoś chce... Sam chciałem swego czasu.

EDIT:

Zrobiłem prostego demona do automatycznego zasysania plików flash z /tmp, który działa tak:

Podajemy ścieżkę do katalogu wynikowego, do którego będą kopiowane pliki. Program, od momentu włączenia sprawdza co chwilę pierwszy plik Flash*, jaki znajdzie w /tmp i za każdym razem porównuje jego rozmiar z poprzednią wartością. Jeśli plik nie zmienił wielkości, jest kopiowany do katalogu wynikowego a skrypt oczekuje na kolejny plik.

Okres, jaki mija pomiędzy sprawdzeniami (domyślnie: 3 sekundy) można zmienić podając opcję delay=SEKUNDY, gdzie SEKUNDY jest czasem między sprawdzeniami.

Opcja -h wyświetla pomoc.

Kod:

Kod: Zaznacz cały

#!/bin/bash

#flado - flash downloader daemon
#Pawel Tokarz, 2010
#Public Domain

indir="/tmp"
opts=$@
delay="3"

echo $outdir

isdir="0"

for opt in $opts; do
	if [ "$opt" = "-h" ]; then
cat << EOF

flado - flash downloader daemon


UZYCIE:

  flado /path/to/output/dir [delay=DELAY]
  flado -h

  Sciezka      - musi wskazywac na istniejacy katalog.

  delay=DELAY  - ustawia okres sprawdzania zmiany w pliku
                 na DELAY sekund; domyslne: 3;
                 zwykle wystarczy ok 1 - 1.5, dla wolnych
                 polaczen moze byc konieczna wyzsza wartosc.

  -h           - wyswietla ten tekst

AUTOR I LICENCJA:

  Outslider (Pawel Tokarz).
  Skrypt udostepniony w domenie publicznej.
  Nie podejmuje sie jakiejkolwiek odpowiedzialnosci
  za jakiekolwiek straty - uzywasz darmowego programu
  na wlasne ryzyko.

  Zdunska Wola, 2010

EOF
	exit
	fi
done




for opt in $opts; do
	if [ -d $opt ]; then
	    outdir="$opt"
	    isdir="1"
	fi
done
if [ "$isdir" = "0" ]; then
	echo "Nie znaleziono katalogu" >/dev/stderr
	exit 1
    else
	echo "Katalog wyjscia: $outdir"
fi

cd "$outdir"

for opt in $opts; do
	if [ x$(echo $opt|grep "delay=") != "x" ] ; then
	    signs=`echo $opt|wc -c`	
	    delay=`echo $opt|tail -c $(($signs-6))`
	    echo "Okres sprawdzania: $delay sekund"
	fi
done

flashfile=""
sizenow="0"
copied="0"
while true; do
	echo "test..."
	size="$sizenow"
	flashfilenow=`ls $indir|grep -r "^Flash"|head -1`
	sizenow=`cat $indir/$flashfilenow 2>/dev/null|wc -c `
	if [ "$flashfilenow" != "" ]; then
		echo "$flashfilenow: $sizenow bajtow"

		if [ "$sizenow" = "$size" ]; then
			  echo "Zassany! Oczekiwanie na kolejny."
			  newfile=`date +%s`
			  if [ "$copied" = "0" ]; then
				echo "Kopiowanie."
			  	cp "$indir/$flashfilenow" "$newfile"
			  fi
			  copied="1"
			else
			  copied="0"
		fi
	fi



	sleep $delay
done


Czasem zdarza się błąd wielokrotnego kopiowania pliku, który nie zdążył się jeszcze zassać, ale to przy małych delajach.

Do zrobienia jeszcze konwertowanie do jakiegoś formatu i ekstrahowanie mp3 z plików. Ale to mi się nie chce;p
Awatar użytkownika
LeLo69
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 13 lis 2010, 10:58
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

Odp: Przydatne skrypty

Post autor: LeLo69 » 13 lis 2010, 13:25

Jestem początkującym jeśli chodzi o skrypty :cry:
a chciałbym zrobić skrypt który pomógł by mi zkatalogować moje mp3'ujki na kompie bo mam ich troche i robiąc to recznie zajeło by mi wieki :-P i nie wiem jak się odnieść do tagów w pliku mp3, a niekoniecznie chciałbym się odnosić do nazwy pliku bo rożnie z nimi jest
PROSZĘ O POMOC
Awatar użytkownika
Foka0111
Zakręcona Traszka
Zakręcona Traszka
Posty: 519
Rejestracja: 29 cze 2010, 01:18
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: KDE4
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: Foka0111 » 13 lis 2010, 14:54

Przydatny skrypt do uruchomienia Skype'a z pominięciem pulseaudio.
Działa mikrofon przez ALSA.

#!/bin/bash
killall pulseaudio
killall skype
sleep 10
skype &
sleep 30
pulseaudio --start

Czasy są ustawione optymalnie ale zawsze można je pozmieniać.

Teraz robimy aktywator do skryptu,umieszczamy na panelu wybieramy odpowiednią ikonkę i jednym kliknięciem uruchamia się Skype a'la ALSA :-D
Oczywiście można dodać to do autostartu tylko trzeba wyłączyć oryginalne polecenie Skype-wrapper
Acer Aspire 6930G - intel P 7450/GF 9600 GS/4GB DDR2/
Awatar użytkownika
Admc
Gibki Gibbon
Gibki Gibbon
Posty: 2149
Rejestracja: 23 lip 2009, 08:57
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: KDE4
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: Admc » 13 lis 2010, 17:55

A jak z plikiem ~/.pulse/client.conf? Domyślnie jest ustawiony autospawn i pulseaudio samo się przeładowuje jak się zawiesi albo zostanie zabite.
╔═╦╗╔╦═╦═╦╗╔╗Blaszak (Phenom II x4 955BE, 4 GB RAM, GF GTX 550Ti) - Kubuntu 13.10 amd64
║═╣║║║╔╣╔╣╚╝║Toshiba Satellite A110-293 - Lubuntu 13.10 x86
║╔╣╚╝║║║║╚╗╔╝HTC Hero - Tegro 2.6 (Android 2.1)
╚╝╚══╩╝╚╝♥╚╝ Liczniki: Linux - 496087, Ubuntu - 28751.
Awatar użytkownika
Foka0111
Zakręcona Traszka
Zakręcona Traszka
Posty: 519
Rejestracja: 29 cze 2010, 01:18
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: KDE4
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: Foka0111 » 13 lis 2010, 21:10

Zapomniałem dodać,oczywiście przed autospawn musi być # żeby nie restartował automatycznie.
Ważne ,żeby skype uruchamiał się,jak już pulseaudio jest ubity,co czasem trwa (w zależności od sprzętu) dlatego można zwiększyć zwłokę dla skype do np. 15.
U mnie działa wyśmienicie,nawet ikonka skypea (ta niebieska) wyleciała z paska i jest teraz taka ładna , zielona - pod którą kryje się aktywator skryptu :-D
Sporo ludzi,dla których Skype jest bardzo ważnym komunikatorem zaczęło kombinować z wywalaniem pulseaudio,próbami przejścia na Jacka , starymi wersjami Skype a rozwiązanie jest banalne.
Acer Aspire 6930G - intel P 7450/GF 9600 GS/4GB DDR2/
Awatar użytkownika
Admc
Gibki Gibbon
Gibki Gibbon
Posty: 2149
Rejestracja: 23 lip 2009, 08:57
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: KDE4
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: Admc » 14 lis 2010, 14:31

Ja bym proponował coś takiego:

Kod: Zaznacz cały

rm -f ~/.pulse/client.conf
echo "autospawn = no" > ~/.pulse/client.conf
Przed startem skryptu, oraz coś takiego

Kod: Zaznacz cały

rm -f ~/.pulse/client.conf
echo "autospawn = yes" > ~/.pulse/client.conf
Po zakończeniu.
╔═╦╗╔╦═╦═╦╗╔╗Blaszak (Phenom II x4 955BE, 4 GB RAM, GF GTX 550Ti) - Kubuntu 13.10 amd64
║═╣║║║╔╣╔╣╚╝║Toshiba Satellite A110-293 - Lubuntu 13.10 x86
║╔╣╚╝║║║║╚╗╔╝HTC Hero - Tegro 2.6 (Android 2.1)
╚╝╚══╩╝╚╝♥╚╝ Liczniki: Linux - 496087, Ubuntu - 28751.
cichy_
Piegowaty Guziec
Piegowaty Guziec
Posty: 28
Rejestracja: 19 sty 2009, 13:46
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: cichy_ » 14 lis 2010, 17:12

Skrypcik do ściągania wielu plików z wrzuty. Wymaga wget'a zainstalowanego w systemie.
Informacje pobierane są z pliku lista.getwrzuta

getwrzuta.sh

Kod: Zaznacz cały

LISTA="lista.getwrzuta"
IFS=$'\n'
for LINIA in `cat $LISTA`; do
    LOGIN=`echo $LINIA | cut -d'/' -f3|cut -d'.' -f1`
    HASH=`echo $LINIA|cut -d'/' -f5`
    NAZWA=`echo $LINIA|cut -d'/' -f6`
    wget http://$LOGIN.wrzuta.pl/xml/plik/$HASH -O tmp 2> /dev/null
    LINK=`cat tmp|grep fileId|sed 's/<fileId><!\[CDATA\[//' | sed 's/\]\]><\/fileId>//'`
    wget $LINK -O $NAZWA.mp3
done
unset IFS
pisane na kolanie na szybko ale działa :-)
Awatar użytkownika
Foka0111
Zakręcona Traszka
Zakręcona Traszka
Posty: 519
Rejestracja: 29 cze 2010, 01:18
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: KDE4
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: Foka0111 » 14 lis 2010, 17:33

Admc pisze:Ja bym proponował coś takiego:

Kod: Zaznacz cały

rm -f ~/.pulse/client.conf
echo "autospawn = no" > ~/.pulse/client.conf
Przed startem skryptu, oraz coś takiego

Kod: Zaznacz cały

rm -f ~/.pulse/client.conf
echo "autospawn = yes" > ~/.pulse/client.conf
Po zakończeniu.

Jeśli dałoby się to zautomatyzować lub dopisać do skryptu to jeszcze lepiej ale to wymaga kilku czynności,a ja naciskam tylko guzik i to wtedy,kiedy niechcący wyłączę skype
Moim zdaniem autospawn można wyłączyć.
Ważne że gadać można i nic się nie krzaczy :ligt:
Acer Aspire 6930G - intel P 7450/GF 9600 GS/4GB DDR2/
cichy_
Piegowaty Guziec
Piegowaty Guziec
Posty: 28
Rejestracja: 19 sty 2009, 13:46
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: cichy_ » 18 lis 2010, 09:15

Mały przydatny skrypick do moc. Wyświetla jako notify aktualnie grany plik

mocp-notify.sh

Kod: Zaznacz cały

_md5="/tmp/mocp_notify"
while true ; do
	_filename=$(mocp --info | awk '/File/ { wynik = gensub(/^(.*\/)(.*)(\.mp3)$/,"\\2","g"); print wynik; }')
	_md5sum=`echo $_filename | md5sum| cut -d' ' -f1`
	if [ -e $_md5  ] ; then
		touch $_md5
	fi
	_fmd5sum=`cat $_md5|cut -d' ' -f1`
	if [ $_fmd5sum != $_md5sum ] ; then
		notify-send -t 100 "mocp-teraz gra" "$_filename"
	fi
	echo $_md5sum > $_md5
	sleep 1 
done
uruchamianie

Kod: Zaznacz cały

./mocp-notify.sh &
Awatar użytkownika
B.A.D.
Sędziwy Jeż
Sędziwy Jeż
Posty: 96
Rejestracja: 14 lis 2010, 21:16
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: B.A.D. » 20 lis 2010, 18:23

prosty skrypt np. do conky wyświetlający pogodę z serwisu pogodynka.pl

kod skryptu

Kod: Zaznacz cały

#!/bin/bash
w3m -dump http://pogodynka.pl/polska/gdansk_gdansk | grep -A 5 "Teraz" | grep -A 3 "Temperatura" > gdansk
echo "Gdańsk:"
case "$(grep '\[' gdansk | awk '{ print $3 }')" in
  "[0]") echo -e $(grep "Temperatura" gdansk)'\nKierunek wiatru S\n'$(grep "Ciśnienie" gdansk)'\n'$(grep "Sila wiatru" gdansk) ;;
  "[1]") echo -e $(grep "Temperatura" gdansk)'\nKierunek wiatru SW\n'$(grep "Ciśnienie" gdansk)'\n'$(grep "Sila wiatru" gdansk) ;;
  "[2]") echo -e $(grep "Temperatura" gdansk)'\nKierunek wiatru W\n'$(grep "Ciśnienie" gdansk)'\n'$(grep "Sila wiatru" gdansk) ;;
  "[3]") echo -e $(grep "Temperatura" gdansk)'\nKierunek wiatru NW\n'$(grep "Ciśnienie" gdansk)'\n'$(grep "Sila wiatru" gdansk) ;;
  "[4]") echo -e $(grep "Temperatura" gdansk)'\nKierunek wiatru N\n'$(grep "Ciśnienie" gdansk)'\n'$(grep "Sila wiatru" gdansk) ;;
  "[5]") echo -e $(grep "Temperatura" gdansk)'\nKierunek wiatru NE\n'$(grep "Ciśnienie" gdansk)'\n'$(grep "Sila wiatru" gdansk) ;;
  "[6]") echo -e $(grep "Temperatura" gdansk)'\nKierunek wiatru E\n'$(grep "Ciśnienie" gdansk)'\n'$(grep "Sila wiatru" gdansk) ;;
  "[7]") echo -e $(grep "Temperatura" gdansk)'\nKierunek wiatru SE\n'$(grep "Ciśnienie" gdansk)'\n'$(grep "Sila wiatru" gdansk) ;;
  *) echo 'Błąd!' ;;
esac
plik z danymi ze strony (w moim przypadku gdansk)

Kod: Zaznacz cały

Temperatura      5 °C
Kierunek wiatru  [4]
Ciśnienie        1009 hPa
Sila wiatru      3 m/s
byłbym wdzięczny za drobną pomoc, wiem że można go trochę przerobić na prostszy, chociażby przez zastosowanie grep -f <plik ze wzorami> ale chciałbym żeby wypisywało mi informacje jedna pod drugą a nie potrafię wstawić enterów po każdym patternie który się wyszuka:) Szybkość działania też pozostawia wiele do życzenia ale nie jest najgorzej:)
cichy_
Piegowaty Guziec
Piegowaty Guziec
Posty: 28
Rejestracja: 19 sty 2009, 13:46
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: cichy_ » 21 lis 2010, 11:44

zobacz sobie na taką wersję

Kod: Zaznacz cały

#!/bin/bash
miasto="Koszalin"
w3m -dump http://pogodynka.pl/polska/${miasto}_${miasto} | grep -A 5 "Teraz" | grep -A 3 "Temperatura" > tmp
echo "$miasto"
kierunki=("S" "SW" "W" "NW" "N" "NE" "E" "SE")
kierunek=`grep Kierunek tmp|sed 's/\(.*\)\([0-7]\)\(.*\)/\2/g'`
sed_cmd="s/\[$kierunek\]/${kierunki[$kierunek]}/"
cat tmp | sed ''$sed_cmd''
rm tmp
zawsze to pare linijek mniej :-)
Awatar użytkownika
B.A.D.
Sędziwy Jeż
Sędziwy Jeż
Posty: 96
Rejestracja: 14 lis 2010, 21:16
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: B.A.D. » 22 lis 2010, 02:00

zawsze warto nauczyć się czegoś pożytecznego:) pierwsze słyszę o edytorze sed ale właśnie czytam z zainteresowaniem dokumentację i wymyślam nowe skrypty do mojego conky:) dzięki wielkie!!

EDIT
kolejny skrypt do conky wyświetlający nowości z serwisu komputerswiat.pl

Kod: Zaznacz cały

#!/bin/bash
w3m -dump http://www.komputerswiat.pl/ | grep -A 2 "• [0-9][0-9]:[0-9][0-9]" > rss
sed -i -e '/^$/d' rss && sed -i -e '/[-•]/d' rss && sed -i -e 's/    /  • /' rss
cat rss
rm rss
-Ice cream... I like an ice cream.
-Yeah? What flawor?
-Doesn't matter... it's for my ass.
LukAs
Wytworny Kaczor
Wytworny Kaczor
Posty: 284
Rejestracja: 30 paź 2005, 21:56
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: LukAs » 27 lis 2010, 13:36

1. Kreator galerii internetowej dla usługi dropbox z wykorzystaniem javascriptowego projektu GreyBox.

Kreator Galerii GreyBox (GreyBox Gallery - ENG) wer. 0.5.1

Kod: Zaznacz cały

#!/bin/bash
## Kreator Galeri GreyBox - wer. 0.5.1
## Autor: lukas
## Kontakt: luka.poland@gmail.com
## Licencja: GPL v3

## Language.
case $LANG in
  
	pl*)
	scripts_name='Kreator Galerii GreyBox'
	album_name_text='Nazwa Nowego Albumu?'
	photo_gallery='Galeria Zdjęć'
	dropbox_error='Błąd!!!'
	dropbox_error_text='Usługa "Dropbox" nie jest włączona lub nie odpowiada.'
	dropbox_error_text2='Aby utworzyć galerię należy przejść do podkatlogu "Public"'
	greybox_warning='Brak wymaganego oprogramowania!!!'
	greybox_text='Nie znaleziono GreyBox JavaScript.'
	soft_error='Do działania skryptu niezbędny jest program'
	soft_error2='Można go zainstalować wpisując w terminalu:'
	error_dir="Nie można utworzyć katalogu"
	error_dir2="Proszę użyć innej nazwy, ponieważ katalog o takiej nazwie już istnieje."
	notification='Link do galerii'
	notification2='skopiowano do schowka.'
	compres_from='#Konwersja z:'
	compres_to='Do:'
	window_progress='Postęp konwersji'
	download='Pobierz'
	gallery='Galerię'
	;;

	*)
	scripts_name='GreyBox Gallery'
	album_name_text='New album name?'
	photo_gallery='Photo Gallery'
	dropbox_error='Error!!!'
	dropbox_error_text='Dropbox service is not enabled or not responding.'
	dropbox_error_text2='To create a gallery, go to the subdirectory of "Public"'
	greybox_warning='No software!!!'
	greybox_text='GreyBox JavaScript Not Found.'
	soft_error='Not Found program'
	soft_error2='You can install this program in the terminal:'
	error_dir="You can't create directory"
	error_dir2="This name is already used in this directory.\nPlease use a different name."
	notification='Link to the gallery'
	notification2='copied to the clipboard.'
	compres_from='#From:'
	compres_to='To:'
	window_progress='Conversion progress'
	download='Download'
	gallery='Gallery'
	;;

esac

##PL   Skrypt działa poprawnie tylko w katalogu Public. Jeśli grep nie znajdzie w ścieżce (pwd) ciągu znaków 'Dropbox/Public', powłoka zwróci kod różny od zera.
##ENG  The script works correctly only in the directory Public.
pwd | grep -q 'Dropbox/Public' \
  || { zenity --error --title="$scripts_name" --text="\n$dropbox_error\n\n$dropbox_error_text2" ; exit 1 ; }

## Sprawdzanie zależności. Dependency checking.
##PL   which - wyświetla ścieżkę do podanego programu. Zwraca wartość True (kod zakończenia polecenia = 0) jeśli pęłna ścieżka do progrmu istnieje.
##ENG  which - locate a command. Returns True (0) if the full path to the program exists.
for SOFT in xsel dropbox jhead convert
do

 which "$SOFT" 1> /dev/null \
   || { 
		echo "$SOFT" | grep dropbox && SOFT='nautilus-dropbox' ;
		echo "$SOFT" | grep convert && SOFT='imagemagick' ;
		zenity --warning --title="$scripts_name" --text="$soft_error \"$SOFT\"\n$soft_error2\n\nsudo apt-get install $SOFT" ;
		exit 1 ;
	}

done

##PL   pidof - wyszukuje identyfikatory procesów (PID-y) wskazanych programów. Zwraca wartość True (kod zakończenia polecenia = 0) jeśli usługa DropBox jest urychomiona.
##ENG  pidof - finds  the  process id's (pids) of the named programs. Returns True (0) if the Dropbox is running.
pidof dropbox 1> /dev/null \
  || { zenity --error --title="$scripts_name" --text="\n$dropbox_error\n\n$dropbox_error_text" ; exit 1 ; }

##PL   Nazwa Albumu dla Galerii.
##ENG  Album name for Web Gallery.
GALLERY_NAME=$( zenity --width="300" --entry  --title="$scripts_name" --text="$album_name_text" ) ; [ "$?" != 0 ] && exit 1
 
 if [ -z "$GALLERY_NAME" ]
 then
	GALLERY_NAME="$(date +%d.%m.%Y)"
 fi

 if [ ! -d "$GALLERY_NAME" ]
 then
	mkdir -p "$GALLERY_NAME"
 else
	zenity --error --title="$scripts_name" --text="$error_dir \"$GALLERY_NAME\".\n\n$error_dir2"
	exit 1
 fi

##PL   Kopiowanie GreyBox JavaScript do nowo utworzonej Galerii.
##ENG  GreyBox JavaScript copy to the new gallery.
cp -r ~/.greybox_gallery/greybox "$GALLERY_NAME" \
  || { zenity --warning --title="$scripts_name" --text="\n$greybox_warning\n\n$greybox_text" ; }

##Osadzony dokument DOCTYPE
cat > "$GALLERY_NAME/$GALLERY_NAME.html" <<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>$GALLERY_NAME</title>

<!--// GreyBox Gallery //-->
<script type="text/javascript">
   var GB_ROOT_DIR = "./greybox/";
</script>

<script type="text/javascript" src="greybox/AJS.js"></script>
<script type="text/javascript" src="greybox/AJS_fx.js"></script>
<script type="text/javascript" src="greybox/gb_scripts.js"></script>
<link href="greybox/gb_styles.css" rel="stylesheet" type="text/css" media="all" />
<script type="text/javascript" src="static_files/help.js"></script>
 
<style type="text/css">

* { margin: 0; padding: 0 }

body {
	width: 1000px;
	margin: 0 auto;
	background-color: #404040;
	font: Arial, Verdana, sans-serif;
}

h3 {
	margin: 10px 5px 10px 5px;
	font: 110% "Trebuchet MS", Tahoma, Arial;
	color: #e77a2a;
	font-size: 24px;
}

#greybox img {
	float: left;
	width: 242px;
	height: 180px;
	margin: 4px 4px 4px 4px;
	border: 0;
	text-align: center;
}

#clear {
	clear: both;
}

#space {
	margin-top: 35px;
}

#autor {
	position: fixed;
	right: 15px;
	bottom: 10px;
	color: white;
}

#nav {
	position: fixed;
	left: 15px;
	bottom: 10px;
	color: white;
}

a {
	color: #e77a2a;
	text-decoration: none;
}	

a:hover {
	text-decoration: underline;
}

</style>
</head>

<body>
<h3>$photo_gallery: $GALLERY_NAME</h3>

<div id="greybox">
EOF

##PL Konwersja zdjęć, tworzenie galerii i archiwum.
##ENG  Conversion photo, Create galleries and Creating archives. 
NUMBER_OF_PHOTO=`file -b "$@" | grep -c ?*P.G`
INCREMENT=$( echo "scale=3 ; (100/$NUMBER_OF_PHOTO)" | bc )
PROGRESS=0
NUMBER_OF_NEW_PHOTO=1

(for PHOTO in "$@"
do
  
 file -b "$PHOTO" | grep -q ?*P.G \
  && { echo "$compres_from  $PHOTO  $compres_to  $GALLERY_NAME ""$NUMBER_OF_NEW_PHOTO.jpg  ($NUMBER_OF_PHOTO)" ;
   
   convert "$PHOTO" -resize 800x512 -quality 85 "$GALLERY_NAME/$GALLERY_NAME ""$NUMBER_OF_NEW_PHOTO.jpg" ;
   jhead -autorot "$GALLERY_NAME/$GALLERY_NAME ""$NUMBER_OF_NEW_PHOTO.jpg" ;
   
   PUB_URL=$( dropbox puburl "$GALLERY_NAME/$GALLERY_NAME ""$NUMBER_OF_NEW_PHOTO.jpg" ) ;
   echo -e '<a href='\""$PUB_URL"\" rel=\"gb_imageset[nice_pics]\" title=\""$GALLERY_NAME"\"'><img src='\""$PUB_URL"\" '/></a>' >> "$GALLERY_NAME/$GALLERY_NAME.html" ;

   PROGRESS=$( echo "scale=3 ; ($PROGRESS+$INCREMENT)" | bc ) ;
   NUMBER_OF_NEW_PHOTO=$[NUMBER_OF_NEW_PHOTO + 1] ;
	
	echo "$PROGRESS" ; }
done
) | zenity --width=250 --height=100 --title="$window_progress" --progress --auto-close

##PL   Tworzenie archiwum.
##ENG  Create an archive.
zip -r "$GALLERY_NAME/$GALLERY_NAME.zip" "$@"
PUB_URL_ZIP=$( dropbox puburl "$GALLERY_NAME/$GALLERY_NAME.zip" )

##PL   Schowek systemowy.
##ENG  Clipboard.
PUB_URL=$( dropbox puburl "$GALLERY_NAME/$GALLERY_NAME.html" )
echo "$PUB_URL" | xsel -i -b

cat >> "$GALLERY_NAME/$GALLERY_NAME.html" <<EOF
</div>
<div id="clear"></div><div id="space"></div>

<!-- Proszę nie usuwać! Pozwól Autorowi się rozwijać ;) -->
<div id="autor" style="font-size: 12px">Copyright &copy; by:<a style="margin-left: 8px" href="http://ospulse.pl">OSpulse.pl</a></div>
<div id="nav" style="font-size: 12px">$download<a style="margin-left: 8px" href="$PUB_URL_ZIP">$gallery</a></div>

</body>
</html>
EOF

#Notifications
notify-send -t 2500 -i dialog-apply "$notification \"$GALLERY_NAME\"" "$notification2"
Przykładowa GALERIA.
Paczka do pobrania, program Install i więcej informacji na stronie OSpulse.pl lub na GNOME-LOOK.ORG.

Wymaga:
  1. Skrypt Kreator Galerii GreyBox (GreyBox Gallery - ENG)
  2. GreyBox
  3. Oprogramowania: xsel jhead imagemagick notify-osd nautilus-dropbox
Update 20.04.2011.

- dodano język ENG (dostępne PL, ENG)
- dodano kopiowanie adresu galerii do schowka systemowego.
- sprawdzanie zależności.
- komunikaty błędów/ostrzeżeń.
- poprawiono czytelność kodu + komentarze.

2. Przypominacz, to programu skryptowego, którym można usuwać stare zadania lub dodawać nowe. W wersji 0.2 dostępny jest syntezator mowy Milena i możliwość włączania lub wyłączania powiadomień dźwiękowych.

Program skryptowy Przypominacz

Kod: Zaznacz cały

#!/bin/bash
## Autor: lukas
## Kontakt: luka.poland@gmail.com
## Licencja: GPL v3

CFG="$HOME/Usługi/przypominacz.cfg"
SOUND="$( grep 'sound' "$HOME/Usługi/przypominacz.cfg" | awk '{print $2}' )"

echo "$SOUND" | grep -q 'Wł' \
	&& STAN=TRUE \
	|| STAN=FALSE

MENU=$( zenity --width="290" --height="210" --title="Przypominacz" --text="Zaznacz opcje z poniższej listy" --list --checklist --column="Wybór" --column="Opcje" --column="Stan" \
	"$STAN" "Dzwięk przypomnienia" "${SOUND}." \
	FALSE "Kasuj przypomnienia" "Opt." \
	FALSE "Dodaj nowe zadanie" "Opt." )
	[ "$?" = 1 ] && exit 1

echo "$MENU" | grep -q "Dzwięk przypomnienia" \
	&& grep 'sound' "$CFG" | sed -i "s:Wył:Wł:g" "$CFG" \
	|| grep 'sound' "$CFG" | sed -i "s:Wł:Wył:g" "$CFG"

echo "$MENU" | grep -q "Kasuj przypomnienia" \
	&& rm ~/Usługi/przypomnienia.txt

echo "$MENU" | grep -q "Dodaj nowe zadanie" \
	&& (
	NOWE_ZADANIE=$(zenity --entry --title="Przypominacz" --text="Dodać nowe zadanie?" --entry-text="$(date +%H:%M)	Nowe zadanie.")
	echo "$NOWE_ZADANIE" >> ~/Usługi/przypomnienia.txt
	)
Demon usługa_przypomnienia

Kod: Zaznacz cały

#!/bin/bash
## Przypominacz 0.2
## Autor: lukas
## Kontakt: luka.poland@gmail.com
## Licencja: GPL v3

notify-send -i dialog-apply -t 5000 "Włączono przypomnienia!" ; milena_say "Włączono przypomnienia! $USER"

while (( 1 ))
do
	cat ~/Usługi/przypomnienia.txt | \
	while read line
	do
		realization_time=$( echo "$line" | awk '{print $1}' )
		actual_time=$(date +%H:%M)
		sound="$( grep 'sound' "$HOME/Usługi/przypominacz.cfg" | awk '{print $2}' )"
 
		case $actual_time in
		   "$realization_time") notify-send -i dialog-apply -t 5000 "$line"

					echo "$sound" | grep -q 'Wł' \
					&& milena_say -H "$line"
		   ;;
		esac

	done
 
sleep 59
done
Paczka do pobrania, program Install i więcej informacji na stronie OSpulse.pl
Ostatnio zmieniony 20 kwie 2011, 10:15 przez LukAs, łącznie zmieniany 1 raz.
Więcej o mnie znajdziesz na: http://ospulse.pl
Awatar użytkownika
borzole
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 127
Rejestracja: 10 sie 2010, 11:48
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: borzole » 03 gru 2010, 01:17

LeLo69

chciałbym zrobić skrypt który pomógł by mi zkatalogować moje mp3'ujki na kompie bo mam ich troche i robiąc to recznie zajeło by mi wieki i nie wiem jak się odnieść do tagów w pliku mp3
Mam taki. Może działać jako klikalny nautilus-scripts lub z konsoli:
http://borzole.googlecode.com/hg/nautil ... -by-id3.sh (repo)
Awatar użytkownika
B.A.D.
Sędziwy Jeż
Sędziwy Jeż
Posty: 96
Rejestracja: 14 lis 2010, 21:16
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: B.A.D. » 06 gru 2010, 22:17

wracając do tematu katalogowania,

Kod: Zaznacz cały

#!/bin/bash
echo "** $1" >> LISTA
for f in "$1"/**; do
id3info "$f" > tag
egrep -w 'TPE1|TRCK|TALB|TIT2|TYER' tag > tmp
sed -i 's/=== T....(.*): //' tmp
sed ':a;N;$!ba;s/\n/-/g' tmp >> LISTA
done
echo >> LISTA
rm tag tmp
jako argument wpisuję oczywiście nazwę folderu z muzyką, tyle że muszę podać katalog który zawiera pliki mp3, nie przechodzi mi rekursywnie do podkatalogów w poszukiwaniu tych plików myślałem nad stworzeniem listy podkatalogów w sposób:

Kod: Zaznacz cały

ls -R ~/Muzyka | grep / | sed 's/:/\//;s/ /\\ /g'
przy okazji usuwając spacje ale teraz nie bardzo wiem jak taką listę wrzucić np do fora żeby skrypt przeglądał każdy folder po kolei. Poza tym to metoda trochę siłowa bo przeglądamy również puste foldery nadrzędne. Proszę o pomoc:)
EDIT:
Plus dla zainteresowanych dwa deamony:
1. Sprawdzanie poczty GMail

Kod: Zaznacz cały

#!/bin/bash
gmail_login="login" #login do skrzyki
gmail_password="haslo" #hasło do konta
while (( 1 ))
do
dane="$(wget --secure-protocol=TLSv1 --timeout=3 -t 1 -q -O - \
https://${gmail_login}:${gmail_password}@mail.google.com/mail/feed/atom \
--no-check-certificate | grep 'fullcount' \
| sed -e 's/.*<fullcount>//;s/<\/fullcount>.*//' 2>/dev/null)"

if [ -z "$dane" ]; then
notify-send -i dialog-apply -t 5000 "GMail: Błąd połączenia"
else
if [ "$dane" != "0" ]; then
notify-send -i dialog-apply -t 5000 "GMail: $dane list(ów)"
fi
fi
sleep 100
done
2. Sprawdzanie dostępności aktualizacji systemu

Kod: Zaznacz cały

#!/bin/bash
while (( 1 )) 
do
if [ -s /var/log/upgrades.log ] ; then
notify-send -i dialog-apply -t 5000 "Aktualizacje gotowe!!"
fi
sleep 600
done
-Ice cream... I like an ice cream.
-Yeah? What flawor?
-Doesn't matter... it's for my ass.
Awatar użytkownika
borzole
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 127
Rejestracja: 10 sie 2010, 11:48
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Przydatne skrypty

Post autor: borzole » 06 gru 2010, 22:39

@B.A.D.
* operator ** występuje dopiero w bash4 i jest domyślnie wyłączony, musisz go włączyć na początku skryptu:

Kod: Zaznacz cały

shopt -s globstar
* zamiast używać for, zerknij na to

http://forum.fedora.pl/index.php?/topic ... _p__145779
i to
viewtopic.php?p=792078#p792078
ODPOWIEDZ

Wróć do „Instalacja, aktualizacja i konfiguracja Ubuntu”