模块:Awajie

来自有兽档案馆
顶呱呱的阿杰留言 | 贡献2024年1月11日 (四) 22:18的版本
文档图示 模块文档[创建] [跳转到代码]

本模块还没有文档页面。

您可以创建文档以让编者更好地理解本模块的用途。
编者可以在本模块的沙盒创建 | 镜像和测试样例创建页面进行实验。
请将模块自身所属的分类添加在文档中。本模块的子页面
local p = {}  

function p.test(frame)  
	local args = frame.args  
	local order = args[1]
	local name = args[2]
	local some = args[3]  
  
	local function contains(t, value)  
		for _, v in ipairs(t) do  
    		if v == value then  
    		return true  
    		end  
		end  
	return false  
	end  
	
	local function custom_sort(a, b)  
    	return tonumber(a) > tonumber(b)  
	end
	
	if name == nil or name == "" then 
		return "文本为空"
	end
    
    
	local pattern = "第(%d+)话"  
	local extracted_numbers = {}  
	for match in (some..pattern):gmatch(pattern) do  
    	if not contains(extracted_numbers, match) then  
    		table.insert(extracted_numbers, match)  
    	end  
	end  
	
	local sorted_t = {}  
  
	for i, x in ipairs(extracted_numbers) do  
		table.insert(sorted_t, tonumber(x))  
	end 
	
	if order == 'asc' then
		table.sort(sorted_t)
	elseif order == 'desc' then
		table.sort(sorted_t, custom_sort)
	end
	
  	local huashu = {} 
	for i, num in ipairs(sorted_t) do  
    	local new_value = "[[第" .. num .. "话]]"  
    	table.insert(huashu, new_value)  
	end 
	
	local plainlinks = "plainlinks"
	local namelur = "<span class=" ..plainlinks.. ">[https://youshou.wiki/wiki/Special:%E8%AF%A2%E9%97%AE/-5B-5BOnCamera:character-20name::"   ..name..  "-5D-5D/limit%3D50/format%3Dplainlist 查询更多]</span>"
	table.insert(huashu, namelur)

	local result = {}
	local counter = 0
	for _, val in ipairs(huashu) do  
    	table.insert(result, val)   
    	counter = counter + 1 
      
    	if counter % 14 == 0 and counter ~= #huashu then  
        	table.insert(result, "<br>")    
    	end  
    	if counter % 14 ~= 0 then 
        	table.insert(result, "  ·  ")  
        end
	end
	
	local lastElement = table.remove(result)  
	if lastElement ~= "  ·  " then  
    	table.insert(result, lastElement)  
	end
  
	local output = table.concat(result, "")  
	return output
end 

return p