Przydatne skrypty

Wyłącznie system! Wątpliwości dotyczące aplikacji proszę umieszczać niżej, w odpowiednich forach.
Awatar użytkownika
pyx-84
Sędziwy Jeż
Sędziwy Jeż
Posty: 97
Rejestracja: 28 paź 2008, 21:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: pyx-84 »

Skrypt zmienia nazwę wskazanego pliku na nowa nazwę. Jednocześnie tworzy kopię zapasową pliku pod starą nazwą z przyrostkiem .old_backup

Kod: Zaznacz cały

#!/bin/bash
# @Author: pyx-84
# Opis: Skrypt zmienia nazwe wskazanego pliku na nowa nazwe
# Tworzy jednoczesnie kopie zapasowa pliku pod stara nazwa z przyrostkiem .old_backup
# Jezeli nowa nazwa nie jest podana to zostanie nadana nazwa domyslna 'nowy_plik'

# Uzycie: sh zmien_nazwe.sh stara_nazwa nowa_nazwa

# Czy podany jest pierwszy argument
if [ -z "$1" ]
then
echo "Uzycie skryptu: sh zmien_nazwe.sh Zmien_nazwe stara_nazwa nowa_nazwa"
exit 1
fi

# Czy istnieje plik zrodlowy stara_nazwa
if [ ! -f $1 ] # Brak pliku 'stara_nazwa'
then
echo "Plik zrodlowy nie jest dostepny"
exit 1 # exit 1 oznacza zakonczenie dzialania skryptu (0 - ok, 1 - blad)
fi

# Czy mamy prawo pisania do biezacego katalogu
if [ ! -w . ]
then
echo "Brak prawa do zapisu w biezacym katalogu"
exit 1
fi

# Czy podany jest drugi argument nowa_nazwa
if [ -z "$2" ] # Nie jest podany
then
cp $1 $1.old_backup
mv $1 nowa_nazwa
echo "Ustawiono domyslna nazwe 'nowa_nazwa'"
exit 0
fi

# Gdy podany jest drugi argument
cp $1 $1.old_backup
mv $1 $2
exit 0
Software Should Be Free As In Freedom !
Awatar użytkownika
Adlatus
Zakręcona Traszka
Zakręcona Traszka
Posty: 856
Rejestracja: 29 sty 2007, 19:47
Płeć: Mężczyzna
Wersja Ubuntu: 18.04
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: Puszczykowo

Odp: Przydatne skrypty

Post autor: Adlatus »

pyx-84 pisze:Skrypt zmienia nazwę wskazanego pliku na nowa nazwę. Jednocześnie tworzy kopię zapasową pliku pod starą nazwą z przyrostkiem .old_backup
Takie cuda można zrobić w nautilusie w 'Widoku ikon' przeciągając ikonę pliku lub katalogu z wciśniętym klawiszem 'Ctrl' i opuszczając ją obok oryginału.
Awatar użytkownika
pyx-84
Sędziwy Jeż
Sędziwy Jeż
Posty: 97
Rejestracja: 28 paź 2008, 21:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: pyx-84 »

Adlatus pisze:Takie cuda można zrobić w nautilusie w 'Widoku ikon' przeciągając ikonę pliku lub katalogu z wciśniętym klawiszem 'Ctrl' i opuszczając ją obok oryginału.
Zawsze masz dostęp do trybu graficznego? Bo ja nie....
Software Should Be Free As In Freedom !
Awatar użytkownika
Adlatus
Zakręcona Traszka
Zakręcona Traszka
Posty: 856
Rejestracja: 29 sty 2007, 19:47
Płeć: Mężczyzna
Wersja Ubuntu: 18.04
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: Puszczykowo

Odp: Przydatne skrypty

Post autor: Adlatus »

pyx-84 pisze:Zawsze masz dostęp do trybu graficznego? Bo ja nie....
Mam dostęp tylko do trybu graficznego i dlatego nie przewidziałem Twojej sytuacji w której ten skrypt jest potrzebny.
Awatar użytkownika
pyx-84
Sędziwy Jeż
Sędziwy Jeż
Posty: 97
Rejestracja: 28 paź 2008, 21:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: pyx-84 »

