feat: uuid.lua 生成符合RFC 4122标准的UUID v4 (#1383)

This commit is contained in:
WantChane
2025-10-31 15:59:04 +00:00
committed by GitHub
parent 69c1b294c5
commit 49fb60f2d5
9 changed files with 87 additions and 1 deletions

View File

@@ -73,6 +73,7 @@ engine:
- script_translator
- lua_translator@*date_translator # 时间、日期、星期
- lua_translator@*lunar # 农历
- lua_translator@*uuid # UUID
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
- table_translator@melt_eng # 英文输入
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
# Lua 配置: 生成 UUID 的触发关键字
uuid: uuid
# Lua 配置: 降低部分英语单词在候选项的位置。
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

View File

@@ -73,6 +73,7 @@ engine:
- script_translator
- lua_translator@*date_translator # 时间、日期、星期
- lua_translator@*lunar # 农历
- lua_translator@*uuid # UUID
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
- table_translator@melt_eng # 英文输入
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
# Lua 配置: 生成 UUID 的触发关键字
uuid: uuid
# Lua 配置: 降低部分英语单词在候选项的位置。
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

View File

@@ -73,6 +73,7 @@ engine:
- script_translator
- lua_translator@*date_translator # 时间、日期、星期
- lua_translator@*lunar # 农历
- lua_translator@*uuid # UUID
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
- table_translator@melt_eng # 英文输入
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
# Lua 配置: 生成 UUID 的触发关键字
uuid: uuid
# Lua 配置: 降低部分英语单词在候选项的位置。
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

View File

@@ -73,6 +73,7 @@ engine:
- script_translator
- lua_translator@*date_translator # 时间、日期、星期
- lua_translator@*lunar # 农历
- lua_translator@*uuid # UUID
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
- table_translator@melt_eng # 英文输入
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
# Lua 配置: 生成 UUID 的触发关键字
uuid: uuid
# Lua 配置: 降低部分英语单词在候选项的位置。
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

View File

@@ -73,6 +73,7 @@ engine:
- script_translator
- lua_translator@*date_translator # 时间、日期、星期
- lua_translator@*lunar # 农历
- lua_translator@*uuid # UUID
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
- table_translator@melt_eng # 英文输入
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
# Lua 配置: 生成 UUID 的触发关键字
uuid: uuid
# Lua 配置: 降低部分英语单词在候选项的位置。
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

View File

@@ -73,6 +73,7 @@ engine:
- script_translator
- lua_translator@*date_translator # 时间、日期、星期
- lua_translator@*lunar # 农历
- lua_translator@*uuid # UUID
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
- table_translator@cn_en # 中英混合词汇
- table_translator@melt_eng # 英文输入
@@ -106,6 +107,10 @@ date_translator:
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
# Lua 配置: 生成 UUID 的触发关键字
uuid: uuid
# Lua 配置: 降低部分英语单词在候选项的位置。
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

View File

@@ -73,6 +73,7 @@ engine:
- script_translator
- lua_translator@*date_translator # 时间、日期、星期
- lua_translator@*lunar # 农历
- lua_translator@*uuid # UUID
- table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt
- table_translator@melt_eng # 英文输入
- table_translator@cn_en # 中英混合词汇
@@ -106,6 +107,10 @@ date_translator:
lunar: lunar # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
# Lua 配置: 生成 UUID 的触发关键字
uuid: uuid
# Lua 配置: 降低部分英语单词在候选项的位置。
# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题
# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」

46
lua/uuid.lua Normal file
View File

@@ -0,0 +1,46 @@
local function yield_cand(seg, text)
local cand = Candidate("", seg.start, seg._end, text, "")
cand.quality = 100
yield(cand)
end
local fmt = string.format
local rand = math.random
local randomseed = math.randomseed
local function generate_uuid_v4()
return fmt(
"%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x",
rand(0, 255),
rand(0, 255),
rand(0, 255),
rand(0, 255),
rand(0, 255),
rand(0, 255),
(rand(0, 255) & 0x0F) | 0x40,
rand(0, 255),
(rand(0, 255) & 0x3F) | 0x80,
rand(0, 255),
rand(0, 255),
rand(0, 255),
rand(0, 255),
rand(0, 255),
rand(0, 255),
rand(0, 255)
)
end
local M = {}
function M.init(env)
M.uuid = env.engine.schema.config:get_string(env.name_space:gsub("^*", "")) or "uuid"
end
function M.func(input, seg, _)
if input == M.uuid then
randomseed(os.time())
yield_cand(seg, generate_uuid_v4())
end
end
return M

View File

@@ -6,7 +6,7 @@
schema:
schema_id: rime_ice
name: 雾凇拼音
version: "2025-10-23"
version: "2025-10-31"
author:
- Dvel
description: |
@@ -62,6 +62,7 @@ engine:
- script_translator
- lua_translator@*date_translator # 时间、日期、星期
- lua_translator@*lunar # 农历
- lua_translator@*uuid # UUID
- table_translator@custom_phrase # 自定义短语 custom_phrase.txt
- table_translator@melt_eng # 英文输入
- table_translator@cn_en # 中英混合词汇
@@ -97,6 +98,10 @@ date_translator:
lunar: nl # 农历: 二〇二三年冬月二十 癸卯年(兔)冬月二十
# Lua 配置: 生成 UUID 的触发关键字
uuid: UUID
# Lua 配置:长词优先
# 提升 count 个词语,插入到第 idx 个位置。
# 示例:将 2 个词插入到第 4、5 个候选项,输入 jie 得到「1接 2解 3姐 4饥饿 5极恶 6结 7界……」