Hellfire-1349
Anmeldungsdatum: 4. September 2014
Beiträge: 29
|
Mahlzeit ! Nachdem ich als relativer Linux-Neuling viel auf den Seiten hier glernt habe, mal ein kleines Script von mir... Sozusagen als Gegenleistung 😉
Damit werden die Bilder deiner zu letzt in deine Sammlung bei http://www.discogs.com/ zugefügten Scheibe runtergeladen. Vorraussetzung ist allerdings, daß deine Sammlung öffentlich zugänglich ist, und nicht als privat markiert!
Das Script verrichtet in leicht abgewandelter Form bei mir seinen Dienst, damit ich mir in conky das Cover anzeigen lasse (Anhang), denn die Platten verschwinden nach Kauf immer schnell im Plattenregal und ich seh nix mehr von.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 | #!/bin/bash
##########################################################################################################
# Hier bitte Deinen DiscogsNamen eintragen
D_USER="DeinName"
# Wohin die Bilder runtergeladen werden sollen, Größe auf die Skaliert wird, Format, StartNr. nummerierung
PIC_PATH="$HOME/Bilder"
PIC_SCALE="400x400"
PIC_FRM="png"
PIC_START_NR=1
# Agent... was aussagekräftiges "curl" o.ä. wird geblockt
D_AGENT="private_collection_browser_from_discogs_user-$D_USER"
# Startseiten, Sortierstring
D_IMAGES_PAGE="http://www.discogs.com/viewimages"
D_COLLECTION_PAGE="http://www.discogs.com/user/$D_USER/collection"
D_COLLECTION_SORT="sort=added&sort_order=desc&page=1"
#---------------------------------------------------------------------------------------------------------
# Startseite deiner Sammlung sortiert laden und ersten Eintrag finden der so ähnlich aussieht:
# release_id=50437 das ist die ID der deiner Sammlung zu letzt zugefügten Scheibe
echo -e "Lade:\t$D_COLLECTION_PAGE?$D_COLLECTION_SORT"
id=$(curl --stderr /dev/null -A $D_AGENT $D_COLLECTION_PAGE -d $D_COLLECTION_SORT |
grep -e "release_id=[[:digit:]]*" -m 1 -o | awk -F"=" '{print $2}')
if [ "$id" == "" ]
then
echo "Fehler beim Seitenzugriff!"
exit 1
fi
#---------------------------------------------------------------------------------------------------------
# Mit der rausgefundenen ID holen wir uns nun den Innhalt der Bilderseite und kramen alle Einträge raus
# die bei obiger ID ungefähr so aussähen: http://s.pixogs.com/image/R-50437-.......
# das ist jeweils die URL eines Bildes, welche wir alle zwischenspeichern
echo -e "Lade:\t$D_IMAGES_PAGE?release=$id"
pic_urls=$(curl --stderr /dev/null -A $D_AGENT $D_IMAGES_PAGE -d "release=$id" |
grep -o "http://s.pixogs.com/image/R-$id-[^\"]*")
if [ "$id" == "" ]
then
echo "Fehler beim Seitenzugriff, vermutlich gibt es zu dem Release keine Bilder!"
exit 1
fi
pic_urls=($pic_urls)
#---------------------------------------------------------------------------------------------------------
# Nun laden wir die Bilder einzeln runter, speichern sie temporär, konvertieren sie im Format,
# können sie noch etwas nachbearbeiten und speichern sie dann endgültig neu durchnummeriert
# Unterordner erstellen Name = release_ID
cd $PIC_PATH
if ! [ -d $id ]
then
mkdir $id
fi
cd $id
# Bilder nacheinander runterladen
for url in "${pic_urls[@]}"
do
echo -e "Lade:\t$url --> $PIC_PATH/$id/$PIC_START_NR.$PIC_FRM"
curl --stderr /dev/null --user-agent D_AGENT --output "/tmp/discogs-bild" --remote-name $url
if [ "$?" != "0" ]
then
echo "Problem beim download !"
exit 1
fi
# auf max. größe skalieren, normalisieren, konvertieren und speichern
convert "/tmp/discogs-bild" -resize $PIC_SCALE -normalize "$PIC_START_NR.$PIC_FRM"
PIC_START_NR=$(($PIC_START_NR+1))
done
#---------------------------------------------------------------------------------------------------------
rm -f "/tmp/discogs-bild"
echo -e "Fertig:\t${#pic_urls[*]} Bilder gespeichert"
exit 0
|
- Bilder
|
D630
Anmeldungsdatum: 24. Juli 2013
Beiträge: 329
|
Thanks. Ich schlage ein paar Verbesserungen vor: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68 | {{{#!code d
22,24c22,25
< echo -e "Lade:\t$D_COLLECTION_PAGE?$D_COLLECTION_SORT"
< id=$(curl --stderr /dev/null -A $D_AGENT $D_COLLECTION_PAGE -d $D_COLLECTION_SORT |
< grep -e "release_id=[[:digit:]]*" -m 1 -o | awk -F"=" '{print $2}')
---
> echo -e "Lade:\t$D_COLLECTION_PAGE?$D_COLLECTION_SORT" >&2
> id=$(curl --stderr /dev/null -A "$D_AGENT" "$D_COLLECTION_PAGE" -d "$D_COLLECTION_SORT" |
> grep -e "release_id=[[:digit:]]*" -m 1 -o)
> id=${id#*=}
26c27
< if [ "$id" == "" ]
---
> if [ -z $id ]
28c29
< echo "Fehler beim Seitenzugriff!"
---
> echo "Fehler beim Seitenzugriff!" >&2
37,39c38,40
< echo -e "Lade:\t$D_IMAGES_PAGE?release=$id"
< pic_urls=$(curl --stderr /dev/null -A $D_AGENT $D_IMAGES_PAGE -d "release=$id" |
< grep -o "http://s.pixogs.com/image/R-$id-[^\"]*")
---
> echo -e "Lade:\t$D_IMAGES_PAGE?release=$id" >&2
> pic_urls=($(curl --stderr /dev/null -A "$D_AGENT" "$D_IMAGES_PAGE" -d "release=$id" |
> grep -o "http://s.pixogs.com/image/R-$id-[^\"]*"))
41c42
< if [ "$id" == "" ]
---
> if [ "${#pic_urls[@]}" -eq 0 ]
43c44
< echo "Fehler beim Seitenzugriff, vermutlich gibt es zu dem Release keine Bilder!"
---
> echo "Fehler beim Seitenzugriff, vermutlich gibt es zu dem Release keine Bilder!" >&2
47,48d47
< pic_urls=($pic_urls)
<
54,58c53,54
< cd $PIC_PATH
< if ! [ -d $id ]
< then
< mkdir $id
< fi
---
> cd "$PIC_PATH"
> mkdir -p $id
64,66c60,62
< echo -e "Lade:\t$url --> $PIC_PATH/$id/$PIC_START_NR.$PIC_FRM"
< curl --stderr /dev/null --user-agent D_AGENT --output "/tmp/discogs-bild" --remote-name $url
< if [ "$?" != "0" ]
---
> echo -e "Lade:\t$url --> $PIC_PATH/$id/$PIC_START_NR.$PIC_FRM" >&2
> curl --stderr /dev/null --user-agent "$D_AGENT" --output "/tmp/discogs-bild" --remote-name "$url"
> if [ $? -ne 0 ]
68c64
< echo "Problem beim download !"
---
> echo "Problem beim Download!" >&2
73,74c69,70
< convert "/tmp/discogs-bild" -resize $PIC_SCALE -normalize "$PIC_START_NR.$PIC_FRM"
< PIC_START_NR=$(($PIC_START_NR+1))
---
> convert "/tmp/discogs-bild" -resize "$PIC_SCALE" -normalize "$PIC_START_NR.$PIC_FRM"
> PIC_START_NR=$((PIC_START_NR+1))
79c75
< echo -e "Fertig:\t${#pic_urls[*]} Bilder gespeichert"
---
> echo -e "Fertig:\t${#pic_urls[*]} Bilder gespeichert" >&2
|
:
|
Hellfire-1349
(Themenstarter)
Anmeldungsdatum: 4. September 2014
Beiträge: 29
|
Tja, so sieht das aus, wenn man in ner neuen Sprache versucht was zusammen zu basteln. Also vielen Dank für die Verbesserungen! Sieht auch im Editor farbig viel "richtiger" aus... sollte wohl mehr auf die Kolorierung achten 😉 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 | #!/bin/bash
##########################################################################################################
# Hier bitte Deinen DiscogsNamen eintragen
D_USER="DeinName"
# Wohin die Bilder runtergeladen werden sollen, Größe auf die Skaliert wird, Format, StartNr. nummerierung
PIC_PATH="$HOME/Bilder"
PIC_SCALE="400x400"
PIC_FRM="png"
PIC_START_NR=1
# Agent... was aussagekräftiges "curl" o.ä. wird geblockt
D_AGENT="private_collection_browser_from_discogs_user-$D_USER"
# Startseiten, Sortierstring
D_IMAGES_PAGE="http://www.discogs.com/viewimages"
D_COLLECTION_PAGE="http://www.discogs.com/user/$D_USER/collection"
D_COLLECTION_SORT="sort=added&sort_order=desc&page=1"
#---------------------------------------------------------------------------------------------------------
# Startseite deiner Sammlung sortiert laden und ersten Eintrag finden der so ähnlich aussieht:
# release_id=50437 das ist die ID der deiner Sammlung zu letzt zugefügten Scheibe
echo -e "Lade:\t$D_COLLECTION_PAGE?$D_COLLECTION_SORT" >&2
id=$(curl --stderr /dev/null -A "$D_AGENT" "$D_COLLECTION_PAGE" -d "$D_COLLECTION_SORT" |
grep -e "release_id=[[:digit:]]*" -m 1 -o)
id=${id#*=}
if [ -z $id ]
then
echo "Fehler beim Seitenzugriff!" >&2
exit 1
fi
#---------------------------------------------------------------------------------------------------------
# Mit der rausgefundenen ID holen wir uns nun den Innhalt der Bilderseite und kramen alle Einträge raus
# die bei obiger ID ungefähr so aussähen: http://s.pixogs.com/image/R-50437-.......
# das ist jeweils die URL eines Bildes, welche wir alle zwischenspeichern
echo -e "Lade:\t$D_IMAGES_PAGE?release=$id" >&2
pic_urls=($(curl --stderr /dev/null -A "$D_AGENT" "$D_IMAGES_PAGE" -d "release=$id" |
grep -o "http://s.pixogs.com/image/R-$id-[^\"]*"))
if [ "${#pic_urls[@]}" -eq 0 ]
then
echo "Fehler beim Seitenzugriff, vermutlich gibt es zu dem Release keine Bilder!" >&2
exit 1
fi
#---------------------------------------------------------------------------------------------------------
# Nun laden wir die Bilder einzeln runter, speichern sie temporär, konvertieren sie im Format,
# können sie noch etwas nachbearbeiten und speichern sie dann endgültig neu durchnummeriert
# Unterordner erstellen Name = release_ID
cd "$PIC_PATH"
mkdir -p "$id"
cd "$id"
# Bilder nacheinander runterladen
for url in "${pic_urls[@]}"
do
echo -e "Lade:\t$url --> $PIC_PATH/$id/$PIC_START_NR.$PIC_FRM" >&2
curl --stderr /dev/null --user-agent "$D_AGENT" --output "/tmp/discogs-bild" --remote-name "$url"
if [ $? -ne 0 ]
then
echo "Problem beim download !"
exit 1
fi
# auf max. größe skalieren, normalisieren, konvertieren und speichern
convert "/tmp/discogs-bild" -resize "$PIC_SCALE" -normalize "$PIC_START_NR.$PIC_FRM"
PIC_START_NR=$((PIC_START_NR+1))
done
#---------------------------------------------------------------------------------------------------------
rm -f "/tmp/discogs-bild"
echo -e "Fertig:\t${#pic_urls[*]} Bilder gespeichert" >&2
exit 0
|
|