1
0
This commit is contained in:
syui 2024-03-23 15:37:41 +09:00
parent 48dbada67f
commit 862d055aa0
Signed by: syui
GPG Key ID: 5417CFEBAD92DF56
11 changed files with 42 additions and 346 deletions

2
public

@ -1 +1 @@
Subproject commit 431afd6a3750fdfbc6d99b1e7c2a1d305d47a27c Subproject commit 95b8eba81cf03318636d6527b4f6ff35a65f3ace

View File

@ -1,16 +0,0 @@
#!/bin/zsh
d=${0:a:h}
dd=${0:a:h:h}
url=https://syui.ai/img
json=$dd/public/json/card.json
n=`cat $json|jq "length"`
n=`expr $n - 1`
for ((i=0;i<=14;i++))
do
sid=`cat $json|jq -r ".[$i].src"`
id=`cat $json|jq -r ".[$i].id"`
curl -sL $url/${sid}.png -o ~/ai/yui/content/img/${id}.png
done

View File

@ -2,6 +2,9 @@
d=${0:a:h} d=${0:a:h}
dd=${0:a:h:h} dd=${0:a:h:h}
echo "1 : [d]efault(no), [b]lack, [s]ilver"
read
url=syui.ai/img url=syui.ai/img
case $OSTYPE in case $OSTYPE in
@ -12,14 +15,27 @@ case $OSTYPE in
esac esac
dir=$dd/public/card dir=$dd/public/card
static=$dd/static/img static=$dd/public/static/img
json=$dd/public/json/card.json json=$dd/public/json/card.json
mkdir -p $dir mkdir -p $dir
mkdir -p $static mkdir -p $static
n=`cat $json|jq "length"` n=`cat $json|jq "length"`
n=`expr $n - 1` n=`expr $n - 1`
bg=$static/card_bg.png
br=$static/card_br.png case $1 in
silver|s)
bg=$static/card_bg_silver.png
br=$static/card_br.png
;;
black|b)
bg=$static/card_bg_black.png
br=$static/card_br.png
;;
default|d|*)
bg=$static/card_bg.png
br=$static/card_br.png
;;
esac
cd $dir cd $dir
export NVM_DIR="$HOME/.nvm" export NVM_DIR="$HOME/.nvm"
@ -34,7 +50,6 @@ do
s=$static/${sid}.png s=$static/${sid}.png
id=`cat $json|jq -r ".[$i].id"` id=`cat $json|jq -r ".[$i].id"`
o=$dir/card_$id.png o=$dir/card_$id.png
gif=$dir/card_$id.gif
if [ -f $o ];then if [ -f $o ];then
continue continue

View File

@ -1,53 +0,0 @@
#!/bin/zsh
d=${0:a:h}
dd=${0:a:h:h}
url=syui.ai/img
case $OSTYPE in
darwin*)
path_nvm_sh="/opt/homebrew/opt/nvm/nvm.sh";;
linux*)
path_nvm_sh="";;
esac
dir=$dd/public/card
static=$dd/static/img
json=$dd/public/json/card.json
mkdir -p $dir
mkdir -p $static
n=`cat $json|jq "length"`
n=`expr $n - 1`
bg=$static/card_bg_origin.png
br=$static/card_br.png
cd $dir
export NVM_DIR="$HOME/.nvm"
[ -s "$path_nvm_sh" ] && \. "$path_nvm_sh"
nvm use 17
nvm i squoosh-cli
for ((i=0;i<=$n;i++))
do
p=`cat $json|jq -r ".[$i].p"`
sid=`cat $json|jq -r ".[$i].src"`
s=$static/${sid}.png
id=`cat $json|jq -r ".[$i].id"`
o=$dir/card_origin_${id}.png
if [ -f $o ];then
continue
fi
if [ ! -f $s ];then
curl -sL $url/yui_${sid}.png -o $s
fi
if [ ! -f $o ] && [ -z "`echo $s|grep ai_model`" ];then
composite -gravity north -geometry +0+160 -compose over $s $bg $o.back
composite -gravity north -geometry +0+0 -compose over $br $o.back $o
squoosh-cli --webp '{"quality":100}' -d ./ --resize '{width:825,height:1080}' $o
rm $o.back
fi
done