Adlatus pisze:Mam dostęp tylko do trybu graficznego i dlatego nie przewidziałem Twojej sytuacji w której ten skrypt jest potrzebny.
Nie musisz z niego korzystać ;) Może komuś się przyda do seryjnej zmiany nazwy plików np.: zdjęć ;)

EDITED:
Zrzuty ekranu do folderu. Warto dodać opcję uruchamiania w tle, kompresji i wysyłania na serwer :whis:

Kod: Zaznacz cały

#!/bin/bash
# Wymagania: sudo apt-get scrot
# @Autor: pyx-84
# Opis: Zrzut ekranu do folderu co ileś sekund
# Użycie: sh screen.sh 2 # zrzut co 2 sekundy

DIR=/home/lucas/Pulpit/screen # folder z zrzutami ekranu
I=0 # Numer obrazka
mkdir -p ${DIR}
while sleep "$1"
do        
scrot -q 75 ${DIR}/screendump.${I}.jpg
I=$((I+1))
done
Software Should Be Free As In Freedom !
Awatar użytkownika
kreator
Piegowaty Guziec
Piegowaty Guziec
Posty: 27
Rejestracja: 08 lip 2008, 21:54
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Odp: Przydatne skrypty

Post autor: kreator »

Zachęcam do współtworzenia programu PC_Brain i tworzenia skryptów Waszego pomysłu w postaci wtyczek programu PC_Brain, tak, aby każdy mógł korzystać z Waszych pomysłów, z Waszych skryptów. Program PC_Brain ma za zadanie sprawić, aby nasze PC stały się inteligentniejsze, samodzielniejsze i bardziej dostosowane do naszych potrzeb. Wszelkie informacje dotyczące programu, sam program i jego wtyczki można znaleźć na stronie domowej programu http://www.pcbrain.dbv.pl/news.php
PC_Brain - "sztuczna inteligencja" dla Ubuntu - www.pcbrain.dbv.pl
Awatar użytkownika
czaroli
Sędziwy Jeż
Sędziwy Jeż
Posty: 82
Rejestracja: 07 lut 2008, 02:23
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

Odp: Przydatne skrypty

Post autor: czaroli »

kto napisze skrypt do Nautilisa konwertujacy film z rmvb do avi ?

- jest to przydatne gdy mamy film w rmvb a cchemy go obejrzec na stacjonarnym DVD pod ktorego nie ma kodeków do rmvb.

Skrypt po wskazaniu na plik rmvb mialby sie nic nie pytac tylko zrobic plikfilm.avi w tym samym miejscu na dysku co film.rmvb
Malo tego przydalby sie pasek postepu lub niech polecenie otworzy sie w konsoli a wtedy wszystko bedzie widoczne.

polecenie do konwertowania jest takie.

Kod: Zaznacz cały

mencoder ./film.rmvb -oac mp3lame -ovc xvid -xvidencopts bitrate=900 -o film.avi
CzAroli
(jeśli problem jest rozwiązany - wy-edytuj temat i dodaj na początku [SOLVED] )
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: Skrypt Nautilusa

Post autor: LukAs »

Prosty prykład kopi pliku.

Kod: Zaznacz cały

#!/bin/bash

PLIK="${1}"

cp "${PLIK}" "${PLIK}.kopia"  #Można też "$PLIK.kopia"
Skrypt do konwersji tylko dla jednego pliku.

Kod: Zaznacz cały

#!/bin/bash

PLIK="${1}"

mencoder "${PLIK}" -oac mp3lame -ovc xvid -xvidencopts bitrate=900 -o "${PLIK}.avi"
Update 13.12.2009

A tak powinno to wyglądać uniwersalnie. Pozwala to na zaznaczenie nieograniczonej ilości plików i ich konwersje.

Obrazek

Kod: Zaznacz cały

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

wybor=$( zenity --width=300 --height=215 --title='Nautilus Converter' --list --radiolist --column 'Wybierz' --column 'Dostępne formaty' \
	TRUE 'RMVB -> XVID' \
	FALSE 'RMVB -> XVID (mp2 128 kbps.)' \
	FALSE 'RMVB -> MPEG4' \
	FALSE 'MOV -> XVID' )

for PLIK in "$@"
do

