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 © 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:
- Skrypt Kreator Galerii GreyBox (GreyBox Gallery - ENG)
- GreyBox
- 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