|
|
|
|
@ -76,8 +76,6 @@ emoji_skintone[6]=$'\U1F3FF' |
|
|
|
|
# These are stored in a single associative array, $emoji_groups, to avoid cluttering up the global |
|
|
|
|
# namespace, and to allow adding additional group definitions at run time. |
|
|
|
|
# The keys are the group names, and the values are whitespace-separated lists of emoji character names. |
|
|
|
|
# |
|
|
|
|
# These extra local arrays are used to allow more convenient formatting of the source code. |
|
|
|
|
|
|
|
|
|
emoji_groups[fruits]=" |
|
|
|
|
tomato |
|
|
|
|
@ -255,9 +253,10 @@ function random_emoji() { |
|
|
|
|
if [[ -z "$group" || "$group" == "all" ]]; then |
|
|
|
|
names=(${(k)emoji}) |
|
|
|
|
else |
|
|
|
|
names=(${=emoji_groups[$group_name]}) |
|
|
|
|
names=(${=emoji_groups[$group]}) |
|
|
|
|
fi |
|
|
|
|
local list_size=$#names |
|
|
|
|
local list_size=${#names} |
|
|
|
|
[[ $list_size -eq 0 ]] && return 1 |
|
|
|
|
local random_index=$(( ( RANDOM % $list_size ) + 1 )) |
|
|
|
|
local name=${names[$random_index]} |
|
|
|
|
echo ${emoji[$name]} |
|
|
|
|
|