case $wybor in
	'RMVB -> XVID')
        mencoder "$PLIK" -oac mp3lame -ovc xvid -xvidencopts bitrate=900 -o "$PLIK.avi" \
	| zenity --title='Nautilus Converter' --text="Konwersja: $PLIK" "$PLIK" --progress --pulsate --auto-close
	;;
	'RMVB -> XVID (mp2 128 kbps.)')
	mencoder "$PLIK" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900:autoaspect -ffourcc xvid -oac lavc -lavcopts acodec=mp2:abitrate=128:atag=0x50 -o "$PLIK.avi" \
	| zenity --title='Nautilus Converter' --text="Konwersja: $PLIK" "$PLIK" --progress --pulsate --auto-close
	;;
	'RMVB -> MPEG4')
	mencoder "$PLIK" -oac mp3lame -lameopts preset=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1200 -ofps 25 -of avi -o "$PLIK.avi" \
	| zenity --title='Nautilus Converter' --text="Konwersja: $PLIK" "$PLIK" --progress --pulsate --auto-close
	;;
	'MOV -> XVID')
	mencoder "$PLIK" -ovc xvid -xvidencopts bitrate=900 -oac mp3lame -srate 44100 -o "$PLIK.avi" -lameopts vbr=3 \
	| zenity --title='Nautilus Converter' --text="Konwersja: $PLIK" "$PLIK" --progress --pulsate --auto-close
	;; 
esac
done
  1. Skrypty Nautilusa znajdują się w: /home/uzytkownik/.gnome2/nautilus-scripts
  2. Informacje o zastosowaniu mencoder'a pochodzą stąd
Więcej o mnie znajdziesz na: http://ospulse.pl
Awatar użytkownika
czaroli
Sędziwy Jeż
Sędziwy Jeż
Posty: 82
Rejestracja: 07 lut 2008, 02:23
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

Odp: Przydatne skrypty

Post autor: czaroli »

lukas dobra robota.
Nautilus Converter dziala i to kapitalnie :)
Dziękuje.

ps. zenity moim zdaniem jeszcze troche brakuje. nm jak rozpakowujemy pliki to lata ten pasek postępu od lewej do prawej i podczas konwersji rowniez zapyla pasek od lewej do prawej, czy nie mogli zrobic wskaznika procentowego ? No nic ale skrypt jest wspanialy :clap:
CzAroli
(jeśli problem jest rozwiązany - wy-edytuj temat i dodaj na początku [SOLVED] )
Awatar użytkownika
pyx-84
Sędziwy Jeż
Sędziwy Jeż
Posty: 97
Rejestracja: 28 paź 2008, 21:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: pyx-84 »

@LukAs utworzyłem Twój skrypt w /home/lucas/.gnome2/nautilius-scripts

potem odpowiednio:

Kod: Zaznacz cały

sudo chmod +x
i

Kod: Zaznacz cały

sudo chmod 777 konwersjaVideo.sh
Uruchamiam:

Kod: Zaznacz cały

./konwersjaVideo.sh
Wszystko ładnie pojawia się menu klikam RMVB -> XVID i OK. Okno się zamyka i w konsoli w nowej linii pojawia się znak zachęty. Co jest nie tak/co ja robię źle :|
Testowałem na kilku plikach RMVB i MOV i dalej to samo :(

EDITED:
LukAs pisze:Skrypt do konwersji tylko dla jednego pliku.

Kod: Zaznacz cały

#!/bin/bash
PLIK="${1}"
mencoder "${PLIK}" -oac mp3lame -ovc xvid -xvidencopts bitrate=900 -o "${PLIK}.avi"
A to mi działa super :)
Software Should Be Free As In Freedom !
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 »

