-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmagpi-issue-downloader.sh
75 lines (64 loc) · 2.41 KB
/
magpi-issue-downloader.sh
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
#!/bin/bash
OUTDIR="issues"
URL_FILE="issues.txt"
MAGPI_DIR="magpi"
HACKSPACE_DIR="hackspace"
MAGPI_URL="https://magpi.raspberrypi.com/"
HACKSPACE_URL="https://hackspace.raspberrypi.com/"
MAGPI_FIRST=1
HACKSPACE_FIRST=1
MAGPI_LATEST=113
HACKSPACE_LATEST=50
ARIA_PARALLEL_DOWNLOADS=4
if [ ! -d "$OUTDIR" ]; then
mkdir "$OUTDIR"
mkdir "$OUTDIR/$MAGPI_DIR"
mkdir "$OUTDIR/$HACKSPACE_DIR"
touch "$OUTDIR/$MAGPI_DIR/$URL_FILE"
touch "$OUTDIR/$HACKSPACE_DIR/$URL_FILE"
fi
clear
if [[ $(wc -l < "$OUTDIR/$MAGPI_DIR/$URL_FILE") -ne $MAGPI_LATEST ]]; then
rm "$OUTDIR/$MAGPI_DIR/$URL_FILE"
for i in $( seq $MAGPI_FIRST $MAGPI_LATEST )
do
URL=$(curl -s "${MAGPI_URL}issues/${i}/pdf/download/" | grep "c-link" | grep -o -P '(?<=href="/).*(?=">)')
echo -ne "Writing URL for $MAGPI_DIR issue $i/$MAGPI_LATEST to $OUTDIR/$MAGPI_DIR/$URL_FILE...\\r"
echo $MAGPI_URL$URL >> $OUTDIR/$MAGPI_DIR/$URL_FILE
done
fi
clear
if [[ $(wc -l < "$OUTDIR/$HACKSPACE_DIR/$URL_FILE") -ne $HACKSPACE_LATEST ]]; then
rm "$OUTDIR/$HACKSPACE_DIR/$URL_FILE"
for i in $( seq $HACKSPACE_FIRST $HACKSPACE_LATEST )
do
URL=$(curl -s "${HACKSPACE_URL}issues/${i}/pdf/download/" | grep "c-link" | grep -o -P '(?<=href="/).*(?=">)' | tail -1)
echo -ne "Writing URL for $HACKSPACE_DIR issue $i/$HACKSPACE_LATEST to $OUTDIR/$HACKSPACE_DIR/$URL_FILE...\\r"
echo $HACKSPACE_URL$URL >> $OUTDIR/$HACKSPACE_DIR/$URL_FILE
done
fi
clear
if [ "$OUTDIR/$MAGPI_DIR/$URL_FILE" ] && [ "$OUTDIR/$HACKSPACE_DIR/$URL_FILE" ]; then
echo "Downloading $MAGPI_LATEST $MAGPI_DIR issues and $HACKSPACE_LATEST $HACKSPACE_DIR issues to $OUTDIR/..."
if command -v aria2c &> /dev/null
then
aria2c -i "$OUTDIR/$MAGPI_DIR/$URL_FILE" \
-j $ARIA_PARALLEL_DOWNLOADS \
--dir "$OUTDIR/$MAGPI_DIR" \
--continue=true \
--keep-unfinished-download-result=false \
--summary-interval=0 \
--auto-file-renaming=false
aria2c -i "$OUTDIR/$HACKSPACE_DIR/$URL_FILE" \
-j $ARIA_PARALLEL_DOWNLOADS \
--dir "$OUTDIR/$HACKSPACE_DIR" \
--continue=true \
--keep-unfinished-download-result=false \
--summary-interval=0 \
--auto-file-renaming=false
else
wget -nc -i "$OUTDIR/$MAGPI_DIR/$URL_FILE" -P "$OUTDIR/$MAGPI_DIR" -q --show-progress --progress=bar:force:noscroll
wget -nc -i "$OUTDIR/$HACKSPACE_DIR/$URL_FILE" -P "$OUTDIR/$HACKSPACE_DIR" -q --show-progress --progress=bar:force:noscroll
fi
fi
exit 0