View File

@ -1,53 +0,0 @@
#!/bin/zsh
d=${0:a:h}
dd=${0:a:h:h}
url=syui.ai/img
case $OSTYPE in
darwin*)
path_nvm_sh="/opt/homebrew/opt/nvm/nvm.sh";;
linux*)
path_nvm_sh="";;
esac
dir=$dd/public/card
static=$dd/static/img
json=$dd/public/json/card.json
mkdir -p $dir
mkdir -p $static
n=`cat $json|jq "length"`
n=`expr $n - 1`
bg=$static/card_bg_origin2.png
br=$static/card_br.png
cd $dir
export NVM_DIR="$HOME/.nvm"
[ -s "$path_nvm_sh" ] && \. "$path_nvm_sh"
nvm use 17
nvm i squoosh-cli
for ((i=0;i<=$n;i++))
do
p=`cat $json|jq -r ".[$i].p"`
sid=`cat $json|jq -r ".[$i].src"`
s=$static/${sid}.png
id=`cat $json|jq -r ".[$i].id"`
o=$dir/card_origin2_${id}.png
if [ -f $o ];then
continue
fi
if [ ! -f $s ];then
curl -sL $url/yui_${sid}.png -o $s
fi
if [ ! -f $o ] && [ -z "`echo $s|grep ai_model`" ];then
composite -gravity north -geometry +0+160 -compose over $s $bg $o.back
composite -gravity north -geometry +0+0 -compose over $br $o.back $o
squoosh-cli --webp '{"quality":100}' -d ./ --resize '{width:825,height:1080}' $o
rm $o.back
fi
done

View File

@ -1,55 +0,0 @@
#!/bin/zsh
d=${0:a:h}
dd=${0:a:h:h}
url=syui.ai/img
case $OSTYPE in
darwin*)
path_nvm_sh="/opt/homebrew/opt/nvm/nvm.sh";;
linux*)
path_nvm_sh="";;
esac
dir=$dd/public/card
static=$dd/static/img
json=$dd/public/json/card.json
mkdir -p $dir
mkdir -p $static
n=`cat $json|jq "length"`
n=`expr $n - 1`
bg=$static/card_bg_s.png
br=$static/card_bg_sr.png
for ((i=0;i<=$n;i++))
do
p=`cat $json|jq -r ".[$i].p"`
sid=`cat $json|jq -r ".[$i].src"`
s=$static/${sid}.png
id=`cat $json|jq -r ".[$i].id"`
o=$dir/test_${id}s.png
if [ -f $o ];then
continue
fi
if [ ! -f $s ];then
curl -sL $url/yui_${sid}.png -o $s
fi
#if [ ! -f $o ];then
composite -gravity north -geometry +0+160 -compose over $s $bg $o.back
composite -gravity north -geometry +0+0 -compose over $br $o.back $o
rm $o.back
#fi
done
cd $dir
export NVM_DIR="$HOME/.nvm"
[ -s "$path_nvm_sh" ] && \. "$path_nvm_sh"
nvm use 17
nvm i squoosh-cli
#rm og_*
squoosh-cli --webp '{"quality":100}' -d ./ --resize '{width:825,height:1080}' *.png
#mogrify -resize 1620x2160! *.png

View File