Wszystko ładnie pojawia się menu klikam RMVB -> XVID i OK. Okno się zamyka i w konsoli w nowej linii pojawia się znak zachęty. Co jest nie tak/co ja robię źle
  1. Nie podałeś parametru dla skryptu. I pewnie dlatego ten znak zachęty.

    Kod: Zaznacz cały

    ./konwersjaVideo.sh 'jakiś plik' 'jakis inny plik'
  2. W tym pierwszym, prostym skrypcie występuje tylko jedna zmienna $1 czy ${1}, więc powłoka przyjęłaby tylko jeden parametr tj. 'jakiś plik'.
  3. Użyłeś też terminala, a nie trzeba, ponieważ skrypty Nautilusa są właśnie po to, żeby obejść się bez niego. Wystarczy zaznaczyć plik lub kilka, a potem pod PPM wybrać z menu interesujący Cię skrypt i gotowe. Wszystko można wyklikać w GUI ;)
  4. Dla niewiadomej liczby parametrów używa się specjalnych zmiennych $* i $@. Ta druga radzi sobie z nazwami, które zawierają w sobie spacje lub dziwne znaki.
  5. Sprawdziłem specjalnie i działa
Obrazek

Ps Jeśli znasz temat, to wybacz ;)
ps. zenity moim zdaniem jeszcze troche brakuje. nm jak rozpakowujemy pliki to lata ten pasek postępu od lewej do prawej i podczas konwersji rowniez zapyla pasek od lewej do prawej, czy nie mogli zrobic wskaznika procentowego
Szczerze, to na chwilę obecną nie wiem jak to zrobić, a dokładnie, to próbowałem, ale nie działa. Po prostu trzeba wyciągnąć z mencoder'a informacje bo to on najlepiej wie na jakim etapie jest to co robi 8-)
Więcej o mnie znajdziesz na: http://ospulse.pl
Awatar użytkownika
pyx-84
Sędziwy Jeż
Sędziwy Jeż
Posty: 97
Rejestracja: 28 paź 2008, 21:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: pyx-84 »

LukAs pisze:[*] Nie podałeś parametru dla skryptu. I pewnie dlatego ten znak zachęty.

Kod: Zaznacz cały

./konwersjaVideo.sh 'jakiś plik' 'jakis inny plik'
Aha, myślałem że wyskoczy okienko typu: wskaż plik ;) mogłem się bardziej zagłębić w skrypt.
LukAs pisze: [*] W tym pierwszym, prostym skrypcie występuje tylko jedna zmienna $1 czy ${1}, więc powłoka przyjęłaby tylko jeden parametr tj. 'jakiś plik'.
Ten 1 działa super :)
LukAs pisze: [*] Użyłeś też terminala, a nie trzeba, ponieważ skrypty Nautilusa są właśnie po to, żeby obejść się bez niego. Wystarczy zaznaczyć plik lub kilka, a potem pod PPM wybrać z menu interesujący Cię skrypt i gotowe. Wszystko można wyklikać w GUI ;)
Użyłem go z przyzwyczajenia ;) Ok jak "just click to just click"
LukAs pisze: [*] Dla niewiadomej liczby parametrów używa się specjalnych zmiennych $* i $@. Ta druga radzi sobie z nazwami, które zawierają w sobie spacje lub dziwne znaki.
Dzięki ta informacja się przyda :)
LukAs pisze: [*] Sprawdziłem specjalnie i działa
Obrazek
Ps Jeśli znasz temat, to wybacz ;)
Spoko ;) Nie zawsze jest czas na pisanie manuala ;)
LukAs pisze: Szczerze, to na chwilę obecną nie wiem jak to zrobić, a dokładnie, to próbowałem, ale nie działa. Po prostu trzeba wyciągnąć z mencoder'a informacje bo to on najlepiej wie na jakim etapie jest to co robi 8-)
W tym wątku jest skrypt do pobierania z wrzuty. Można 'podejrzeć', bo w nim się pyta usera ;)

P.S
Mimo to wielkie dzięki :)

EDITED: Sprawdziłem działa super! Dobra robota!
Software Should Be Free As In Freedom !
Awatar użytkownika
dk75
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1142
Rejestracja: 07 mar 2007, 22:59
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: dk75 »

czaroli pisze:ps. zenity moim zdaniem jeszcze troche brakuje. nm jak rozpakowujemy pliki to lata ten pasek postępu od lewej do prawej i podczas konwersji rowniez zapyla pasek od lewej do prawej, czy nie mogli zrobic wskaznika procentowego ? No nic ale skrypt jest wspanialy :clap:
ZENITY ma wszystko co trzeba tylko jak mu "%" nie podasz to nie pokaże ot co. 8-)

