Skip to content

Commit 49fb60f

Browse files
authored
feat: uuid.lua 生成符合RFC 4122标准的UUID v4 (#1383)
1 parent 69c1b29 commit 49fb60f

9 files changed

+87
-1
lines changed

double_pinyin.schema.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ engine:
7373
- script_translator
7474
- lua_translator@*date_translator # 时间、日期、星期
7575
- lua_translator@*lunar # 农历
76+
- lua_translator@*uuid # UUID
7677
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
7778
- table_translator@melt_eng # 英文输入
7879
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
106107
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
107108

108109

110+
# Lua 配置: 生成 UUID 的触发关键字
111+
uuid: uuid
112+
113+
109114
# Lua 配置: 降低部分英语单词在候选项的位置。
110115
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
111116
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

double_pinyin_abc.schema.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ engine:
7373
- script_translator
7474
- lua_translator@*date_translator # 时间、日期、星期
7575
- lua_translator@*lunar # 农历
76+
- lua_translator@*uuid # UUID
7677
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
7778
- table_translator@melt_eng # 英文输入
7879
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
106107
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
107108

108109

110+
# Lua 配置: 生成 UUID 的触发关键字
111+
uuid: uuid
112+
113+
109114
# Lua 配置: 降低部分英语单词在候选项的位置。
110115
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
111116
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

double_pinyin_flypy.schema.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ engine:
7373
- script_translator
7474
- lua_translator@*date_translator # 时间、日期、星期
7575
- lua_translator@*lunar # 农历
76+
- lua_translator@*uuid # UUID
7677
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
7778
- table_translator@melt_eng # 英文输入
7879
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
106107
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
107108

108109

110+
# Lua 配置: 生成 UUID 的触发关键字
111+
uuid: uuid
112+
113+
109114
# Lua 配置: 降低部分英语单词在候选项的位置。
110115
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
111116
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

double_pinyin_jiajia.schema.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ engine:
7373
- script_translator
7474
- lua_translator@*date_translator # 时间、日期、星期
7575
- lua_translator@*lunar # 农历
76+
- lua_translator@*uuid # UUID
7677
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
7778
- table_translator@melt_eng # 英文输入
7879
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
106107
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
107108

108109

110+
# Lua 配置: 生成 UUID 的触发关键字
111+
uuid: uuid
112+
113+
109114
# Lua 配置: 降低部分英语单词在候选项的位置。
110115
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
111116
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

double_pinyin_mspy.schema.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ engine:
7373
- script_translator
7474
- lua_translator@*date_translator # 时间、日期、星期
7575
- lua_translator@*lunar # 农历
76+
- lua_translator@*uuid # UUID
7677
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
7778
- table_translator@melt_eng # 英文输入
7879
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
106107
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
107108

108109

110+
# Lua 配置: 生成 UUID 的触发关键字
111+
uuid: uuid
112+
113+
109114
# Lua 配置: 降低部分英语单词在候选项的位置。
110115
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
111116
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

double_pinyin_sogou.schema.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ engine:
7373
- script_translator
7474
- lua_translator@*date_translator # 时间、日期、星期
7575
- lua_translator@*lunar # 农历
76+
- lua_translator@*uuid # UUID
7677
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
7778
- table_translator@cn_en # 中英混合词汇
7879
- table_translator@melt_eng # 英文输入
@@ -106,6 +107,10 @@ date_translator:
106107
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
107108

108109

110+
# Lua 配置: 生成 UUID 的触发关键字
111+
uuid: uuid
112+
113+
109114
# Lua 配置: 降低部分英语单词在候选项的位置。
110115
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
111116
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

double_pinyin_ziguang.schema.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ engine:
7373
- script_translator
7474
- lua_translator@*date_translator # 时间、日期、星期
7575
- lua_translator@*lunar # 农历
76+
- lua_translator@*uuid # UUID
7677
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
7778
- table_translator@melt_eng # 英文输入
7879
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
106107
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
107108

108109

110+
# Lua 配置: 生成 UUID 的触发关键字
111+
uuid: uuid
112+
113+
109114
# Lua 配置: 降低部分英语单词在候选项的位置。
110115
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
111116
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

lua/uuid.lua

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
local function yield_cand(seg, text)
2+
local cand = Candidate("", seg.start, seg._end, text, "")
3+
cand.quality = 100
4+
yield(cand)
5+
end
6+
7+
local fmt = string.format
8+
local rand = math.random
9+
local randomseed = math.randomseed
10+
11+
local function generate_uuid_v4()
12+
return fmt(
13+
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
14+
rand(0, 255),
15+
rand(0, 255),
16+
rand(0, 255),
17+
rand(0, 255),
18+
rand(0, 255),
19+
rand(0, 255),
20+
(rand(0, 255) & 0x0F) | 0x40,
21+
rand(0, 255),
22+
(rand(0, 255) & 0x3F) | 0x80,
23+
rand(0, 255),
24+
rand(0, 255),
25+
rand(0, 255),
26+
rand(0, 255),
27+
rand(0, 255),
28+
rand(0, 255),
29+
rand(0, 255)
30+
)
31+
end
32+
33+
local M = {}
34+
35+
function M.init(env)
36+
M.uuid = env.engine.schema.config:get_string(env.name_space:gsub("^*", "")) or "uuid"
37+
end
38+
39+
function M.func(input, seg, _)
40+
if input == M.uuid then
41+
randomseed(os.time())
42+
yield_cand(seg, generate_uuid_v4())
43+
end
44+
end
45+
46+
return M

rime_ice.schema.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
schema:
77
schema_id: rime_ice
88
name: 雾凇拼音
9-
version: "2025-10-23"
9+
version: "2025-10-31"
1010
author:
1111
- Dvel
1212
description: |
@@ -62,6 +62,7 @@ engine:
6262
- script_translator
6363
- lua_translator@*date_translator # 时间、日期、星期
6464
- lua_translator@*lunar # 农历
65+
- lua_translator@*uuid # UUID
6566
- table_translator@custom_phrase # 自定义短语 custom_phrase.txt
6667
- table_translator@melt_eng # 英文输入
6768
- table_translator@cn_en # 中英混合词汇
@@ -97,6 +98,10 @@ date_translator:
9798
lunar: nl # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
9899

99100

101+
# Lua 配置: 生成 UUID 的触发关键字
102+
uuid: UUID
103+
104+
100105
# Lua 配置:长词优先
101106
# 提升 count 个词语,插入到第 idx 个位置。
102107
# 示例:将 2 个词插入到第 4、5 个候选项,输入 jie 得到「1接 2解 3姐 4饥饿 5极恶 6结 7界……」

0 commit comments

Comments
 (0)