Siirry sisältöön

Koodilistaus:Jamoget

Mummilan wikistä
Versio hetkellä 13. toukokuuta 2009 kello 08.10 – tehnyt Jani Uusitalo (keskustelu | muokkaukset) (v. ke 13.5.2009 10:30:00 +0300)

<metadesc content="Bash-komentojono, joka lataa Jamendosta albumin Ogg Vorbis -muodossa ja panee sen sitten jakoon." /> Lataa tiedostona: [{{#file: jamoget}} jamoget]

Tämä Bash-komentojono lataa sille parametreina tai tiedostossa (nykyisessä hakemistossa oleva idlist-niminen tiedosto) listatut albumit Jamendosta Ogg Vorbis -muotoisina, ja pudottaa ne sen jälkeen Bittorrent-asiakasohjelman jakoon. Albumit tulee antaa pelkästään niiden tunnusnumeroilla, esimerkiksi näin: jamoget 42673 43733

Mikäli albumit luetellaan tiedostossa, ne tulee erotella toisistaan rivinvaihdoilla.

Komentojonon käyttöönotto vaatii melko varmasti mukailua hakemistoviittausten osalta.

Tämä on oma muunnelmani Jamendon foorumilta löytyneestä alkuperäisteoksesta, jonka on luonut The Chilling Spirit. Alkuperäisen lisenssi on tuntematon, todennäköisesti kuitenkin vapaa.

{{#fileanchor: jamoget}}

#!/bin/bash

# Jamoget ke 13.5.2009 10:30:00 +0300
# Changes since ke 13.5.2009 10:20:04 +0300:
#	- implements limit-rate for wget
#
# This will download album ZIP files from Jamendo directly. By default it gets Ogg Vorbis,
# remove the last parameter from the wget lines to get MP3
# It will then also grab the .torrent file, unzip the album and move the .torrent to your client's watch directory.
# Put the IDs of all the albums you want into a file called idlist, one id per line.

limit=
if [[ "$1" == "--limit" || "$1" == "--limit-rate" ]]
then
	shift
	limit=--limit-rate=$1
	shift
fi

idlist=`mktemp -t`
if [ -e idlist ]
then
	cp idlist $idlist
else
	if [ $# -lt 1 ]
	then
		echo "usage: `basename ${0}` id..."
		exit 1
	fi
	for id in $@ ; do
		echo $id >> $idlist
	done
fi

while read albumid ; do
	mkdir -p "/tmp/jamoget-${albumid}/extracted" "/tmp/jamoget-${albumid}/errorsonunzip" || { echo "ERROR: Creating temporary output directories."; exit; }
	pushd "/tmp/jamoget-${albumid}"

	echo "INFO: Downloading Ogg Vorbis album ZIP"
	wget $limit --continue "http://www.jamendo.com/get/album/id/album/archiverestricted/redirect/${albumid}/?p2pnet=bittorrent&are=ogg3"

	echo "INFO: Downloading torrent for Ogg Vorbis album"
	wget -nv --continue -O ${albumid}.torrent "http://api.jamendo.com/get2/bittorrent/file/redirect/?album_id=${albumid}&type=archive&class=ogg3"
	
	echo "INFO: Unzipping"
	find . -maxdepth 1 -name "*.zip" > ziplistfile
	while read zipfile ; do
		echo "INFO: Unzipping to torrents directory and moving ZIP to extracted directory, .torrent to watch directory"
		unzip -q -n "${zipfile}" -d "/home/jani/Työpöytä/Työn alla/Torrent/${zipfile%.zip}" && mv "${zipfile}" extracted/ && mv ${albumid}.torrent "/home/jani/Työpöytä/"
	done < ziplistfile
	rm ziplistfile

	mv *.zip errorsonunzip/ > /dev/null 2>&1
	mv *.torrent errorsonunzip/ > /dev/null 2>&1
	if [ "$(ls -A errorsonunzip/)" ]; then
		echo "ERROR: While unzipping. Downloaded files saved in /tmp/jamoget-${albumid}/errorsonunzip/."
	else
		cd /tmp && rm -rf "jamoget-${albumid}"
	fi
	popd > /dev/null 2>&1
done < $idlist

rm $idlist
echo "INFO: Script finished"