commit initial working script
parent
6cc792cd5e
commit
b7f8df867a
|
@ -1,3 +1,3 @@
|
|||
# mcskin
|
||||
|
||||
Bash script to tetch and display a minecraft user's skin in ANSI colours in your terminal.
|
||||
Bash script to fetch and display a minecraft user's skin in ANSI colours in your terminal.
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
#!/bin/bash
|
||||
|
||||
name=$1
|
||||
view=${2:-"body"}
|
||||
datestamp=$(date -I)
|
||||
|
||||
slim=/tmp/${name}_slim_${datestamp}.png
|
||||
classic=/tmp/${name}_classic_${datestamp}.png
|
||||
|
||||
if [ -f $slim ]; then
|
||||
skin=$slim
|
||||
style=slim
|
||||
w=3
|
||||
elif [ -f $classic ]; then
|
||||
skin=$classic
|
||||
style=classic
|
||||
w=4
|
||||
else
|
||||
uuid=$(curl -s https://api.mojang.com/users/profiles/minecraft/$name | jq -r .id)
|
||||
textures=$(curl -s https://sessionserver.mojang.com/session/minecraft/profile/$uuid | jq -r '.properties[] | select(.name=="textures") | .value' | base64 -d)
|
||||
#echo $textures
|
||||
read url style <<< $(echo $textures | jq -r '.textures.SKIN | [.url, .metadata.model]|@tsv')
|
||||
style=${style:-classic}
|
||||
skin=/tmp/${name}_${style}_${datestamp}.png
|
||||
rm /tmp/${name}_${style}_*.png
|
||||
wget $url -O $skin
|
||||
fi
|
||||
|
||||
main="-crop 8x8+8+8"
|
||||
case $view in
|
||||
all) main="";;
|
||||
head) head="( +clone -copy 8x8+40+8 +8+8 ) -composite";;
|
||||
body) main="( +clone -copy 8x8+40+8 +8+8 ) -composite
|
||||
( +clone -copy 8x12+20+20 +8+16 ) -composite
|
||||
( +clone -copy 4x12+44+20 +4+16 ) -composite
|
||||
( +clone -copy 4x12+36+52 +16+16 ) -composite
|
||||
( +clone -copy 4x12+20+52 +12+28 ) -composite
|
||||
( +clone -copy 4x12+24+52 +8+28 ) -composite
|
||||
( +clone -copy 8x12+20+36 +8+16 ) -composite
|
||||
( +clone -copy 4x12+44+36 +4+16 ) -composite
|
||||
( +clone -copy 4x12+52+52 +16+16 ) -composite
|
||||
( +clone -copy 4x12+4+52 +12+28 ) -composite
|
||||
( +clone -copy 4x12+4+36 +8+28 ) -composite
|
||||
-crop 16x32+4+8
|
||||
";
|
||||
crop="rectangle 0,0 3,7 rectangle 12,0 15,7
|
||||
rectangle 0,20 3,31 rectangle 12,20 15,31";
|
||||
esac
|
||||
|
||||
convert $skin $head $main -compress none -depth 8 -fill black -draw "$crop" PNM:- | tail -n+4 | while read row; do
|
||||
read row2
|
||||
paste <(sed 's/\(\(\w*\s\)\{3\}\)/\1\n/g' <<< $row) <(sed 's/\(\(\w*\s\)\{3\}\)/\1\n/g' <<< $row2) | while read r g b R G B; do
|
||||
if [ $r = "0" ] && [ $g = "0" ] && [ $b = "0" ]; then
|
||||
printf "\e[0m "
|
||||
else
|
||||
printf "\e[38;2;$r;$g;$b;48;2;$R;$G;${B}m▀"
|
||||
fi
|
||||
done
|
||||
echo -e "\e[0m"
|
||||
done
|
||||
|
||||
|
Loading…
Reference in New Issue