diff --git a/data/gschemas.compiled b/data/gschemas.compiled new file mode 100644 index 0000000..0c2a5c6 Binary files /dev/null and b/data/gschemas.compiled differ diff --git a/data/jp.angeltech.MoeMoji.gschema.xml b/data/jp.angeltech.MoeMoji.gschema.xml index c9c7839..96b9558 100644 --- a/data/jp.angeltech.MoeMoji.gschema.xml +++ b/data/jp.angeltech.MoeMoji.gschema.xml @@ -4,7 +4,17 @@ 'alpha-asc' Category sort order - How categories are sorted: alpha-asc, alpha-desc, modified-asc, modified-desc, created-asc, created-desc + How categories are sorted: alpha-asc, alpha-desc, modified-asc, modified-desc + + + ['happy', 'love', 'greeting', 'hugging', 'friends', 'winking', 'sympathy', 'music', 'magic', 'surprise', 'food', 'games', 'faces', 'running', 'sleeping', 'writing', 'special', 'nosebleeding', 'apologizing', 'hiding', 'embarassment', 'confusion', 'doubt', 'indifference', 'dissatisfaction', 'fear', 'sadness', 'pain', 'anger', 'enemies', 'weapons', 'cat', 'dog', 'bear', 'rabbit', 'bird', 'fish', 'pig', 'spider'] + Category order + Ordered list of category directory basenames for custom sidebar/content ordering + + + [] + Pinned kaomojis + List of pinned kaomoji strings shown in the sidebar diff --git a/data/kaomoji/anger/.name b/data/kaomoji/anger/.name new file mode 100644 index 0000000..ef58713 --- /dev/null +++ b/data/kaomoji/anger/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ anger diff --git a/data/kaomoji/13 - anger/1.txt b/data/kaomoji/anger/1.txt similarity index 100% rename from data/kaomoji/13 - anger/1.txt rename to data/kaomoji/anger/1.txt diff --git a/data/kaomoji/13 - anger/10.txt b/data/kaomoji/anger/10.txt similarity index 100% rename from data/kaomoji/13 - anger/10.txt rename to data/kaomoji/anger/10.txt diff --git a/data/kaomoji/13 - anger/11.txt b/data/kaomoji/anger/11.txt similarity index 100% rename from data/kaomoji/13 - anger/11.txt rename to data/kaomoji/anger/11.txt diff --git a/data/kaomoji/13 - anger/12.txt b/data/kaomoji/anger/12.txt similarity index 100% rename from data/kaomoji/13 - anger/12.txt rename to data/kaomoji/anger/12.txt diff --git a/data/kaomoji/13 - anger/13.txt b/data/kaomoji/anger/13.txt similarity index 100% rename from data/kaomoji/13 - anger/13.txt rename to data/kaomoji/anger/13.txt diff --git a/data/kaomoji/13 - anger/14.txt b/data/kaomoji/anger/14.txt similarity index 100% rename from data/kaomoji/13 - anger/14.txt rename to data/kaomoji/anger/14.txt diff --git a/data/kaomoji/13 - anger/15.txt b/data/kaomoji/anger/15.txt similarity index 100% rename from data/kaomoji/13 - anger/15.txt rename to data/kaomoji/anger/15.txt diff --git a/data/kaomoji/13 - anger/16.txt b/data/kaomoji/anger/16.txt similarity index 100% rename from data/kaomoji/13 - anger/16.txt rename to data/kaomoji/anger/16.txt diff --git a/data/kaomoji/13 - anger/17.txt b/data/kaomoji/anger/17.txt similarity index 100% rename from data/kaomoji/13 - anger/17.txt rename to data/kaomoji/anger/17.txt diff --git a/data/kaomoji/13 - anger/18.txt b/data/kaomoji/anger/18.txt similarity index 100% rename from data/kaomoji/13 - anger/18.txt rename to data/kaomoji/anger/18.txt diff --git a/data/kaomoji/13 - anger/19.txt b/data/kaomoji/anger/19.txt similarity index 100% rename from data/kaomoji/13 - anger/19.txt rename to data/kaomoji/anger/19.txt diff --git a/data/kaomoji/13 - anger/2.txt b/data/kaomoji/anger/2.txt similarity index 100% rename from data/kaomoji/13 - anger/2.txt rename to data/kaomoji/anger/2.txt diff --git a/data/kaomoji/13 - anger/20.txt b/data/kaomoji/anger/20.txt similarity index 100% rename from data/kaomoji/13 - anger/20.txt rename to data/kaomoji/anger/20.txt diff --git a/data/kaomoji/13 - anger/21.txt b/data/kaomoji/anger/21.txt similarity index 100% rename from data/kaomoji/13 - anger/21.txt rename to data/kaomoji/anger/21.txt diff --git a/data/kaomoji/13 - anger/22.txt b/data/kaomoji/anger/22.txt similarity index 100% rename from data/kaomoji/13 - anger/22.txt rename to data/kaomoji/anger/22.txt diff --git a/data/kaomoji/13 - anger/23.txt b/data/kaomoji/anger/23.txt similarity index 100% rename from data/kaomoji/13 - anger/23.txt rename to data/kaomoji/anger/23.txt diff --git a/data/kaomoji/13 - anger/24.txt b/data/kaomoji/anger/24.txt similarity index 100% rename from data/kaomoji/13 - anger/24.txt rename to data/kaomoji/anger/24.txt diff --git a/data/kaomoji/13 - anger/25.txt b/data/kaomoji/anger/25.txt similarity index 100% rename from data/kaomoji/13 - anger/25.txt rename to data/kaomoji/anger/25.txt diff --git a/data/kaomoji/13 - anger/26.txt b/data/kaomoji/anger/26.txt similarity index 100% rename from data/kaomoji/13 - anger/26.txt rename to data/kaomoji/anger/26.txt diff --git a/data/kaomoji/13 - anger/27.txt b/data/kaomoji/anger/27.txt similarity index 100% rename from data/kaomoji/13 - anger/27.txt rename to data/kaomoji/anger/27.txt diff --git a/data/kaomoji/13 - anger/28.txt b/data/kaomoji/anger/28.txt similarity index 100% rename from data/kaomoji/13 - anger/28.txt rename to data/kaomoji/anger/28.txt diff --git a/data/kaomoji/13 - anger/29.txt b/data/kaomoji/anger/29.txt similarity index 100% rename from data/kaomoji/13 - anger/29.txt rename to data/kaomoji/anger/29.txt diff --git a/data/kaomoji/13 - anger/3.txt b/data/kaomoji/anger/3.txt similarity index 100% rename from data/kaomoji/13 - anger/3.txt rename to data/kaomoji/anger/3.txt diff --git a/data/kaomoji/13 - anger/30.txt b/data/kaomoji/anger/30.txt similarity index 100% rename from data/kaomoji/13 - anger/30.txt rename to data/kaomoji/anger/30.txt diff --git a/data/kaomoji/13 - anger/31.txt b/data/kaomoji/anger/31.txt similarity index 100% rename from data/kaomoji/13 - anger/31.txt rename to data/kaomoji/anger/31.txt diff --git a/data/kaomoji/13 - anger/32.txt b/data/kaomoji/anger/32.txt similarity index 100% rename from data/kaomoji/13 - anger/32.txt rename to data/kaomoji/anger/32.txt diff --git a/data/kaomoji/13 - anger/33.txt b/data/kaomoji/anger/33.txt similarity index 100% rename from data/kaomoji/13 - anger/33.txt rename to data/kaomoji/anger/33.txt diff --git a/data/kaomoji/13 - anger/34.txt b/data/kaomoji/anger/34.txt similarity index 100% rename from data/kaomoji/13 - anger/34.txt rename to data/kaomoji/anger/34.txt diff --git a/data/kaomoji/13 - anger/4.txt b/data/kaomoji/anger/4.txt similarity index 100% rename from data/kaomoji/13 - anger/4.txt rename to data/kaomoji/anger/4.txt diff --git a/data/kaomoji/13 - anger/5.txt b/data/kaomoji/anger/5.txt similarity index 100% rename from data/kaomoji/13 - anger/5.txt rename to data/kaomoji/anger/5.txt diff --git a/data/kaomoji/13 - anger/6.txt b/data/kaomoji/anger/6.txt similarity index 100% rename from data/kaomoji/13 - anger/6.txt rename to data/kaomoji/anger/6.txt diff --git a/data/kaomoji/13 - anger/7.txt b/data/kaomoji/anger/7.txt similarity index 100% rename from data/kaomoji/13 - anger/7.txt rename to data/kaomoji/anger/7.txt diff --git a/data/kaomoji/13 - anger/8.txt b/data/kaomoji/anger/8.txt similarity index 100% rename from data/kaomoji/13 - anger/8.txt rename to data/kaomoji/anger/8.txt diff --git a/data/kaomoji/13 - anger/9.txt b/data/kaomoji/anger/9.txt similarity index 100% rename from data/kaomoji/13 - anger/9.txt rename to data/kaomoji/anger/9.txt diff --git a/data/kaomoji/apologizing/.name b/data/kaomoji/apologizing/.name new file mode 100644 index 0000000..093cbcc --- /dev/null +++ b/data/kaomoji/apologizing/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ apologizing diff --git a/data/kaomoji/5 - apologizing/1.txt b/data/kaomoji/apologizing/1.txt similarity index 100% rename from data/kaomoji/5 - apologizing/1.txt rename to data/kaomoji/apologizing/1.txt diff --git a/data/kaomoji/5 - apologizing/2.txt b/data/kaomoji/apologizing/2.txt similarity index 100% rename from data/kaomoji/5 - apologizing/2.txt rename to data/kaomoji/apologizing/2.txt diff --git a/data/kaomoji/5 - apologizing/3.txt b/data/kaomoji/apologizing/3.txt similarity index 100% rename from data/kaomoji/5 - apologizing/3.txt rename to data/kaomoji/apologizing/3.txt diff --git a/data/kaomoji/5 - apologizing/4.txt b/data/kaomoji/apologizing/4.txt similarity index 100% rename from data/kaomoji/5 - apologizing/4.txt rename to data/kaomoji/apologizing/4.txt diff --git a/data/kaomoji/5 - apologizing/5.txt b/data/kaomoji/apologizing/5.txt similarity index 100% rename from data/kaomoji/5 - apologizing/5.txt rename to data/kaomoji/apologizing/5.txt diff --git a/data/kaomoji/5 - apologizing/6.txt b/data/kaomoji/apologizing/6.txt similarity index 100% rename from data/kaomoji/5 - apologizing/6.txt rename to data/kaomoji/apologizing/6.txt diff --git a/data/kaomoji/5 - apologizing/7.txt b/data/kaomoji/apologizing/7.txt similarity index 100% rename from data/kaomoji/5 - apologizing/7.txt rename to data/kaomoji/apologizing/7.txt diff --git a/data/kaomoji/5 - apologizing/8.txt b/data/kaomoji/apologizing/8.txt similarity index 100% rename from data/kaomoji/5 - apologizing/8.txt rename to data/kaomoji/apologizing/8.txt diff --git a/data/kaomoji/5 - apologizing/9.txt b/data/kaomoji/apologizing/9.txt similarity index 100% rename from data/kaomoji/5 - apologizing/9.txt rename to data/kaomoji/apologizing/9.txt diff --git a/data/kaomoji/bear/.name b/data/kaomoji/bear/.name new file mode 100644 index 0000000..d6a7c5c --- /dev/null +++ b/data/kaomoji/bear/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ bear diff --git a/data/kaomoji/bird/.name b/data/kaomoji/bird/.name new file mode 100644 index 0000000..cee1d3d --- /dev/null +++ b/data/kaomoji/bird/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ bird diff --git a/data/kaomoji/cat/.name b/data/kaomoji/cat/.name new file mode 100644 index 0000000..739873b --- /dev/null +++ b/data/kaomoji/cat/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ cat diff --git a/data/kaomoji/confusion/.name b/data/kaomoji/confusion/.name new file mode 100644 index 0000000..bdb1f1a --- /dev/null +++ b/data/kaomoji/confusion/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ confusion diff --git a/data/kaomoji/9 - confusion/1.txt b/data/kaomoji/confusion/1.txt similarity index 100% rename from data/kaomoji/9 - confusion/1.txt rename to data/kaomoji/confusion/1.txt diff --git a/data/kaomoji/9 - confusion/10.txt b/data/kaomoji/confusion/10.txt similarity index 100% rename from data/kaomoji/9 - confusion/10.txt rename to data/kaomoji/confusion/10.txt diff --git a/data/kaomoji/9 - confusion/11.txt b/data/kaomoji/confusion/11.txt similarity index 100% rename from data/kaomoji/9 - confusion/11.txt rename to data/kaomoji/confusion/11.txt diff --git a/data/kaomoji/9 - confusion/12.txt b/data/kaomoji/confusion/12.txt similarity index 100% rename from data/kaomoji/9 - confusion/12.txt rename to data/kaomoji/confusion/12.txt diff --git a/data/kaomoji/9 - confusion/13.txt b/data/kaomoji/confusion/13.txt similarity index 100% rename from data/kaomoji/9 - confusion/13.txt rename to data/kaomoji/confusion/13.txt diff --git a/data/kaomoji/9 - confusion/14.txt b/data/kaomoji/confusion/14.txt similarity index 100% rename from data/kaomoji/9 - confusion/14.txt rename to data/kaomoji/confusion/14.txt diff --git a/data/kaomoji/9 - confusion/15.txt b/data/kaomoji/confusion/15.txt similarity index 100% rename from data/kaomoji/9 - confusion/15.txt rename to data/kaomoji/confusion/15.txt diff --git a/data/kaomoji/9 - confusion/16.txt b/data/kaomoji/confusion/16.txt similarity index 100% rename from data/kaomoji/9 - confusion/16.txt rename to data/kaomoji/confusion/16.txt diff --git a/data/kaomoji/9 - confusion/17.txt b/data/kaomoji/confusion/17.txt similarity index 100% rename from data/kaomoji/9 - confusion/17.txt rename to data/kaomoji/confusion/17.txt diff --git a/data/kaomoji/9 - confusion/18.txt b/data/kaomoji/confusion/18.txt similarity index 100% rename from data/kaomoji/9 - confusion/18.txt rename to data/kaomoji/confusion/18.txt diff --git a/data/kaomoji/9 - confusion/19.txt b/data/kaomoji/confusion/19.txt similarity index 100% rename from data/kaomoji/9 - confusion/19.txt rename to data/kaomoji/confusion/19.txt diff --git a/data/kaomoji/9 - confusion/2.txt b/data/kaomoji/confusion/2.txt similarity index 100% rename from data/kaomoji/9 - confusion/2.txt rename to data/kaomoji/confusion/2.txt diff --git a/data/kaomoji/9 - confusion/20.txt b/data/kaomoji/confusion/20.txt similarity index 100% rename from data/kaomoji/9 - confusion/20.txt rename to data/kaomoji/confusion/20.txt diff --git a/data/kaomoji/9 - confusion/21.txt b/data/kaomoji/confusion/21.txt similarity index 100% rename from data/kaomoji/9 - confusion/21.txt rename to data/kaomoji/confusion/21.txt diff --git a/data/kaomoji/9 - confusion/22.txt b/data/kaomoji/confusion/22.txt similarity index 100% rename from data/kaomoji/9 - confusion/22.txt rename to data/kaomoji/confusion/22.txt diff --git a/data/kaomoji/9 - confusion/23.txt b/data/kaomoji/confusion/23.txt similarity index 100% rename from data/kaomoji/9 - confusion/23.txt rename to data/kaomoji/confusion/23.txt diff --git a/data/kaomoji/9 - confusion/24.txt b/data/kaomoji/confusion/24.txt similarity index 100% rename from data/kaomoji/9 - confusion/24.txt rename to data/kaomoji/confusion/24.txt diff --git a/data/kaomoji/9 - confusion/25.txt b/data/kaomoji/confusion/25.txt similarity index 100% rename from data/kaomoji/9 - confusion/25.txt rename to data/kaomoji/confusion/25.txt diff --git a/data/kaomoji/9 - confusion/26.txt b/data/kaomoji/confusion/26.txt similarity index 100% rename from data/kaomoji/9 - confusion/26.txt rename to data/kaomoji/confusion/26.txt diff --git a/data/kaomoji/9 - confusion/3.txt b/data/kaomoji/confusion/3.txt similarity index 100% rename from data/kaomoji/9 - confusion/3.txt rename to data/kaomoji/confusion/3.txt diff --git a/data/kaomoji/9 - confusion/4.txt b/data/kaomoji/confusion/4.txt similarity index 100% rename from data/kaomoji/9 - confusion/4.txt rename to data/kaomoji/confusion/4.txt diff --git a/data/kaomoji/9 - confusion/5.txt b/data/kaomoji/confusion/5.txt similarity index 100% rename from data/kaomoji/9 - confusion/5.txt rename to data/kaomoji/confusion/5.txt diff --git a/data/kaomoji/9 - confusion/6.txt b/data/kaomoji/confusion/6.txt similarity index 100% rename from data/kaomoji/9 - confusion/6.txt rename to data/kaomoji/confusion/6.txt diff --git a/data/kaomoji/9 - confusion/7.txt b/data/kaomoji/confusion/7.txt similarity index 100% rename from data/kaomoji/9 - confusion/7.txt rename to data/kaomoji/confusion/7.txt diff --git a/data/kaomoji/9 - confusion/8.txt b/data/kaomoji/confusion/8.txt similarity index 100% rename from data/kaomoji/9 - confusion/8.txt rename to data/kaomoji/confusion/8.txt diff --git a/data/kaomoji/9 - confusion/9.txt b/data/kaomoji/confusion/9.txt similarity index 100% rename from data/kaomoji/9 - confusion/9.txt rename to data/kaomoji/confusion/9.txt diff --git a/data/kaomoji/dissatisfaction/.name b/data/kaomoji/dissatisfaction/.name new file mode 100644 index 0000000..c82dda9 --- /dev/null +++ b/data/kaomoji/dissatisfaction/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ dissatisfaction diff --git a/data/kaomoji/6 - dissatisfaction/1.txt b/data/kaomoji/dissatisfaction/1.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/1.txt rename to data/kaomoji/dissatisfaction/1.txt diff --git a/data/kaomoji/6 - dissatisfaction/10.txt b/data/kaomoji/dissatisfaction/10.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/10.txt rename to data/kaomoji/dissatisfaction/10.txt diff --git a/data/kaomoji/6 - dissatisfaction/11.txt b/data/kaomoji/dissatisfaction/11.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/11.txt rename to data/kaomoji/dissatisfaction/11.txt diff --git a/data/kaomoji/6 - dissatisfaction/12.txt b/data/kaomoji/dissatisfaction/12.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/12.txt rename to data/kaomoji/dissatisfaction/12.txt diff --git a/data/kaomoji/6 - dissatisfaction/13.txt b/data/kaomoji/dissatisfaction/13.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/13.txt rename to data/kaomoji/dissatisfaction/13.txt diff --git a/data/kaomoji/6 - dissatisfaction/14.txt b/data/kaomoji/dissatisfaction/14.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/14.txt rename to data/kaomoji/dissatisfaction/14.txt diff --git a/data/kaomoji/6 - dissatisfaction/15.txt b/data/kaomoji/dissatisfaction/15.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/15.txt rename to data/kaomoji/dissatisfaction/15.txt diff --git a/data/kaomoji/6 - dissatisfaction/16.txt b/data/kaomoji/dissatisfaction/16.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/16.txt rename to data/kaomoji/dissatisfaction/16.txt diff --git a/data/kaomoji/6 - dissatisfaction/17.txt b/data/kaomoji/dissatisfaction/17.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/17.txt rename to data/kaomoji/dissatisfaction/17.txt diff --git a/data/kaomoji/6 - dissatisfaction/18.txt b/data/kaomoji/dissatisfaction/18.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/18.txt rename to data/kaomoji/dissatisfaction/18.txt diff --git a/data/kaomoji/6 - dissatisfaction/19.txt b/data/kaomoji/dissatisfaction/19.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/19.txt rename to data/kaomoji/dissatisfaction/19.txt diff --git a/data/kaomoji/6 - dissatisfaction/2.txt b/data/kaomoji/dissatisfaction/2.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/2.txt rename to data/kaomoji/dissatisfaction/2.txt diff --git a/data/kaomoji/6 - dissatisfaction/20.txt b/data/kaomoji/dissatisfaction/20.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/20.txt rename to data/kaomoji/dissatisfaction/20.txt diff --git a/data/kaomoji/6 - dissatisfaction/21.txt b/data/kaomoji/dissatisfaction/21.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/21.txt rename to data/kaomoji/dissatisfaction/21.txt diff --git a/data/kaomoji/6 - dissatisfaction/22.txt b/data/kaomoji/dissatisfaction/22.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/22.txt rename to data/kaomoji/dissatisfaction/22.txt diff --git a/data/kaomoji/6 - dissatisfaction/23.txt b/data/kaomoji/dissatisfaction/23.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/23.txt rename to data/kaomoji/dissatisfaction/23.txt diff --git a/data/kaomoji/6 - dissatisfaction/24.txt b/data/kaomoji/dissatisfaction/24.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/24.txt rename to data/kaomoji/dissatisfaction/24.txt diff --git a/data/kaomoji/6 - dissatisfaction/25.txt b/data/kaomoji/dissatisfaction/25.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/25.txt rename to data/kaomoji/dissatisfaction/25.txt diff --git a/data/kaomoji/6 - dissatisfaction/26.txt b/data/kaomoji/dissatisfaction/26.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/26.txt rename to data/kaomoji/dissatisfaction/26.txt diff --git a/data/kaomoji/6 - dissatisfaction/3.txt b/data/kaomoji/dissatisfaction/3.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/3.txt rename to data/kaomoji/dissatisfaction/3.txt diff --git a/data/kaomoji/6 - dissatisfaction/4.txt b/data/kaomoji/dissatisfaction/4.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/4.txt rename to data/kaomoji/dissatisfaction/4.txt diff --git a/data/kaomoji/6 - dissatisfaction/5.txt b/data/kaomoji/dissatisfaction/5.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/5.txt rename to data/kaomoji/dissatisfaction/5.txt diff --git a/data/kaomoji/6 - dissatisfaction/6.txt b/data/kaomoji/dissatisfaction/6.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/6.txt rename to data/kaomoji/dissatisfaction/6.txt diff --git a/data/kaomoji/6 - dissatisfaction/7.txt b/data/kaomoji/dissatisfaction/7.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/7.txt rename to data/kaomoji/dissatisfaction/7.txt diff --git a/data/kaomoji/6 - dissatisfaction/8.txt b/data/kaomoji/dissatisfaction/8.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/8.txt rename to data/kaomoji/dissatisfaction/8.txt diff --git a/data/kaomoji/6 - dissatisfaction/9.txt b/data/kaomoji/dissatisfaction/9.txt similarity index 100% rename from data/kaomoji/6 - dissatisfaction/9.txt rename to data/kaomoji/dissatisfaction/9.txt diff --git a/data/kaomoji/dog/.name b/data/kaomoji/dog/.name new file mode 100644 index 0000000..7599b9d --- /dev/null +++ b/data/kaomoji/dog/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ dog diff --git a/data/kaomoji/doubt/.name b/data/kaomoji/doubt/.name new file mode 100644 index 0000000..963ae3b --- /dev/null +++ b/data/kaomoji/doubt/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ doubt diff --git a/data/kaomoji/10 - doubt/1.txt b/data/kaomoji/doubt/1.txt similarity index 100% rename from data/kaomoji/10 - doubt/1.txt rename to data/kaomoji/doubt/1.txt diff --git a/data/kaomoji/10 - doubt/10.txt b/data/kaomoji/doubt/10.txt similarity index 100% rename from data/kaomoji/10 - doubt/10.txt rename to data/kaomoji/doubt/10.txt diff --git a/data/kaomoji/10 - doubt/11.txt b/data/kaomoji/doubt/11.txt similarity index 100% rename from data/kaomoji/10 - doubt/11.txt rename to data/kaomoji/doubt/11.txt diff --git a/data/kaomoji/10 - doubt/12.txt b/data/kaomoji/doubt/12.txt similarity index 100% rename from data/kaomoji/10 - doubt/12.txt rename to data/kaomoji/doubt/12.txt diff --git a/data/kaomoji/10 - doubt/2.txt b/data/kaomoji/doubt/2.txt similarity index 100% rename from data/kaomoji/10 - doubt/2.txt rename to data/kaomoji/doubt/2.txt diff --git a/data/kaomoji/10 - doubt/3.txt b/data/kaomoji/doubt/3.txt similarity index 100% rename from data/kaomoji/10 - doubt/3.txt rename to data/kaomoji/doubt/3.txt diff --git a/data/kaomoji/10 - doubt/4.txt b/data/kaomoji/doubt/4.txt similarity index 100% rename from data/kaomoji/10 - doubt/4.txt rename to data/kaomoji/doubt/4.txt diff --git a/data/kaomoji/10 - doubt/5.txt b/data/kaomoji/doubt/5.txt similarity index 100% rename from data/kaomoji/10 - doubt/5.txt rename to data/kaomoji/doubt/5.txt diff --git a/data/kaomoji/10 - doubt/6.txt b/data/kaomoji/doubt/6.txt similarity index 100% rename from data/kaomoji/10 - doubt/6.txt rename to data/kaomoji/doubt/6.txt diff --git a/data/kaomoji/10 - doubt/7.txt b/data/kaomoji/doubt/7.txt similarity index 100% rename from data/kaomoji/10 - doubt/7.txt rename to data/kaomoji/doubt/7.txt diff --git a/data/kaomoji/10 - doubt/8.txt b/data/kaomoji/doubt/8.txt similarity index 100% rename from data/kaomoji/10 - doubt/8.txt rename to data/kaomoji/doubt/8.txt diff --git a/data/kaomoji/10 - doubt/9.txt b/data/kaomoji/doubt/9.txt similarity index 100% rename from data/kaomoji/10 - doubt/9.txt rename to data/kaomoji/doubt/9.txt diff --git a/data/kaomoji/embarassment/.name b/data/kaomoji/embarassment/.name new file mode 100644 index 0000000..c1547a6 --- /dev/null +++ b/data/kaomoji/embarassment/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ embarassment diff --git a/data/kaomoji/7 - embarrassment/1.txt b/data/kaomoji/embarassment/1.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/1.txt rename to data/kaomoji/embarassment/1.txt diff --git a/data/kaomoji/7 - embarrassment/10.txt b/data/kaomoji/embarassment/10.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/10.txt rename to data/kaomoji/embarassment/10.txt diff --git a/data/kaomoji/7 - embarrassment/11.txt b/data/kaomoji/embarassment/11.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/11.txt rename to data/kaomoji/embarassment/11.txt diff --git a/data/kaomoji/7 - embarrassment/12.txt b/data/kaomoji/embarassment/12.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/12.txt rename to data/kaomoji/embarassment/12.txt diff --git a/data/kaomoji/7 - embarrassment/13.txt b/data/kaomoji/embarassment/13.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/13.txt rename to data/kaomoji/embarassment/13.txt diff --git a/data/kaomoji/7 - embarrassment/14.txt b/data/kaomoji/embarassment/14.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/14.txt rename to data/kaomoji/embarassment/14.txt diff --git a/data/kaomoji/7 - embarrassment/15.txt b/data/kaomoji/embarassment/15.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/15.txt rename to data/kaomoji/embarassment/15.txt diff --git a/data/kaomoji/7 - embarrassment/16.txt b/data/kaomoji/embarassment/16.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/16.txt rename to data/kaomoji/embarassment/16.txt diff --git a/data/kaomoji/7 - embarrassment/17.txt b/data/kaomoji/embarassment/17.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/17.txt rename to data/kaomoji/embarassment/17.txt diff --git a/data/kaomoji/7 - embarrassment/18.txt b/data/kaomoji/embarassment/18.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/18.txt rename to data/kaomoji/embarassment/18.txt diff --git a/data/kaomoji/7 - embarrassment/19.txt b/data/kaomoji/embarassment/19.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/19.txt rename to data/kaomoji/embarassment/19.txt diff --git a/data/kaomoji/7 - embarrassment/2.txt b/data/kaomoji/embarassment/2.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/2.txt rename to data/kaomoji/embarassment/2.txt diff --git a/data/kaomoji/7 - embarrassment/20.txt b/data/kaomoji/embarassment/20.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/20.txt rename to data/kaomoji/embarassment/20.txt diff --git a/data/kaomoji/7 - embarrassment/21.txt b/data/kaomoji/embarassment/21.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/21.txt rename to data/kaomoji/embarassment/21.txt diff --git a/data/kaomoji/7 - embarrassment/22.txt b/data/kaomoji/embarassment/22.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/22.txt rename to data/kaomoji/embarassment/22.txt diff --git a/data/kaomoji/7 - embarrassment/23.txt b/data/kaomoji/embarassment/23.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/23.txt rename to data/kaomoji/embarassment/23.txt diff --git a/data/kaomoji/7 - embarrassment/24.txt b/data/kaomoji/embarassment/24.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/24.txt rename to data/kaomoji/embarassment/24.txt diff --git a/data/kaomoji/7 - embarrassment/25.txt b/data/kaomoji/embarassment/25.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/25.txt rename to data/kaomoji/embarassment/25.txt diff --git a/data/kaomoji/7 - embarrassment/3.txt b/data/kaomoji/embarassment/3.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/3.txt rename to data/kaomoji/embarassment/3.txt diff --git a/data/kaomoji/7 - embarrassment/4.txt b/data/kaomoji/embarassment/4.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/4.txt rename to data/kaomoji/embarassment/4.txt diff --git a/data/kaomoji/7 - embarrassment/5.txt b/data/kaomoji/embarassment/5.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/5.txt rename to data/kaomoji/embarassment/5.txt diff --git a/data/kaomoji/7 - embarrassment/6.txt b/data/kaomoji/embarassment/6.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/6.txt rename to data/kaomoji/embarassment/6.txt diff --git a/data/kaomoji/7 - embarrassment/7.txt b/data/kaomoji/embarassment/7.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/7.txt rename to data/kaomoji/embarassment/7.txt diff --git a/data/kaomoji/7 - embarrassment/8.txt b/data/kaomoji/embarassment/8.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/8.txt rename to data/kaomoji/embarassment/8.txt diff --git a/data/kaomoji/7 - embarrassment/9.txt b/data/kaomoji/embarassment/9.txt similarity index 100% rename from data/kaomoji/7 - embarrassment/9.txt rename to data/kaomoji/embarassment/9.txt diff --git a/data/kaomoji/enemies/.name b/data/kaomoji/enemies/.name new file mode 100644 index 0000000..1167150 --- /dev/null +++ b/data/kaomoji/enemies/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ enemies diff --git a/data/kaomoji/8 - enemies/1.txt b/data/kaomoji/enemies/1.txt similarity index 100% rename from data/kaomoji/8 - enemies/1.txt rename to data/kaomoji/enemies/1.txt diff --git a/data/kaomoji/8 - enemies/10.txt b/data/kaomoji/enemies/10.txt similarity index 100% rename from data/kaomoji/8 - enemies/10.txt rename to data/kaomoji/enemies/10.txt diff --git a/data/kaomoji/8 - enemies/11.txt b/data/kaomoji/enemies/11.txt similarity index 100% rename from data/kaomoji/8 - enemies/11.txt rename to data/kaomoji/enemies/11.txt diff --git a/data/kaomoji/8 - enemies/12.txt b/data/kaomoji/enemies/12.txt similarity index 100% rename from data/kaomoji/8 - enemies/12.txt rename to data/kaomoji/enemies/12.txt diff --git a/data/kaomoji/8 - enemies/13.txt b/data/kaomoji/enemies/13.txt similarity index 100% rename from data/kaomoji/8 - enemies/13.txt rename to data/kaomoji/enemies/13.txt diff --git a/data/kaomoji/8 - enemies/14.txt b/data/kaomoji/enemies/14.txt similarity index 100% rename from data/kaomoji/8 - enemies/14.txt rename to data/kaomoji/enemies/14.txt diff --git a/data/kaomoji/8 - enemies/15.txt b/data/kaomoji/enemies/15.txt similarity index 100% rename from data/kaomoji/8 - enemies/15.txt rename to data/kaomoji/enemies/15.txt diff --git a/data/kaomoji/8 - enemies/16.txt b/data/kaomoji/enemies/16.txt similarity index 100% rename from data/kaomoji/8 - enemies/16.txt rename to data/kaomoji/enemies/16.txt diff --git a/data/kaomoji/8 - enemies/17.txt b/data/kaomoji/enemies/17.txt similarity index 100% rename from data/kaomoji/8 - enemies/17.txt rename to data/kaomoji/enemies/17.txt diff --git a/data/kaomoji/8 - enemies/18.txt b/data/kaomoji/enemies/18.txt similarity index 100% rename from data/kaomoji/8 - enemies/18.txt rename to data/kaomoji/enemies/18.txt diff --git a/data/kaomoji/8 - enemies/19.txt b/data/kaomoji/enemies/19.txt similarity index 100% rename from data/kaomoji/8 - enemies/19.txt rename to data/kaomoji/enemies/19.txt diff --git a/data/kaomoji/8 - enemies/2.txt b/data/kaomoji/enemies/2.txt similarity index 100% rename from data/kaomoji/8 - enemies/2.txt rename to data/kaomoji/enemies/2.txt diff --git a/data/kaomoji/8 - enemies/20.txt b/data/kaomoji/enemies/20.txt similarity index 100% rename from data/kaomoji/8 - enemies/20.txt rename to data/kaomoji/enemies/20.txt diff --git a/data/kaomoji/8 - enemies/21.txt b/data/kaomoji/enemies/21.txt similarity index 100% rename from data/kaomoji/8 - enemies/21.txt rename to data/kaomoji/enemies/21.txt diff --git a/data/kaomoji/8 - enemies/22.txt b/data/kaomoji/enemies/22.txt similarity index 100% rename from data/kaomoji/8 - enemies/22.txt rename to data/kaomoji/enemies/22.txt diff --git a/data/kaomoji/8 - enemies/23.txt b/data/kaomoji/enemies/23.txt similarity index 100% rename from data/kaomoji/8 - enemies/23.txt rename to data/kaomoji/enemies/23.txt diff --git a/data/kaomoji/8 - enemies/24.txt b/data/kaomoji/enemies/24.txt similarity index 100% rename from data/kaomoji/8 - enemies/24.txt rename to data/kaomoji/enemies/24.txt diff --git a/data/kaomoji/8 - enemies/3.txt b/data/kaomoji/enemies/3.txt similarity index 100% rename from data/kaomoji/8 - enemies/3.txt rename to data/kaomoji/enemies/3.txt diff --git a/data/kaomoji/8 - enemies/4.txt b/data/kaomoji/enemies/4.txt similarity index 100% rename from data/kaomoji/8 - enemies/4.txt rename to data/kaomoji/enemies/4.txt diff --git a/data/kaomoji/8 - enemies/5.txt b/data/kaomoji/enemies/5.txt similarity index 100% rename from data/kaomoji/8 - enemies/5.txt rename to data/kaomoji/enemies/5.txt diff --git a/data/kaomoji/8 - enemies/6.txt b/data/kaomoji/enemies/6.txt similarity index 100% rename from data/kaomoji/8 - enemies/6.txt rename to data/kaomoji/enemies/6.txt diff --git a/data/kaomoji/8 - enemies/7.txt b/data/kaomoji/enemies/7.txt similarity index 100% rename from data/kaomoji/8 - enemies/7.txt rename to data/kaomoji/enemies/7.txt diff --git a/data/kaomoji/8 - enemies/8.txt b/data/kaomoji/enemies/8.txt similarity index 100% rename from data/kaomoji/8 - enemies/8.txt rename to data/kaomoji/enemies/8.txt diff --git a/data/kaomoji/8 - enemies/9.txt b/data/kaomoji/enemies/9.txt similarity index 100% rename from data/kaomoji/8 - enemies/9.txt rename to data/kaomoji/enemies/9.txt diff --git a/data/kaomoji/faces/.name b/data/kaomoji/faces/.name new file mode 100644 index 0000000..35d589d --- /dev/null +++ b/data/kaomoji/faces/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ faces diff --git a/data/kaomoji/27 - faces/1.txt b/data/kaomoji/faces/1.txt similarity index 100% rename from data/kaomoji/27 - faces/1.txt rename to data/kaomoji/faces/1.txt diff --git a/data/kaomoji/27 - faces/10.txt b/data/kaomoji/faces/10.txt similarity index 100% rename from data/kaomoji/27 - faces/10.txt rename to data/kaomoji/faces/10.txt diff --git a/data/kaomoji/27 - faces/11.txt b/data/kaomoji/faces/11.txt similarity index 100% rename from data/kaomoji/27 - faces/11.txt rename to data/kaomoji/faces/11.txt diff --git a/data/kaomoji/27 - faces/12.txt b/data/kaomoji/faces/12.txt similarity index 100% rename from data/kaomoji/27 - faces/12.txt rename to data/kaomoji/faces/12.txt diff --git a/data/kaomoji/27 - faces/13.txt b/data/kaomoji/faces/13.txt similarity index 100% rename from data/kaomoji/27 - faces/13.txt rename to data/kaomoji/faces/13.txt diff --git a/data/kaomoji/27 - faces/14.txt b/data/kaomoji/faces/14.txt similarity index 100% rename from data/kaomoji/27 - faces/14.txt rename to data/kaomoji/faces/14.txt diff --git a/data/kaomoji/27 - faces/15.txt b/data/kaomoji/faces/15.txt similarity index 100% rename from data/kaomoji/27 - faces/15.txt rename to data/kaomoji/faces/15.txt diff --git a/data/kaomoji/27 - faces/16.txt b/data/kaomoji/faces/16.txt similarity index 100% rename from data/kaomoji/27 - faces/16.txt rename to data/kaomoji/faces/16.txt diff --git a/data/kaomoji/27 - faces/17.txt b/data/kaomoji/faces/17.txt similarity index 100% rename from data/kaomoji/27 - faces/17.txt rename to data/kaomoji/faces/17.txt diff --git a/data/kaomoji/27 - faces/18.txt b/data/kaomoji/faces/18.txt similarity index 100% rename from data/kaomoji/27 - faces/18.txt rename to data/kaomoji/faces/18.txt diff --git a/data/kaomoji/27 - faces/2.txt b/data/kaomoji/faces/2.txt similarity index 100% rename from data/kaomoji/27 - faces/2.txt rename to data/kaomoji/faces/2.txt diff --git a/data/kaomoji/27 - faces/3.txt b/data/kaomoji/faces/3.txt similarity index 100% rename from data/kaomoji/27 - faces/3.txt rename to data/kaomoji/faces/3.txt diff --git a/data/kaomoji/27 - faces/4.txt b/data/kaomoji/faces/4.txt similarity index 100% rename from data/kaomoji/27 - faces/4.txt rename to data/kaomoji/faces/4.txt diff --git a/data/kaomoji/27 - faces/5.txt b/data/kaomoji/faces/5.txt similarity index 100% rename from data/kaomoji/27 - faces/5.txt rename to data/kaomoji/faces/5.txt diff --git a/data/kaomoji/27 - faces/6.txt b/data/kaomoji/faces/6.txt similarity index 100% rename from data/kaomoji/27 - faces/6.txt rename to data/kaomoji/faces/6.txt diff --git a/data/kaomoji/27 - faces/7.txt b/data/kaomoji/faces/7.txt similarity index 100% rename from data/kaomoji/27 - faces/7.txt rename to data/kaomoji/faces/7.txt diff --git a/data/kaomoji/27 - faces/8.txt b/data/kaomoji/faces/8.txt similarity index 100% rename from data/kaomoji/27 - faces/8.txt rename to data/kaomoji/faces/8.txt diff --git a/data/kaomoji/27 - faces/9.txt b/data/kaomoji/faces/9.txt similarity index 100% rename from data/kaomoji/27 - faces/9.txt rename to data/kaomoji/faces/9.txt diff --git a/data/kaomoji/fear/.name b/data/kaomoji/fear/.name new file mode 100644 index 0000000..09e844d --- /dev/null +++ b/data/kaomoji/fear/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ fear diff --git a/data/kaomoji/19 - fear/1.txt b/data/kaomoji/fear/1.txt similarity index 100% rename from data/kaomoji/19 - fear/1.txt rename to data/kaomoji/fear/1.txt diff --git a/data/kaomoji/19 - fear/10.txt b/data/kaomoji/fear/10.txt similarity index 100% rename from data/kaomoji/19 - fear/10.txt rename to data/kaomoji/fear/10.txt diff --git a/data/kaomoji/19 - fear/11.txt b/data/kaomoji/fear/11.txt similarity index 100% rename from data/kaomoji/19 - fear/11.txt rename to data/kaomoji/fear/11.txt diff --git a/data/kaomoji/19 - fear/12.txt b/data/kaomoji/fear/12.txt similarity index 100% rename from data/kaomoji/19 - fear/12.txt rename to data/kaomoji/fear/12.txt diff --git a/data/kaomoji/19 - fear/13.txt b/data/kaomoji/fear/13.txt similarity index 100% rename from data/kaomoji/19 - fear/13.txt rename to data/kaomoji/fear/13.txt diff --git a/data/kaomoji/19 - fear/14.txt b/data/kaomoji/fear/14.txt similarity index 100% rename from data/kaomoji/19 - fear/14.txt rename to data/kaomoji/fear/14.txt diff --git a/data/kaomoji/19 - fear/15.txt b/data/kaomoji/fear/15.txt similarity index 100% rename from data/kaomoji/19 - fear/15.txt rename to data/kaomoji/fear/15.txt diff --git a/data/kaomoji/19 - fear/16.txt b/data/kaomoji/fear/16.txt similarity index 100% rename from data/kaomoji/19 - fear/16.txt rename to data/kaomoji/fear/16.txt diff --git a/data/kaomoji/19 - fear/17.txt b/data/kaomoji/fear/17.txt similarity index 100% rename from data/kaomoji/19 - fear/17.txt rename to data/kaomoji/fear/17.txt diff --git a/data/kaomoji/19 - fear/18.txt b/data/kaomoji/fear/18.txt similarity index 100% rename from data/kaomoji/19 - fear/18.txt rename to data/kaomoji/fear/18.txt diff --git a/data/kaomoji/19 - fear/19.txt b/data/kaomoji/fear/19.txt similarity index 100% rename from data/kaomoji/19 - fear/19.txt rename to data/kaomoji/fear/19.txt diff --git a/data/kaomoji/19 - fear/2.txt b/data/kaomoji/fear/2.txt similarity index 100% rename from data/kaomoji/19 - fear/2.txt rename to data/kaomoji/fear/2.txt diff --git a/data/kaomoji/19 - fear/3.txt b/data/kaomoji/fear/3.txt similarity index 100% rename from data/kaomoji/19 - fear/3.txt rename to data/kaomoji/fear/3.txt diff --git a/data/kaomoji/19 - fear/4.txt b/data/kaomoji/fear/4.txt similarity index 100% rename from data/kaomoji/19 - fear/4.txt rename to data/kaomoji/fear/4.txt diff --git a/data/kaomoji/19 - fear/5.txt b/data/kaomoji/fear/5.txt similarity index 100% rename from data/kaomoji/19 - fear/5.txt rename to data/kaomoji/fear/5.txt diff --git a/data/kaomoji/19 - fear/6.txt b/data/kaomoji/fear/6.txt similarity index 100% rename from data/kaomoji/19 - fear/6.txt rename to data/kaomoji/fear/6.txt diff --git a/data/kaomoji/19 - fear/7.txt b/data/kaomoji/fear/7.txt similarity index 100% rename from data/kaomoji/19 - fear/7.txt rename to data/kaomoji/fear/7.txt diff --git a/data/kaomoji/19 - fear/8.txt b/data/kaomoji/fear/8.txt similarity index 100% rename from data/kaomoji/19 - fear/8.txt rename to data/kaomoji/fear/8.txt diff --git a/data/kaomoji/19 - fear/9.txt b/data/kaomoji/fear/9.txt similarity index 100% rename from data/kaomoji/19 - fear/9.txt rename to data/kaomoji/fear/9.txt diff --git a/data/kaomoji/fish/.name b/data/kaomoji/fish/.name new file mode 100644 index 0000000..07e09fe --- /dev/null +++ b/data/kaomoji/fish/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ fish diff --git a/data/kaomoji/food/.name b/data/kaomoji/food/.name new file mode 100644 index 0000000..2724e59 --- /dev/null +++ b/data/kaomoji/food/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ food diff --git a/data/kaomoji/20 - food/1.txt b/data/kaomoji/food/1.txt similarity index 100% rename from data/kaomoji/20 - food/1.txt rename to data/kaomoji/food/1.txt diff --git a/data/kaomoji/20 - food/10.txt b/data/kaomoji/food/10.txt similarity index 100% rename from data/kaomoji/20 - food/10.txt rename to data/kaomoji/food/10.txt diff --git a/data/kaomoji/20 - food/11.txt b/data/kaomoji/food/11.txt similarity index 100% rename from data/kaomoji/20 - food/11.txt rename to data/kaomoji/food/11.txt diff --git a/data/kaomoji/20 - food/12.txt b/data/kaomoji/food/12.txt similarity index 100% rename from data/kaomoji/20 - food/12.txt rename to data/kaomoji/food/12.txt diff --git a/data/kaomoji/20 - food/13.txt b/data/kaomoji/food/13.txt similarity index 100% rename from data/kaomoji/20 - food/13.txt rename to data/kaomoji/food/13.txt diff --git a/data/kaomoji/20 - food/14.txt b/data/kaomoji/food/14.txt similarity index 100% rename from data/kaomoji/20 - food/14.txt rename to data/kaomoji/food/14.txt diff --git a/data/kaomoji/20 - food/15.txt b/data/kaomoji/food/15.txt similarity index 100% rename from data/kaomoji/20 - food/15.txt rename to data/kaomoji/food/15.txt diff --git a/data/kaomoji/20 - food/16.txt b/data/kaomoji/food/16.txt similarity index 100% rename from data/kaomoji/20 - food/16.txt rename to data/kaomoji/food/16.txt diff --git a/data/kaomoji/20 - food/17.txt b/data/kaomoji/food/17.txt similarity index 100% rename from data/kaomoji/20 - food/17.txt rename to data/kaomoji/food/17.txt diff --git a/data/kaomoji/20 - food/18.txt b/data/kaomoji/food/18.txt similarity index 100% rename from data/kaomoji/20 - food/18.txt rename to data/kaomoji/food/18.txt diff --git a/data/kaomoji/20 - food/19.txt b/data/kaomoji/food/19.txt similarity index 100% rename from data/kaomoji/20 - food/19.txt rename to data/kaomoji/food/19.txt diff --git a/data/kaomoji/20 - food/2.txt b/data/kaomoji/food/2.txt similarity index 100% rename from data/kaomoji/20 - food/2.txt rename to data/kaomoji/food/2.txt diff --git a/data/kaomoji/20 - food/20.txt b/data/kaomoji/food/20.txt similarity index 100% rename from data/kaomoji/20 - food/20.txt rename to data/kaomoji/food/20.txt diff --git a/data/kaomoji/20 - food/21.txt b/data/kaomoji/food/21.txt similarity index 100% rename from data/kaomoji/20 - food/21.txt rename to data/kaomoji/food/21.txt diff --git a/data/kaomoji/20 - food/3.txt b/data/kaomoji/food/3.txt similarity index 100% rename from data/kaomoji/20 - food/3.txt rename to data/kaomoji/food/3.txt diff --git a/data/kaomoji/20 - food/4.txt b/data/kaomoji/food/4.txt similarity index 100% rename from data/kaomoji/20 - food/4.txt rename to data/kaomoji/food/4.txt diff --git a/data/kaomoji/20 - food/5.txt b/data/kaomoji/food/5.txt similarity index 100% rename from data/kaomoji/20 - food/5.txt rename to data/kaomoji/food/5.txt diff --git a/data/kaomoji/20 - food/6.txt b/data/kaomoji/food/6.txt similarity index 100% rename from data/kaomoji/20 - food/6.txt rename to data/kaomoji/food/6.txt diff --git a/data/kaomoji/20 - food/7.txt b/data/kaomoji/food/7.txt similarity index 100% rename from data/kaomoji/20 - food/7.txt rename to data/kaomoji/food/7.txt diff --git a/data/kaomoji/20 - food/8.txt b/data/kaomoji/food/8.txt similarity index 100% rename from data/kaomoji/20 - food/8.txt rename to data/kaomoji/food/8.txt diff --git a/data/kaomoji/20 - food/9.txt b/data/kaomoji/food/9.txt similarity index 100% rename from data/kaomoji/20 - food/9.txt rename to data/kaomoji/food/9.txt diff --git a/data/kaomoji/friends/.name b/data/kaomoji/friends/.name new file mode 100644 index 0000000..c6c92d9 --- /dev/null +++ b/data/kaomoji/friends/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ friends diff --git a/data/kaomoji/12 - friends/1.txt b/data/kaomoji/friends/1.txt similarity index 100% rename from data/kaomoji/12 - friends/1.txt rename to data/kaomoji/friends/1.txt diff --git a/data/kaomoji/12 - friends/10.txt b/data/kaomoji/friends/10.txt similarity index 100% rename from data/kaomoji/12 - friends/10.txt rename to data/kaomoji/friends/10.txt diff --git a/data/kaomoji/12 - friends/11.txt b/data/kaomoji/friends/11.txt similarity index 100% rename from data/kaomoji/12 - friends/11.txt rename to data/kaomoji/friends/11.txt diff --git a/data/kaomoji/12 - friends/12.txt b/data/kaomoji/friends/12.txt similarity index 100% rename from data/kaomoji/12 - friends/12.txt rename to data/kaomoji/friends/12.txt diff --git a/data/kaomoji/12 - friends/13.txt b/data/kaomoji/friends/13.txt similarity index 100% rename from data/kaomoji/12 - friends/13.txt rename to data/kaomoji/friends/13.txt diff --git a/data/kaomoji/12 - friends/14.txt b/data/kaomoji/friends/14.txt similarity index 100% rename from data/kaomoji/12 - friends/14.txt rename to data/kaomoji/friends/14.txt diff --git a/data/kaomoji/12 - friends/15.txt b/data/kaomoji/friends/15.txt similarity index 100% rename from data/kaomoji/12 - friends/15.txt rename to data/kaomoji/friends/15.txt diff --git a/data/kaomoji/12 - friends/16.txt b/data/kaomoji/friends/16.txt similarity index 100% rename from data/kaomoji/12 - friends/16.txt rename to data/kaomoji/friends/16.txt diff --git a/data/kaomoji/12 - friends/17.txt b/data/kaomoji/friends/17.txt similarity index 100% rename from data/kaomoji/12 - friends/17.txt rename to data/kaomoji/friends/17.txt diff --git a/data/kaomoji/12 - friends/18.txt b/data/kaomoji/friends/18.txt similarity index 100% rename from data/kaomoji/12 - friends/18.txt rename to data/kaomoji/friends/18.txt diff --git a/data/kaomoji/12 - friends/19.txt b/data/kaomoji/friends/19.txt similarity index 100% rename from data/kaomoji/12 - friends/19.txt rename to data/kaomoji/friends/19.txt diff --git a/data/kaomoji/12 - friends/2.txt b/data/kaomoji/friends/2.txt similarity index 100% rename from data/kaomoji/12 - friends/2.txt rename to data/kaomoji/friends/2.txt diff --git a/data/kaomoji/12 - friends/20.txt b/data/kaomoji/friends/20.txt similarity index 100% rename from data/kaomoji/12 - friends/20.txt rename to data/kaomoji/friends/20.txt diff --git a/data/kaomoji/12 - friends/21.txt b/data/kaomoji/friends/21.txt similarity index 100% rename from data/kaomoji/12 - friends/21.txt rename to data/kaomoji/friends/21.txt diff --git a/data/kaomoji/12 - friends/22.txt b/data/kaomoji/friends/22.txt similarity index 100% rename from data/kaomoji/12 - friends/22.txt rename to data/kaomoji/friends/22.txt diff --git a/data/kaomoji/12 - friends/23.txt b/data/kaomoji/friends/23.txt similarity index 100% rename from data/kaomoji/12 - friends/23.txt rename to data/kaomoji/friends/23.txt diff --git a/data/kaomoji/12 - friends/3.txt b/data/kaomoji/friends/3.txt similarity index 100% rename from data/kaomoji/12 - friends/3.txt rename to data/kaomoji/friends/3.txt diff --git a/data/kaomoji/12 - friends/4.txt b/data/kaomoji/friends/4.txt similarity index 100% rename from data/kaomoji/12 - friends/4.txt rename to data/kaomoji/friends/4.txt diff --git a/data/kaomoji/12 - friends/5.txt b/data/kaomoji/friends/5.txt similarity index 100% rename from data/kaomoji/12 - friends/5.txt rename to data/kaomoji/friends/5.txt diff --git a/data/kaomoji/12 - friends/6.txt b/data/kaomoji/friends/6.txt similarity index 100% rename from data/kaomoji/12 - friends/6.txt rename to data/kaomoji/friends/6.txt diff --git a/data/kaomoji/12 - friends/7.txt b/data/kaomoji/friends/7.txt similarity index 100% rename from data/kaomoji/12 - friends/7.txt rename to data/kaomoji/friends/7.txt diff --git a/data/kaomoji/12 - friends/8.txt b/data/kaomoji/friends/8.txt similarity index 100% rename from data/kaomoji/12 - friends/8.txt rename to data/kaomoji/friends/8.txt diff --git a/data/kaomoji/12 - friends/9.txt b/data/kaomoji/friends/9.txt similarity index 100% rename from data/kaomoji/12 - friends/9.txt rename to data/kaomoji/friends/9.txt diff --git a/data/kaomoji/games/.name b/data/kaomoji/games/.name new file mode 100644 index 0000000..c9ef3ae --- /dev/null +++ b/data/kaomoji/games/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ games diff --git a/data/kaomoji/28 - games/1.txt b/data/kaomoji/games/1.txt similarity index 100% rename from data/kaomoji/28 - games/1.txt rename to data/kaomoji/games/1.txt diff --git a/data/kaomoji/28 - games/10.txt b/data/kaomoji/games/10.txt similarity index 100% rename from data/kaomoji/28 - games/10.txt rename to data/kaomoji/games/10.txt diff --git a/data/kaomoji/28 - games/11.txt b/data/kaomoji/games/11.txt similarity index 100% rename from data/kaomoji/28 - games/11.txt rename to data/kaomoji/games/11.txt diff --git a/data/kaomoji/28 - games/2.txt b/data/kaomoji/games/2.txt similarity index 100% rename from data/kaomoji/28 - games/2.txt rename to data/kaomoji/games/2.txt diff --git a/data/kaomoji/28 - games/3.txt b/data/kaomoji/games/3.txt similarity index 100% rename from data/kaomoji/28 - games/3.txt rename to data/kaomoji/games/3.txt diff --git a/data/kaomoji/28 - games/4.txt b/data/kaomoji/games/4.txt similarity index 100% rename from data/kaomoji/28 - games/4.txt rename to data/kaomoji/games/4.txt diff --git a/data/kaomoji/28 - games/5.txt b/data/kaomoji/games/5.txt similarity index 100% rename from data/kaomoji/28 - games/5.txt rename to data/kaomoji/games/5.txt diff --git a/data/kaomoji/28 - games/6.txt b/data/kaomoji/games/6.txt similarity index 100% rename from data/kaomoji/28 - games/6.txt rename to data/kaomoji/games/6.txt diff --git a/data/kaomoji/28 - games/7.txt b/data/kaomoji/games/7.txt similarity index 100% rename from data/kaomoji/28 - games/7.txt rename to data/kaomoji/games/7.txt diff --git a/data/kaomoji/28 - games/8.txt b/data/kaomoji/games/8.txt similarity index 100% rename from data/kaomoji/28 - games/8.txt rename to data/kaomoji/games/8.txt diff --git a/data/kaomoji/28 - games/9.txt b/data/kaomoji/games/9.txt similarity index 100% rename from data/kaomoji/28 - games/9.txt rename to data/kaomoji/games/9.txt diff --git a/data/kaomoji/greeting/.name b/data/kaomoji/greeting/.name new file mode 100644 index 0000000..0d60869 --- /dev/null +++ b/data/kaomoji/greeting/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ greeting diff --git a/data/kaomoji/14 - greeting/1.txt b/data/kaomoji/greeting/1.txt similarity index 100% rename from data/kaomoji/14 - greeting/1.txt rename to data/kaomoji/greeting/1.txt diff --git a/data/kaomoji/14 - greeting/10.txt b/data/kaomoji/greeting/10.txt similarity index 100% rename from data/kaomoji/14 - greeting/10.txt rename to data/kaomoji/greeting/10.txt diff --git a/data/kaomoji/14 - greeting/11.txt b/data/kaomoji/greeting/11.txt similarity index 100% rename from data/kaomoji/14 - greeting/11.txt rename to data/kaomoji/greeting/11.txt diff --git a/data/kaomoji/14 - greeting/12.txt b/data/kaomoji/greeting/12.txt similarity index 100% rename from data/kaomoji/14 - greeting/12.txt rename to data/kaomoji/greeting/12.txt diff --git a/data/kaomoji/14 - greeting/13.txt b/data/kaomoji/greeting/13.txt similarity index 100% rename from data/kaomoji/14 - greeting/13.txt rename to data/kaomoji/greeting/13.txt diff --git a/data/kaomoji/14 - greeting/14.txt b/data/kaomoji/greeting/14.txt similarity index 100% rename from data/kaomoji/14 - greeting/14.txt rename to data/kaomoji/greeting/14.txt diff --git a/data/kaomoji/14 - greeting/15.txt b/data/kaomoji/greeting/15.txt similarity index 100% rename from data/kaomoji/14 - greeting/15.txt rename to data/kaomoji/greeting/15.txt diff --git a/data/kaomoji/14 - greeting/16.txt b/data/kaomoji/greeting/16.txt similarity index 100% rename from data/kaomoji/14 - greeting/16.txt rename to data/kaomoji/greeting/16.txt diff --git a/data/kaomoji/14 - greeting/17.txt b/data/kaomoji/greeting/17.txt similarity index 100% rename from data/kaomoji/14 - greeting/17.txt rename to data/kaomoji/greeting/17.txt diff --git a/data/kaomoji/14 - greeting/18.txt b/data/kaomoji/greeting/18.txt similarity index 100% rename from data/kaomoji/14 - greeting/18.txt rename to data/kaomoji/greeting/18.txt diff --git a/data/kaomoji/14 - greeting/19.txt b/data/kaomoji/greeting/19.txt similarity index 100% rename from data/kaomoji/14 - greeting/19.txt rename to data/kaomoji/greeting/19.txt diff --git a/data/kaomoji/14 - greeting/2.txt b/data/kaomoji/greeting/2.txt similarity index 100% rename from data/kaomoji/14 - greeting/2.txt rename to data/kaomoji/greeting/2.txt diff --git a/data/kaomoji/14 - greeting/20.txt b/data/kaomoji/greeting/20.txt similarity index 100% rename from data/kaomoji/14 - greeting/20.txt rename to data/kaomoji/greeting/20.txt diff --git a/data/kaomoji/14 - greeting/21.txt b/data/kaomoji/greeting/21.txt similarity index 100% rename from data/kaomoji/14 - greeting/21.txt rename to data/kaomoji/greeting/21.txt diff --git a/data/kaomoji/14 - greeting/22.txt b/data/kaomoji/greeting/22.txt similarity index 100% rename from data/kaomoji/14 - greeting/22.txt rename to data/kaomoji/greeting/22.txt diff --git a/data/kaomoji/14 - greeting/23.txt b/data/kaomoji/greeting/23.txt similarity index 100% rename from data/kaomoji/14 - greeting/23.txt rename to data/kaomoji/greeting/23.txt diff --git a/data/kaomoji/14 - greeting/24.txt b/data/kaomoji/greeting/24.txt similarity index 100% rename from data/kaomoji/14 - greeting/24.txt rename to data/kaomoji/greeting/24.txt diff --git a/data/kaomoji/14 - greeting/25.txt b/data/kaomoji/greeting/25.txt similarity index 100% rename from data/kaomoji/14 - greeting/25.txt rename to data/kaomoji/greeting/25.txt diff --git a/data/kaomoji/14 - greeting/26.txt b/data/kaomoji/greeting/26.txt similarity index 100% rename from data/kaomoji/14 - greeting/26.txt rename to data/kaomoji/greeting/26.txt diff --git a/data/kaomoji/14 - greeting/27.txt b/data/kaomoji/greeting/27.txt similarity index 100% rename from data/kaomoji/14 - greeting/27.txt rename to data/kaomoji/greeting/27.txt diff --git a/data/kaomoji/14 - greeting/28.txt b/data/kaomoji/greeting/28.txt similarity index 100% rename from data/kaomoji/14 - greeting/28.txt rename to data/kaomoji/greeting/28.txt diff --git a/data/kaomoji/14 - greeting/3.txt b/data/kaomoji/greeting/3.txt similarity index 100% rename from data/kaomoji/14 - greeting/3.txt rename to data/kaomoji/greeting/3.txt diff --git a/data/kaomoji/14 - greeting/4.txt b/data/kaomoji/greeting/4.txt similarity index 100% rename from data/kaomoji/14 - greeting/4.txt rename to data/kaomoji/greeting/4.txt diff --git a/data/kaomoji/14 - greeting/5.txt b/data/kaomoji/greeting/5.txt similarity index 100% rename from data/kaomoji/14 - greeting/5.txt rename to data/kaomoji/greeting/5.txt diff --git a/data/kaomoji/14 - greeting/6.txt b/data/kaomoji/greeting/6.txt similarity index 100% rename from data/kaomoji/14 - greeting/6.txt rename to data/kaomoji/greeting/6.txt diff --git a/data/kaomoji/14 - greeting/7.txt b/data/kaomoji/greeting/7.txt similarity index 100% rename from data/kaomoji/14 - greeting/7.txt rename to data/kaomoji/greeting/7.txt diff --git a/data/kaomoji/14 - greeting/8.txt b/data/kaomoji/greeting/8.txt similarity index 100% rename from data/kaomoji/14 - greeting/8.txt rename to data/kaomoji/greeting/8.txt diff --git a/data/kaomoji/14 - greeting/9.txt b/data/kaomoji/greeting/9.txt similarity index 100% rename from data/kaomoji/14 - greeting/9.txt rename to data/kaomoji/greeting/9.txt diff --git a/data/kaomoji/happy/.name b/data/kaomoji/happy/.name new file mode 100644 index 0000000..f5bfd48 --- /dev/null +++ b/data/kaomoji/happy/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ happy \ No newline at end of file diff --git a/data/kaomoji/1 - joy/1.txt b/data/kaomoji/happy/1.txt similarity index 100% rename from data/kaomoji/1 - joy/1.txt rename to data/kaomoji/happy/1.txt diff --git a/data/kaomoji/1 - joy/10.txt b/data/kaomoji/happy/10.txt similarity index 100% rename from data/kaomoji/1 - joy/10.txt rename to data/kaomoji/happy/10.txt diff --git a/data/kaomoji/1 - joy/100.txt b/data/kaomoji/happy/100.txt similarity index 100% rename from data/kaomoji/1 - joy/100.txt rename to data/kaomoji/happy/100.txt diff --git a/data/kaomoji/1 - joy/11.txt b/data/kaomoji/happy/11.txt similarity index 100% rename from data/kaomoji/1 - joy/11.txt rename to data/kaomoji/happy/11.txt diff --git a/data/kaomoji/1 - joy/12.txt b/data/kaomoji/happy/12.txt similarity index 100% rename from data/kaomoji/1 - joy/12.txt rename to data/kaomoji/happy/12.txt diff --git a/data/kaomoji/1 - joy/13.txt b/data/kaomoji/happy/13.txt similarity index 100% rename from data/kaomoji/1 - joy/13.txt rename to data/kaomoji/happy/13.txt diff --git a/data/kaomoji/1 - joy/14.txt b/data/kaomoji/happy/14.txt similarity index 100% rename from data/kaomoji/1 - joy/14.txt rename to data/kaomoji/happy/14.txt diff --git a/data/kaomoji/1 - joy/15.txt b/data/kaomoji/happy/15.txt similarity index 100% rename from data/kaomoji/1 - joy/15.txt rename to data/kaomoji/happy/15.txt diff --git a/data/kaomoji/1 - joy/16.txt b/data/kaomoji/happy/16.txt similarity index 100% rename from data/kaomoji/1 - joy/16.txt rename to data/kaomoji/happy/16.txt diff --git a/data/kaomoji/1 - joy/17.txt b/data/kaomoji/happy/17.txt similarity index 100% rename from data/kaomoji/1 - joy/17.txt rename to data/kaomoji/happy/17.txt diff --git a/data/kaomoji/1 - joy/18.txt b/data/kaomoji/happy/18.txt similarity index 100% rename from data/kaomoji/1 - joy/18.txt rename to data/kaomoji/happy/18.txt diff --git a/data/kaomoji/1 - joy/19.txt b/data/kaomoji/happy/19.txt similarity index 100% rename from data/kaomoji/1 - joy/19.txt rename to data/kaomoji/happy/19.txt diff --git a/data/kaomoji/1 - joy/2.txt b/data/kaomoji/happy/2.txt similarity index 100% rename from data/kaomoji/1 - joy/2.txt rename to data/kaomoji/happy/2.txt diff --git a/data/kaomoji/1 - joy/20.txt b/data/kaomoji/happy/20.txt similarity index 100% rename from data/kaomoji/1 - joy/20.txt rename to data/kaomoji/happy/20.txt diff --git a/data/kaomoji/1 - joy/21.txt b/data/kaomoji/happy/21.txt similarity index 100% rename from data/kaomoji/1 - joy/21.txt rename to data/kaomoji/happy/21.txt diff --git a/data/kaomoji/1 - joy/22.txt b/data/kaomoji/happy/22.txt similarity index 100% rename from data/kaomoji/1 - joy/22.txt rename to data/kaomoji/happy/22.txt diff --git a/data/kaomoji/1 - joy/23.txt b/data/kaomoji/happy/23.txt similarity index 100% rename from data/kaomoji/1 - joy/23.txt rename to data/kaomoji/happy/23.txt diff --git a/data/kaomoji/1 - joy/24.txt b/data/kaomoji/happy/24.txt similarity index 100% rename from data/kaomoji/1 - joy/24.txt rename to data/kaomoji/happy/24.txt diff --git a/data/kaomoji/1 - joy/25.txt b/data/kaomoji/happy/25.txt similarity index 100% rename from data/kaomoji/1 - joy/25.txt rename to data/kaomoji/happy/25.txt diff --git a/data/kaomoji/1 - joy/26.txt b/data/kaomoji/happy/26.txt similarity index 100% rename from data/kaomoji/1 - joy/26.txt rename to data/kaomoji/happy/26.txt diff --git a/data/kaomoji/1 - joy/27.txt b/data/kaomoji/happy/27.txt similarity index 100% rename from data/kaomoji/1 - joy/27.txt rename to data/kaomoji/happy/27.txt diff --git a/data/kaomoji/1 - joy/28.txt b/data/kaomoji/happy/28.txt similarity index 100% rename from data/kaomoji/1 - joy/28.txt rename to data/kaomoji/happy/28.txt diff --git a/data/kaomoji/1 - joy/29.txt b/data/kaomoji/happy/29.txt similarity index 100% rename from data/kaomoji/1 - joy/29.txt rename to data/kaomoji/happy/29.txt diff --git a/data/kaomoji/1 - joy/3.txt b/data/kaomoji/happy/3.txt similarity index 100% rename from data/kaomoji/1 - joy/3.txt rename to data/kaomoji/happy/3.txt diff --git a/data/kaomoji/1 - joy/30.txt b/data/kaomoji/happy/30.txt similarity index 100% rename from data/kaomoji/1 - joy/30.txt rename to data/kaomoji/happy/30.txt diff --git a/data/kaomoji/1 - joy/31.txt b/data/kaomoji/happy/31.txt similarity index 100% rename from data/kaomoji/1 - joy/31.txt rename to data/kaomoji/happy/31.txt diff --git a/data/kaomoji/1 - joy/32.txt b/data/kaomoji/happy/32.txt similarity index 100% rename from data/kaomoji/1 - joy/32.txt rename to data/kaomoji/happy/32.txt diff --git a/data/kaomoji/1 - joy/33.txt b/data/kaomoji/happy/33.txt similarity index 100% rename from data/kaomoji/1 - joy/33.txt rename to data/kaomoji/happy/33.txt diff --git a/data/kaomoji/1 - joy/34.txt b/data/kaomoji/happy/34.txt similarity index 100% rename from data/kaomoji/1 - joy/34.txt rename to data/kaomoji/happy/34.txt diff --git a/data/kaomoji/1 - joy/35.txt b/data/kaomoji/happy/35.txt similarity index 100% rename from data/kaomoji/1 - joy/35.txt rename to data/kaomoji/happy/35.txt diff --git a/data/kaomoji/1 - joy/36.txt b/data/kaomoji/happy/36.txt similarity index 100% rename from data/kaomoji/1 - joy/36.txt rename to data/kaomoji/happy/36.txt diff --git a/data/kaomoji/1 - joy/37.txt b/data/kaomoji/happy/37.txt similarity index 100% rename from data/kaomoji/1 - joy/37.txt rename to data/kaomoji/happy/37.txt diff --git a/data/kaomoji/1 - joy/38.txt b/data/kaomoji/happy/38.txt similarity index 100% rename from data/kaomoji/1 - joy/38.txt rename to data/kaomoji/happy/38.txt diff --git a/data/kaomoji/1 - joy/39.txt b/data/kaomoji/happy/39.txt similarity index 100% rename from data/kaomoji/1 - joy/39.txt rename to data/kaomoji/happy/39.txt diff --git a/data/kaomoji/1 - joy/4.txt b/data/kaomoji/happy/4.txt similarity index 100% rename from data/kaomoji/1 - joy/4.txt rename to data/kaomoji/happy/4.txt diff --git a/data/kaomoji/1 - joy/40.txt b/data/kaomoji/happy/40.txt similarity index 100% rename from data/kaomoji/1 - joy/40.txt rename to data/kaomoji/happy/40.txt diff --git a/data/kaomoji/1 - joy/41.txt b/data/kaomoji/happy/41.txt similarity index 100% rename from data/kaomoji/1 - joy/41.txt rename to data/kaomoji/happy/41.txt diff --git a/data/kaomoji/1 - joy/42.txt b/data/kaomoji/happy/42.txt similarity index 100% rename from data/kaomoji/1 - joy/42.txt rename to data/kaomoji/happy/42.txt diff --git a/data/kaomoji/1 - joy/43.txt b/data/kaomoji/happy/43.txt similarity index 100% rename from data/kaomoji/1 - joy/43.txt rename to data/kaomoji/happy/43.txt diff --git a/data/kaomoji/1 - joy/44.txt b/data/kaomoji/happy/44.txt similarity index 100% rename from data/kaomoji/1 - joy/44.txt rename to data/kaomoji/happy/44.txt diff --git a/data/kaomoji/1 - joy/45.txt b/data/kaomoji/happy/45.txt similarity index 100% rename from data/kaomoji/1 - joy/45.txt rename to data/kaomoji/happy/45.txt diff --git a/data/kaomoji/1 - joy/46.txt b/data/kaomoji/happy/46.txt similarity index 100% rename from data/kaomoji/1 - joy/46.txt rename to data/kaomoji/happy/46.txt diff --git a/data/kaomoji/1 - joy/47.txt b/data/kaomoji/happy/47.txt similarity index 100% rename from data/kaomoji/1 - joy/47.txt rename to data/kaomoji/happy/47.txt diff --git a/data/kaomoji/1 - joy/48.txt b/data/kaomoji/happy/48.txt similarity index 100% rename from data/kaomoji/1 - joy/48.txt rename to data/kaomoji/happy/48.txt diff --git a/data/kaomoji/1 - joy/49.txt b/data/kaomoji/happy/49.txt similarity index 100% rename from data/kaomoji/1 - joy/49.txt rename to data/kaomoji/happy/49.txt diff --git a/data/kaomoji/1 - joy/5.txt b/data/kaomoji/happy/5.txt similarity index 100% rename from data/kaomoji/1 - joy/5.txt rename to data/kaomoji/happy/5.txt diff --git a/data/kaomoji/1 - joy/50.txt b/data/kaomoji/happy/50.txt similarity index 100% rename from data/kaomoji/1 - joy/50.txt rename to data/kaomoji/happy/50.txt diff --git a/data/kaomoji/1 - joy/51.txt b/data/kaomoji/happy/51.txt similarity index 100% rename from data/kaomoji/1 - joy/51.txt rename to data/kaomoji/happy/51.txt diff --git a/data/kaomoji/1 - joy/52.txt b/data/kaomoji/happy/52.txt similarity index 100% rename from data/kaomoji/1 - joy/52.txt rename to data/kaomoji/happy/52.txt diff --git a/data/kaomoji/1 - joy/53.txt b/data/kaomoji/happy/53.txt similarity index 100% rename from data/kaomoji/1 - joy/53.txt rename to data/kaomoji/happy/53.txt diff --git a/data/kaomoji/1 - joy/54.txt b/data/kaomoji/happy/54.txt similarity index 100% rename from data/kaomoji/1 - joy/54.txt rename to data/kaomoji/happy/54.txt diff --git a/data/kaomoji/1 - joy/55.txt b/data/kaomoji/happy/55.txt similarity index 100% rename from data/kaomoji/1 - joy/55.txt rename to data/kaomoji/happy/55.txt diff --git a/data/kaomoji/1 - joy/56.txt b/data/kaomoji/happy/56.txt similarity index 100% rename from data/kaomoji/1 - joy/56.txt rename to data/kaomoji/happy/56.txt diff --git a/data/kaomoji/1 - joy/57.txt b/data/kaomoji/happy/57.txt similarity index 100% rename from data/kaomoji/1 - joy/57.txt rename to data/kaomoji/happy/57.txt diff --git a/data/kaomoji/1 - joy/58.txt b/data/kaomoji/happy/58.txt similarity index 100% rename from data/kaomoji/1 - joy/58.txt rename to data/kaomoji/happy/58.txt diff --git a/data/kaomoji/1 - joy/59.txt b/data/kaomoji/happy/59.txt similarity index 100% rename from data/kaomoji/1 - joy/59.txt rename to data/kaomoji/happy/59.txt diff --git a/data/kaomoji/1 - joy/6.txt b/data/kaomoji/happy/6.txt similarity index 100% rename from data/kaomoji/1 - joy/6.txt rename to data/kaomoji/happy/6.txt diff --git a/data/kaomoji/1 - joy/60.txt b/data/kaomoji/happy/60.txt similarity index 100% rename from data/kaomoji/1 - joy/60.txt rename to data/kaomoji/happy/60.txt diff --git a/data/kaomoji/1 - joy/61.txt b/data/kaomoji/happy/61.txt similarity index 100% rename from data/kaomoji/1 - joy/61.txt rename to data/kaomoji/happy/61.txt diff --git a/data/kaomoji/1 - joy/62.txt b/data/kaomoji/happy/62.txt similarity index 100% rename from data/kaomoji/1 - joy/62.txt rename to data/kaomoji/happy/62.txt diff --git a/data/kaomoji/1 - joy/63.txt b/data/kaomoji/happy/63.txt similarity index 100% rename from data/kaomoji/1 - joy/63.txt rename to data/kaomoji/happy/63.txt diff --git a/data/kaomoji/1 - joy/64.txt b/data/kaomoji/happy/64.txt similarity index 100% rename from data/kaomoji/1 - joy/64.txt rename to data/kaomoji/happy/64.txt diff --git a/data/kaomoji/1 - joy/65.txt b/data/kaomoji/happy/65.txt similarity index 100% rename from data/kaomoji/1 - joy/65.txt rename to data/kaomoji/happy/65.txt diff --git a/data/kaomoji/1 - joy/66.txt b/data/kaomoji/happy/66.txt similarity index 100% rename from data/kaomoji/1 - joy/66.txt rename to data/kaomoji/happy/66.txt diff --git a/data/kaomoji/1 - joy/67.txt b/data/kaomoji/happy/67.txt similarity index 100% rename from data/kaomoji/1 - joy/67.txt rename to data/kaomoji/happy/67.txt diff --git a/data/kaomoji/1 - joy/68.txt b/data/kaomoji/happy/68.txt similarity index 100% rename from data/kaomoji/1 - joy/68.txt rename to data/kaomoji/happy/68.txt diff --git a/data/kaomoji/1 - joy/69.txt b/data/kaomoji/happy/69.txt similarity index 100% rename from data/kaomoji/1 - joy/69.txt rename to data/kaomoji/happy/69.txt diff --git a/data/kaomoji/1 - joy/7.txt b/data/kaomoji/happy/7.txt similarity index 100% rename from data/kaomoji/1 - joy/7.txt rename to data/kaomoji/happy/7.txt diff --git a/data/kaomoji/1 - joy/70.txt b/data/kaomoji/happy/70.txt similarity index 100% rename from data/kaomoji/1 - joy/70.txt rename to data/kaomoji/happy/70.txt diff --git a/data/kaomoji/1 - joy/71.txt b/data/kaomoji/happy/71.txt similarity index 100% rename from data/kaomoji/1 - joy/71.txt rename to data/kaomoji/happy/71.txt diff --git a/data/kaomoji/1 - joy/72.txt b/data/kaomoji/happy/72.txt similarity index 100% rename from data/kaomoji/1 - joy/72.txt rename to data/kaomoji/happy/72.txt diff --git a/data/kaomoji/1 - joy/73.txt b/data/kaomoji/happy/73.txt similarity index 100% rename from data/kaomoji/1 - joy/73.txt rename to data/kaomoji/happy/73.txt diff --git a/data/kaomoji/1 - joy/74.txt b/data/kaomoji/happy/74.txt similarity index 100% rename from data/kaomoji/1 - joy/74.txt rename to data/kaomoji/happy/74.txt diff --git a/data/kaomoji/1 - joy/75.txt b/data/kaomoji/happy/75.txt similarity index 100% rename from data/kaomoji/1 - joy/75.txt rename to data/kaomoji/happy/75.txt diff --git a/data/kaomoji/1 - joy/76.txt b/data/kaomoji/happy/76.txt similarity index 100% rename from data/kaomoji/1 - joy/76.txt rename to data/kaomoji/happy/76.txt diff --git a/data/kaomoji/1 - joy/77.txt b/data/kaomoji/happy/77.txt similarity index 100% rename from data/kaomoji/1 - joy/77.txt rename to data/kaomoji/happy/77.txt diff --git a/data/kaomoji/1 - joy/78.txt b/data/kaomoji/happy/78.txt similarity index 100% rename from data/kaomoji/1 - joy/78.txt rename to data/kaomoji/happy/78.txt diff --git a/data/kaomoji/1 - joy/79.txt b/data/kaomoji/happy/79.txt similarity index 100% rename from data/kaomoji/1 - joy/79.txt rename to data/kaomoji/happy/79.txt diff --git a/data/kaomoji/1 - joy/8.txt b/data/kaomoji/happy/8.txt similarity index 100% rename from data/kaomoji/1 - joy/8.txt rename to data/kaomoji/happy/8.txt diff --git a/data/kaomoji/1 - joy/80.txt b/data/kaomoji/happy/80.txt similarity index 100% rename from data/kaomoji/1 - joy/80.txt rename to data/kaomoji/happy/80.txt diff --git a/data/kaomoji/1 - joy/81.txt b/data/kaomoji/happy/81.txt similarity index 100% rename from data/kaomoji/1 - joy/81.txt rename to data/kaomoji/happy/81.txt diff --git a/data/kaomoji/1 - joy/82.txt b/data/kaomoji/happy/82.txt similarity index 100% rename from data/kaomoji/1 - joy/82.txt rename to data/kaomoji/happy/82.txt diff --git a/data/kaomoji/1 - joy/83.txt b/data/kaomoji/happy/83.txt similarity index 100% rename from data/kaomoji/1 - joy/83.txt rename to data/kaomoji/happy/83.txt diff --git a/data/kaomoji/1 - joy/84.txt b/data/kaomoji/happy/84.txt similarity index 100% rename from data/kaomoji/1 - joy/84.txt rename to data/kaomoji/happy/84.txt diff --git a/data/kaomoji/1 - joy/85.txt b/data/kaomoji/happy/85.txt similarity index 100% rename from data/kaomoji/1 - joy/85.txt rename to data/kaomoji/happy/85.txt diff --git a/data/kaomoji/1 - joy/86.txt b/data/kaomoji/happy/86.txt similarity index 100% rename from data/kaomoji/1 - joy/86.txt rename to data/kaomoji/happy/86.txt diff --git a/data/kaomoji/1 - joy/87.txt b/data/kaomoji/happy/87.txt similarity index 100% rename from data/kaomoji/1 - joy/87.txt rename to data/kaomoji/happy/87.txt diff --git a/data/kaomoji/1 - joy/88.txt b/data/kaomoji/happy/88.txt similarity index 100% rename from data/kaomoji/1 - joy/88.txt rename to data/kaomoji/happy/88.txt diff --git a/data/kaomoji/1 - joy/89.txt b/data/kaomoji/happy/89.txt similarity index 100% rename from data/kaomoji/1 - joy/89.txt rename to data/kaomoji/happy/89.txt diff --git a/data/kaomoji/1 - joy/9.txt b/data/kaomoji/happy/9.txt similarity index 100% rename from data/kaomoji/1 - joy/9.txt rename to data/kaomoji/happy/9.txt diff --git a/data/kaomoji/1 - joy/90.txt b/data/kaomoji/happy/90.txt similarity index 100% rename from data/kaomoji/1 - joy/90.txt rename to data/kaomoji/happy/90.txt diff --git a/data/kaomoji/1 - joy/91.txt b/data/kaomoji/happy/91.txt similarity index 100% rename from data/kaomoji/1 - joy/91.txt rename to data/kaomoji/happy/91.txt diff --git a/data/kaomoji/1 - joy/92.txt b/data/kaomoji/happy/92.txt similarity index 100% rename from data/kaomoji/1 - joy/92.txt rename to data/kaomoji/happy/92.txt diff --git a/data/kaomoji/1 - joy/93.txt b/data/kaomoji/happy/93.txt similarity index 100% rename from data/kaomoji/1 - joy/93.txt rename to data/kaomoji/happy/93.txt diff --git a/data/kaomoji/1 - joy/94.txt b/data/kaomoji/happy/94.txt similarity index 100% rename from data/kaomoji/1 - joy/94.txt rename to data/kaomoji/happy/94.txt diff --git a/data/kaomoji/1 - joy/95.txt b/data/kaomoji/happy/95.txt similarity index 100% rename from data/kaomoji/1 - joy/95.txt rename to data/kaomoji/happy/95.txt diff --git a/data/kaomoji/1 - joy/96.txt b/data/kaomoji/happy/96.txt similarity index 100% rename from data/kaomoji/1 - joy/96.txt rename to data/kaomoji/happy/96.txt diff --git a/data/kaomoji/1 - joy/97.txt b/data/kaomoji/happy/97.txt similarity index 100% rename from data/kaomoji/1 - joy/97.txt rename to data/kaomoji/happy/97.txt diff --git a/data/kaomoji/1 - joy/98.txt b/data/kaomoji/happy/98.txt similarity index 100% rename from data/kaomoji/1 - joy/98.txt rename to data/kaomoji/happy/98.txt diff --git a/data/kaomoji/1 - joy/99.txt b/data/kaomoji/happy/99.txt similarity index 100% rename from data/kaomoji/1 - joy/99.txt rename to data/kaomoji/happy/99.txt diff --git a/data/kaomoji/hiding/.name b/data/kaomoji/hiding/.name new file mode 100644 index 0000000..82ecb10 --- /dev/null +++ b/data/kaomoji/hiding/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ hiding diff --git a/data/kaomoji/15 - hiding/1.txt b/data/kaomoji/hiding/1.txt similarity index 100% rename from data/kaomoji/15 - hiding/1.txt rename to data/kaomoji/hiding/1.txt diff --git a/data/kaomoji/15 - hiding/10.txt b/data/kaomoji/hiding/10.txt similarity index 100% rename from data/kaomoji/15 - hiding/10.txt rename to data/kaomoji/hiding/10.txt diff --git a/data/kaomoji/15 - hiding/11.txt b/data/kaomoji/hiding/11.txt similarity index 100% rename from data/kaomoji/15 - hiding/11.txt rename to data/kaomoji/hiding/11.txt diff --git a/data/kaomoji/15 - hiding/12.txt b/data/kaomoji/hiding/12.txt similarity index 100% rename from data/kaomoji/15 - hiding/12.txt rename to data/kaomoji/hiding/12.txt diff --git a/data/kaomoji/15 - hiding/13.txt b/data/kaomoji/hiding/13.txt similarity index 100% rename from data/kaomoji/15 - hiding/13.txt rename to data/kaomoji/hiding/13.txt diff --git a/data/kaomoji/15 - hiding/14.txt b/data/kaomoji/hiding/14.txt similarity index 100% rename from data/kaomoji/15 - hiding/14.txt rename to data/kaomoji/hiding/14.txt diff --git a/data/kaomoji/15 - hiding/2.txt b/data/kaomoji/hiding/2.txt similarity index 100% rename from data/kaomoji/15 - hiding/2.txt rename to data/kaomoji/hiding/2.txt diff --git a/data/kaomoji/15 - hiding/3.txt b/data/kaomoji/hiding/3.txt similarity index 100% rename from data/kaomoji/15 - hiding/3.txt rename to data/kaomoji/hiding/3.txt diff --git a/data/kaomoji/15 - hiding/4.txt b/data/kaomoji/hiding/4.txt similarity index 100% rename from data/kaomoji/15 - hiding/4.txt rename to data/kaomoji/hiding/4.txt diff --git a/data/kaomoji/15 - hiding/5.txt b/data/kaomoji/hiding/5.txt similarity index 100% rename from data/kaomoji/15 - hiding/5.txt rename to data/kaomoji/hiding/5.txt diff --git a/data/kaomoji/15 - hiding/6.txt b/data/kaomoji/hiding/6.txt similarity index 100% rename from data/kaomoji/15 - hiding/6.txt rename to data/kaomoji/hiding/6.txt diff --git a/data/kaomoji/15 - hiding/7.txt b/data/kaomoji/hiding/7.txt similarity index 100% rename from data/kaomoji/15 - hiding/7.txt rename to data/kaomoji/hiding/7.txt diff --git a/data/kaomoji/15 - hiding/8.txt b/data/kaomoji/hiding/8.txt similarity index 100% rename from data/kaomoji/15 - hiding/8.txt rename to data/kaomoji/hiding/8.txt diff --git a/data/kaomoji/15 - hiding/9.txt b/data/kaomoji/hiding/9.txt similarity index 100% rename from data/kaomoji/15 - hiding/9.txt rename to data/kaomoji/hiding/9.txt diff --git a/data/kaomoji/hugging/.name b/data/kaomoji/hugging/.name new file mode 100644 index 0000000..80dcae4 --- /dev/null +++ b/data/kaomoji/hugging/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ hugging diff --git a/data/kaomoji/16 - hugging/1.txt b/data/kaomoji/hugging/1.txt similarity index 100% rename from data/kaomoji/16 - hugging/1.txt rename to data/kaomoji/hugging/1.txt diff --git a/data/kaomoji/16 - hugging/10.txt b/data/kaomoji/hugging/10.txt similarity index 100% rename from data/kaomoji/16 - hugging/10.txt rename to data/kaomoji/hugging/10.txt diff --git a/data/kaomoji/16 - hugging/11.txt b/data/kaomoji/hugging/11.txt similarity index 100% rename from data/kaomoji/16 - hugging/11.txt rename to data/kaomoji/hugging/11.txt diff --git a/data/kaomoji/16 - hugging/12.txt b/data/kaomoji/hugging/12.txt similarity index 100% rename from data/kaomoji/16 - hugging/12.txt rename to data/kaomoji/hugging/12.txt diff --git a/data/kaomoji/16 - hugging/13.txt b/data/kaomoji/hugging/13.txt similarity index 100% rename from data/kaomoji/16 - hugging/13.txt rename to data/kaomoji/hugging/13.txt diff --git a/data/kaomoji/16 - hugging/14.txt b/data/kaomoji/hugging/14.txt similarity index 100% rename from data/kaomoji/16 - hugging/14.txt rename to data/kaomoji/hugging/14.txt diff --git a/data/kaomoji/16 - hugging/15.txt b/data/kaomoji/hugging/15.txt similarity index 100% rename from data/kaomoji/16 - hugging/15.txt rename to data/kaomoji/hugging/15.txt diff --git a/data/kaomoji/16 - hugging/16.txt b/data/kaomoji/hugging/16.txt similarity index 100% rename from data/kaomoji/16 - hugging/16.txt rename to data/kaomoji/hugging/16.txt diff --git a/data/kaomoji/16 - hugging/2.txt b/data/kaomoji/hugging/2.txt similarity index 100% rename from data/kaomoji/16 - hugging/2.txt rename to data/kaomoji/hugging/2.txt diff --git a/data/kaomoji/16 - hugging/3.txt b/data/kaomoji/hugging/3.txt similarity index 100% rename from data/kaomoji/16 - hugging/3.txt rename to data/kaomoji/hugging/3.txt diff --git a/data/kaomoji/16 - hugging/4.txt b/data/kaomoji/hugging/4.txt similarity index 100% rename from data/kaomoji/16 - hugging/4.txt rename to data/kaomoji/hugging/4.txt diff --git a/data/kaomoji/16 - hugging/5.txt b/data/kaomoji/hugging/5.txt similarity index 100% rename from data/kaomoji/16 - hugging/5.txt rename to data/kaomoji/hugging/5.txt diff --git a/data/kaomoji/16 - hugging/6.txt b/data/kaomoji/hugging/6.txt similarity index 100% rename from data/kaomoji/16 - hugging/6.txt rename to data/kaomoji/hugging/6.txt diff --git a/data/kaomoji/16 - hugging/7.txt b/data/kaomoji/hugging/7.txt similarity index 100% rename from data/kaomoji/16 - hugging/7.txt rename to data/kaomoji/hugging/7.txt diff --git a/data/kaomoji/16 - hugging/8.txt b/data/kaomoji/hugging/8.txt similarity index 100% rename from data/kaomoji/16 - hugging/8.txt rename to data/kaomoji/hugging/8.txt diff --git a/data/kaomoji/16 - hugging/9.txt b/data/kaomoji/hugging/9.txt similarity index 100% rename from data/kaomoji/16 - hugging/9.txt rename to data/kaomoji/hugging/9.txt diff --git a/data/kaomoji/indifference/.name b/data/kaomoji/indifference/.name new file mode 100644 index 0000000..83cfebd --- /dev/null +++ b/data/kaomoji/indifference/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ indifference diff --git a/data/kaomoji/17 - indifference/1.txt b/data/kaomoji/indifference/1.txt similarity index 100% rename from data/kaomoji/17 - indifference/1.txt rename to data/kaomoji/indifference/1.txt diff --git a/data/kaomoji/17 - indifference/10.txt b/data/kaomoji/indifference/10.txt similarity index 100% rename from data/kaomoji/17 - indifference/10.txt rename to data/kaomoji/indifference/10.txt diff --git a/data/kaomoji/17 - indifference/11.txt b/data/kaomoji/indifference/11.txt similarity index 100% rename from data/kaomoji/17 - indifference/11.txt rename to data/kaomoji/indifference/11.txt diff --git a/data/kaomoji/17 - indifference/12.txt b/data/kaomoji/indifference/12.txt similarity index 100% rename from data/kaomoji/17 - indifference/12.txt rename to data/kaomoji/indifference/12.txt diff --git a/data/kaomoji/17 - indifference/13.txt b/data/kaomoji/indifference/13.txt similarity index 100% rename from data/kaomoji/17 - indifference/13.txt rename to data/kaomoji/indifference/13.txt diff --git a/data/kaomoji/17 - indifference/14.txt b/data/kaomoji/indifference/14.txt similarity index 100% rename from data/kaomoji/17 - indifference/14.txt rename to data/kaomoji/indifference/14.txt diff --git a/data/kaomoji/17 - indifference/15.txt b/data/kaomoji/indifference/15.txt similarity index 100% rename from data/kaomoji/17 - indifference/15.txt rename to data/kaomoji/indifference/15.txt diff --git a/data/kaomoji/17 - indifference/16.txt b/data/kaomoji/indifference/16.txt similarity index 100% rename from data/kaomoji/17 - indifference/16.txt rename to data/kaomoji/indifference/16.txt diff --git a/data/kaomoji/17 - indifference/17.txt b/data/kaomoji/indifference/17.txt similarity index 100% rename from data/kaomoji/17 - indifference/17.txt rename to data/kaomoji/indifference/17.txt diff --git a/data/kaomoji/17 - indifference/18.txt b/data/kaomoji/indifference/18.txt similarity index 100% rename from data/kaomoji/17 - indifference/18.txt rename to data/kaomoji/indifference/18.txt diff --git a/data/kaomoji/17 - indifference/19.txt b/data/kaomoji/indifference/19.txt similarity index 100% rename from data/kaomoji/17 - indifference/19.txt rename to data/kaomoji/indifference/19.txt diff --git a/data/kaomoji/17 - indifference/2.txt b/data/kaomoji/indifference/2.txt similarity index 100% rename from data/kaomoji/17 - indifference/2.txt rename to data/kaomoji/indifference/2.txt diff --git a/data/kaomoji/17 - indifference/20.txt b/data/kaomoji/indifference/20.txt similarity index 100% rename from data/kaomoji/17 - indifference/20.txt rename to data/kaomoji/indifference/20.txt diff --git a/data/kaomoji/17 - indifference/21.txt b/data/kaomoji/indifference/21.txt similarity index 100% rename from data/kaomoji/17 - indifference/21.txt rename to data/kaomoji/indifference/21.txt diff --git a/data/kaomoji/17 - indifference/22.txt b/data/kaomoji/indifference/22.txt similarity index 100% rename from data/kaomoji/17 - indifference/22.txt rename to data/kaomoji/indifference/22.txt diff --git a/data/kaomoji/17 - indifference/23.txt b/data/kaomoji/indifference/23.txt similarity index 100% rename from data/kaomoji/17 - indifference/23.txt rename to data/kaomoji/indifference/23.txt diff --git a/data/kaomoji/17 - indifference/3.txt b/data/kaomoji/indifference/3.txt similarity index 100% rename from data/kaomoji/17 - indifference/3.txt rename to data/kaomoji/indifference/3.txt diff --git a/data/kaomoji/17 - indifference/4.txt b/data/kaomoji/indifference/4.txt similarity index 100% rename from data/kaomoji/17 - indifference/4.txt rename to data/kaomoji/indifference/4.txt diff --git a/data/kaomoji/17 - indifference/5.txt b/data/kaomoji/indifference/5.txt similarity index 100% rename from data/kaomoji/17 - indifference/5.txt rename to data/kaomoji/indifference/5.txt diff --git a/data/kaomoji/17 - indifference/6.txt b/data/kaomoji/indifference/6.txt similarity index 100% rename from data/kaomoji/17 - indifference/6.txt rename to data/kaomoji/indifference/6.txt diff --git a/data/kaomoji/17 - indifference/7.txt b/data/kaomoji/indifference/7.txt similarity index 100% rename from data/kaomoji/17 - indifference/7.txt rename to data/kaomoji/indifference/7.txt diff --git a/data/kaomoji/17 - indifference/8.txt b/data/kaomoji/indifference/8.txt similarity index 100% rename from data/kaomoji/17 - indifference/8.txt rename to data/kaomoji/indifference/8.txt diff --git a/data/kaomoji/17 - indifference/9.txt b/data/kaomoji/indifference/9.txt similarity index 100% rename from data/kaomoji/17 - indifference/9.txt rename to data/kaomoji/indifference/9.txt diff --git a/data/kaomoji/love/.name b/data/kaomoji/love/.name new file mode 100644 index 0000000..dba19a2 --- /dev/null +++ b/data/kaomoji/love/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ love diff --git a/data/kaomoji/2 - love/1.txt b/data/kaomoji/love/1.txt similarity index 100% rename from data/kaomoji/2 - love/1.txt rename to data/kaomoji/love/1.txt diff --git a/data/kaomoji/2 - love/10.txt b/data/kaomoji/love/10.txt similarity index 100% rename from data/kaomoji/2 - love/10.txt rename to data/kaomoji/love/10.txt diff --git a/data/kaomoji/2 - love/11.txt b/data/kaomoji/love/11.txt similarity index 100% rename from data/kaomoji/2 - love/11.txt rename to data/kaomoji/love/11.txt diff --git a/data/kaomoji/2 - love/12.txt b/data/kaomoji/love/12.txt similarity index 100% rename from data/kaomoji/2 - love/12.txt rename to data/kaomoji/love/12.txt diff --git a/data/kaomoji/2 - love/13.txt b/data/kaomoji/love/13.txt similarity index 100% rename from data/kaomoji/2 - love/13.txt rename to data/kaomoji/love/13.txt diff --git a/data/kaomoji/2 - love/14.txt b/data/kaomoji/love/14.txt similarity index 100% rename from data/kaomoji/2 - love/14.txt rename to data/kaomoji/love/14.txt diff --git a/data/kaomoji/2 - love/15.txt b/data/kaomoji/love/15.txt similarity index 100% rename from data/kaomoji/2 - love/15.txt rename to data/kaomoji/love/15.txt diff --git a/data/kaomoji/2 - love/16.txt b/data/kaomoji/love/16.txt similarity index 100% rename from data/kaomoji/2 - love/16.txt rename to data/kaomoji/love/16.txt diff --git a/data/kaomoji/2 - love/17.txt b/data/kaomoji/love/17.txt similarity index 100% rename from data/kaomoji/2 - love/17.txt rename to data/kaomoji/love/17.txt diff --git a/data/kaomoji/2 - love/18.txt b/data/kaomoji/love/18.txt similarity index 100% rename from data/kaomoji/2 - love/18.txt rename to data/kaomoji/love/18.txt diff --git a/data/kaomoji/2 - love/19.txt b/data/kaomoji/love/19.txt similarity index 100% rename from data/kaomoji/2 - love/19.txt rename to data/kaomoji/love/19.txt diff --git a/data/kaomoji/2 - love/2.txt b/data/kaomoji/love/2.txt similarity index 100% rename from data/kaomoji/2 - love/2.txt rename to data/kaomoji/love/2.txt diff --git a/data/kaomoji/2 - love/20.txt b/data/kaomoji/love/20.txt similarity index 100% rename from data/kaomoji/2 - love/20.txt rename to data/kaomoji/love/20.txt diff --git a/data/kaomoji/2 - love/21.txt b/data/kaomoji/love/21.txt similarity index 100% rename from data/kaomoji/2 - love/21.txt rename to data/kaomoji/love/21.txt diff --git a/data/kaomoji/2 - love/22.txt b/data/kaomoji/love/22.txt similarity index 100% rename from data/kaomoji/2 - love/22.txt rename to data/kaomoji/love/22.txt diff --git a/data/kaomoji/2 - love/23.txt b/data/kaomoji/love/23.txt similarity index 100% rename from data/kaomoji/2 - love/23.txt rename to data/kaomoji/love/23.txt diff --git a/data/kaomoji/2 - love/24.txt b/data/kaomoji/love/24.txt similarity index 100% rename from data/kaomoji/2 - love/24.txt rename to data/kaomoji/love/24.txt diff --git a/data/kaomoji/2 - love/25.txt b/data/kaomoji/love/25.txt similarity index 100% rename from data/kaomoji/2 - love/25.txt rename to data/kaomoji/love/25.txt diff --git a/data/kaomoji/2 - love/26.txt b/data/kaomoji/love/26.txt similarity index 100% rename from data/kaomoji/2 - love/26.txt rename to data/kaomoji/love/26.txt diff --git a/data/kaomoji/2 - love/27.txt b/data/kaomoji/love/27.txt similarity index 100% rename from data/kaomoji/2 - love/27.txt rename to data/kaomoji/love/27.txt diff --git a/data/kaomoji/2 - love/28.txt b/data/kaomoji/love/28.txt similarity index 100% rename from data/kaomoji/2 - love/28.txt rename to data/kaomoji/love/28.txt diff --git a/data/kaomoji/2 - love/29.txt b/data/kaomoji/love/29.txt similarity index 100% rename from data/kaomoji/2 - love/29.txt rename to data/kaomoji/love/29.txt diff --git a/data/kaomoji/2 - love/3.txt b/data/kaomoji/love/3.txt similarity index 100% rename from data/kaomoji/2 - love/3.txt rename to data/kaomoji/love/3.txt diff --git a/data/kaomoji/2 - love/30.txt b/data/kaomoji/love/30.txt similarity index 100% rename from data/kaomoji/2 - love/30.txt rename to data/kaomoji/love/30.txt diff --git a/data/kaomoji/2 - love/31.txt b/data/kaomoji/love/31.txt similarity index 100% rename from data/kaomoji/2 - love/31.txt rename to data/kaomoji/love/31.txt diff --git a/data/kaomoji/2 - love/32.txt b/data/kaomoji/love/32.txt similarity index 100% rename from data/kaomoji/2 - love/32.txt rename to data/kaomoji/love/32.txt diff --git a/data/kaomoji/2 - love/33.txt b/data/kaomoji/love/33.txt similarity index 100% rename from data/kaomoji/2 - love/33.txt rename to data/kaomoji/love/33.txt diff --git a/data/kaomoji/2 - love/34.txt b/data/kaomoji/love/34.txt similarity index 100% rename from data/kaomoji/2 - love/34.txt rename to data/kaomoji/love/34.txt diff --git a/data/kaomoji/2 - love/35.txt b/data/kaomoji/love/35.txt similarity index 100% rename from data/kaomoji/2 - love/35.txt rename to data/kaomoji/love/35.txt diff --git a/data/kaomoji/2 - love/36.txt b/data/kaomoji/love/36.txt similarity index 100% rename from data/kaomoji/2 - love/36.txt rename to data/kaomoji/love/36.txt diff --git a/data/kaomoji/2 - love/37.txt b/data/kaomoji/love/37.txt similarity index 100% rename from data/kaomoji/2 - love/37.txt rename to data/kaomoji/love/37.txt diff --git a/data/kaomoji/2 - love/38.txt b/data/kaomoji/love/38.txt similarity index 100% rename from data/kaomoji/2 - love/38.txt rename to data/kaomoji/love/38.txt diff --git a/data/kaomoji/2 - love/39.txt b/data/kaomoji/love/39.txt similarity index 100% rename from data/kaomoji/2 - love/39.txt rename to data/kaomoji/love/39.txt diff --git a/data/kaomoji/2 - love/4.txt b/data/kaomoji/love/4.txt similarity index 100% rename from data/kaomoji/2 - love/4.txt rename to data/kaomoji/love/4.txt diff --git a/data/kaomoji/2 - love/40.txt b/data/kaomoji/love/40.txt similarity index 100% rename from data/kaomoji/2 - love/40.txt rename to data/kaomoji/love/40.txt diff --git a/data/kaomoji/2 - love/41.txt b/data/kaomoji/love/41.txt similarity index 100% rename from data/kaomoji/2 - love/41.txt rename to data/kaomoji/love/41.txt diff --git a/data/kaomoji/2 - love/42.txt b/data/kaomoji/love/42.txt similarity index 100% rename from data/kaomoji/2 - love/42.txt rename to data/kaomoji/love/42.txt diff --git a/data/kaomoji/2 - love/43.txt b/data/kaomoji/love/43.txt similarity index 100% rename from data/kaomoji/2 - love/43.txt rename to data/kaomoji/love/43.txt diff --git a/data/kaomoji/2 - love/44.txt b/data/kaomoji/love/44.txt similarity index 100% rename from data/kaomoji/2 - love/44.txt rename to data/kaomoji/love/44.txt diff --git a/data/kaomoji/2 - love/45.txt b/data/kaomoji/love/45.txt similarity index 100% rename from data/kaomoji/2 - love/45.txt rename to data/kaomoji/love/45.txt diff --git a/data/kaomoji/2 - love/46.txt b/data/kaomoji/love/46.txt similarity index 100% rename from data/kaomoji/2 - love/46.txt rename to data/kaomoji/love/46.txt diff --git a/data/kaomoji/2 - love/47.txt b/data/kaomoji/love/47.txt similarity index 100% rename from data/kaomoji/2 - love/47.txt rename to data/kaomoji/love/47.txt diff --git a/data/kaomoji/2 - love/48.txt b/data/kaomoji/love/48.txt similarity index 100% rename from data/kaomoji/2 - love/48.txt rename to data/kaomoji/love/48.txt diff --git a/data/kaomoji/2 - love/49.txt b/data/kaomoji/love/49.txt similarity index 100% rename from data/kaomoji/2 - love/49.txt rename to data/kaomoji/love/49.txt diff --git a/data/kaomoji/2 - love/5.txt b/data/kaomoji/love/5.txt similarity index 100% rename from data/kaomoji/2 - love/5.txt rename to data/kaomoji/love/5.txt diff --git a/data/kaomoji/2 - love/50.txt b/data/kaomoji/love/50.txt similarity index 100% rename from data/kaomoji/2 - love/50.txt rename to data/kaomoji/love/50.txt diff --git a/data/kaomoji/2 - love/51.txt b/data/kaomoji/love/51.txt similarity index 100% rename from data/kaomoji/2 - love/51.txt rename to data/kaomoji/love/51.txt diff --git a/data/kaomoji/2 - love/52.txt b/data/kaomoji/love/52.txt similarity index 100% rename from data/kaomoji/2 - love/52.txt rename to data/kaomoji/love/52.txt diff --git a/data/kaomoji/2 - love/6.txt b/data/kaomoji/love/6.txt similarity index 100% rename from data/kaomoji/2 - love/6.txt rename to data/kaomoji/love/6.txt diff --git a/data/kaomoji/2 - love/7.txt b/data/kaomoji/love/7.txt similarity index 100% rename from data/kaomoji/2 - love/7.txt rename to data/kaomoji/love/7.txt diff --git a/data/kaomoji/2 - love/8.txt b/data/kaomoji/love/8.txt similarity index 100% rename from data/kaomoji/2 - love/8.txt rename to data/kaomoji/love/8.txt diff --git a/data/kaomoji/2 - love/9.txt b/data/kaomoji/love/9.txt similarity index 100% rename from data/kaomoji/2 - love/9.txt rename to data/kaomoji/love/9.txt diff --git a/data/kaomoji/magic/.name b/data/kaomoji/magic/.name new file mode 100644 index 0000000..a6fcc93 --- /dev/null +++ b/data/kaomoji/magic/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ magic diff --git a/data/kaomoji/26 - magic/1.txt b/data/kaomoji/magic/1.txt similarity index 100% rename from data/kaomoji/26 - magic/1.txt rename to data/kaomoji/magic/1.txt diff --git a/data/kaomoji/26 - magic/10.txt b/data/kaomoji/magic/10.txt similarity index 100% rename from data/kaomoji/26 - magic/10.txt rename to data/kaomoji/magic/10.txt diff --git a/data/kaomoji/26 - magic/2.txt b/data/kaomoji/magic/2.txt similarity index 100% rename from data/kaomoji/26 - magic/2.txt rename to data/kaomoji/magic/2.txt diff --git a/data/kaomoji/26 - magic/3.txt b/data/kaomoji/magic/3.txt similarity index 100% rename from data/kaomoji/26 - magic/3.txt rename to data/kaomoji/magic/3.txt diff --git a/data/kaomoji/26 - magic/4.txt b/data/kaomoji/magic/4.txt similarity index 100% rename from data/kaomoji/26 - magic/4.txt rename to data/kaomoji/magic/4.txt diff --git a/data/kaomoji/26 - magic/5.txt b/data/kaomoji/magic/5.txt similarity index 100% rename from data/kaomoji/26 - magic/5.txt rename to data/kaomoji/magic/5.txt diff --git a/data/kaomoji/26 - magic/6.txt b/data/kaomoji/magic/6.txt similarity index 100% rename from data/kaomoji/26 - magic/6.txt rename to data/kaomoji/magic/6.txt diff --git a/data/kaomoji/26 - magic/7.txt b/data/kaomoji/magic/7.txt similarity index 100% rename from data/kaomoji/26 - magic/7.txt rename to data/kaomoji/magic/7.txt diff --git a/data/kaomoji/26 - magic/8.txt b/data/kaomoji/magic/8.txt similarity index 100% rename from data/kaomoji/26 - magic/8.txt rename to data/kaomoji/magic/8.txt diff --git a/data/kaomoji/26 - magic/9.txt b/data/kaomoji/magic/9.txt similarity index 100% rename from data/kaomoji/26 - magic/9.txt rename to data/kaomoji/magic/9.txt diff --git a/data/kaomoji/music/.name b/data/kaomoji/music/.name new file mode 100644 index 0000000..cf10d26 --- /dev/null +++ b/data/kaomoji/music/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ music diff --git a/data/kaomoji/18 - music/1.txt b/data/kaomoji/music/1.txt similarity index 100% rename from data/kaomoji/18 - music/1.txt rename to data/kaomoji/music/1.txt diff --git a/data/kaomoji/18 - music/10.txt b/data/kaomoji/music/10.txt similarity index 100% rename from data/kaomoji/18 - music/10.txt rename to data/kaomoji/music/10.txt diff --git a/data/kaomoji/18 - music/11.txt b/data/kaomoji/music/11.txt similarity index 100% rename from data/kaomoji/18 - music/11.txt rename to data/kaomoji/music/11.txt diff --git a/data/kaomoji/18 - music/12.txt b/data/kaomoji/music/12.txt similarity index 100% rename from data/kaomoji/18 - music/12.txt rename to data/kaomoji/music/12.txt diff --git a/data/kaomoji/18 - music/13.txt b/data/kaomoji/music/13.txt similarity index 100% rename from data/kaomoji/18 - music/13.txt rename to data/kaomoji/music/13.txt diff --git a/data/kaomoji/18 - music/14.txt b/data/kaomoji/music/14.txt similarity index 100% rename from data/kaomoji/18 - music/14.txt rename to data/kaomoji/music/14.txt diff --git a/data/kaomoji/18 - music/15.txt b/data/kaomoji/music/15.txt similarity index 100% rename from data/kaomoji/18 - music/15.txt rename to data/kaomoji/music/15.txt diff --git a/data/kaomoji/18 - music/16.txt b/data/kaomoji/music/16.txt similarity index 100% rename from data/kaomoji/18 - music/16.txt rename to data/kaomoji/music/16.txt diff --git a/data/kaomoji/18 - music/17.txt b/data/kaomoji/music/17.txt similarity index 100% rename from data/kaomoji/18 - music/17.txt rename to data/kaomoji/music/17.txt diff --git a/data/kaomoji/18 - music/18.txt b/data/kaomoji/music/18.txt similarity index 100% rename from data/kaomoji/18 - music/18.txt rename to data/kaomoji/music/18.txt diff --git a/data/kaomoji/18 - music/19.txt b/data/kaomoji/music/19.txt similarity index 100% rename from data/kaomoji/18 - music/19.txt rename to data/kaomoji/music/19.txt diff --git a/data/kaomoji/18 - music/2.txt b/data/kaomoji/music/2.txt similarity index 100% rename from data/kaomoji/18 - music/2.txt rename to data/kaomoji/music/2.txt diff --git a/data/kaomoji/18 - music/20.txt b/data/kaomoji/music/20.txt similarity index 100% rename from data/kaomoji/18 - music/20.txt rename to data/kaomoji/music/20.txt diff --git a/data/kaomoji/18 - music/21.txt b/data/kaomoji/music/21.txt similarity index 100% rename from data/kaomoji/18 - music/21.txt rename to data/kaomoji/music/21.txt diff --git a/data/kaomoji/18 - music/22.txt b/data/kaomoji/music/22.txt similarity index 100% rename from data/kaomoji/18 - music/22.txt rename to data/kaomoji/music/22.txt diff --git a/data/kaomoji/18 - music/23.txt b/data/kaomoji/music/23.txt similarity index 100% rename from data/kaomoji/18 - music/23.txt rename to data/kaomoji/music/23.txt diff --git a/data/kaomoji/18 - music/24.txt b/data/kaomoji/music/24.txt similarity index 100% rename from data/kaomoji/18 - music/24.txt rename to data/kaomoji/music/24.txt diff --git a/data/kaomoji/18 - music/25.txt b/data/kaomoji/music/25.txt similarity index 100% rename from data/kaomoji/18 - music/25.txt rename to data/kaomoji/music/25.txt diff --git a/data/kaomoji/18 - music/26.txt b/data/kaomoji/music/26.txt similarity index 100% rename from data/kaomoji/18 - music/26.txt rename to data/kaomoji/music/26.txt diff --git a/data/kaomoji/18 - music/27.txt b/data/kaomoji/music/27.txt similarity index 100% rename from data/kaomoji/18 - music/27.txt rename to data/kaomoji/music/27.txt diff --git a/data/kaomoji/18 - music/28.txt b/data/kaomoji/music/28.txt similarity index 100% rename from data/kaomoji/18 - music/28.txt rename to data/kaomoji/music/28.txt diff --git a/data/kaomoji/18 - music/29.txt b/data/kaomoji/music/29.txt similarity index 100% rename from data/kaomoji/18 - music/29.txt rename to data/kaomoji/music/29.txt diff --git a/data/kaomoji/18 - music/3.txt b/data/kaomoji/music/3.txt similarity index 100% rename from data/kaomoji/18 - music/3.txt rename to data/kaomoji/music/3.txt diff --git a/data/kaomoji/18 - music/30.txt b/data/kaomoji/music/30.txt similarity index 100% rename from data/kaomoji/18 - music/30.txt rename to data/kaomoji/music/30.txt diff --git a/data/kaomoji/18 - music/31.txt b/data/kaomoji/music/31.txt similarity index 100% rename from data/kaomoji/18 - music/31.txt rename to data/kaomoji/music/31.txt diff --git a/data/kaomoji/18 - music/32.txt b/data/kaomoji/music/32.txt similarity index 100% rename from data/kaomoji/18 - music/32.txt rename to data/kaomoji/music/32.txt diff --git a/data/kaomoji/18 - music/4.txt b/data/kaomoji/music/4.txt similarity index 100% rename from data/kaomoji/18 - music/4.txt rename to data/kaomoji/music/4.txt diff --git a/data/kaomoji/18 - music/5.txt b/data/kaomoji/music/5.txt similarity index 100% rename from data/kaomoji/18 - music/5.txt rename to data/kaomoji/music/5.txt diff --git a/data/kaomoji/18 - music/6.txt b/data/kaomoji/music/6.txt similarity index 100% rename from data/kaomoji/18 - music/6.txt rename to data/kaomoji/music/6.txt diff --git a/data/kaomoji/18 - music/7.txt b/data/kaomoji/music/7.txt similarity index 100% rename from data/kaomoji/18 - music/7.txt rename to data/kaomoji/music/7.txt diff --git a/data/kaomoji/18 - music/8.txt b/data/kaomoji/music/8.txt similarity index 100% rename from data/kaomoji/18 - music/8.txt rename to data/kaomoji/music/8.txt diff --git a/data/kaomoji/18 - music/9.txt b/data/kaomoji/music/9.txt similarity index 100% rename from data/kaomoji/18 - music/9.txt rename to data/kaomoji/music/9.txt diff --git a/data/kaomoji/nosebleeding/.name b/data/kaomoji/nosebleeding/.name new file mode 100644 index 0000000..289f4fe --- /dev/null +++ b/data/kaomoji/nosebleeding/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ nosebleeding diff --git a/data/kaomoji/3 - nosebleeding/1.txt b/data/kaomoji/nosebleeding/1.txt similarity index 100% rename from data/kaomoji/3 - nosebleeding/1.txt rename to data/kaomoji/nosebleeding/1.txt diff --git a/data/kaomoji/3 - nosebleeding/2.txt b/data/kaomoji/nosebleeding/2.txt similarity index 100% rename from data/kaomoji/3 - nosebleeding/2.txt rename to data/kaomoji/nosebleeding/2.txt diff --git a/data/kaomoji/3 - nosebleeding/3.txt b/data/kaomoji/nosebleeding/3.txt similarity index 100% rename from data/kaomoji/3 - nosebleeding/3.txt rename to data/kaomoji/nosebleeding/3.txt diff --git a/data/kaomoji/3 - nosebleeding/4.txt b/data/kaomoji/nosebleeding/4.txt similarity index 100% rename from data/kaomoji/3 - nosebleeding/4.txt rename to data/kaomoji/nosebleeding/4.txt diff --git a/data/kaomoji/3 - nosebleeding/5.txt b/data/kaomoji/nosebleeding/5.txt similarity index 100% rename from data/kaomoji/3 - nosebleeding/5.txt rename to data/kaomoji/nosebleeding/5.txt diff --git a/data/kaomoji/3 - nosebleeding/6.txt b/data/kaomoji/nosebleeding/6.txt similarity index 100% rename from data/kaomoji/3 - nosebleeding/6.txt rename to data/kaomoji/nosebleeding/6.txt diff --git a/data/kaomoji/3 - nosebleeding/7.txt b/data/kaomoji/nosebleeding/7.txt similarity index 100% rename from data/kaomoji/3 - nosebleeding/7.txt rename to data/kaomoji/nosebleeding/7.txt diff --git a/data/kaomoji/3 - nosebleeding/8.txt b/data/kaomoji/nosebleeding/8.txt similarity index 100% rename from data/kaomoji/3 - nosebleeding/8.txt rename to data/kaomoji/nosebleeding/8.txt diff --git a/data/kaomoji/pain/.name b/data/kaomoji/pain/.name new file mode 100644 index 0000000..f5d58fe --- /dev/null +++ b/data/kaomoji/pain/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ pain diff --git a/data/kaomoji/11 - pain/1.txt b/data/kaomoji/pain/1.txt similarity index 100% rename from data/kaomoji/11 - pain/1.txt rename to data/kaomoji/pain/1.txt diff --git a/data/kaomoji/11 - pain/10.txt b/data/kaomoji/pain/10.txt similarity index 100% rename from data/kaomoji/11 - pain/10.txt rename to data/kaomoji/pain/10.txt diff --git a/data/kaomoji/11 - pain/11.txt b/data/kaomoji/pain/11.txt similarity index 100% rename from data/kaomoji/11 - pain/11.txt rename to data/kaomoji/pain/11.txt diff --git a/data/kaomoji/11 - pain/12.txt b/data/kaomoji/pain/12.txt similarity index 100% rename from data/kaomoji/11 - pain/12.txt rename to data/kaomoji/pain/12.txt diff --git a/data/kaomoji/11 - pain/13.txt b/data/kaomoji/pain/13.txt similarity index 100% rename from data/kaomoji/11 - pain/13.txt rename to data/kaomoji/pain/13.txt diff --git a/data/kaomoji/11 - pain/14.txt b/data/kaomoji/pain/14.txt similarity index 100% rename from data/kaomoji/11 - pain/14.txt rename to data/kaomoji/pain/14.txt diff --git a/data/kaomoji/11 - pain/15.txt b/data/kaomoji/pain/15.txt similarity index 100% rename from data/kaomoji/11 - pain/15.txt rename to data/kaomoji/pain/15.txt diff --git a/data/kaomoji/11 - pain/2.txt b/data/kaomoji/pain/2.txt similarity index 100% rename from data/kaomoji/11 - pain/2.txt rename to data/kaomoji/pain/2.txt diff --git a/data/kaomoji/11 - pain/3.txt b/data/kaomoji/pain/3.txt similarity index 100% rename from data/kaomoji/11 - pain/3.txt rename to data/kaomoji/pain/3.txt diff --git a/data/kaomoji/11 - pain/4.txt b/data/kaomoji/pain/4.txt similarity index 100% rename from data/kaomoji/11 - pain/4.txt rename to data/kaomoji/pain/4.txt diff --git a/data/kaomoji/11 - pain/5.txt b/data/kaomoji/pain/5.txt similarity index 100% rename from data/kaomoji/11 - pain/5.txt rename to data/kaomoji/pain/5.txt diff --git a/data/kaomoji/11 - pain/6.txt b/data/kaomoji/pain/6.txt similarity index 100% rename from data/kaomoji/11 - pain/6.txt rename to data/kaomoji/pain/6.txt diff --git a/data/kaomoji/11 - pain/7.txt b/data/kaomoji/pain/7.txt similarity index 100% rename from data/kaomoji/11 - pain/7.txt rename to data/kaomoji/pain/7.txt diff --git a/data/kaomoji/11 - pain/8.txt b/data/kaomoji/pain/8.txt similarity index 100% rename from data/kaomoji/11 - pain/8.txt rename to data/kaomoji/pain/8.txt diff --git a/data/kaomoji/11 - pain/9.txt b/data/kaomoji/pain/9.txt similarity index 100% rename from data/kaomoji/11 - pain/9.txt rename to data/kaomoji/pain/9.txt diff --git a/data/kaomoji/pig/.name b/data/kaomoji/pig/.name new file mode 100644 index 0000000..1fac7e7 --- /dev/null +++ b/data/kaomoji/pig/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ pig diff --git a/data/kaomoji/rabbit/.name b/data/kaomoji/rabbit/.name new file mode 100644 index 0000000..98584de --- /dev/null +++ b/data/kaomoji/rabbit/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ rabbit diff --git a/data/kaomoji/running/.name b/data/kaomoji/running/.name new file mode 100644 index 0000000..287a110 --- /dev/null +++ b/data/kaomoji/running/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ running diff --git a/data/kaomoji/23 - running/1.txt b/data/kaomoji/running/1.txt similarity index 100% rename from data/kaomoji/23 - running/1.txt rename to data/kaomoji/running/1.txt diff --git a/data/kaomoji/23 - running/2.txt b/data/kaomoji/running/2.txt similarity index 100% rename from data/kaomoji/23 - running/2.txt rename to data/kaomoji/running/2.txt diff --git a/data/kaomoji/23 - running/3.txt b/data/kaomoji/running/3.txt similarity index 100% rename from data/kaomoji/23 - running/3.txt rename to data/kaomoji/running/3.txt diff --git a/data/kaomoji/23 - running/4.txt b/data/kaomoji/running/4.txt similarity index 100% rename from data/kaomoji/23 - running/4.txt rename to data/kaomoji/running/4.txt diff --git a/data/kaomoji/23 - running/5.txt b/data/kaomoji/running/5.txt similarity index 100% rename from data/kaomoji/23 - running/5.txt rename to data/kaomoji/running/5.txt diff --git a/data/kaomoji/23 - running/6.txt b/data/kaomoji/running/6.txt similarity index 100% rename from data/kaomoji/23 - running/6.txt rename to data/kaomoji/running/6.txt diff --git a/data/kaomoji/23 - running/7.txt b/data/kaomoji/running/7.txt similarity index 100% rename from data/kaomoji/23 - running/7.txt rename to data/kaomoji/running/7.txt diff --git a/data/kaomoji/23 - running/8.txt b/data/kaomoji/running/8.txt similarity index 100% rename from data/kaomoji/23 - running/8.txt rename to data/kaomoji/running/8.txt diff --git a/data/kaomoji/23 - running/9.txt b/data/kaomoji/running/9.txt similarity index 100% rename from data/kaomoji/23 - running/9.txt rename to data/kaomoji/running/9.txt diff --git a/data/kaomoji/sadness/.name b/data/kaomoji/sadness/.name new file mode 100644 index 0000000..6064173 --- /dev/null +++ b/data/kaomoji/sadness/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ sadness diff --git a/data/kaomoji/4 - sadness/1.txt b/data/kaomoji/sadness/1.txt similarity index 100% rename from data/kaomoji/4 - sadness/1.txt rename to data/kaomoji/sadness/1.txt diff --git a/data/kaomoji/4 - sadness/10.txt b/data/kaomoji/sadness/10.txt similarity index 100% rename from data/kaomoji/4 - sadness/10.txt rename to data/kaomoji/sadness/10.txt diff --git a/data/kaomoji/4 - sadness/11.txt b/data/kaomoji/sadness/11.txt similarity index 100% rename from data/kaomoji/4 - sadness/11.txt rename to data/kaomoji/sadness/11.txt diff --git a/data/kaomoji/4 - sadness/12.txt b/data/kaomoji/sadness/12.txt similarity index 100% rename from data/kaomoji/4 - sadness/12.txt rename to data/kaomoji/sadness/12.txt diff --git a/data/kaomoji/4 - sadness/13.txt b/data/kaomoji/sadness/13.txt similarity index 100% rename from data/kaomoji/4 - sadness/13.txt rename to data/kaomoji/sadness/13.txt diff --git a/data/kaomoji/4 - sadness/14.txt b/data/kaomoji/sadness/14.txt similarity index 100% rename from data/kaomoji/4 - sadness/14.txt rename to data/kaomoji/sadness/14.txt diff --git a/data/kaomoji/4 - sadness/15.txt b/data/kaomoji/sadness/15.txt similarity index 100% rename from data/kaomoji/4 - sadness/15.txt rename to data/kaomoji/sadness/15.txt diff --git a/data/kaomoji/4 - sadness/16.txt b/data/kaomoji/sadness/16.txt similarity index 100% rename from data/kaomoji/4 - sadness/16.txt rename to data/kaomoji/sadness/16.txt diff --git a/data/kaomoji/4 - sadness/17.txt b/data/kaomoji/sadness/17.txt similarity index 100% rename from data/kaomoji/4 - sadness/17.txt rename to data/kaomoji/sadness/17.txt diff --git a/data/kaomoji/4 - sadness/18.txt b/data/kaomoji/sadness/18.txt similarity index 100% rename from data/kaomoji/4 - sadness/18.txt rename to data/kaomoji/sadness/18.txt diff --git a/data/kaomoji/4 - sadness/19.txt b/data/kaomoji/sadness/19.txt similarity index 100% rename from data/kaomoji/4 - sadness/19.txt rename to data/kaomoji/sadness/19.txt diff --git a/data/kaomoji/4 - sadness/2.txt b/data/kaomoji/sadness/2.txt similarity index 100% rename from data/kaomoji/4 - sadness/2.txt rename to data/kaomoji/sadness/2.txt diff --git a/data/kaomoji/4 - sadness/20.txt b/data/kaomoji/sadness/20.txt similarity index 100% rename from data/kaomoji/4 - sadness/20.txt rename to data/kaomoji/sadness/20.txt diff --git a/data/kaomoji/4 - sadness/21.txt b/data/kaomoji/sadness/21.txt similarity index 100% rename from data/kaomoji/4 - sadness/21.txt rename to data/kaomoji/sadness/21.txt diff --git a/data/kaomoji/4 - sadness/22.txt b/data/kaomoji/sadness/22.txt similarity index 100% rename from data/kaomoji/4 - sadness/22.txt rename to data/kaomoji/sadness/22.txt diff --git a/data/kaomoji/4 - sadness/23.txt b/data/kaomoji/sadness/23.txt similarity index 100% rename from data/kaomoji/4 - sadness/23.txt rename to data/kaomoji/sadness/23.txt diff --git a/data/kaomoji/4 - sadness/24.txt b/data/kaomoji/sadness/24.txt similarity index 100% rename from data/kaomoji/4 - sadness/24.txt rename to data/kaomoji/sadness/24.txt diff --git a/data/kaomoji/4 - sadness/25.txt b/data/kaomoji/sadness/25.txt similarity index 100% rename from data/kaomoji/4 - sadness/25.txt rename to data/kaomoji/sadness/25.txt diff --git a/data/kaomoji/4 - sadness/26.txt b/data/kaomoji/sadness/26.txt similarity index 100% rename from data/kaomoji/4 - sadness/26.txt rename to data/kaomoji/sadness/26.txt diff --git a/data/kaomoji/4 - sadness/27.txt b/data/kaomoji/sadness/27.txt similarity index 100% rename from data/kaomoji/4 - sadness/27.txt rename to data/kaomoji/sadness/27.txt diff --git a/data/kaomoji/4 - sadness/28.txt b/data/kaomoji/sadness/28.txt similarity index 100% rename from data/kaomoji/4 - sadness/28.txt rename to data/kaomoji/sadness/28.txt diff --git a/data/kaomoji/4 - sadness/29.txt b/data/kaomoji/sadness/29.txt similarity index 100% rename from data/kaomoji/4 - sadness/29.txt rename to data/kaomoji/sadness/29.txt diff --git a/data/kaomoji/4 - sadness/3.txt b/data/kaomoji/sadness/3.txt similarity index 100% rename from data/kaomoji/4 - sadness/3.txt rename to data/kaomoji/sadness/3.txt diff --git a/data/kaomoji/4 - sadness/30.txt b/data/kaomoji/sadness/30.txt similarity index 100% rename from data/kaomoji/4 - sadness/30.txt rename to data/kaomoji/sadness/30.txt diff --git a/data/kaomoji/4 - sadness/31.txt b/data/kaomoji/sadness/31.txt similarity index 100% rename from data/kaomoji/4 - sadness/31.txt rename to data/kaomoji/sadness/31.txt diff --git a/data/kaomoji/4 - sadness/32.txt b/data/kaomoji/sadness/32.txt similarity index 100% rename from data/kaomoji/4 - sadness/32.txt rename to data/kaomoji/sadness/32.txt diff --git a/data/kaomoji/4 - sadness/33.txt b/data/kaomoji/sadness/33.txt similarity index 100% rename from data/kaomoji/4 - sadness/33.txt rename to data/kaomoji/sadness/33.txt diff --git a/data/kaomoji/4 - sadness/34.txt b/data/kaomoji/sadness/34.txt similarity index 100% rename from data/kaomoji/4 - sadness/34.txt rename to data/kaomoji/sadness/34.txt diff --git a/data/kaomoji/4 - sadness/35.txt b/data/kaomoji/sadness/35.txt similarity index 100% rename from data/kaomoji/4 - sadness/35.txt rename to data/kaomoji/sadness/35.txt diff --git a/data/kaomoji/4 - sadness/36.txt b/data/kaomoji/sadness/36.txt similarity index 100% rename from data/kaomoji/4 - sadness/36.txt rename to data/kaomoji/sadness/36.txt diff --git a/data/kaomoji/4 - sadness/4.txt b/data/kaomoji/sadness/4.txt similarity index 100% rename from data/kaomoji/4 - sadness/4.txt rename to data/kaomoji/sadness/4.txt diff --git a/data/kaomoji/4 - sadness/5.txt b/data/kaomoji/sadness/5.txt similarity index 100% rename from data/kaomoji/4 - sadness/5.txt rename to data/kaomoji/sadness/5.txt diff --git a/data/kaomoji/4 - sadness/6.txt b/data/kaomoji/sadness/6.txt similarity index 100% rename from data/kaomoji/4 - sadness/6.txt rename to data/kaomoji/sadness/6.txt diff --git a/data/kaomoji/4 - sadness/7.txt b/data/kaomoji/sadness/7.txt similarity index 100% rename from data/kaomoji/4 - sadness/7.txt rename to data/kaomoji/sadness/7.txt diff --git a/data/kaomoji/4 - sadness/8.txt b/data/kaomoji/sadness/8.txt similarity index 100% rename from data/kaomoji/4 - sadness/8.txt rename to data/kaomoji/sadness/8.txt diff --git a/data/kaomoji/4 - sadness/9.txt b/data/kaomoji/sadness/9.txt similarity index 100% rename from data/kaomoji/4 - sadness/9.txt rename to data/kaomoji/sadness/9.txt diff --git a/data/kaomoji/sleeping/.name b/data/kaomoji/sleeping/.name new file mode 100644 index 0000000..81b1356 --- /dev/null +++ b/data/kaomoji/sleeping/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ sleeping diff --git a/data/kaomoji/25 - sleeping/1.txt b/data/kaomoji/sleeping/1.txt similarity index 100% rename from data/kaomoji/25 - sleeping/1.txt rename to data/kaomoji/sleeping/1.txt diff --git a/data/kaomoji/25 - sleeping/10.txt b/data/kaomoji/sleeping/10.txt similarity index 100% rename from data/kaomoji/25 - sleeping/10.txt rename to data/kaomoji/sleeping/10.txt diff --git a/data/kaomoji/25 - sleeping/2.txt b/data/kaomoji/sleeping/2.txt similarity index 100% rename from data/kaomoji/25 - sleeping/2.txt rename to data/kaomoji/sleeping/2.txt diff --git a/data/kaomoji/25 - sleeping/3.txt b/data/kaomoji/sleeping/3.txt similarity index 100% rename from data/kaomoji/25 - sleeping/3.txt rename to data/kaomoji/sleeping/3.txt diff --git a/data/kaomoji/25 - sleeping/4.txt b/data/kaomoji/sleeping/4.txt similarity index 100% rename from data/kaomoji/25 - sleeping/4.txt rename to data/kaomoji/sleeping/4.txt diff --git a/data/kaomoji/25 - sleeping/5.txt b/data/kaomoji/sleeping/5.txt similarity index 100% rename from data/kaomoji/25 - sleeping/5.txt rename to data/kaomoji/sleeping/5.txt diff --git a/data/kaomoji/25 - sleeping/6.txt b/data/kaomoji/sleeping/6.txt similarity index 100% rename from data/kaomoji/25 - sleeping/6.txt rename to data/kaomoji/sleeping/6.txt diff --git a/data/kaomoji/25 - sleeping/7.txt b/data/kaomoji/sleeping/7.txt similarity index 100% rename from data/kaomoji/25 - sleeping/7.txt rename to data/kaomoji/sleeping/7.txt diff --git a/data/kaomoji/25 - sleeping/8.txt b/data/kaomoji/sleeping/8.txt similarity index 100% rename from data/kaomoji/25 - sleeping/8.txt rename to data/kaomoji/sleeping/8.txt diff --git a/data/kaomoji/25 - sleeping/9.txt b/data/kaomoji/sleeping/9.txt similarity index 100% rename from data/kaomoji/25 - sleeping/9.txt rename to data/kaomoji/sleeping/9.txt diff --git a/data/kaomoji/special/.name b/data/kaomoji/special/.name new file mode 100644 index 0000000..3569726 --- /dev/null +++ b/data/kaomoji/special/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ special diff --git a/data/kaomoji/spider/.name b/data/kaomoji/spider/.name new file mode 100644 index 0000000..6a6a61f --- /dev/null +++ b/data/kaomoji/spider/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ spider diff --git a/data/kaomoji/surprise/.name b/data/kaomoji/surprise/.name new file mode 100644 index 0000000..b3be1dc --- /dev/null +++ b/data/kaomoji/surprise/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ surprise diff --git a/data/kaomoji/30 - surprise/1.txt b/data/kaomoji/surprise/1.txt similarity index 100% rename from data/kaomoji/30 - surprise/1.txt rename to data/kaomoji/surprise/1.txt diff --git a/data/kaomoji/30 - surprise/10.txt b/data/kaomoji/surprise/10.txt similarity index 100% rename from data/kaomoji/30 - surprise/10.txt rename to data/kaomoji/surprise/10.txt diff --git a/data/kaomoji/30 - surprise/11.txt b/data/kaomoji/surprise/11.txt similarity index 100% rename from data/kaomoji/30 - surprise/11.txt rename to data/kaomoji/surprise/11.txt diff --git a/data/kaomoji/30 - surprise/12.txt b/data/kaomoji/surprise/12.txt similarity index 100% rename from data/kaomoji/30 - surprise/12.txt rename to data/kaomoji/surprise/12.txt diff --git a/data/kaomoji/30 - surprise/13.txt b/data/kaomoji/surprise/13.txt similarity index 100% rename from data/kaomoji/30 - surprise/13.txt rename to data/kaomoji/surprise/13.txt diff --git a/data/kaomoji/30 - surprise/14.txt b/data/kaomoji/surprise/14.txt similarity index 100% rename from data/kaomoji/30 - surprise/14.txt rename to data/kaomoji/surprise/14.txt diff --git a/data/kaomoji/30 - surprise/2.txt b/data/kaomoji/surprise/2.txt similarity index 100% rename from data/kaomoji/30 - surprise/2.txt rename to data/kaomoji/surprise/2.txt diff --git a/data/kaomoji/30 - surprise/3.txt b/data/kaomoji/surprise/3.txt similarity index 100% rename from data/kaomoji/30 - surprise/3.txt rename to data/kaomoji/surprise/3.txt diff --git a/data/kaomoji/30 - surprise/4.txt b/data/kaomoji/surprise/4.txt similarity index 100% rename from data/kaomoji/30 - surprise/4.txt rename to data/kaomoji/surprise/4.txt diff --git a/data/kaomoji/30 - surprise/5.txt b/data/kaomoji/surprise/5.txt similarity index 100% rename from data/kaomoji/30 - surprise/5.txt rename to data/kaomoji/surprise/5.txt diff --git a/data/kaomoji/30 - surprise/6.txt b/data/kaomoji/surprise/6.txt similarity index 100% rename from data/kaomoji/30 - surprise/6.txt rename to data/kaomoji/surprise/6.txt diff --git a/data/kaomoji/30 - surprise/7.txt b/data/kaomoji/surprise/7.txt similarity index 100% rename from data/kaomoji/30 - surprise/7.txt rename to data/kaomoji/surprise/7.txt diff --git a/data/kaomoji/30 - surprise/8.txt b/data/kaomoji/surprise/8.txt similarity index 100% rename from data/kaomoji/30 - surprise/8.txt rename to data/kaomoji/surprise/8.txt diff --git a/data/kaomoji/30 - surprise/9.txt b/data/kaomoji/surprise/9.txt similarity index 100% rename from data/kaomoji/30 - surprise/9.txt rename to data/kaomoji/surprise/9.txt diff --git a/data/kaomoji/sympathy/.name b/data/kaomoji/sympathy/.name new file mode 100644 index 0000000..2340c13 --- /dev/null +++ b/data/kaomoji/sympathy/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ sympathy diff --git a/data/kaomoji/32 - sympathy/1.txt b/data/kaomoji/sympathy/1.txt similarity index 100% rename from data/kaomoji/32 - sympathy/1.txt rename to data/kaomoji/sympathy/1.txt diff --git a/data/kaomoji/32 - sympathy/10.txt b/data/kaomoji/sympathy/10.txt similarity index 100% rename from data/kaomoji/32 - sympathy/10.txt rename to data/kaomoji/sympathy/10.txt diff --git a/data/kaomoji/32 - sympathy/11.txt b/data/kaomoji/sympathy/11.txt similarity index 100% rename from data/kaomoji/32 - sympathy/11.txt rename to data/kaomoji/sympathy/11.txt diff --git a/data/kaomoji/32 - sympathy/12.txt b/data/kaomoji/sympathy/12.txt similarity index 100% rename from data/kaomoji/32 - sympathy/12.txt rename to data/kaomoji/sympathy/12.txt diff --git a/data/kaomoji/32 - sympathy/2.txt b/data/kaomoji/sympathy/2.txt similarity index 100% rename from data/kaomoji/32 - sympathy/2.txt rename to data/kaomoji/sympathy/2.txt diff --git a/data/kaomoji/32 - sympathy/3.txt b/data/kaomoji/sympathy/3.txt similarity index 100% rename from data/kaomoji/32 - sympathy/3.txt rename to data/kaomoji/sympathy/3.txt diff --git a/data/kaomoji/32 - sympathy/4.txt b/data/kaomoji/sympathy/4.txt similarity index 100% rename from data/kaomoji/32 - sympathy/4.txt rename to data/kaomoji/sympathy/4.txt diff --git a/data/kaomoji/32 - sympathy/5.txt b/data/kaomoji/sympathy/5.txt similarity index 100% rename from data/kaomoji/32 - sympathy/5.txt rename to data/kaomoji/sympathy/5.txt diff --git a/data/kaomoji/32 - sympathy/6.txt b/data/kaomoji/sympathy/6.txt similarity index 100% rename from data/kaomoji/32 - sympathy/6.txt rename to data/kaomoji/sympathy/6.txt diff --git a/data/kaomoji/32 - sympathy/7.txt b/data/kaomoji/sympathy/7.txt similarity index 100% rename from data/kaomoji/32 - sympathy/7.txt rename to data/kaomoji/sympathy/7.txt diff --git a/data/kaomoji/32 - sympathy/8.txt b/data/kaomoji/sympathy/8.txt similarity index 100% rename from data/kaomoji/32 - sympathy/8.txt rename to data/kaomoji/sympathy/8.txt diff --git a/data/kaomoji/32 - sympathy/9.txt b/data/kaomoji/sympathy/9.txt similarity index 100% rename from data/kaomoji/32 - sympathy/9.txt rename to data/kaomoji/sympathy/9.txt diff --git a/data/kaomoji/weapons/.name b/data/kaomoji/weapons/.name new file mode 100644 index 0000000..edfacfb --- /dev/null +++ b/data/kaomoji/weapons/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ weapons diff --git a/data/kaomoji/33 - weapons/1.txt b/data/kaomoji/weapons/1.txt similarity index 100% rename from data/kaomoji/33 - weapons/1.txt rename to data/kaomoji/weapons/1.txt diff --git a/data/kaomoji/33 - weapons/10.txt b/data/kaomoji/weapons/10.txt similarity index 100% rename from data/kaomoji/33 - weapons/10.txt rename to data/kaomoji/weapons/10.txt diff --git a/data/kaomoji/33 - weapons/11.txt b/data/kaomoji/weapons/11.txt similarity index 100% rename from data/kaomoji/33 - weapons/11.txt rename to data/kaomoji/weapons/11.txt diff --git a/data/kaomoji/33 - weapons/12.txt b/data/kaomoji/weapons/12.txt similarity index 100% rename from data/kaomoji/33 - weapons/12.txt rename to data/kaomoji/weapons/12.txt diff --git a/data/kaomoji/33 - weapons/13.txt b/data/kaomoji/weapons/13.txt similarity index 100% rename from data/kaomoji/33 - weapons/13.txt rename to data/kaomoji/weapons/13.txt diff --git a/data/kaomoji/33 - weapons/14.txt b/data/kaomoji/weapons/14.txt similarity index 100% rename from data/kaomoji/33 - weapons/14.txt rename to data/kaomoji/weapons/14.txt diff --git a/data/kaomoji/33 - weapons/15.txt b/data/kaomoji/weapons/15.txt similarity index 100% rename from data/kaomoji/33 - weapons/15.txt rename to data/kaomoji/weapons/15.txt diff --git a/data/kaomoji/33 - weapons/16.txt b/data/kaomoji/weapons/16.txt similarity index 100% rename from data/kaomoji/33 - weapons/16.txt rename to data/kaomoji/weapons/16.txt diff --git a/data/kaomoji/33 - weapons/17.txt b/data/kaomoji/weapons/17.txt similarity index 100% rename from data/kaomoji/33 - weapons/17.txt rename to data/kaomoji/weapons/17.txt diff --git a/data/kaomoji/33 - weapons/18.txt b/data/kaomoji/weapons/18.txt similarity index 100% rename from data/kaomoji/33 - weapons/18.txt rename to data/kaomoji/weapons/18.txt diff --git a/data/kaomoji/33 - weapons/2.txt b/data/kaomoji/weapons/2.txt similarity index 100% rename from data/kaomoji/33 - weapons/2.txt rename to data/kaomoji/weapons/2.txt diff --git a/data/kaomoji/33 - weapons/3.txt b/data/kaomoji/weapons/3.txt similarity index 100% rename from data/kaomoji/33 - weapons/3.txt rename to data/kaomoji/weapons/3.txt diff --git a/data/kaomoji/33 - weapons/4.txt b/data/kaomoji/weapons/4.txt similarity index 100% rename from data/kaomoji/33 - weapons/4.txt rename to data/kaomoji/weapons/4.txt diff --git a/data/kaomoji/33 - weapons/5.txt b/data/kaomoji/weapons/5.txt similarity index 100% rename from data/kaomoji/33 - weapons/5.txt rename to data/kaomoji/weapons/5.txt diff --git a/data/kaomoji/33 - weapons/6.txt b/data/kaomoji/weapons/6.txt similarity index 100% rename from data/kaomoji/33 - weapons/6.txt rename to data/kaomoji/weapons/6.txt diff --git a/data/kaomoji/33 - weapons/7.txt b/data/kaomoji/weapons/7.txt similarity index 100% rename from data/kaomoji/33 - weapons/7.txt rename to data/kaomoji/weapons/7.txt diff --git a/data/kaomoji/33 - weapons/8.txt b/data/kaomoji/weapons/8.txt similarity index 100% rename from data/kaomoji/33 - weapons/8.txt rename to data/kaomoji/weapons/8.txt diff --git a/data/kaomoji/33 - weapons/9.txt b/data/kaomoji/weapons/9.txt similarity index 100% rename from data/kaomoji/33 - weapons/9.txt rename to data/kaomoji/weapons/9.txt diff --git a/data/kaomoji/winking/.name b/data/kaomoji/winking/.name new file mode 100644 index 0000000..6960556 --- /dev/null +++ b/data/kaomoji/winking/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ winking diff --git a/data/kaomoji/29 - winking/1.txt b/data/kaomoji/winking/1.txt similarity index 100% rename from data/kaomoji/29 - winking/1.txt rename to data/kaomoji/winking/1.txt diff --git a/data/kaomoji/29 - winking/10.txt b/data/kaomoji/winking/10.txt similarity index 100% rename from data/kaomoji/29 - winking/10.txt rename to data/kaomoji/winking/10.txt diff --git a/data/kaomoji/29 - winking/11.txt b/data/kaomoji/winking/11.txt similarity index 100% rename from data/kaomoji/29 - winking/11.txt rename to data/kaomoji/winking/11.txt diff --git a/data/kaomoji/29 - winking/12.txt b/data/kaomoji/winking/12.txt similarity index 100% rename from data/kaomoji/29 - winking/12.txt rename to data/kaomoji/winking/12.txt diff --git a/data/kaomoji/29 - winking/13.txt b/data/kaomoji/winking/13.txt similarity index 100% rename from data/kaomoji/29 - winking/13.txt rename to data/kaomoji/winking/13.txt diff --git a/data/kaomoji/29 - winking/14.txt b/data/kaomoji/winking/14.txt similarity index 100% rename from data/kaomoji/29 - winking/14.txt rename to data/kaomoji/winking/14.txt diff --git a/data/kaomoji/29 - winking/15.txt b/data/kaomoji/winking/15.txt similarity index 100% rename from data/kaomoji/29 - winking/15.txt rename to data/kaomoji/winking/15.txt diff --git a/data/kaomoji/29 - winking/16.txt b/data/kaomoji/winking/16.txt similarity index 100% rename from data/kaomoji/29 - winking/16.txt rename to data/kaomoji/winking/16.txt diff --git a/data/kaomoji/29 - winking/17.txt b/data/kaomoji/winking/17.txt similarity index 100% rename from data/kaomoji/29 - winking/17.txt rename to data/kaomoji/winking/17.txt diff --git a/data/kaomoji/29 - winking/18.txt b/data/kaomoji/winking/18.txt similarity index 100% rename from data/kaomoji/29 - winking/18.txt rename to data/kaomoji/winking/18.txt diff --git a/data/kaomoji/29 - winking/19.txt b/data/kaomoji/winking/19.txt similarity index 100% rename from data/kaomoji/29 - winking/19.txt rename to data/kaomoji/winking/19.txt diff --git a/data/kaomoji/29 - winking/2.txt b/data/kaomoji/winking/2.txt similarity index 100% rename from data/kaomoji/29 - winking/2.txt rename to data/kaomoji/winking/2.txt diff --git a/data/kaomoji/29 - winking/20.txt b/data/kaomoji/winking/20.txt similarity index 100% rename from data/kaomoji/29 - winking/20.txt rename to data/kaomoji/winking/20.txt diff --git a/data/kaomoji/29 - winking/3.txt b/data/kaomoji/winking/3.txt similarity index 100% rename from data/kaomoji/29 - winking/3.txt rename to data/kaomoji/winking/3.txt diff --git a/data/kaomoji/29 - winking/4.txt b/data/kaomoji/winking/4.txt similarity index 100% rename from data/kaomoji/29 - winking/4.txt rename to data/kaomoji/winking/4.txt diff --git a/data/kaomoji/29 - winking/5.txt b/data/kaomoji/winking/5.txt similarity index 100% rename from data/kaomoji/29 - winking/5.txt rename to data/kaomoji/winking/5.txt diff --git a/data/kaomoji/29 - winking/6.txt b/data/kaomoji/winking/6.txt similarity index 100% rename from data/kaomoji/29 - winking/6.txt rename to data/kaomoji/winking/6.txt diff --git a/data/kaomoji/29 - winking/7.txt b/data/kaomoji/winking/7.txt similarity index 100% rename from data/kaomoji/29 - winking/7.txt rename to data/kaomoji/winking/7.txt diff --git a/data/kaomoji/29 - winking/8.txt b/data/kaomoji/winking/8.txt similarity index 100% rename from data/kaomoji/29 - winking/8.txt rename to data/kaomoji/winking/8.txt diff --git a/data/kaomoji/29 - winking/9.txt b/data/kaomoji/winking/9.txt similarity index 100% rename from data/kaomoji/29 - winking/9.txt rename to data/kaomoji/winking/9.txt diff --git a/data/kaomoji/writing/.name b/data/kaomoji/writing/.name new file mode 100644 index 0000000..5b7837f --- /dev/null +++ b/data/kaomoji/writing/.name @@ -0,0 +1 @@ +˗ˏˋ ★ ˎˊ˗ writing diff --git a/data/kaomoji/31 - writing/1.txt b/data/kaomoji/writing/1.txt similarity index 100% rename from data/kaomoji/31 - writing/1.txt rename to data/kaomoji/writing/1.txt diff --git a/data/kaomoji/31 - writing/10.txt b/data/kaomoji/writing/10.txt similarity index 100% rename from data/kaomoji/31 - writing/10.txt rename to data/kaomoji/writing/10.txt diff --git a/data/kaomoji/31 - writing/11.txt b/data/kaomoji/writing/11.txt similarity index 100% rename from data/kaomoji/31 - writing/11.txt rename to data/kaomoji/writing/11.txt diff --git a/data/kaomoji/31 - writing/12.txt b/data/kaomoji/writing/12.txt similarity index 100% rename from data/kaomoji/31 - writing/12.txt rename to data/kaomoji/writing/12.txt diff --git a/data/kaomoji/31 - writing/2.txt b/data/kaomoji/writing/2.txt similarity index 100% rename from data/kaomoji/31 - writing/2.txt rename to data/kaomoji/writing/2.txt diff --git a/data/kaomoji/31 - writing/3.txt b/data/kaomoji/writing/3.txt similarity index 100% rename from data/kaomoji/31 - writing/3.txt rename to data/kaomoji/writing/3.txt diff --git a/data/kaomoji/31 - writing/4.txt b/data/kaomoji/writing/4.txt similarity index 100% rename from data/kaomoji/31 - writing/4.txt rename to data/kaomoji/writing/4.txt diff --git a/data/kaomoji/31 - writing/5.txt b/data/kaomoji/writing/5.txt similarity index 100% rename from data/kaomoji/31 - writing/5.txt rename to data/kaomoji/writing/5.txt diff --git a/data/kaomoji/31 - writing/6.txt b/data/kaomoji/writing/6.txt similarity index 100% rename from data/kaomoji/31 - writing/6.txt rename to data/kaomoji/writing/6.txt diff --git a/data/kaomoji/31 - writing/7.txt b/data/kaomoji/writing/7.txt similarity index 100% rename from data/kaomoji/31 - writing/7.txt rename to data/kaomoji/writing/7.txt diff --git a/data/kaomoji/31 - writing/8.txt b/data/kaomoji/writing/8.txt similarity index 100% rename from data/kaomoji/31 - writing/8.txt rename to data/kaomoji/writing/8.txt diff --git a/data/kaomoji/31 - writing/9.txt b/data/kaomoji/writing/9.txt similarity index 100% rename from data/kaomoji/31 - writing/9.txt rename to data/kaomoji/writing/9.txt diff --git a/src/moemoji-window.c b/src/moemoji-window.c index 1475497..cbdbf75 100644 --- a/src/moemoji-window.c +++ b/src/moemoji-window.c @@ -13,6 +13,7 @@ static void reload_categories(MoeMojiWindow *self); static void category_widgets_free(gpointer data) { CategoryWidgets *cw = data; g_free(cw->name); + g_free(cw->path); g_free(cw); } @@ -58,12 +59,15 @@ char *find_kaomoji_dir(void) { return NULL; } -static void on_kaomoji_clicked(GtkButton *button, - G_GNUC_UNUSED gpointer user_data) { +static void on_kaomoji_clicked(GtkButton *button, gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); const char *full = g_object_get_data(G_OBJECT(button), "full-text"); const char *text = full ? full : gtk_button_get_label(button); GdkClipboard *clipboard = gtk_widget_get_clipboard(GTK_WIDGET(button)); gdk_clipboard_set_text(clipboard, text); + AdwToast *toast = adw_toast_new("Copied!"); + adw_toast_set_timeout(toast, 1); + adw_toast_overlay_add_toast(self->toast_overlay, toast); } static void on_popover_enter(G_GNUC_UNUSED GtkEventControllerMotion *ctrl, @@ -84,7 +88,183 @@ static void on_button_destroy(GtkWidget *button, gtk_widget_unparent(popover); } -static void add_kaomoji_button(GtkFlowBox *flow, const char *text) { +static void on_context_popover_closed(GtkPopover *popover, + G_GNUC_UNUSED gpointer user_data) { + GtkWidget *parent = gtk_widget_get_parent(GTK_WIDGET(popover)); + if (parent) { + gtk_widget_remove_css_class(parent, "context-active"); + g_object_set_data(G_OBJECT(parent), "ctx-popover", NULL); + gtk_widget_unparent(GTK_WIDGET(popover)); + } +} + +static void on_ctx_parent_destroy(GtkWidget *parent, + G_GNUC_UNUSED gpointer user_data) { + GtkWidget *popover = g_object_get_data(G_OBJECT(parent), "ctx-popover"); + if (popover) + gtk_widget_unparent(popover); +} + +static gboolean enable_popover_buttons_idle(gpointer data) { + GtkWidget *box = GTK_WIDGET(data); + for (GtkWidget *child = gtk_widget_get_first_child(box); child != NULL; + child = gtk_widget_get_next_sibling(child)) { + gtk_widget_set_can_target(child, TRUE); + } + return G_SOURCE_REMOVE; +} + +static GtkWidget *ctx_add_button(GtkBox *box, const char *label, + GCallback callback, gpointer user_data) { + GtkWidget *btn = gtk_button_new_with_label(label); + gtk_widget_add_css_class(btn, "flat"); + gtk_widget_set_can_target(btn, FALSE); + gtk_widget_set_focusable(btn, FALSE); + g_signal_connect(btn, "clicked", callback, user_data); + gtk_box_append(box, btn); + return btn; +} + +static void show_context_popover(GtkWidget *parent, GtkWidget *box, double x, + double y) { + gtk_widget_add_css_class(parent, "context-active"); + + GtkWidget *old = g_object_get_data(G_OBJECT(parent), "ctx-popover"); + if (old) + gtk_widget_unparent(old); + + GtkWidget *popover = gtk_popover_new(); + gtk_widget_set_parent(popover, parent); + gtk_widget_add_css_class(popover, "context-menu-popover"); + gtk_popover_set_has_arrow(GTK_POPOVER(popover), FALSE); + GdkRectangle rect = {(int)x, (int)y, 1, 1}; + gtk_popover_set_pointing_to(GTK_POPOVER(popover), &rect); + gtk_popover_set_child(GTK_POPOVER(popover), box); + g_object_set_data(G_OBJECT(parent), "ctx-popover", popover); + g_signal_connect(popover, "closed", G_CALLBACK(on_context_popover_closed), + NULL); + g_signal_connect(parent, "destroy", G_CALLBACK(on_ctx_parent_destroy), NULL); + gtk_popover_popup(GTK_POPOVER(popover)); + g_idle_add(enable_popover_buttons_idle, box); +} + +static void rebuild_pinned_box(MoeMojiWindow *self); + +static gboolean is_kaomoji_pinned(MoeMojiWindow *self, const char *text) { + g_auto(GStrv) pinned = g_settings_get_strv(self->settings, "pinned-kaomojis"); + return g_strv_contains((const char *const *)pinned, text); +} + +static void on_ctx_pin_emote(G_GNUC_UNUSED GSimpleAction *action, + G_GNUC_UNUSED GVariant *parameter, + gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + const char *text = self->ctx_emote_text; + if (!text || is_kaomoji_pinned(self, text)) + return; + g_auto(GStrv) pinned = g_settings_get_strv(self->settings, "pinned-kaomojis"); + guint len = g_strv_length(pinned); + char **new_pinned = g_new(char *, len + 2); + for (guint i = 0; i < len; i++) + new_pinned[i] = pinned[i]; + new_pinned[len] = g_strdup(text); + new_pinned[len + 1] = NULL; + g_settings_set_strv(self->settings, "pinned-kaomojis", + (const char *const *)new_pinned); + g_free(new_pinned[len]); + g_free(new_pinned); + rebuild_pinned_box(self); +} + +static void on_ctx_unpin_emote(G_GNUC_UNUSED GSimpleAction *action, + G_GNUC_UNUSED GVariant *parameter, + gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + const char *text = self->ctx_emote_text; + if (!text) + return; + g_auto(GStrv) pinned = g_settings_get_strv(self->settings, "pinned-kaomojis"); + GPtrArray *new_arr = g_ptr_array_new(); + for (guint i = 0; pinned[i]; i++) { + if (g_strcmp0(pinned[i], text) != 0) + g_ptr_array_add(new_arr, pinned[i]); + } + g_ptr_array_add(new_arr, NULL); + g_settings_set_strv(self->settings, "pinned-kaomojis", + (const char *const *)new_arr->pdata); + g_ptr_array_free(new_arr, TRUE); + rebuild_pinned_box(self); +} + +static void on_ctx_action_clicked(GtkButton *button, gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + const char *action = g_object_get_data(G_OBJECT(button), "action-name"); + if (!action) + return; + GtkWidget *popover = + gtk_widget_get_ancestor(GTK_WIDGET(button), GTK_TYPE_POPOVER); + g_action_group_activate_action(G_ACTION_GROUP(self), action, NULL); + if (popover) + gtk_popover_popdown(GTK_POPOVER(popover)); +} + +static void on_pinned_right_click(GtkGestureClick *gesture, + G_GNUC_UNUSED int n_press, double x, double y, + gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + GtkWidget *button = + gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(gesture)); + const char *full_text = g_object_get_data(G_OBJECT(button), "full-text"); + const char *text = + full_text ? full_text : gtk_button_get_label(GTK_BUTTON(button)); + + g_free(self->ctx_emote_text); + self->ctx_emote_text = g_strdup(text); + + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + GtkWidget *unpin_btn = ctx_add_button( + GTK_BOX(box), "Unpin", G_CALLBACK(on_ctx_action_clicked), self); + g_object_set_data(G_OBJECT(unpin_btn), "action-name", "ctx-unpin-emote"); + show_context_popover(button, box, x, y); +} + +static void on_kaomoji_right_click(GtkGestureClick *gesture, + G_GNUC_UNUSED int n_press, double x, + double y, gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + GtkWidget *button = + gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(gesture)); + const char *filepath = g_object_get_data(G_OBJECT(button), "emote-path"); + if (!filepath) + return; + const char *full_text = g_object_get_data(G_OBJECT(button), "full-text"); + const char *emote_text = + full_text ? full_text : gtk_button_get_label(GTK_BUTTON(button)); + + g_free(self->ctx_emote_path); + self->ctx_emote_path = g_strdup(filepath); + g_free(self->ctx_emote_text); + self->ctx_emote_text = g_strdup(emote_text); + + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + GtkWidget *pin_btn; + if (is_kaomoji_pinned(self, emote_text)) { + pin_btn = ctx_add_button(GTK_BOX(box), "Unpin", + G_CALLBACK(on_ctx_action_clicked), self); + g_object_set_data(G_OBJECT(pin_btn), "action-name", "ctx-unpin-emote"); + } else { + pin_btn = ctx_add_button(GTK_BOX(box), "Pin", + G_CALLBACK(on_ctx_action_clicked), self); + g_object_set_data(G_OBJECT(pin_btn), "action-name", "ctx-pin-emote"); + } + GtkWidget *del_btn = ctx_add_button(GTK_BOX(box), "Delete", + G_CALLBACK(on_ctx_action_clicked), self); + g_object_set_data(G_OBJECT(del_btn), "action-name", "ctx-delete-emote"); + show_context_popover(button, box, x, y); +} + +static void add_kaomoji_button(MoeMojiWindow *self, GtkFlowBox *flow, + const char *text, const char *filepath) { gboolean multiline = (strchr(text, '\n') != NULL); const char *label_text = text; g_autofree char *first_line = NULL; @@ -106,7 +286,17 @@ static void add_kaomoji_button(GtkFlowBox *flow, const char *text) { g_object_set_data_full(G_OBJECT(button), "full-text", g_strdup(text), g_free); - g_signal_connect(button, "clicked", G_CALLBACK(on_kaomoji_clicked), NULL); + if (filepath) + g_object_set_data_full(G_OBJECT(button), "emote-path", g_strdup(filepath), + g_free); + + GtkGestureClick *right_click = GTK_GESTURE_CLICK(gtk_gesture_click_new()); + gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(right_click), 3); + g_signal_connect(right_click, "pressed", G_CALLBACK(on_kaomoji_right_click), + self); + gtk_widget_add_controller(button, GTK_EVENT_CONTROLLER(right_click)); + + g_signal_connect(button, "clicked", G_CALLBACK(on_kaomoji_clicked), self); if (multiline) { GtkWidget *popover = gtk_popover_new(); gtk_popover_set_autohide(GTK_POPOVER(popover), FALSE); @@ -154,6 +344,33 @@ static gint compare_files_by_mtime(gconstpointer a, gconstpointer b) { return 0; } +static void on_category_header_right_click(GtkGestureClick *gesture, + G_GNUC_UNUSED int n_press, double x, + double y, gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + GtkWidget *header = + gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(gesture)); + const char *cat_path = g_object_get_data(G_OBJECT(header), "cat-path"); + const char *cat_name = g_object_get_data(G_OBJECT(header), "cat-name"); + if (!cat_path) + return; + + g_free(self->ctx_cat_path); + self->ctx_cat_path = g_strdup(cat_path); + g_free(self->ctx_cat_name); + self->ctx_cat_name = g_strdup(cat_name); + + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + GtkWidget *rename_btn = ctx_add_button( + GTK_BOX(box), "Rename", G_CALLBACK(on_ctx_action_clicked), self); + g_object_set_data(G_OBJECT(rename_btn), "action-name", "ctx-rename-category"); + GtkWidget *del_cat_btn = ctx_add_button( + GTK_BOX(box), "Delete", G_CALLBACK(on_ctx_action_clicked), self); + g_object_set_data(G_OBJECT(del_cat_btn), "action-name", + "ctx-delete-category"); + show_context_popover(header, box, x, y); +} + static void load_category(MoeMojiWindow *self, const char *kaomoji_dir, const char *dirname) { char *cat_path = g_build_filename(kaomoji_dir, dirname, NULL); @@ -166,6 +383,15 @@ static void load_category(MoeMojiWindow *self, const char *kaomoji_dir, GtkWidget *header = gtk_label_new(display_name); gtk_widget_add_css_class(header, "category-header"); gtk_label_set_xalign(GTK_LABEL(header), 0.0); + g_object_set_data_full(G_OBJECT(header), "cat-path", g_strdup(cat_path), + g_free); + g_object_set_data_full(G_OBJECT(header), "cat-name", g_strdup(display_name), + g_free); + GtkGestureClick *cat_right_click = GTK_GESTURE_CLICK(gtk_gesture_click_new()); + gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(cat_right_click), 3); + g_signal_connect(cat_right_click, "pressed", + G_CALLBACK(on_category_header_right_click), self); + gtk_widget_add_controller(header, GTK_EVENT_CONTROLLER(cat_right_click)); gtk_box_append(self->content_box, header); GtkWidget *flow = gtk_flow_box_new(); gtk_flow_box_set_homogeneous(GTK_FLOW_BOX(flow), TRUE); @@ -186,7 +412,7 @@ static void load_category(MoeMojiWindow *self, const char *kaomoji_dir, if (g_file_get_contents(filepath, &contents, NULL, NULL)) { g_strchomp(contents); if (contents[0] != '\0') - add_kaomoji_button(GTK_FLOW_BOX(flow), contents); + add_kaomoji_button(self, GTK_FLOW_BOX(flow), contents, filepath); g_free(contents); } } @@ -196,6 +422,7 @@ static void load_category(MoeMojiWindow *self, const char *kaomoji_dir, cw->header = header; cw->flow = flow; cw->name = display_name; + cw->path = g_strdup(cat_path); g_ptr_array_add(self->category_widgets, cw); g_dir_close(dir); g_free(cat_path); @@ -219,6 +446,25 @@ static void set_active_chip(MoeMojiWindow *self, int index) { } } +static void scroll_chip_into_view(MoeMojiWindow *self, GtkWidget *chip) { + GtkWidget *sw = gtk_widget_get_ancestor(chip, GTK_TYPE_SCROLLED_WINDOW); + if (!sw) + return; + graphene_point_t p; + GtkWidget *content = gtk_scrolled_window_get_child(GTK_SCROLLED_WINDOW(sw)); + if (gtk_widget_compute_point(chip, content, &GRAPHENE_POINT_INIT(0, 0), &p)) { + GtkAdjustment *adj = + gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)); + double page = gtk_adjustment_get_page_size(adj); + double val = gtk_adjustment_get_value(adj); + int h = gtk_widget_get_height(chip); + if (p.y < val) + gtk_adjustment_set_value(adj, p.y); + else if (p.y + h > val + page) + gtk_adjustment_set_value(adj, p.y + h - page); + } +} + static void scroll_to_category(MoeMojiWindow *self, int index) { CategoryWidgets *cw = g_ptr_array_index(self->category_widgets, index); graphene_point_t p; @@ -228,6 +474,7 @@ static void scroll_to_category(MoeMojiWindow *self, int index) { GTK_SCROLLED_WINDOW(self->kaomoji_scroll)); gtk_adjustment_set_value(vadj, p.y); } + scroll_chip_into_view(self, cw->chip); } static void on_chip_clicked(GtkButton *button, gpointer user_data) { @@ -297,8 +544,9 @@ static void on_kaomoji_scroll_map(G_GNUC_UNUSED GtkWidget *widget, static void on_search_changed(GtkSearchEntry *entry, gpointer user_data) { MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); const char *query = gtk_editable_get_text(GTK_EDITABLE(entry)); - if (query == NULL || query[0] == '\0') + if (!query || query[0] == '\0') return; + gtk_widget_grab_focus(GTK_WIDGET(entry)); g_autofree char *query_lower = g_utf8_strdown(query, -1); for (guint i = 0; i < self->category_widgets->len; i++) { CategoryWidgets *cw = g_ptr_array_index(self->category_widgets, i); @@ -371,9 +619,7 @@ static gint compare_entries(gconstpointer a, gconstpointer b) { return desc ? -r : r; } - const char *attr = g_str_has_prefix(order, "created") - ? G_FILE_ATTRIBUTE_TIME_CREATED - : G_FILE_ATTRIBUTE_TIME_MODIFIED; + const char *attr = G_FILE_ATTRIBUTE_TIME_MODIFIED; gint64 ta = get_dir_time(ea[0], ea[1], attr); gint64 tb = get_dir_time(eb[0], eb[1], attr); gint r = (ta > tb) - (ta < tb); @@ -402,6 +648,36 @@ static GPtrArray *collect_all_categories(void) { return entries; } +static void apply_saved_order(GSettings *settings, GPtrArray *entries) { + g_auto(GStrv) saved = g_settings_get_strv(settings, "category-order"); + if (!saved || !saved[0]) + return; + + GPtrArray *ordered = g_ptr_array_new(); + gboolean *used = g_new0(gboolean, entries->len); + + for (int i = 0; saved[i]; i++) { + for (guint j = 0; j < entries->len; j++) { + if (used[j]) + continue; + char **pair = g_ptr_array_index(entries, j); + if (g_strcmp0(pair[1], saved[i]) == 0) { + g_ptr_array_add(ordered, pair); + used[j] = TRUE; + break; + } + } + } + for (guint j = 0; j < entries->len; j++) { + if (!used[j]) + g_ptr_array_add(ordered, g_ptr_array_index(entries, j)); + } + for (guint i = 0; i < ordered->len; i++) + g_ptr_array_index(entries, i) = g_ptr_array_index(ordered, i); + g_ptr_array_free(ordered, TRUE); + g_free(used); +} + static void free_category_entries(GPtrArray *entries) { for (guint i = 0; i < entries->len; i++) { char **pair = g_ptr_array_index(entries, i); @@ -419,6 +695,7 @@ static void navigate_to(MoeMojiWindow *self, const char *page, : GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT); gtk_stack_set_visible_child_name(self->view_stack, page); gboolean is_main = (g_strcmp0(page, "main") == 0); + gtk_widget_set_visible(self->sidebar_toggle, is_main); gtk_widget_set_visible(self->add_button, is_main); gtk_widget_set_visible(self->sort_button, is_main); gtk_widget_set_visible(self->back_button, !is_main); @@ -477,9 +754,19 @@ static void on_category_name_changed(G_GNUC_UNUSED GtkEditable *editable, MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); const char *text = gtk_editable_get_text(GTK_EDITABLE(self->category_name_entry)); - gtk_widget_set_sensitive(self->category_save_button, - is_valid_category_name(text) && - !category_name_taken(text)); + const char *error = NULL; + gboolean valid = TRUE; + + if (!is_valid_category_name(text)) { + valid = FALSE; + } else if (category_name_taken(text)) { + error = "A category with this name already exists"; + valid = FALSE; + } + + gtk_widget_set_sensitive(self->category_save_button, valid); + gtk_label_set_text(GTK_LABEL(self->category_error_label), error ? error : ""); + gtk_widget_set_visible(self->category_error_label, error != NULL); } static void on_category_save_clicked(G_GNUC_UNUSED GtkButton *button, @@ -566,6 +853,244 @@ static void on_entry_save_clicked(G_GNUC_UNUSED GtkButton *button, navigate_to(self, "main", FALSE); } +static void save_category_order(MoeMojiWindow *self) { + guint len = self->category_widgets->len; + char **order = g_new0(char *, len + 1); + for (guint i = 0; i < len; i++) { + CategoryWidgets *cw = g_ptr_array_index(self->category_widgets, i); + order[i] = g_path_get_basename(cw->path); + } + g_settings_set_strv(self->settings, "category-order", + (const char *const *)order); + g_strfreev(order); +} + +static GdkContentProvider *on_chip_drag_prepare(GtkDragSource *source, + G_GNUC_UNUSED double x, + G_GNUC_UNUSED double y, + G_GNUC_UNUSED gpointer data) { + GtkWidget *widget = + gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(source)); + const char *path = g_object_get_data(G_OBJECT(widget), "cat-path"); + if (!path) + return NULL; + GValue val = G_VALUE_INIT; + g_value_init(&val, G_TYPE_STRING); + g_value_set_string(&val, path); + return gdk_content_provider_new_for_value(&val); +} + +static void on_chip_drag_begin(GtkDragSource *source, + G_GNUC_UNUSED GdkDrag *drag, + G_GNUC_UNUSED gpointer data) { + GtkWidget *widget = + gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(source)); + GdkPaintable *paintable = gtk_widget_paintable_new(widget); + gtk_drag_source_set_icon(source, paintable, 0, 0); + g_object_unref(paintable); +} + +static void clear_drop_indicator(GtkWidget *chip_box) { + GtkWidget *active = g_object_get_data(G_OBJECT(chip_box), "active-drop-sep"); + if (active) { + gtk_widget_set_visible(active, FALSE); + g_object_set_data(G_OBJECT(chip_box), "active-drop-sep", NULL); + } +} + +static void show_drop_indicator(GtkWidget *chip, double y) { + GtkWidget *chip_box = gtk_widget_get_parent(chip); + if (!chip_box) + return; + clear_drop_indicator(chip_box); + + int height = gtk_widget_get_height(chip); + GtkWidget *sep; + if (y < height / 2.0) + sep = g_object_get_data(G_OBJECT(chip), "drop-sep-before"); + else + sep = g_object_get_data(G_OBJECT(chip), "drop-sep-after"); + if (sep) { + gtk_widget_set_visible(sep, TRUE); + g_object_set_data(G_OBJECT(chip_box), "active-drop-sep", sep); + } +} + +static gboolean reorder_chips_idle(gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + if (self->category_widgets->len == 0) + return G_SOURCE_REMOVE; + CategoryWidgets *first = g_ptr_array_index(self->category_widgets, 0); + GtkWidget *chip_box = gtk_widget_get_parent(first->chip); + if (!chip_box) + return G_SOURCE_REMOVE; + GtkWidget *chip_after = NULL; + for (guint i = 0; i < self->category_widgets->len; i++) { + CategoryWidgets *cw = g_ptr_array_index(self->category_widgets, i); + GtkWidget *sep = g_object_get_data(G_OBJECT(cw->chip), "drop-sep-before"); + if (sep) { + gtk_widget_insert_after(sep, chip_box, chip_after); + chip_after = sep; + } + gtk_widget_insert_after(cw->chip, chip_box, chip_after); + chip_after = cw->chip; + } + CategoryWidgets *last_cw = g_ptr_array_index(self->category_widgets, + self->category_widgets->len - 1); + GtkWidget *sep_end = + g_object_get_data(G_OBJECT(last_cw->chip), "drop-sep-after"); + if (sep_end) + gtk_widget_insert_after(sep_end, chip_box, chip_after); + return G_SOURCE_REMOVE; +} + +static gboolean on_chip_drop(GtkDropTarget *target, const GValue *value, + G_GNUC_UNUSED double x, double y, + gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + GtkWidget *dst_widget = + gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(target)); + const char *src_path = g_value_get_string(value); + const char *dst_path = g_object_get_data(G_OBJECT(dst_widget), "cat-path"); + + if (!src_path || !dst_path || g_strcmp0(src_path, dst_path) == 0) + return FALSE; + + int src_idx = -1, dst_idx = -1; + for (guint i = 0; i < self->category_widgets->len; i++) { + CategoryWidgets *cw = g_ptr_array_index(self->category_widgets, i); + if (g_strcmp0(cw->path, src_path) == 0) + src_idx = (int)i; + if (g_strcmp0(cw->path, dst_path) == 0) + dst_idx = (int)i; + } + if (src_idx < 0 || dst_idx < 0) + return FALSE; + + int height = gtk_widget_get_height(dst_widget); + int insert_idx = (y < height / 2.0) ? dst_idx : dst_idx + 1; + if (src_idx < insert_idx) + insert_idx--; + if (insert_idx == src_idx) + return FALSE; + + CategoryWidgets *moved = g_ptr_array_index(self->category_widgets, src_idx); + GPtrArray *reordered = g_ptr_array_new(); + for (guint i = 0; i < self->category_widgets->len; i++) { + if ((int)i == src_idx) + continue; + if ((int)reordered->len == insert_idx) + g_ptr_array_add(reordered, moved); + g_ptr_array_add(reordered, g_ptr_array_index(self->category_widgets, i)); + } + if ((int)reordered->len == insert_idx) + g_ptr_array_add(reordered, moved); + + for (guint i = 0; i < reordered->len; i++) + g_ptr_array_index(self->category_widgets, i) = + g_ptr_array_index(reordered, i); + g_ptr_array_free(reordered, TRUE); + + save_category_order(self); + + GtkWidget *after = NULL; + for (guint i = 0; i < self->category_widgets->len; i++) { + CategoryWidgets *cw = g_ptr_array_index(self->category_widgets, i); + gtk_widget_insert_after(cw->header, GTK_WIDGET(self->content_box), after); + gtk_widget_insert_after(cw->flow, GTK_WIDGET(self->content_box), + cw->header); + after = cw->flow; + } + if (self->bottom_spacer) + gtk_widget_insert_after(self->bottom_spacer, GTK_WIDGET(self->content_box), + after); + + GtkWidget *chip_box = gtk_widget_get_parent(dst_widget); + if (chip_box) + clear_drop_indicator(chip_box); + + for (guint i = 0; i < self->category_widgets->len; i++) { + CategoryWidgets *cw = g_ptr_array_index(self->category_widgets, i); + if ((int)i == self->active_chip_index) + gtk_widget_add_css_class(cw->chip, "chip-active"); + else + gtk_widget_remove_css_class(cw->chip, "chip-active"); + } + + g_idle_add(reorder_chips_idle, self); + + return TRUE; +} + +static GdkDragAction on_chip_drag_hover(GtkDropTarget *target, + G_GNUC_UNUSED double x, double y, + G_GNUC_UNUSED gpointer data) { + GtkWidget *widget = + gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(target)); + show_drop_indicator(widget, y); + return GDK_ACTION_MOVE; +} + +static void on_chip_drag_leave(GtkDropTarget *target, + G_GNUC_UNUSED gpointer data) { + GtkWidget *widget = + gtk_event_controller_get_widget(GTK_EVENT_CONTROLLER(target)); + GtkWidget *chip_box = gtk_widget_get_parent(widget); + if (chip_box) + clear_drop_indicator(chip_box); +} + +static void rebuild_pinned_box(MoeMojiWindow *self) { + if (!self->pinned_box) + return; + GtkWidget *child; + while ((child = gtk_widget_get_first_child(GTK_WIDGET(self->pinned_box))) != + NULL) + gtk_box_remove(self->pinned_box, child); + + g_auto(GStrv) pinned = g_settings_get_strv(self->settings, "pinned-kaomojis"); + if (!pinned || !pinned[0]) { + gtk_widget_set_visible(GTK_WIDGET(self->pinned_box), FALSE); + return; + } + gtk_widget_set_visible(GTK_WIDGET(self->pinned_box), TRUE); + + GtkWidget *header = gtk_label_new("Pinned"); + gtk_widget_add_css_class(header, "pinned-header"); + gtk_label_set_xalign(GTK_LABEL(header), 0.0); + gtk_box_append(self->pinned_box, header); + + for (guint i = 0; pinned[i]; i++) { + const char *text = pinned[i]; + gboolean multiline = (strchr(text, '\n') != NULL); + const char *label_text = text; + g_autofree char *first_line = NULL; + if (multiline) { + const char *nl = strchr(text, '\n'); + first_line = g_strndup(text, nl - text); + label_text = first_line; + } + GtkWidget *btn = gtk_button_new_with_label(label_text); + gtk_widget_add_css_class(btn, "category-chip"); + gtk_widget_add_css_class(btn, "flat"); + gtk_button_set_has_frame(GTK_BUTTON(btn), FALSE); + GtkWidget *label = gtk_button_get_child(GTK_BUTTON(btn)); + gtk_label_set_xalign(GTK_LABEL(label), 0.0); + gtk_label_set_ellipsize(GTK_LABEL(label), PANGO_ELLIPSIZE_END); + if (multiline) + g_object_set_data_full(G_OBJECT(btn), "full-text", g_strdup(text), + g_free); + g_signal_connect(btn, "clicked", G_CALLBACK(on_kaomoji_clicked), self); + + GtkGestureClick *rc = GTK_GESTURE_CLICK(gtk_gesture_click_new()); + gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(rc), 3); + g_signal_connect(rc, "pressed", G_CALLBACK(on_pinned_right_click), self); + gtk_widget_add_controller(btn, GTK_EVENT_CONTROLLER(rc)); + + gtk_box_append(self->pinned_box, btn); + } +} + static void reload_categories(MoeMojiWindow *self) { GtkWidget *child; while ((child = gtk_widget_get_first_child(GTK_WIDGET(self->content_box))) != @@ -576,10 +1101,12 @@ static void reload_categories(MoeMojiWindow *self) { self->bottom_spacer = NULL; if (self->category_bar) { - gtk_box_remove(self->outer_box, GTK_WIDGET(self->category_bar)); + gtk_paned_set_start_child(self->paned, NULL); self->category_bar = NULL; } + gtk_widget_set_visible(self->sidebar_toggle, FALSE); GPtrArray *entries = collect_all_categories(); + apply_saved_order(self->settings, entries); if (entries->len == 0) { GtkWidget *label = gtk_label_new("No kaomoji data found."); @@ -595,33 +1122,84 @@ static void reload_categories(MoeMojiWindow *self) { self->bottom_spacer = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); gtk_box_append(self->content_box, self->bottom_spacer); if (self->category_widgets->len > 0) { - GtkWidget *flow = gtk_flow_box_new(); - gtk_flow_box_set_homogeneous(GTK_FLOW_BOX(flow), FALSE); - gtk_flow_box_set_max_children_per_line(GTK_FLOW_BOX(flow), 20); - gtk_flow_box_set_selection_mode(GTK_FLOW_BOX(flow), GTK_SELECTION_NONE); - gtk_widget_add_css_class(flow, "category-chips"); + GtkWidget *chip_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 2); for (guint i = 0; i < self->category_widgets->len; i++) { CategoryWidgets *cw = g_ptr_array_index(self->category_widgets, i); GtkWidget *btn = gtk_button_new_with_label(cw->name); gtk_widget_add_css_class(btn, "category-chip"); gtk_widget_add_css_class(btn, "flat"); + gtk_button_set_has_frame(GTK_BUTTON(btn), FALSE); + GtkWidget *chip_label = gtk_button_get_child(GTK_BUTTON(btn)); + gtk_label_set_xalign(GTK_LABEL(chip_label), 0.0); + gtk_label_set_ellipsize(GTK_LABEL(chip_label), PANGO_ELLIPSIZE_END); + g_object_set_data_full(G_OBJECT(btn), "cat-path", g_strdup(cw->path), + g_free); + g_object_set_data_full(G_OBJECT(btn), "cat-name", g_strdup(cw->name), + g_free); + GtkGestureClick *rc = GTK_GESTURE_CLICK(gtk_gesture_click_new()); + gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(rc), 3); + g_signal_connect(rc, "pressed", + G_CALLBACK(on_category_header_right_click), self); + gtk_widget_add_controller(btn, GTK_EVENT_CONTROLLER(rc)); g_signal_connect(btn, "clicked", G_CALLBACK(on_chip_clicked), self); + + GtkDragSource *src = gtk_drag_source_new(); + gtk_drag_source_set_actions(src, GDK_ACTION_MOVE); + g_signal_connect(src, "prepare", G_CALLBACK(on_chip_drag_prepare), self); + g_signal_connect(src, "drag-begin", G_CALLBACK(on_chip_drag_begin), self); + gtk_widget_add_controller(btn, GTK_EVENT_CONTROLLER(src)); + + GtkDropTarget *tgt = gtk_drop_target_new(G_TYPE_STRING, GDK_ACTION_MOVE); + g_signal_connect(tgt, "drop", G_CALLBACK(on_chip_drop), self); + g_signal_connect(tgt, "enter", G_CALLBACK(on_chip_drag_hover), self); + g_signal_connect(tgt, "motion", G_CALLBACK(on_chip_drag_hover), self); + g_signal_connect(tgt, "leave", G_CALLBACK(on_chip_drag_leave), self); + gtk_widget_add_controller(btn, GTK_EVENT_CONTROLLER(tgt)); + cw->chip = btn; - gtk_flow_box_insert(GTK_FLOW_BOX(flow), btn, -1); + + GtkWidget *sep = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + gtk_widget_add_css_class(sep, "chip-drop-line"); + gtk_widget_set_size_request(sep, -1, 2); + gtk_widget_set_visible(sep, FALSE); + gtk_box_append(GTK_BOX(chip_box), sep); + g_object_set_data(G_OBJECT(btn), "drop-sep-before", sep); + if (i > 0) { + CategoryWidgets *prev_cw = + g_ptr_array_index(self->category_widgets, i - 1); + g_object_set_data(G_OBJECT(prev_cw->chip), "drop-sep-after", sep); + } + + gtk_box_append(GTK_BOX(chip_box), btn); + + if (i == self->category_widgets->len - 1) { + GtkWidget *tail = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); + gtk_widget_add_css_class(tail, "chip-drop-line"); + gtk_widget_set_size_request(tail, -1, 2); + gtk_widget_set_visible(tail, FALSE); + gtk_box_append(GTK_BOX(chip_box), tail); + g_object_set_data(G_OBJECT(btn), "drop-sep-after", tail); + } } self->category_bar = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 0)); gtk_widget_add_css_class(GTK_WIDGET(self->category_bar), "category-bar"); - gtk_widget_set_size_request(GTK_WIDGET(self->category_bar), -1, 80); GtkWidget *cat_scroll = gtk_scrolled_window_new(); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(cat_scroll), - GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); - gtk_scrolled_window_set_max_content_height(GTK_SCROLLED_WINDOW(cat_scroll), - 80); - gtk_scrolled_window_set_propagate_natural_height( - GTK_SCROLLED_WINDOW(cat_scroll), TRUE); - gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(cat_scroll), flow); + GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + gtk_widget_set_vexpand(cat_scroll, TRUE); + gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(cat_scroll), chip_box); gtk_box_append(self->category_bar, cat_scroll); - gtk_box_append(self->outer_box, GTK_WIDGET(self->category_bar)); + + self->pinned_box = GTK_BOX(gtk_box_new(GTK_ORIENTATION_VERTICAL, 2)); + gtk_widget_add_css_class(GTK_WIDGET(self->pinned_box), "pinned-section"); + gtk_box_append(self->category_bar, GTK_WIDGET(self->pinned_box)); + rebuild_pinned_box(self); + + gtk_paned_set_start_child(self->paned, GTK_WIDGET(self->category_bar)); + gtk_widget_set_visible(self->sidebar_toggle, TRUE); + gtk_widget_set_visible( + GTK_WIDGET(self->category_bar), + gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self->sidebar_toggle))); GtkAdjustment *vadj = gtk_scrolled_window_get_vadjustment( GTK_SCROLLED_WINDOW(self->kaomoji_scroll)); if (self->scroll_handler_id != 0) @@ -683,6 +1261,11 @@ static GtkWidget *build_add_category_page(MoeMojiWindow *self) { g_signal_connect(self->category_name_entry, "changed", G_CALLBACK(on_category_name_changed), self); + self->category_error_label = gtk_label_new(""); + gtk_widget_add_css_class(self->category_error_label, "error-label"); + gtk_widget_set_visible(self->category_error_label, FALSE); + gtk_box_append(GTK_BOX(box), self->category_error_label); + self->category_save_button = gtk_button_new_with_label("Save"); gtk_widget_set_sensitive(self->category_save_button, FALSE); gtk_widget_add_css_class(self->category_save_button, "suggested-action"); @@ -807,8 +1390,6 @@ static void copy_dir_recursive(const char *src, const char *dst) { g_dir_close(dir); } -static void populate_manage_page(MoeMojiWindow *self); - static void on_manage_delete_emote_response(AdwAlertDialog *dialog, GAsyncResult *res, gpointer user_data) { @@ -816,20 +1397,35 @@ static void on_manage_delete_emote_response(AdwAlertDialog *dialog, const char *response = adw_alert_dialog_choose_finish(dialog, res); if (g_strcmp0(response, "yes") == 0) { const char *filepath = g_object_get_data(G_OBJECT(dialog), "emote-path"); + const char *text = g_object_get_data(G_OBJECT(dialog), "emote-text"); g_unlink(filepath); + if (text && is_kaomoji_pinned(self, text)) { + g_auto(GStrv) pinned = + g_settings_get_strv(self->settings, "pinned-kaomojis"); + GPtrArray *arr = g_ptr_array_new(); + for (guint i = 0; pinned[i]; i++) { + if (g_strcmp0(pinned[i], text) != 0) + g_ptr_array_add(arr, pinned[i]); + } + g_ptr_array_add(arr, NULL); + g_settings_set_strv(self->settings, "pinned-kaomojis", + (const char *const *)arr->pdata); + g_ptr_array_free(arr, TRUE); + } reload_categories(self); - populate_manage_page(self); } } -static void on_manage_delete_emote(GtkButton *button, gpointer user_data) { +static void on_ctx_delete_emote(G_GNUC_UNUSED GSimpleAction *action, + G_GNUC_UNUSED GVariant *parameter, + gpointer user_data) { MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); - const char *filepath = g_object_get_data(G_OBJECT(button), "emote-path"); - const char *emote_text = g_object_get_data(G_OBJECT(button), "emote-text"); + const char *filepath = self->ctx_emote_path; + const char *emote_text = self->ctx_emote_text; g_autofree char *body = NULL; if (g_utf8_strlen(emote_text, -1) > 40) { - gchar *end = g_utf8_offset_to_pointer(emote_text, 40); + char *end = g_utf8_offset_to_pointer(emote_text, 40); g_autofree char *prefix = g_strndup(emote_text, end - emote_text); body = g_strdup_printf("%s…", prefix); } else { @@ -844,6 +1440,8 @@ static void on_manage_delete_emote(GtkButton *button, gpointer user_data) { adw_alert_dialog_set_close_response(confirm, "no"); g_object_set_data_full(G_OBJECT(confirm), "emote-path", g_strdup(filepath), g_free); + g_object_set_data_full(G_OBJECT(confirm), "emote-text", g_strdup(emote_text), + g_free); adw_alert_dialog_choose(confirm, GTK_WIDGET(self), NULL, (GAsyncReadyCallback)on_manage_delete_emote_response, @@ -859,14 +1457,45 @@ static void on_manage_delete_category_response(AdwAlertDialog *dialog, const char *cat_path = g_object_get_data(G_OBJECT(dialog), "cat-path"); remove_dir_recursive(cat_path); reload_categories(self); - populate_manage_page(self); + } +} + +static void on_rename_entry_changed(GtkEditable *editable, gpointer user_data) { + AdwAlertDialog *dialog = ADW_ALERT_DIALOG(user_data); + const char *text = gtk_editable_get_text(editable); + const char *original = g_object_get_data(G_OBJECT(dialog), "original-name"); + g_autofree char *stripped = g_strstrip(g_strdup(text)); + const char *error = NULL; + gboolean valid = TRUE; + + if (stripped[0] == '\0') { + error = "Name cannot be empty"; + valid = FALSE; + } else if (g_strcmp0(stripped, original) == 0) { + error = NULL; + valid = FALSE; + } else if (category_name_taken(stripped)) { + error = "A category with this name already exists"; + valid = FALSE; + } + + adw_alert_dialog_set_body(dialog, error ? error : ""); + adw_alert_dialog_set_response_enabled(dialog, "rename", valid); +} + +static void on_rename_entry_activate(G_GNUC_UNUSED GtkEntry *entry, + gpointer user_data) { + AdwAlertDialog *dialog = ADW_ALERT_DIALOG(user_data); + if (adw_alert_dialog_get_response_enabled(dialog, "rename")) { + g_signal_emit_by_name(dialog, "response", "rename"); + adw_dialog_force_close(ADW_DIALOG(dialog)); } } static void on_rename_category_response(AdwAlertDialog *dialog, - GAsyncResult *res, gpointer user_data) { + const char *response, + gpointer user_data) { MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); - const char *response = adw_alert_dialog_choose_finish(dialog, res); if (g_strcmp0(response, "rename") != 0) return; const char *cat_path = g_object_get_data(G_OBJECT(dialog), "cat-path"); @@ -878,14 +1507,29 @@ static void on_rename_category_response(AdwAlertDialog *dialog, return; g_autofree char *name_file = g_build_filename(cat_path, ".name", NULL); g_file_set_contents(name_file, stripped, -1, NULL); - reload_categories(self); - populate_manage_page(self); + for (guint i = 0; i < self->category_widgets->len; i++) { + CategoryWidgets *cw = g_ptr_array_index(self->category_widgets, i); + if (g_strcmp0(cw->path, cat_path) == 0) { + g_free(cw->name); + cw->name = g_strdup(stripped); + gtk_label_set_text(GTK_LABEL(cw->header), stripped); + if (cw->chip) { + GtkWidget *chip_label = gtk_button_get_child(GTK_BUTTON(cw->chip)); + gtk_label_set_text(GTK_LABEL(chip_label), stripped); + g_object_set_data_full(G_OBJECT(cw->chip), "cat-name", + g_strdup(stripped), g_free); + } + break; + } + } } -static void on_manage_rename_category(GtkButton *button, gpointer user_data) { +static void on_ctx_rename_category(G_GNUC_UNUSED GSimpleAction *action, + G_GNUC_UNUSED GVariant *parameter, + gpointer user_data) { MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); - const char *cat_path = g_object_get_data(G_OBJECT(button), "cat-path"); - const char *cat_name = g_object_get_data(G_OBJECT(button), "cat-name"); + const char *cat_path = self->ctx_cat_path; + const char *cat_name = self->ctx_cat_name; AdwAlertDialog *dialog = ADW_ALERT_DIALOG(adw_alert_dialog_new("Rename Category", NULL)); @@ -895,23 +1539,33 @@ static void on_manage_rename_category(GtkButton *button, gpointer user_data) { ADW_RESPONSE_SUGGESTED); adw_alert_dialog_set_default_response(dialog, "rename"); adw_alert_dialog_set_close_response(dialog, "cancel"); + adw_alert_dialog_set_response_enabled(dialog, "rename", FALSE); GtkWidget *entry = gtk_entry_new(); gtk_editable_set_text(GTK_EDITABLE(entry), cat_name); adw_alert_dialog_set_extra_child(dialog, entry); - + g_signal_connect_swapped(dialog, "map", G_CALLBACK(gtk_widget_grab_focus), + entry); + g_signal_connect(entry, "activate", G_CALLBACK(on_rename_entry_activate), + dialog); + g_signal_connect(entry, "changed", G_CALLBACK(on_rename_entry_changed), + dialog); g_object_set_data_full(G_OBJECT(dialog), "cat-path", g_strdup(cat_path), g_free); + g_object_set_data_full(G_OBJECT(dialog), "original-name", g_strdup(cat_name), + g_free); g_object_set_data(G_OBJECT(dialog), "name-entry", entry); - adw_alert_dialog_choose(dialog, GTK_WIDGET(self), NULL, - (GAsyncReadyCallback)on_rename_category_response, - self); + g_signal_connect(dialog, "response", G_CALLBACK(on_rename_category_response), + self); + adw_alert_dialog_choose(dialog, GTK_WIDGET(self), NULL, NULL, NULL); } -static void on_manage_delete_category(GtkButton *button, gpointer user_data) { +static void on_ctx_delete_category(G_GNUC_UNUSED GSimpleAction *action, + G_GNUC_UNUSED GVariant *parameter, + gpointer user_data) { MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); - const char *cat_path = g_object_get_data(G_OBJECT(button), "cat-path"); - const char *cat_name = g_object_get_data(G_OBJECT(button), "cat-name"); + const char *cat_path = self->ctx_cat_path; + const char *cat_name = self->ctx_cat_name; g_autofree char *heading = g_strdup_printf("Delete \"%s\"?", cat_name); AdwAlertDialog *confirm = ADW_ALERT_DIALOG(adw_alert_dialog_new( @@ -929,223 +1583,6 @@ static void on_manage_delete_category(GtkButton *button, gpointer user_data) { (GAsyncReadyCallback)on_manage_delete_category_response, self); } -static void populate_manage_page(MoeMojiWindow *self) { - GtkWidget *manage_page = - gtk_stack_get_child_by_name(self->view_stack, "manage"); - GtkWidget *content = - g_object_get_data(G_OBJECT(manage_page), "manage-content"); - - GtkWidget *child; - while ((child = gtk_widget_get_first_child(content)) != NULL) - gtk_box_remove(GTK_BOX(content), child); - - GPtrArray *entries = collect_all_categories(); - - if (entries->len == 0) { - GtkWidget *label = gtk_label_new("No categories to manage."); - gtk_box_append(GTK_BOX(content), label); - } - - for (guint i = 0; i < entries->len; i++) { - char **pair = g_ptr_array_index(entries, i); - g_autofree char *cat_path = g_build_filename(pair[0], pair[1], NULL); - g_autofree char *display_name = get_category_display_name(cat_path); - - GtkWidget *cat_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8); - gtk_widget_set_margin_top(cat_hbox, 8); - - GtkWidget *cat_label = gtk_label_new(display_name); - gtk_widget_add_css_class(cat_label, "category-header"); - gtk_label_set_xalign(GTK_LABEL(cat_label), 0.0); - gtk_widget_set_hexpand(cat_label, TRUE); - gtk_box_append(GTK_BOX(cat_hbox), cat_label); - - GtkWidget *cat_rename_btn = - gtk_button_new_from_icon_name("document-edit-symbolic"); - gtk_widget_add_css_class(cat_rename_btn, "manage-cat-rename"); - gtk_widget_add_css_class(cat_rename_btn, "circular"); - gtk_widget_set_valign(cat_rename_btn, GTK_ALIGN_CENTER); - g_object_set_data_full(G_OBJECT(cat_rename_btn), "cat-path", - g_strdup(cat_path), g_free); - g_object_set_data_full(G_OBJECT(cat_rename_btn), "cat-name", - g_strdup(display_name), g_free); - g_signal_connect(cat_rename_btn, "clicked", - G_CALLBACK(on_manage_rename_category), self); - gtk_box_append(GTK_BOX(cat_hbox), cat_rename_btn); - - GtkWidget *cat_del_btn = - gtk_button_new_from_icon_name("window-close-symbolic"); - gtk_widget_add_css_class(cat_del_btn, "manage-cat-delete"); - gtk_widget_add_css_class(cat_del_btn, "circular"); - gtk_widget_set_valign(cat_del_btn, GTK_ALIGN_CENTER); - g_object_set_data_full(G_OBJECT(cat_del_btn), "cat-path", - g_strdup(cat_path), g_free); - g_object_set_data_full(G_OBJECT(cat_del_btn), "cat-name", - g_strdup(display_name), g_free); - g_signal_connect(cat_del_btn, "clicked", - G_CALLBACK(on_manage_delete_category), self); - gtk_box_append(GTK_BOX(cat_hbox), cat_del_btn); - - gtk_box_append(GTK_BOX(content), cat_hbox); - - GtkWidget *flow = gtk_flow_box_new(); - gtk_flow_box_set_homogeneous(GTK_FLOW_BOX(flow), FALSE); - gtk_flow_box_set_min_children_per_line(GTK_FLOW_BOX(flow), 2); - gtk_flow_box_set_max_children_per_line(GTK_FLOW_BOX(flow), 10); - gtk_flow_box_set_selection_mode(GTK_FLOW_BOX(flow), GTK_SELECTION_NONE); - - GDir *dir = g_dir_open(cat_path, 0, NULL); - if (dir) { - GPtrArray *files = g_ptr_array_new_with_free_func(g_free); - const char *filename; - while ((filename = g_dir_read_name(dir)) != NULL) { - if (g_str_has_suffix(filename, ".txt")) - g_ptr_array_add(files, g_build_filename(cat_path, filename, NULL)); - } - g_ptr_array_sort(files, compare_files_by_mtime); - - for (guint j = 0; j < files->len; j++) { - const char *filepath = g_ptr_array_index(files, j); - char *contents = NULL; - if (g_file_get_contents(filepath, &contents, NULL, NULL)) { - g_strchomp(contents); - if (contents[0] != '\0') { - GtkWidget *emote_box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); - gtk_widget_add_css_class(emote_box, "manage-emote"); - gtk_widget_set_halign(emote_box, GTK_ALIGN_CENTER); - - const char *display_text = contents; - g_autofree char *first_line = NULL; - if (strchr(contents, '\n')) { - const char *nl = strchr(contents, '\n'); - first_line = g_strndup(contents, nl - contents); - display_text = first_line; - } - - GtkWidget *emote_label = gtk_label_new(display_text); - gtk_label_set_ellipsize(GTK_LABEL(emote_label), - PANGO_ELLIPSIZE_END); - gtk_label_set_max_width_chars(GTK_LABEL(emote_label), 20); - gtk_box_append(GTK_BOX(emote_box), emote_label); - - GtkWidget *del_btn = - gtk_button_new_from_icon_name("window-close-symbolic"); - gtk_widget_add_css_class(del_btn, "manage-delete"); - gtk_widget_add_css_class(del_btn, "circular"); - gtk_widget_set_halign(del_btn, GTK_ALIGN_CENTER); - g_object_set_data_full(G_OBJECT(del_btn), "emote-path", - g_strdup(filepath), g_free); - g_object_set_data_full(G_OBJECT(del_btn), "emote-text", - g_strdup(display_text), g_free); - g_signal_connect(del_btn, "clicked", - G_CALLBACK(on_manage_delete_emote), self); - gtk_box_append(GTK_BOX(emote_box), del_btn); - - gtk_flow_box_insert(GTK_FLOW_BOX(flow), emote_box, -1); - } - g_free(contents); - } - } - g_ptr_array_free(files, TRUE); - g_dir_close(dir); - } - - gtk_box_append(GTK_BOX(content), flow); - } - free_category_entries(entries); -} - -static void on_manage_search_changed(GtkSearchEntry *entry, - gpointer user_data) { - GtkWidget *manage_page = GTK_WIDGET(user_data); - const char *query = gtk_editable_get_text(GTK_EDITABLE(entry)); - if (query == NULL || query[0] == '\0') - return; - - GtkWidget *content = - g_object_get_data(G_OBJECT(manage_page), "manage-content"); - GtkWidget *scroll = g_object_get_data(G_OBJECT(manage_page), "manage-scroll"); - - g_autofree char *query_lower = g_utf8_strdown(query, -1); - - for (GtkWidget *child = gtk_widget_get_first_child(content); child != NULL; - child = gtk_widget_get_next_sibling(child)) { - GtkWidget *first = gtk_widget_get_first_child(child); - if (first == NULL || !GTK_IS_LABEL(first)) - continue; - const char *label_text = gtk_label_get_text(GTK_LABEL(first)); - g_autofree char *name_lower = g_utf8_strdown(label_text, -1); - if (strstr(name_lower, query_lower) != NULL) { - graphene_point_t p; - if (gtk_widget_compute_point(child, content, &GRAPHENE_POINT_INIT(0, 0), - &p)) { - GtkAdjustment *vadj = - gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(scroll)); - gtk_adjustment_set_value(vadj, p.y); - } - return; - } - } -} - -static GtkWidget *build_manage_page(void) { - GtkWidget *wrapper = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); - gtk_widget_set_vexpand(wrapper, TRUE); - - GtkWidget *clamp = adw_clamp_new(); - adw_clamp_set_maximum_size(ADW_CLAMP(clamp), 600); - adw_clamp_set_tightening_threshold(ADW_CLAMP(clamp), 400); - gtk_widget_set_vexpand(clamp, TRUE); - - GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 12); - gtk_widget_add_css_class(box, "add-form"); - gtk_widget_set_vexpand(box, TRUE); - - GtkWidget *search = gtk_search_entry_new(); - gtk_widget_set_margin_start(search, 6); - gtk_widget_set_margin_end(search, 6); - gtk_widget_set_margin_top(search, 6); - g_object_set(search, "placeholder-text", "Jump to category...", NULL); - gtk_box_append(GTK_BOX(box), search); - - GtkWidget *scroll = gtk_scrolled_window_new(); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_NEVER, - GTK_POLICY_AUTOMATIC); - gtk_widget_set_vexpand(scroll, TRUE); - - GtkWidget *content = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4); - gtk_widget_set_margin_start(content, 6); - gtk_widget_set_margin_end(content, 6); - gtk_widget_set_margin_top(content, 6); - gtk_widget_set_margin_bottom(content, 6); - - gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(scroll), content); - gtk_box_append(GTK_BOX(box), scroll); - adw_clamp_set_child(ADW_CLAMP(clamp), box); - gtk_box_append(GTK_BOX(wrapper), clamp); - - g_object_set_data(G_OBJECT(wrapper), "manage-content", content); - g_object_set_data(G_OBJECT(wrapper), "manage-search", search); - g_object_set_data(G_OBJECT(wrapper), "manage-scroll", scroll); - - g_signal_connect(search, "search-changed", - G_CALLBACK(on_manage_search_changed), wrapper); - - return wrapper; -} - -static void on_manage_activated(G_GNUC_UNUSED GSimpleAction *action, - G_GNUC_UNUSED GVariant *parameter, - gpointer user_data) { - MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); - populate_manage_page(self); - GtkWidget *manage_page = - gtk_stack_get_child_by_name(self->view_stack, "manage"); - GtkWidget *search = g_object_get_data(G_OBJECT(manage_page), "manage-search"); - gtk_editable_set_text(GTK_EDITABLE(search), ""); - navigate_to(self, "manage", TRUE); -} - static void on_export_save_ready(GObject *source, GAsyncResult *res, G_GNUC_UNUSED gpointer user_data) { GtkFileDialog *dialog = GTK_FILE_DIALOG(source); @@ -1202,21 +1639,26 @@ static void on_export_save_ready(GObject *source, GAsyncResult *res, remove_dir_recursive(tmpdir); } -static void on_export_activated(G_GNUC_UNUSED GSimpleAction *action, - G_GNUC_UNUSED GVariant *parameter, - gpointer user_data) { - MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); +static GtkFileDialog *new_targz_dialog(const char *title) { GtkFileDialog *dialog = gtk_file_dialog_new(); - gtk_file_dialog_set_title(dialog, "Export Kaomojis"); - gtk_file_dialog_set_initial_name(dialog, "moemoji-export.tar.gz"); - GListStore *filters = g_list_store_new(GTK_TYPE_FILE_FILTER); + gtk_file_dialog_set_title(dialog, title); GtkFileFilter *filter = gtk_file_filter_new(); gtk_file_filter_set_name(filter, "Tar archives (*.tar.gz)"); gtk_file_filter_add_pattern(filter, "*.tar.gz"); + GListStore *filters = g_list_store_new(GTK_TYPE_FILE_FILTER); g_list_store_append(filters, filter); g_object_unref(filter); gtk_file_dialog_set_filters(dialog, G_LIST_MODEL(filters)); g_object_unref(filters); + return dialog; +} + +static void on_export_activated(G_GNUC_UNUSED GSimpleAction *action, + G_GNUC_UNUSED GVariant *parameter, + gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + GtkFileDialog *dialog = new_targz_dialog("Export Kaomojis"); + gtk_file_dialog_set_initial_name(dialog, "moemoji-export.tar.gz"); gtk_file_dialog_save(dialog, GTK_WINDOW(self), NULL, on_export_save_ready, self); g_object_unref(dialog); @@ -1290,16 +1732,7 @@ static void on_import_activated(G_GNUC_UNUSED GSimpleAction *action, G_GNUC_UNUSED GVariant *parameter, gpointer user_data) { MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); - GtkFileDialog *dialog = gtk_file_dialog_new(); - gtk_file_dialog_set_title(dialog, "Import Kaomojis"); - GListStore *filters = g_list_store_new(GTK_TYPE_FILE_FILTER); - GtkFileFilter *filter = gtk_file_filter_new(); - gtk_file_filter_set_name(filter, "Tar archives (*.tar.gz)"); - gtk_file_filter_add_pattern(filter, "*.tar.gz"); - g_list_store_append(filters, filter); - g_object_unref(filter); - gtk_file_dialog_set_filters(dialog, G_LIST_MODEL(filters)); - g_object_unref(filters); + GtkFileDialog *dialog = new_targz_dialog("Import Kaomojis"); gtk_file_dialog_open(dialog, GTK_WINDOW(self), NULL, on_import_open_ready, self); g_object_unref(dialog); @@ -1322,15 +1755,54 @@ static void on_sort_order_changed(GSimpleAction *action, GVariant *parameter, g_settings_set_string(self->settings, "category-sort", order); current_sort_order = order; update_sort_button_icon(self); + const char *empty[] = {NULL}; + g_settings_set_strv(self->settings, "category-order", empty); reload_categories(self); + save_category_order(self); +} + +static void on_restore_default_order(G_GNUC_UNUSED GSimpleAction *action, + G_GNUC_UNUSED GVariant *parameter, + gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + g_settings_reset(self->settings, "category-order"); + reload_categories(self); +} + +static void on_sidebar_toggled(GtkToggleButton *toggle, gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + gboolean active = gtk_toggle_button_get_active(toggle); + GtkWidget *start = gtk_paned_get_start_child(self->paned); + if (start) + gtk_widget_set_visible(start, active); + gtk_button_set_icon_name(GTK_BUTTON(toggle), + active ? "pan-start-symbolic" : "pan-end-symbolic"); +} + +#define SIDEBAR_HIDE_WIDTH 450 + +static void on_surface_layout(G_GNUC_UNUSED GdkSurface *surface, int width, + G_GNUC_UNUSED int height, gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(user_data); + if (width > 0 && width < SIDEBAR_HIDE_WIDTH) + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->sidebar_toggle), + FALSE); +} + +static void on_window_realize(GtkWidget *widget, + G_GNUC_UNUSED gpointer user_data) { + MoeMojiWindow *self = MOEMOJI_WINDOW(widget); + GdkSurface *surface = gtk_native_get_surface(GTK_NATIVE(self)); + if (surface) + g_signal_connect(surface, "layout", G_CALLBACK(on_surface_layout), self); } static void moemoji_window_class_init(MoeMojiWindowClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); gtk_widget_class_set_template_from_resource( widget_class, "/jp/angeltech/MoeMoji/moemoji-window.ui"); - gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow, - wrapper_box); + gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow, paned); + gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow, right_pane); gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow, outer_box); gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow, content_box); @@ -1339,12 +1811,15 @@ static void moemoji_window_class_init(MoeMojiWindowClass *klass) { gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow, kaomoji_scroll); gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow, view_stack); + gtk_widget_class_bind_template_child(widget_class, MoeMojiWindow, + toast_overlay); } static void moemoji_window_init(MoeMojiWindow *self) { gtk_widget_init_template(GTK_WIDGET(self)); gtk_widget_add_css_class(GTK_WIDGET(self), "wallpaper-bg"); gtk_widget_add_css_class(GTK_WIDGET(self->content_box), "content-area"); + gtk_paned_set_position(self->paned, 150); GtkWidget *empty_titlebar = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_set_visible(empty_titlebar, FALSE); @@ -1352,10 +1827,19 @@ static void moemoji_window_init(MoeMojiWindow *self) { self->header_bar = GTK_WIDGET(adw_header_bar_new()); gtk_widget_add_css_class(self->header_bar, "flat"); + adw_header_bar_set_show_start_title_buttons(ADW_HEADER_BAR(self->header_bar), + FALSE); adw_header_bar_set_show_end_title_buttons(ADW_HEADER_BAR(self->header_bar), TRUE); self->settings = g_settings_new("jp.angeltech.MoeMoji"); + self->sidebar_toggle = GTK_WIDGET(gtk_toggle_button_new()); + gtk_button_set_icon_name(GTK_BUTTON(self->sidebar_toggle), + "pan-start-symbolic"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->sidebar_toggle), TRUE); + adw_header_bar_pack_start(ADW_HEADER_BAR(self->header_bar), + self->sidebar_toggle); + self->add_button = gtk_button_new_from_icon_name("list-add-symbolic"); adw_header_bar_pack_start(ADW_HEADER_BAR(self->header_bar), self->add_button); @@ -1365,8 +1849,7 @@ static void moemoji_window_init(MoeMojiWindow *self) { g_menu_append(sort_menu, "Alphabetically ↓", "win.sort-order::alpha-desc"); g_menu_append(sort_menu, "Modified ↑", "win.sort-order::modified-asc"); g_menu_append(sort_menu, "Modified ↓", "win.sort-order::modified-desc"); - g_menu_append(sort_menu, "Created ↑", "win.sort-order::created-asc"); - g_menu_append(sort_menu, "Created ↓", "win.sort-order::created-desc"); + g_menu_append(sort_menu, "Default order", "win.restore-default-order"); gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(self->sort_button), G_MENU_MODEL(sort_menu)); g_object_unref(sort_menu); @@ -1380,6 +1863,12 @@ static void moemoji_window_init(MoeMojiWindow *self) { g_signal_connect(sort_action, "change-state", G_CALLBACK(on_sort_order_changed), self); g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(sort_action)); + GSimpleAction *restore_action = + g_simple_action_new("restore-default-order", NULL); + g_signal_connect(restore_action, "activate", + G_CALLBACK(on_restore_default_order), self); + g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(restore_action)); + g_object_unref(restore_action); current_sort_order = g_variant_get_string(g_action_get_state(G_ACTION(sort_action)), NULL); update_sort_button_icon(self); @@ -1394,20 +1883,13 @@ static void moemoji_window_init(MoeMojiWindow *self) { gtk_menu_button_set_icon_name(GTK_MENU_BUTTON(self->menu_button), "open-menu-symbolic"); GMenu *primary_menu = g_menu_new(); - GMenu *sec1 = g_menu_new(); - g_menu_append(sec1, "Manage…", "win.manage"); - g_menu_append_section(primary_menu, NULL, G_MENU_MODEL(sec1)); - g_object_unref(sec1); - GMenu *sec2 = g_menu_new(); - g_menu_append(sec2, "Export…", "win.export"); - g_menu_append(sec2, "Import…", "win.import"); - g_menu_append_section(primary_menu, NULL, G_MENU_MODEL(sec2)); - g_object_unref(sec2); + g_menu_append(primary_menu, "Export…", "win.export"); + g_menu_append(primary_menu, "Import…", "win.import"); gtk_menu_button_set_menu_model(GTK_MENU_BUTTON(self->menu_button), G_MENU_MODEL(primary_menu)); g_object_unref(primary_menu); adw_header_bar_pack_end(ADW_HEADER_BAR(self->header_bar), self->menu_button); - gtk_box_prepend(self->wrapper_box, self->header_bar); + gtk_box_prepend(self->right_pane, self->header_bar); self->category_widgets = g_ptr_array_new_with_free_func(category_widgets_free); self->active_chip_index = -1; @@ -1424,11 +1906,36 @@ static void moemoji_window_init(MoeMojiWindow *self) { g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(import_action)); g_object_unref(import_action); - GSimpleAction *manage_action = g_simple_action_new("manage", NULL); - g_signal_connect(manage_action, "activate", G_CALLBACK(on_manage_activated), - self); - g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(manage_action)); - g_object_unref(manage_action); + GSimpleAction *ctx_rename_cat = + g_simple_action_new("ctx-rename-category", NULL); + g_signal_connect(ctx_rename_cat, "activate", + G_CALLBACK(on_ctx_rename_category), self); + g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(ctx_rename_cat)); + g_object_unref(ctx_rename_cat); + + GSimpleAction *ctx_delete_cat = + g_simple_action_new("ctx-delete-category", NULL); + g_signal_connect(ctx_delete_cat, "activate", + G_CALLBACK(on_ctx_delete_category), self); + g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(ctx_delete_cat)); + g_object_unref(ctx_delete_cat); + + GSimpleAction *ctx_delete_emote = + g_simple_action_new("ctx-delete-emote", NULL); + g_signal_connect(ctx_delete_emote, "activate", + G_CALLBACK(on_ctx_delete_emote), self); + g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(ctx_delete_emote)); + g_object_unref(ctx_delete_emote); + + GSimpleAction *ctx_pin = g_simple_action_new("ctx-pin-emote", NULL); + g_signal_connect(ctx_pin, "activate", G_CALLBACK(on_ctx_pin_emote), self); + g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(ctx_pin)); + g_object_unref(ctx_pin); + + GSimpleAction *ctx_unpin = g_simple_action_new("ctx-unpin-emote", NULL); + g_signal_connect(ctx_unpin, "activate", G_CALLBACK(on_ctx_unpin_emote), self); + g_action_map_add_action(G_ACTION_MAP(self), G_ACTION(ctx_unpin)); + g_object_unref(ctx_unpin); g_signal_connect(self->add_button, "clicked", G_CALLBACK(on_add_clicked), self); @@ -1442,9 +1949,11 @@ static void moemoji_window_init(MoeMojiWindow *self) { gtk_stack_add_named(self->view_stack, pick_page, "pick-category"); GtkWidget *entry_page = build_add_entry_page(self); gtk_stack_add_named(self->view_stack, entry_page, "add-entry"); - GtkWidget *manage_page = build_manage_page(); - gtk_stack_add_named(self->view_stack, manage_page, "manage"); reload_categories(self); + g_signal_connect(self->sidebar_toggle, "toggled", + G_CALLBACK(on_sidebar_toggled), self); + g_signal_connect(self, "realize", G_CALLBACK(on_window_realize), NULL); + gtk_search_entry_set_key_capture_widget(self->search_entry, GTK_WIDGET(self)); g_signal_connect(self->search_entry, "search-changed", G_CALLBACK(on_search_changed), self); g_signal_connect(self->kaomoji_scroll, "map", diff --git a/src/moemoji-window.h b/src/moemoji-window.h index 81fcb6c..6207338 100644 --- a/src/moemoji-window.h +++ b/src/moemoji-window.h @@ -1,22 +1,25 @@ #pragma once -#include +#include typedef struct { GtkWidget *header; GtkWidget *flow; GtkWidget *chip; char *name; + char *path; } CategoryWidgets; struct _MoeMojiWindow { GtkApplicationWindow parent_instance; - GtkBox *wrapper_box; + GtkPaned *paned; + GtkBox *right_pane; GtkBox *outer_box; GtkBox *content_box; GtkSearchEntry *search_entry; GtkWidget *header_bar; GtkBox *category_bar; + GtkWidget *sidebar_toggle; GtkWidget *kaomoji_scroll; GPtrArray *category_widgets; GtkWidget *bottom_spacer; @@ -30,9 +33,16 @@ struct _MoeMojiWindow { GtkEntry *category_name_entry; GtkWidget *entry_text_view; GtkWidget *category_save_button; + GtkWidget *category_error_label; char *selected_category_dir; gulong scroll_handler_id; gulong page_size_handler_id; + char *ctx_cat_path; + char *ctx_cat_name; + char *ctx_emote_path; + char *ctx_emote_text; + GtkBox *pinned_box; + AdwToastOverlay *toast_overlay; }; G_BEGIN_DECLS diff --git a/src/moemoji-window.ui b/src/moemoji-window.ui index e7cbd64..8e4510f 100644 --- a/src/moemoji-window.ui +++ b/src/moemoji-window.ui @@ -2,55 +2,80 @@ diff --git a/src/style.css b/src/style.css index f0b68ad..04cedff 100644 --- a/src/style.css +++ b/src/style.css @@ -6,7 +6,11 @@ .kaomoji-button label { text-align: left; - text-shadow: -1px -1px 2px rgba(102, 34, 74, 0.8), 1px -1px 0 rgba(102, 34, 74, 0.8), -1px 1px 0 rgba(102, 34, 74, 0.8), 1px 1px 0 rgba(102, 34, 74, 0.8); + text-shadow: + -1px -1px 0 rgba(0, 0, 0, 0.6), + 1px -1px 0 rgba(0, 0, 0, 0.6), + -1px 1px 0 rgba(0, 0, 0, 0.6), + 1px 1px 0 rgba(0, 0, 0, 0.6); } .kaomoji-wide { @@ -46,9 +50,9 @@ } .category-bar { - background-color: rgba(0, 0, 0, 0.4); - border-radius: 14px; - padding: 8px; + border-radius: 0; + padding: 4px; + min-width: 140px; } .chip-active { @@ -79,34 +83,34 @@ caret-color: white; } -.manage-emote { - border: 1px solid rgba(255, 255, 255, 0.3); - border-radius: 8px; - padding: 6px 10px; +.context-menu-popover contents { + padding: 4px; } -.manage-delete { - min-width: 20px; - min-height: 20px; - padding: 2px; - font-size: 10px; - background-color: @destructive_bg_color; - color: @destructive_fg_color; +.error-label { + color: #ff6b6b; + font-size: 12px; } -.manage-cat-rename { - min-width: 24px; - min-height: 24px; - padding: 2px; - background-color: #c8a600; - color: white; +.context-active { + background-color: rgba(255, 255, 255, 0.15); + border-radius: 6px; } -.manage-cat-delete { - min-width: 24px; - min-height: 24px; - padding: 2px; - background-color: @destructive_bg_color; - color: @destructive_fg_color; +.chip-drop-line { + background-color: rgba(0, 0, 0, 0.6); + border-radius: 1px; +} + +.pinned-header { + font-size: 11px; + font-weight: bold; + padding: 4px 8px 2px 8px; + opacity: 0.7; +} + +.pinned-section { + margin-top: 4px; + border-top: 1px solid rgba(255, 255, 255, 0.15); } diff --git a/tests/test-moemoji.c b/tests/test-moemoji.c index a57745a..915871d 100644 --- a/tests/test-moemoji.c +++ b/tests/test-moemoji.c @@ -266,8 +266,6 @@ static void test_window_stack_pages_exist(void) { gtk_stack_get_child_by_name(test_self->view_stack, "pick-category")); g_assert_nonnull( gtk_stack_get_child_by_name(test_self->view_stack, "add-entry")); - g_assert_nonnull( - gtk_stack_get_child_by_name(test_self->view_stack, "manage")); window_test_teardown(); } @@ -499,29 +497,90 @@ static void test_category_name_validation(void) { window_test_teardown(); } -static void test_manage_search_entry(void) { +static void test_toast_overlay_exists(void) { window_test_setup(); - GtkWidget *page = - gtk_stack_get_child_by_name(test_self->view_stack, "manage"); - g_assert_nonnull(page); - GtkWidget *search = g_object_get_data(G_OBJECT(page), "manage-search"); - g_assert_nonnull(search); - g_assert_true(GTK_IS_SEARCH_ENTRY(search)); + g_assert_nonnull(test_self->toast_overlay); + g_assert_true(ADW_IS_TOAST_OVERLAY(test_self->toast_overlay)); window_test_teardown(); } -static void test_manage_populated(void) { +static void test_chip_ellipsize(void) { window_test_setup(); - g_action_group_activate_action(G_ACTION_GROUP(test_self), "manage", NULL); - GtkWidget *page = - gtk_stack_get_child_by_name(test_self->view_stack, "manage"); - GtkWidget *content = g_object_get_data(G_OBJECT(page), "manage-content"); - g_assert_nonnull(content); - g_assert_nonnull(gtk_widget_get_first_child(content)); + for (guint i = 0; i < test_self->category_widgets->len; i++) { + CategoryWidgets *cw = g_ptr_array_index(test_self->category_widgets, i); + GtkWidget *label = gtk_button_get_child(GTK_BUTTON(cw->chip)); + g_assert_cmpint(gtk_label_get_ellipsize(GTK_LABEL(label)), ==, + PANGO_ELLIPSIZE_END); + } window_test_teardown(); } -static void test_manage_dupe_name_blocked(void) { +static void test_chip_drop_separators(void) { + window_test_setup(); + guint len = test_self->category_widgets->len; + for (guint i = 0; i < len; i++) { + CategoryWidgets *cw = g_ptr_array_index(test_self->category_widgets, i); + g_assert_nonnull(g_object_get_data(G_OBJECT(cw->chip), "drop-sep-before")); + if (i == len - 1) + g_assert_nonnull(g_object_get_data(G_OBJECT(cw->chip), "drop-sep-after")); + } + window_test_teardown(); +} + +static void test_sidebar_toggle_icon(void) { + window_test_setup(); + const char *icon = + gtk_button_get_icon_name(GTK_BUTTON(test_self->sidebar_toggle)); + g_assert_cmpstr(icon, ==, "pan-start-symbolic"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(test_self->sidebar_toggle), + FALSE); + icon = gtk_button_get_icon_name(GTK_BUTTON(test_self->sidebar_toggle)); + g_assert_cmpstr(icon, ==, "pan-end-symbolic"); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(test_self->sidebar_toggle), + TRUE); + icon = gtk_button_get_icon_name(GTK_BUTTON(test_self->sidebar_toggle)); + g_assert_cmpstr(icon, ==, "pan-start-symbolic"); + window_test_teardown(); +} + +static gboolean settings_has_pinned(GSettings *settings, const char *text) { + g_auto(GStrv) pinned = g_settings_get_strv(settings, "pinned-kaomojis"); + for (guint i = 0; pinned[i]; i++) { + if (g_strcmp0(pinned[i], text) == 0) + return TRUE; + } + return FALSE; +} + +static void test_delete_unpins_emote(void) { + window_test_setup(); + + const char *pin[] = {"(^_^)", "other", NULL}; + g_settings_set_strv(test_self->settings, "pinned-kaomojis", pin); + g_assert_true(settings_has_pinned(test_self->settings, "(^_^)")); + + const char *text = "(^_^)"; + g_auto(GStrv) pinned = + g_settings_get_strv(test_self->settings, "pinned-kaomojis"); + GPtrArray *arr = g_ptr_array_new(); + for (guint i = 0; pinned[i]; i++) { + if (g_strcmp0(pinned[i], text) != 0) + g_ptr_array_add(arr, pinned[i]); + } + g_ptr_array_add(arr, NULL); + g_settings_set_strv(test_self->settings, "pinned-kaomojis", + (const char *const *)arr->pdata); + g_ptr_array_free(arr, TRUE); + + g_assert_false(settings_has_pinned(test_self->settings, "(^_^)")); + g_assert_true(settings_has_pinned(test_self->settings, "other")); + + const char *empty[] = {NULL}; + g_settings_set_strv(test_self->settings, "pinned-kaomojis", empty); + window_test_teardown(); +} + +static void test_dupe_name_blocked(void) { window_test_setup(); g_assert_cmpuint(test_self->category_widgets->len, >, 0); CategoryWidgets *cw = g_ptr_array_index(test_self->category_widgets, 0); @@ -580,10 +639,12 @@ int main(int argc, char *argv[]) { test_export_creates_archive); g_test_add_func("/window/import-extracts-and-loads", test_import_extracts_and_loads); - g_test_add_func("/window/manage-search-entry", test_manage_search_entry); - g_test_add_func("/window/manage-populated", test_manage_populated); - g_test_add_func("/window/manage-dupe-name-blocked", - test_manage_dupe_name_blocked); + g_test_add_func("/window/dupe-name-blocked", test_dupe_name_blocked); + g_test_add_func("/window/toast-overlay-exists", test_toast_overlay_exists); + g_test_add_func("/window/chip-ellipsize", test_chip_ellipsize); + g_test_add_func("/window/chip-drop-separators", test_chip_drop_separators); + g_test_add_func("/window/sidebar-toggle-icon", test_sidebar_toggle_icon); + g_test_add_func("/window/delete-unpins-emote", test_delete_unpins_emote); } return g_test_run();