PS: idę "poczytać"... :whis:
Linux Mint Debian Edition x86_64/2.6.39, Conky 1.8.0, Xorg 7.6/1.10.4 - GNOME 2.30.2, nVidia 285.03
Lenovo T61p, HITACHI HTS722010K9SA00 100GB, ST9250827AS 250GB
http://linuxcounter.net/user/483055.html
Awatar użytkownika
dk75
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1142
Rejestracja: 07 mar 2007, 22:59
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: dk75 »

LukAs pisze:No ale samo ZENITY nie potrafi obliczyć ile jakiś program będzie coś wykonywał. Musiałby istnieć komunikacja między programami a zenity, tak jak jest to np. z kodem zakończenia działania programu, skryptów tj. 0,1,2,3 itd.

Sprawdz, że nic się nie dzieje, a sam się przekonasz. Chyba, że ja robię coś źle?

Kod: Zaznacz cały

--progress --percentage=10
A co, ZENITY ma być Duchem Świętym i wiedzieć "co poeta miał na myśli"? Jak tar nie wypisuje procentów wykonanej pracy na wyjściu no to skąd ma to wziąć ZENITY? Z powietrza? Ma samo rozpakować archiwa żeby przekonać co jest w środku tak aby obliczyć procenty? I ile jeszcze programów ma wyręczać w ich robocie tylko po to aby coś wyświetlić? 10? 100? 1 000 000?

ZENITY nie jest programem obliczeniowym, nie jest menadżerem archiwów, nie jest kodekiem wideo i nie jest niczym innym jak tylko prostym wyświetlaczem pewnych specyficznych danych. Jak je otrzyma to wyświetli a jak nie to "figa z makiem".


Znalezione na sieci:

Kod: Zaznacz cały

mencoder -oac mp3lame -ovc lavc -o recode.avi oryginal.avi 2>&1 |awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nFrame :\\t"$2"\\nPercentage :\\t"$3"%\\nFrame Rate :\\t"$4"\\nTime Remaining :\\t"$6; fflush();}' |zenity --progress
Linux Mint Debian Edition x86_64/2.6.39, Conky 1.8.0, Xorg 7.6/1.10.4 - GNOME 2.30.2, nVidia 285.03
Lenovo T61p, HITACHI HTS722010K9SA00 100GB, ST9250827AS 250GB
http://linuxcounter.net/user/483055.html
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 »

Po co mi to tłumaczysz? Gdybym wiedział jak to zrobić, to bym to zrobił. Wyraznie napisałem, że nie wiem jak to zrobić, a nie, że sie nie da.
Więcej o mnie znajdziesz na: http://ospulse.pl
Awatar użytkownika
dk75
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1142
Rejestracja: 07 mar 2007, 22:59
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: dk75 »

przecież podałem przykład dla mencodera na końcu... aby ZENITY robił użytek z procentów liczba procentów wraz ze znakiem "%" musi być wypisana sama w linii więc obróbka przez SED lub AWK jest konieczna.
Linux Mint Debian Edition x86_64/2.6.39, Conky 1.8.0, Xorg 7.6/1.10.4 - GNOME 2.30.2, nVidia 285.03
Lenovo T61p, HITACHI HTS722010K9SA00 100GB, ST9250827AS 250GB
http://linuxcounter.net/user/483055.html
Awatar użytkownika
czaroli
Sędziwy Jeż
Sędziwy Jeż
Posty: 82
Rejestracja: 07 lut 2008, 02:23
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

Odp: Przydatne skrypty

Post autor: czaroli »

Czytam ten dział już dość długo, sporo problemów faktycznie można załatwić lub ułatwić sobie życie korzystając z Waszych skryptów.
Za co Wam serdecznie dziękuje.

Borykam się ostatnio z myślą jak zrobić sobie swoją własną stronę z filmami.
Załóżmy że mamy całe mnóstwo katalogów, w każdym katalogu są dwa pliki: okladka.jpg i film.avi

Działanie miało by wyglądać tak:
sh ~./genfilm.sh

Po wykonaniu skryptu strona wyglądała by np. tak:

Obrazek
CzAroli
(jeśli problem jest rozwiązany - wy-edytuj temat i dodaj na początku [SOLVED] )
Awatar użytkownika
dk75
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1142
Rejestracja: 07 mar 2007, 22:59
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: Przydatne skrypty

