Copy Link
Add to Bookmark
Report
NULL mag Issue 06 18 ripping 16 colo.rs
would you like to have a complete set of all ansi packages in your pc?
if you don't, you just finished reading this :) all the others
continue...
the simple way is to use the old sixteencolors github account to get
the packs. with a simple command like:
git clone https://github.com/sixteencolors/sixteencolors-archive
we are done... :? because of the size it will get you some time to
download all packages. so lets break the task in smaller ones. lets
download the packages by year, as listed in the repo. to do so, we
must also install svn package. a simple script to get packages by
year is this:
#!/bin/bash
if [[ -z "$1" ]]; then
echo "Usage: "
echo " $0 <year>"
else
svn checkout https://github.com/sixteencolors/sixteencolors-archive/trunk/$1
fi
make it executable and use like: ./scriptname 2001 to get all packages
for year 2001.
finished?... not yet... i noticed that this repo doesn't have all the
packages, like 16colo.rs site does. some are missing... so to get them
all... (like the pokemons, gonna catch them all :p ) we will also have
to rip 16colo.rs.
so... i give you the power! but use it with responsibility! i am not
responsible for any misbehaving of yours. 16colo.rs is a great site
and we have to be responsible with it. so do not download all at once
each pack. use the script just to find missing packs from the git repo
above. you'be been warned!
to the script... so the script downloads all packs from a specific
year, from the 16colo.rs website. because some of them are too big and
personally didn't want them, i placed a "size check" and if the size
is bigger than 10MB it doesn't download it. you can remove that if you
want.
you could also add a check for the file if all ready exists and if so,
don't get it again. it will make things quicker. this is your homework
:p
#!/bin/bash
max=10485760 #10MB
curl https://16colo.rs/year/$1/$2 | grep "href=\"/pack*/" | \
cut -d "\"" -f2 | cut -d "/" -f3 > tmp.txt
while read -r line; do
ss=$(wget --spider https://16colo.rs/archive/$1/$line.zip 2>&1 | \
awk '/Length/ {print $2}')
if [ "$ss" -gt "$max" ]; then
echo "File: $line is too big. Not Downloading."
else
echo "$line : ok"
wget https://16colo.rs/archive/$1/$line.zip
fi
done < tmp.txt
rm tmp.txt
use it like this: ./scriptname <year> <page>
you know what the <year> is, but let me explain <page>. if you go to
the 16colo.rs website and browse packs from a specific year you may
see that it has more than one page to show. thats the page number. an
example. to download the packages from this page:
https://16colo.rs/year/1998/2
you will execute the script like: ./scriptname 1998 2
got it? if no press N, if yes press Y...
16colo.rs