全站通知:
模块:Sort
刷
历
编
跳到导航
跳到搜索
此模块的文档可以在模块:Sort/doc创建
local p = {}
local smw = require('Module:SMW')
local SETTING = {
{ key = "剧情", value = { ["主类"] = "剧情", ["副类"] = "剧情", ["id"] = 100000000 ,["朋友圈大类"] = "剧情" }},
{ key = "牵绊", value = { ["主类"] = "牵绊", ["副类"] = "牵绊", ["id"] = 110000000 ,["朋友圈大类"] = "日常" }},
{ key = "喵喵", value = { ["主类"] = "约会", ["副类"] = "喵喵", ["id"] = 200000000 ,["朋友圈大类"] = "日常" }},
{ key = "娃娃", value = { ["主类"] = "约会", ["副类"] = "娃娃", ["id"] = 210000000 ,["朋友圈大类"] = "日常" }},
{ key = "玩偶", value = { ["主类"] = "约会", ["副类"] = "娃娃", ["id"] = 210000000 ,["朋友圈大类"] = "日常" }},
{ key = "写真", value = { ["主类"] = "约会", ["副类"] = "拍照", ["id"] = 220000000 ,["朋友圈大类"] = "日常" }},
{ key = "拍照", value = { ["主类"] = "约会", ["副类"] = "拍照", ["id"] = 220000000 ,["朋友圈大类"] = "日常" }},
{ key = "拍摄", value = { ["主类"] = "约会", ["副类"] = "拍照", ["id"] = 220000000 ,["朋友圈大类"] = "日常" }},
{ key = "合影", value = { ["主类"] = "约会", ["副类"] = "拍照", ["id"] = 220000000 ,["朋友圈大类"] = "日常" }},
{ key = "合照", value = { ["主类"] = "约会", ["副类"] = "拍照", ["id"] = 220000000 ,["朋友圈大类"] = "日常" }},
{ key = "合拍", value = { ["主类"] = "约会", ["副类"] = "拍照", ["id"] = 220000000 ,["朋友圈大类"] = "日常" }},
{ key = "徽章", value = { ["主类"] = "约会", ["副类"] = "徽章", ["id"] = 230000000 ,["朋友圈大类"] = "日常" }},
{ key = "喵呜", value = { ["主类"] = "约会", ["副类"] = "徽章", ["id"] = 230000000 ,["朋友圈大类"] = "日常" }},
{ key = "战斗", value = { ["主类"] = "战斗", ["副类"] = "战斗", ["id"] = 300000000 ,["朋友圈大类"] = "日常" }},
{ key = "时间", value = { ["主类"] = "时间", ["副类"] = "时间", ["id"] = 400000000 ,["朋友圈大类"] = "日常" }},
{ key = "登录", value = { ["主类"] = "时间", ["副类"] = "时间", ["id"] = 400000000 ,["朋友圈大类"] = "日常" }},
{ key = "节", value = { ["主类"] = "时间", ["副类"] = "时间", ["id"] = 410000000 ,["朋友圈大类"] = "日常" }},
{ key = "活动", value = { ["主类"] = "活动", ["副类"] = "活动", ["id"] = 500000000 ,["朋友圈大类"] = "活动" }},
{ key = "彩蛋", value = { ["主类"] = "彩蛋", ["副类"] = "彩蛋", ["id"] = 600000000 ,["朋友圈大类"] = "日常" }},
{ key = "饰", value = { ["主类"] = "彩蛋", ["副类"] = "服饰", ["id"] = 610000000 ,["朋友圈大类"] = "日常" }},
{ key = "服", value = { ["主类"] = "彩蛋", ["副类"] = "服饰", ["id"] = 610000000 ,["朋友圈大类"] = "日常" }},
{ key = "装扮", value = { ["主类"] = "彩蛋", ["副类"] = "装扮", ["id"] = 620000000 ,["朋友圈大类"] = "日常" }},
{ key = "其他", value = { ["主类"] = "其他", ["副类"] = "其他", ["id"] = 700000000 ,["朋友圈大类"] = "其他" }}
}
function p.getType(frame)
local inputString = frame.args[1]
local inputType = frame.args[2]
-- 首先检查字符串开头是否完全匹配
for _, item in ipairs(SETTING) do
local keyLength = string.len(item.key)
local strStart = string.sub(inputString, 1, keyLength)
if strStart == item.key then
return item.value[inputType]
end
end
-- 如果没有完全匹配,使用模糊匹配
for _, item in ipairs(SETTING) do
if string.find(inputString, item.key) then
return item.value[inputType]
end
end
return "其他"
end
function p.getID(frame)
local inputString = frame.args[1]
local inputType = "id"
-- 首先检查字符串开头是否完全匹配
for _, item in ipairs(SETTING) do
local keyLength = string.len(item.key)
local strStart = string.sub(inputString, 1, keyLength)
if strStart == item.key then
return item.value[inputType] + get_Date_Num(get_activity_Date(inputString))
end
end
-- 如果没有完全匹配,使用模糊匹配
for _, item in ipairs(SETTING) do
if string.find(inputString, item.key) then
return item.value[inputType] + get_Date_Num(get_activity_Date(inputString))
end
end
return SETTING[#SETTING].value.id + get_Date_Num(get_activity_Date(inputString))
end
--查找并返回日期>数字>0
function get_Date_Num(inputString)
-- 优先查找日期
local datePattern = "(%d+)-(%d+)-(%d+)"
local year, month, day = string.match(inputString, datePattern)
if year and month and day then
-- 将日期转换为YYYYMMDD格式的数字
return tonumber(year .. month .. day)
end
-- 如果没有日期,则查找数字
local number = string.match(inputString, "%d+")
if number then
return tonumber(number)
end
-- 如果既没有日期也没有数字,返回0
return 0
end
function get_activity_Date(inputString)
local askActivity = "0"
local askDate = "排序开始时间"
-- 提取[[「」]]里的内容(不包括[[和]])
local activityPattern = "%[%[「(.-)」%]%]"
local content = string.match(inputString, activityPattern)
if content then
askActivity = "「" .. content .. "」"
else
-- 如果没有找到[[「」]]格式,尝试查找普通的「」格式
local simplePattern = "「(.-)」"
content = string.match(inputString, simplePattern)
if content then
askActivity = "「" .. content .. "」"
end
end
-- 还是没有就直接返回inputString
if not content then
return inputString
end
local frame = mw.getCurrentFrame()
frame.args[1] = askActivity
frame.args[2] = askDate
local date = smw.show(frame)
return date
end
function p.test(frame)
local inputString = frame.args[1]
local askActivity = "0"
local askDate = "排序开始时间"
-- 提取[[「」]]里的内容(不包括[[和]])
local activityPattern = "%[%[「(.-)」%]%]"
local content = string.match(inputString, activityPattern)
if content then
askActivity = "「" .. content .. "」"
else
-- 如果没有找到[[「」]]格式,尝试查找普通的「」格式
local simplePattern = "「(.-)」"
content = string.match(inputString, simplePattern)
if content then
askActivity = "「" .. content .. "」"
end
end
-- 还是没有就直接返回inputString
if not content then
return inputString
end
return askActivity
end
return p