Post autor: dk75 »

czaroli pisze:Czytam ten dział już dość długo, sporo problemów faktycznie można załatwić lub ułatwić sobie życie korzystając z Waszych skryptów.
Za co Wam serdecznie dziękuje.

Borykam się ostatnio z myślą jak zrobić sobie swoją własną stronę z filmami.
Załóżmy że mamy całe mnóstwo katalogów, w każdym katalogu są dwa pliki: okladka.jpg i film.avi
A to musi być strona?
Jest trochę menadżerów multimediów jeśli to wszystko na użytek własny. Jak nie, tylko to ma być na serwerze to PHP będzie lepsze niż BASH.
Linux Mint Debian Edition x86_64/2.6.39, Conky 1.8.0, Xorg 7.6/1.10.4 - GNOME 2.30.2, nVidia 285.03
Lenovo T61p, HITACHI HTS722010K9SA00 100GB, ST9250827AS 250GB
http://linuxcounter.net/user/483055.html
Awatar użytkownika
czaroli
Sędziwy Jeż
Sędziwy Jeż
Posty: 82
Rejestracja: 07 lut 2008, 02:23
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

Odp: Przydatne skrypty

Post autor: czaroli »

Tak jest to na uzytek wlasny. Juz pisze o co mi chodzi dokladnie.
bawilem sie programamami typu media center ale nie o to chodzilo poniewaz np mytv mnie nie zadowala. Chcialbym cos prostrzego, dlatego strona prosta jak drut byla by ciekawym rozwiazaniem.
Filmy mam, a za chwile ich nie mam bo wyrzucam. Dlatego tez pomyslalem ze taki generator stronki bylby w sam raz. Mam trzy komputery w domu i czwarty szwagra. Mieszkamy w bliźniaku i mam taki maly LAN, ale z trzema roznymi systemami. Win XP, Ubuntu oraz szwagra MAC OSX.
Na kazdym z tych komputerow strone otworze bez problemu i moge ogladac powiedzmy "na zywo" za pomoca VLC, czyli zanim plik avi mi sie sciagnie to ja juz jestem w 2 minucie ogladania filmu. Z regóły sa to bajki i dzieciaki ogladaja je na kreskoweczki lub mega video przez co obciazaja lącze 1MBit'owe.
Wpadlem na pomysl ze w nocy filmy sie sciagaja i potem moge je udostepnic w LANie i nikt nie bedzie obciazac łącza w świat.
Generowanie stron z wyciagnieciem na strone www zawartosci bylo by fajne, szybkie i nie musialbym sie bawic w ustawianie zadych z programów.
CzAroli
(jeśli problem jest rozwiązany - wy-edytuj temat i dodaj na początku [SOLVED] )
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 »

Myślę, że najlepiej byłoby zrobić generalnie tak, że na kompie, na którym masz filmy postawisz serwer z PHP.

Jeżeli te wszystkie katalogi z filmami masz w jednym zbiorczym katalogu, to możesz go podlinkować do katalogu, w którym byłby localhost serwera. Wted katalog np. /var/www/filmy wskazywałby na ten właściwy, do którego zasysasz.

Wygenerowaniem zaś stronki zająłby się już PHP.

W zasadzie całość w bashu też można zrobić, nawet nie jest to masakra... Tylko absolutnie nie znam się na sieciach i nie wiem, jak mają wyglądać linki do tych filmów. Tzn. załóżmy ponownie, że masz jeden zbiorczy katalog, np.:

./filmy

a w nim jakieś katalogi typu

./filmy/blabla1/
./filmy/cośtamxxx/

to czy jeżeli linki w kodzie strony będą typu:

href="./blabla/film.avi"

to czy Cię ratuje? Czy hrefy mają być jakieś inne?


Ok, jeżeli tak, to napisałem:

Kod: Zaznacz cały

#!/bin/bash
#genfilm; written by Outslider, idea by CzAroli
#As free as Public Domain
#Please, don't remove this comments...
#Just for Christmas

#general config
  link_prefix="."
  tmp="/tmp/genfilm_generator"
  img_width="150"
  img_height="220"
#/general config

