-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
75 lines (65 loc) · 6.76 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package main
// TODO packed kaomoji data
import (
"flag"
"fmt"
"math/rand"
"os"
)
func main() {
all := flag.Bool("all", false, "show all")
flag.Parse()
if flag.NArg() < 1 {
fmt.Fprintf(os.Stderr, getUsage())
os.Exit(64)
}
kk, ok := kao[flag.Arg(0)]
if !ok {
os.Exit(2)
}
keys := []string{}
for k := range kk {
keys = append(keys, k)
if *all {
fmt.Println(k)
}
}
if *all {
os.Exit(0)
}
fmt.Println(keys[rand.Intn(len(keys))])
}
func getUsage() string {
u := `NAME
get random kaomoji by keyword
SYNOPSIS
%s [-all] 顔類
DESCRIPTION
return a random 顔文字 scoped by a keyword 顔類
the -all flag prints all 顔文字 for a given 顔類
顔類 KAORUI "FACE TYPE"
valid 顔類:
- happy
- sad
- angry
- evs
- suss
- hello
- magic
EXIT CODE
2 incorrect 顔類
64 usage error
SOURCES
kaomoji.ru
`
return fmt.Sprintf(u, os.Args[0])
}
var kao = map[string]map[string]bool{
"happy": map[string]bool{"(´。• ᵕ •。`)": true, "(* ^ ω ^)": true, "(´ ∀ ` *)": true, "٩(◕‿◕。)۶": true, "☆*:.。.o(≧▽≦)o.。.:*☆": true, "(o^▽^o)": true, "(⌒▽⌒)☆": true, "<( ̄︶ ̄)>": true, "。.:☆*:・'(*⌒―⌒*)))": true, "ヽ(・∀・)ノ": true, "(´。• ω •。`)": true, "( ̄ω ̄)": true, "`;:゛;`;・(°ε° )": true, "(o・ω・o)": true, "(@^◡^)": true, "ヽ(*・ω・)ノ": true, "(o_ _)ノ彡☆": true, "(^人^)": true, "(o´▽`o)": true, "(*´▽`*)": true, "。゚( ゚^∀^゚)゚。": true, "( ´ ω ` )": true, "(((o(*°▽°*)o)))": true, "(≧◡≦)": true, "(o´∀`o)": true, "(´• ω •`)": true, "(^▽^)": true, "(⌒ω⌒)": true, "∑d(°∀°d)": true, "╰(▔∀▔)╯": true, "(─‿‿─)": true, "(*^‿^*)": true, "ヽ(o^ ^o)ノ": true, "(✯◡✯)": true, "(◕‿◕)": true, "(*≧ω≦*)": true, "(☆▽☆)": true, "(⌒‿⌒)": true, "\(≧▽≦)/": true, "ヽ(o^▽^o)ノ": true, "☆ ~('▽^人)": true, "(*°▽°*)": true, "٩(。•́‿•̀。)۶": true, "(✧ω✧)": true, "ヽ(*⌒▽⌒*)ノ": true, "( ´ ▽ ` )": true, "( ̄▽ ̄)": true, "╰(*´︶`*)╯": true, "ヽ(>∀<☆)ノ": true, "o(≧▽≦)o": true, "(☆ω☆)": true, "(っ˘ω˘ς )": true, "\( ̄▽ ̄)/": true, "(*¯︶¯*)": true, "\(^▽^)/": true, "٩(◕‿◕)۶": true, "(o˘◡˘o)": true, `\(★ω★)/`: true, `\(^ヮ^)/`: true, "(〃^▽^〃)": true, "(╯✧▽✧)╯": true, "o(>ω<)o": true, "o( ❛ᴗ❛ )o": true, "。゚(TヮT)゚。": true, "( ‾́ ◡ ‾́ )": true, "(ノ´ヮ`)ノ*: ・゚": true, "(b ᵔ▽ᵔ)b": true, "(๑˃ᴗ˂)ﻭ": true, "(๑˘︶˘๑)": true, "( ˙꒳˙ )": true, "(*꒦ິ꒳꒦ີ)": true, "°˖✧◝(⁰▿⁰)◜✧˖°": true, "(´・ᴗ・ ` )": true, "(ノ◕ヮ◕)ノ*:・゚✧": true, "(„• ֊ •„)": true, "(.❛ ᴗ ❛.)": true, "(⁀ᗢ⁀)": true, "(¬‿¬ )": true, "(¬‿¬ )": true},
"sad": map[string]bool{"(ノ_<。)": true, "(-_-)": true, "(´-ω-`)": true, ".・゚゚・(/ω\)・゚゚・.": true, "(μ_μ)": true, "(ノД`)": true, "(-ω-、)": true, "。゜゜(´O`) ゜゜。": true, "o(TヘTo)": true, "( ; ω ; )": true, "(。╯︵╰。)": true, "。・゚゚*(>д<)*゚゚・。": true, "( ゚,_ゝ`)": true, "(个_个)": true, "(╯︵╰,)": true, "。・゚(゚><゚)゚・。": true, "( ╥ω╥ )": true, "(╯_╰)": true, "(╥_╥)": true, ".。・゚゚・(>_<)・゚゚・。.": true, "(/ˍ・、)": true, "(ノ_<、)": true, "(╥﹏╥)": true, "。゚(。ノωヽ。)゚。": true, "(つω`。)": true, "(。T ω T。)": true, "(ノω・、)": true, "・゚・(。>ω<。)・゚・": true, "(T_T)": true, "(>_<)": true, "(っ˘̩╭╮˘̩)っ": true, "。゚・ (>﹏<) ・゚。": true, "o(〒﹏〒)o": true, "(。•́︿•̀。)": true, "(ಥ﹏ಥ)": true},
"angry": map[string]bool{"(#`Д´)": true, "(`皿´#)": true, "( ` ω ´ )": true, "ヽ( `д´*)ノ": true, "(・`ω´・)": true, "(`ー´)": true, "ヽ(`⌒´メ)ノ": true, "凸(`△´#)": true, "( `ε´ )": true, "ψ( ` ∇ ´ )ψ": true, "ヾ(`ヘ´)ノ゙": true, "ヽ(‵﹏´)ノ": true, "(メ` ロ ´)": true, "(╬`益´)": true, "┌∩┐(◣_◢)┌∩┐": true, "凸( ` ロ ´ )凸": true, "Σ(▼□▼メ)": true, "(°ㅂ°╬)": true, "ψ(▼へ▼メ)~→": true, "(ノ°益°)ノ": true, "(҂ `з´ )": true, "(‡▼益▼)": true, "(҂` ロ ´)凸": true, "((╬◣﹏◢))": true, "٩(╬ʘ益ʘ╬)۶": true, "(╬ Ò﹏Ó)": true, "\\٩(๑`^´๑)۶//": true, "(凸ಠ益ಠ)凸": true, "↑_(ΦwΦ)Ψ": true, "←~(Ψ▼ー▼)∈": true, "୧((#Φ益Φ#))୨": true, "٩(ఠ益ఠ)۶": true, "(ノಥ益ಥ)ノ": true},
"evs": map[string]bool{"ヽ(ー_ー )ノ": true, "ヽ(´ー` )┌": true, "┐(‘~` )┌": true, "ヽ(  ̄д ̄)ノ": true, "┐( ̄ヘ ̄)┌": true, "ヽ( ̄~ ̄ )ノ": true, "╮( ̄_ ̄)╭": true, "ヽ(ˇヘˇ)ノ": true, "┐( ̄~ ̄)┌": true, "┐(︶▽︶)┌": true, "╮( ̄~ ̄)╭": true, `¯\_(ツ)_/¯`: true, "┐( ´ д ` )┌": true, "╮(︶︿︶)╭": true, "┐( ̄∀ ̄)┌": true, "┐( ˘ 、 ˘ )┌": true, "╮(︶▽︶)╭": true, "╮( ˘ 、 ˘ )╭": true, "┐( ˘_˘ )┌": true, "╮( ˘_˘ )╭": true, "┐( ̄ヮ ̄)┌": true, "ᕕ( ᐛ )ᕗ": true},
"suss": map[string]bool{"(¬_¬)": true, "(→_→)": true, "(¬ ¬)": true, "(¬‿¬ )": true, "(¬_¬ )": true, "(←_←)": true, "(¬ ¬ )": true, "(¬‿¬ )": true, "(↼_↼)": true, "(⇀_⇀)": true},
"hello": map[string]bool{"(*・ω・)ノ": true, "( ̄▽ ̄)ノ": true, "(°▽°)/": true, "( ´ ∀ ` )ノ": true, "(^-^*)/": true, "(@´ー`)ノ゙": true, "(´• ω •`)ノ": true, "( ° ∀ ° )ノ゙": true, "ヾ(*'▽'*)": true, "\(⌒▽⌒)": true, "ヾ(☆▽☆)": true, "( ´ ▽ ` )ノ": true, "(^0^)ノ": true, "~ヾ(・ω・)": true, "(・∀・)ノ": true, "ヾ(^ω^*)": true, "(*°ー°)ノ": true, "(・_・)ノ": true, "(o´ω`o)ノ": true, "ヾ(☆'∀'☆)": true, "( ̄ω ̄)/": true, "( ´ ω ` )ノ゙": true, "(⌒ω⌒)ノ": true, "(o^ ^o)/": true, "(≧▽≦)/": true, "(✧∀✧)/": true, "(o´▽`o)ノ": true, "( ̄▽ ̄)/": true},
"magic": map[string]bool{"(ノ ˘_˘)ノ ζ|||ζ ζ|||ζ ζ|||ζ": true, "(ノ≧∀≦)ノ ‥…━━━★": true, "(ノ>ω<)ノ :。・:*:・゚’★,。・:*:・゚’☆": true, "(ノ°∀°)ノ⌒・*:.。. .。.:*・゜゚・*☆": true, "╰( ͡° ͜ʖ ͡° )つ──☆*:・゚": true, "(# ̄□ ̄)o━∈・・━━━━☆": true, "(⊃。•́‿•̀。)⊃━✿✿✿✿✿✿": true, "(∩ᄑ_ᄑ)⊃━☆゚*・。*・:≡( ε:)": true, "(/ ̄ー ̄)/~~☆’.・.・:★’.・.・:☆": true, "(∩` ロ ´)⊃━炎炎炎炎炎": true},
}