@ -1,59 +0,0 @@
#!/bin/zsh
d=${0:a:h}
dd=${0:a:h:h}
url=syui.ai/img
case $OSTYPE in
darwin*)
path_nvm_sh="/opt/homebrew/opt/nvm/nvm.sh";;
linux*)
path_nvm_sh="";;
esac
dir=$dd/public/card
static=$dd/static/img
json=$dd/public/json/card.json
mkdir -p $dir
mkdir -p $static
n=`cat $json|jq "length"`
n=`expr $n - 1`
bg=$static/card_bg.png
br=$static/card_br.png
for ((i=0;i<=$n;i++))
do
p=`cat $json|jq -r ".[$i].p"`
sid=`cat $json|jq -r ".[$i].src"`
s=$static/${sid}.png
id=`cat $json|jq -r ".[$i].id"`
gif=$dir/card_$id.gif
if [ -f $gif ];then
continue
fi
nn=`ls $static/card_bgg_*.png|wc -l`
nn=$((nn - 1))
for ((ii=0;ii<=$nn;ii++))
do
title=$dir/null
o=${title}_${ii}.png
br=$static/card_bgg_${ii}.png
composite -gravity north -geometry +0+160 -compose over $s $bg $o.back
composite -gravity north -geometry +0+0 -compose over $br $o.back $o
rm $o.back
export NVM_DIR="$HOME/.nvm"
[ -s "$path_nvm_sh" ] && \. "$path_nvm_sh"
nvm use 17
nvm i squoosh-cli
squoosh-cli --webp '{"quality":100}' -d $dir --resize '{width:400,height:524}' $o
done
convert -layers optimize -loop 0 -delay 40 $dir/null_*.webp $gif
rm -f $dir/null_*
done

View File

@ -1,59 +0,0 @@
#!/bin/zsh
d=${0:a:h}
dd=${0:a:h:h}
url=syui.ai/img
case $OSTYPE in
darwin*)
path_nvm_sh="/opt/homebrew/opt/nvm/nvm.sh";;
linux*)
path_nvm_sh="";;
esac
dir=$dd/public/card
static=$dd/static/img
json=$dd/public/json/card.json
mkdir -p $dir
mkdir -p $static
n=`cat $json|jq "length"`
n=`expr $n - 1`
bg=$static/card_bg.png
br=$static/card_br.png
for ((i=0;i<=$n;i++))
do
p=`cat $json|jq -r ".[$i].p"`
sid=`cat $json|jq -r ".[$i].src"`
s=$static/${sid}.png
id=`cat $json|jq -r ".[$i].id"`
gif=$dir/card_first_$id.gif
if [ -f $gif ];then
continue
fi
nn=`ls $static/card_bgg_first_*.png|wc -l`
nn=$((nn - 1))
for ((ii=0;ii<=$nn;ii++))
do
title=$dir/null
o=${title}_first_${ii}.png
br=$static/card_bgg_first_${ii}.png
composite -gravity north -geometry +0+160 -compose over $s $bg $o.back
composite -gravity north -geometry +0+0 -compose over $br $o.back $o
rm $o.back
export NVM_DIR="$HOME/.nvm"
[ -s "$path_nvm_sh" ] && \. "$path_nvm_sh"
nvm use 17
nvm i squoosh-cli
squoosh-cli --webp '{"quality":100}' -d $dir --resize '{width:400,height:524}' $o
done
convert -layers optimize -loop 0 -delay 40 $dir/null_*.webp $gif
rm -f $dir/null_*
done

View File

@ -1,38 +0,0 @@
#!/bin/zsh
inp=mp4
for i in *.${inp}
do
ffmpeg -i *.${inp} -r 8 %04d.png
done
inp=png
out=jpg
for i in *.${inp}
do
convert ${i%.*}.${inp} -gravity center -crop 825x1080+0+0 ${i%.*}_crop.${inp}
convert ${i%.*}_crop.${inp} -resize 1620x2160! ${i%.*}.${out}
done
nn=`ls *.jpg|wc -l`
static=~/ai/card/static/img
bg=$static/card_bg.png
br=$static/card_br.png
for ((ii=1;ii<=$nn;ii++))
do
s=`ls *.jpg|awk "NR==$ii"`
o=null_${ii}.png
echo $o
if [ -f $b ];then
echo yes
else
echo no
fi
composite -gravity north -geometry +0+160 -compose over $s $bg $o.back
composite -gravity north -geometry +0+0 -compose over $br $o.back $o
rm $o.back
done
gif=`ls *.mp4|cut -d . -f 1`.gif
convert -layers optimize -loop 0 -delay 40 null_*.png $gif
rm *.jpg
rm *.png