#cmdline options check
  opts="- $@"
  help=`echo $opts|grep " -h"`
  dir=`echo $opts|sed 's/-[a-Z]* /\n/g'|tail -1`

  if [ "$help" != "" ]; then
      echo -e "\ngenfilm; written by Outslider, idea by CzAroli"
      echo -e "As free as Public Domain\n"
      echo -e "synopsis: genfilm [options] path/to/directory/with/films\n"
      echo -e "Given directory should contain subdirs containig two files: xxxxx.avi and yyyyy.jpg, where is no matter, what are xxx and yyy\n"
      echo -e "options:\n"
      echo -e "-h\tdisplay this help"
      echo -e "\nThere is no more opts yet..."
      echo -e ""
      echo -e "known bugs:\n\n\tdirs' names cannot contain string: \" -h\" and spaces"
#      echo -e "\tdirs' names cannot contain any spaces"
      exit 0
  fi
#/cmdline options check

#tmp check
  if [ -d "$tmp" ]; then
    rm -r "$tmp"
  fi
  mkdir "$tmp"
#/tmp check


#to the dir!!!
  if [ -d "$dir" ]; then
      echo -e "Ok:\tdirectory \"$dir\" found"
    else
      echo -e "E: \tdirectory \"$dir\" not found"
      exit 1
  fi
  cd "$dir"
#/to the dir!!!

#list dirs
  ls -F|grep -r '/$' > "$tmp/listof_files"
  numof_films=`cat "$tmp/listof_files"|wc -l`
  echo -e "Ok:\tfound $numof_films subdir(s)"
#/list dirs

#make HTML file... head
  echo '<!DOCTYPE html 
	PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
	<title>Personal Video Center</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
	<meta name="Description" content="Personal Video Center generated by GenFilm - written by Outslider, idea by CzAroli" />
</head>

' > "$tmp/html_output.html"
#/make HTML file... head


#make HTML file... body
  echo '<body>' >> "$tmp/html_output.html"
  Li=1
  until [ "$Li" -gt "$numof_films" ]; do
    subdir=`cat "$tmp/listof_files"|head -$Li|tail -1`
    echo $subdir
    img=`ls ./"$subdir"|grep ".jpg"`
    echo $img
    vid=`ls ./"$subdir"|grep ".avi"`
    echo $vid

    echo '<img src=./'"$subdir""$img"' />'

    echo '<div style="width: '$(($img_width+20))'px; height:' $(($img_height+30))'px; margin: 20px; text-align: center; float: left; background-color: black; color: white;">' >> "$tmp/html_output.html"

    echo '<a style="color: white; text-decoration: none;" href="./'"$subdir""$vid"'">' >> "$tmp/html_output.html"

    echo '<img style="width: '$img_width'px; height:' $img_height'px; margin: 10px;" src="./'"$subdir""$img"'" />' >> "$tmp/html_output.html"

    echo "$vid" >> "$tmp/html_output.html"

    echo '</a>' >> "$tmp/html_output.html"

    echo '</div>' >> "$tmp/html_output.html"

    Li=$(($Li+1))
  done
#/make HTML file... body

#move (actually cp...) tmp-html where it has to be
  echo -e "</body>\n<html>" >> "$tmp/html_output.html"
  cp "$tmp/html_output.html" ./index.html
#/move tmp-html where it has to be

#and make clean!
  rm -r "$tmp"
#and make clean!


exit



Krótki opis:

Masz taki układ katalogów, jak powyżej, każdy subfolder musi zawierać plik xxxx.jpg z okładką i yyyyy.avi z filmem. Nazwy folderów (chyba plików też) nie mogą zawierać spacyj (nie chciało mi się naprawiać tego buga;p)

Skrypt odpalasz z konsoli podając mu ścieżkę do katalogu z subfolderami. Opcja -h wyświetla minipomoc, acz w niej jest to, co tu napisałem.

W katalogu tworzony jest index.html, o który chodziło. Oczywiśie po przeniesieniu htmla do innego katalogu NIE BĘDZIE działał poprawnie, bo linki nie będą się zgadzać.

Wesołych Świąt!
ODPOWIEDZ

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

Kto jest online

Użytkownicy przeglądający to forum: Amazon [Bot] i 5 gości