View File

@ -4,8 +4,8 @@ url=https://card.syui.ai
d=${0:a:h} d=${0:a:h}
dd=${0:a:h:h} dd=${0:a:h:h}
dir=$dd/public/card dir=$dd/public/card
o_dir=$dd/static/img o_dir=$dd/public/static/img
static=$dd/static/img static=$dd/public/static/img
json=$dd/public/json/card.json json=$dd/public/json/card.json
mkdir -p $dir mkdir -p $dir
mkdir -p $static mkdir -p $static
@ -25,6 +25,7 @@ do
index=$o_dir/$id/index.html index=$o_dir/$id/index.html
if [ ! -f $oo ];then if [ ! -f $oo ];then
echo $oo
convert $o -gravity center -extent 8000x4000 $oo convert $o -gravity center -extent 8000x4000 $oo
fi fi

View File

@ -60,7 +60,7 @@
</div> </div>
<div class="card_kira_center"> <div class="card_kira_center">
<button v-on:click="cardoriginstatus" class="card_origin_status"><span class="icon-ai"></span></button> <button v-if="cards.data.filter((v) => v.skill == '3d' && (v.card >= 0 && v.card <= 14 || v.card == 64))[0]" v-on:click="glb_status = !glb_status"><i class="fa-solid fa-star-half-stroke"></i></button> <button v-if="model == true || cards.data.filter((v) => v.skill == 'model').length >= 1" v-on:click="vrmviewer" class="unity"><i class="fa-solid fa-cube" id="vrm_button"></i></button> <button v-on:click="cardoriginstatus" class="card_origin_status"><span class="icon-ai"></span></button> <button v-if="cards.data.filter((v) => v.skill == '3d' && (v.card >= 0 && v.card <= 14 || v.card == 64))[0]" v-on:click="glb_status = !glb_status" class="unity"><i class="fa-solid fa-cube" id="vrm_button"></i></button> <button v-if="model == true || cards.data.filter((v) => v.skill == 'model').length >= 1" v-on:click="vrmviewer"><i class="fa-solid fa-gamepad"></i></button> <button v-if="game == true" v-on:click="term_status = !term_status"><i class="fa-solid fa-terminal"></i></button>
</div> </div>
<span class="card-fav" v-if="card_origin_status"> <span class="card-fav" v-if="card_origin_status">
@ -142,10 +142,19 @@
<model-viewer v-if="glb_next !== 0" class="ar" :src="'/obj/card_' + glb_next + '.glb'" ar-modes="scene-viewer webxr quick-look" auto-rotate autoplay ar camera-controls></model-viewer> <model-viewer v-if="glb_next !== 0" class="ar" :src="'/obj/card_' + glb_next + '.glb'" ar-modes="scene-viewer webxr quick-look" auto-rotate autoplay ar camera-controls></model-viewer>
<model-viewer v-else class="ar" :src="'/obj/card_' + cards.data.filter((v) => v.skill == '3d' && (v.card >= 1 && v.card <= 14 || v.card == 64))[0].card + '.glb'" ar-modes="scene-viewer webxr quick-look" auto-rotate autoplay ar camera-controls></model-viewer> <model-viewer v-else class="ar" :src="'/obj/card_' + cards.data.filter((v) => v.skill == '3d' && (v.card >= 1 && v.card <= 14 || v.card == 64))[0].card + '.glb'" ar-modes="scene-viewer webxr quick-look" auto-rotate autoplay ar camera-controls></model-viewer>
<span v-for="(ii, index) in cards.data.filter((v) => v.skill == '3d' && (v.card >= 1 && v.card <= 14 || v.card == 64))" class="glb"> <span v-for="(ii, index) in cards.data.filter((v) => v.skill == '3d' && (v.card >= 1 && v.card <= 14 || v.card == 64))" class="glb">
<img :src='"/card/card_" + ii.card + ".webp"' v-on:click="glb_next = ii.card"> <thead>
<tr>
<img :src='"/card/card_" + ii.card + ".webp"' v-on:click="glb_next = ii.card">
</tr>
<tr>{{ ii.cp }}</tr>
</thead>
</span> </span>
</div> </div>
<div class="term" v-if="term_status == true">
<iframe :src="'https://term.syui.ai?user=' + username + '&id=' + id" allowfullscreen frameborder="0"></iframe>
</div>
<!-- <!--
first(ファースト) second(セカンド) third(サード) fourth(フォース) fifth(フィフス) sixth(スィクスス) seventh(セヴンス) eighth(エイトス) ninth(ナインス) tenth(テンス) eleventh(イレヴンス) twelfth(トウェルフス) thirteenth(サーティーンス) fifteenth(フィフティーンス) sixteenth(スィクスティーンス) seventeenth(セヴンティーンス) eighteenth(エイティーンス) nineteenth(ナインティーンス) twentieth(トウィンティイス) first(ファースト) second(セカンド) third(サード) fourth(フォース) fifth(フィフス) sixth(スィクスス) seventh(セヴンス) eighth(エイトス) ninth(ナインス) tenth(テンス) eleventh(イレヴンス) twelfth(トウェルフス) thirteenth(サーティーンス) fifteenth(フィフティーンス) sixteenth(スィクスティーンス) seventeenth(セヴンティーンス) eighteenth(エイティーンス) nineteenth(ナインティーンス) twentieth(トウィンティイス)
--> -->
@ -836,7 +845,7 @@
<p :id="ii.id">[{{ ii.ten }}] {{ ii.h }} / {{ ii.id }}00</p> <p :id="ii.id">[{{ ii.ten }}] {{ ii.h }} / {{ ii.id }}00</p>
<p><img :src='"/card/card_" + ii.id + ".webp"'></p> <p><img :src='"/card/card_" + ii.id + ".webp"'></p>
</div> </div>
<div v-show="ii.id == 29 || ii.id == 33 || ii.id == 36 || ii.id == 46 || ii.id == 47 || ii.id == 60 || ii.id == 64 || ii.id == 67 || ii.id == 69 || ii.id == 76 || ii.id == 77 || ii.id == 78|| ii.id == 86|| ii.id == 89 || ii.id == 90 || ii.id == 95||ii.id == 121" class="card-owner-one"> <div v-show="ii.id == 29 || ii.id == 33 || ii.id == 36 || ii.id == 46 || ii.id == 47 || ii.id == 60 || ii.id == 64 || ii.id == 67 || ii.id == 69 || ii.id == 76 || ii.id == 77 || ii.id == 78|| ii.id == 86|| ii.id == 89 || ii.id == 90 || ii.id == 95||ii.id == 122" class="card-owner-one">
<p :id="ii.id"><button>id:{{ ii.id }}</button></p> <p :id="ii.id"><button>id:{{ ii.id }}</button></p>
<p :id="ii.id">[{{ ii.ten }}] {{ ii.h }} / {{ ii.id }}00 <span class="icon-power"></span></p> <p :id="ii.id">[{{ ii.ten }}] {{ ii.h }} / {{ ii.id }}00 <span class="icon-power"></span></p>
<p><img :src='"/card/card_" + ii.id + ".webp"'></p> <p><img :src='"/card/card_" + ii.id + ".webp"'></p>
@ -849,7 +858,6 @@
<div class="iten-start"> <div class="iten-start">
<p><code>/ten h</code> : ヘルプ</p> <p><code>/ten h</code> : ヘルプ</p>
<p><code>/ten start</code> : 7ターンまでに文字をそろえる</p> <p><code>/ten start</code> : 7ターンまでに文字をそろえる</p>
<p><span class="icon-power"></span> はカードを持ってる人しか出せない</p>
<blockquote>ACEHIKMOSTUWYZ</blockquote> <blockquote>ACEHIKMOSTUWYZ</blockquote>
</div> </div>
</div> </div>
@ -925,6 +933,7 @@ export default {
card: null, card: null,
cards: null, cards: null,
loc: window.location.pathname.split('/').slice(-1)[0], loc: window.location.pathname.split('/').slice(-1)[0],
username: null,
id: null, id: null,
model: null, model: null,
record: null, record: null,
@ -956,6 +965,7 @@ export default {
model_attack: null, model_attack: null,
model_critical: null, model_critical: null,
model_critical_d: null, model_critical_d: null,
game: null,
game_lv: null, game_lv: null,
api_url: null, api_url: null,
bsky_mode: false, bsky_mode: false,
@ -963,6 +973,7 @@ export default {
card_origin_status: false, card_origin_status: false,
useragent: window.navigator.userAgent.toLowerCase(), useragent: window.navigator.userAgent.toLowerCase(),
iframe_status: false, iframe_status: false,
term_status: false,
sort_key: null, sort_key: null,
} }
}, },
@ -1007,18 +1018,20 @@ export default {
axios.get(url,{ crossdomain: true }) axios.get(url,{ crossdomain: true })
.then(response => { .then(response => {
this.record = response; this.record = response;
this.username = this.record.data.find((v) => v.username == loc).username;
this.id = this.record.data.find((v) => v.username == loc).id; this.id = this.record.data.find((v) => v.username == loc).id;
this.model = this.record.data.find((v) => v.username == loc).model; this.model = this.record.data.find((v) => v.username == loc).model;
this.did = this.record.data.find((v) => v.username == loc).did; this.did = this.record.data.find((v) => v.username == loc).did;
this.aiten = this.record.data.find((v) => v.username == loc).aiten; this.aiten = this.record.data.find((v) => v.username == loc).aiten;
this.bsky_mode = this.record.data.find((v) => v.username == loc).bsky; this.bsky_mode = this.record.data.find((v) => v.username == loc).bsky;
this.user_fav = this.record.data.find((v) => v.username == loc).fav; this.user_fav = this.record.data.find((v) => v.username == loc).fav;
this.game = this.record.data.find((v) => v.username == loc).game;
this.game_lv = this.record.data.find((v) => v.username == loc).game_lv; this.game_lv = this.record.data.find((v) => v.username == loc).game_lv;
this.model_attack = this.record.data.find((v) => v.username == loc).model_attack; this.model_attack = this.record.data.find((v) => v.username == loc).model_attack;
this.model_critical = this.record.data.find((v) => v.username == loc).model_critical; this.model_critical = this.record.data.find((v) => v.username == loc).model_critical;
this.model_critical_d = this.record.data.find((v) => v.username == loc).model_critical_d; this.model_critical_d = this.record.data.find((v) => v.username == loc).model_critical_d;
this.user_room = this.record.data.find((v) => v.username == loc).room; this.user_room = this.record.data.find((v) => v.username == loc).room;
let url = this.api_url + "users/" + this.id + "/card?itemsPerPage=3000"; let url = this.api_url + "users/" + this.id + "/card?itemsPerPage=4000";
axios axios
.get("/json/card.json") .get("/json/card.json")
.then(response => (this.rcards = response)); .then(response => (this.rcards = response));
@ -1823,7 +1836,7 @@ span.glb {
blockquote.did { blockquote.did {
background-color: #fff; background-color: #fff;
color: #000; color: #000;
text-align: left; text-align: left;
} }
</style> </style>