Difference between revisions of "Module:Emoji"

From blackwiki
Jump to navigation Jump to search
blackwiki>Trappist the monk
(moved data table to Module:Emoji/data where it belongs;)
blackwiki>RexxS
(we can simplify this if the data is loaded externally)
Line 1: Line 1:
 
 
local p= {}
 
local p= {}
local emotbl = mw.loadData ('Module:Emoji/data');
+
local emodata = mw.loadData ('Module:Emoji/data')
  
 
function p.emocode(frame)
 
function p.emocode(frame)
 +
local emotbl = emodata.emotbl
 
local emoname = mw.text.trim(frame.args[1] or "smiley")
 
local emoname = mw.text.trim(frame.args[1] or "smiley")
 
return emotbl[emoname] or emoname
 
return emotbl[emoname] or emoname
Line 9: Line 9:
  
 
function p.emoname(frame)
 
function p.emoname(frame)
 +
local emorevtbl = emodata.emorevtbl
 
local emocode = mw.text.trim(frame.args[1] or "1f603")
 
local emocode = mw.text.trim(frame.args[1] or "1f603")
local match
+
return emorevtbl[emocode] or emocode
for k, v in pairs(emotbl) do
 
if v == emocode then
 
match = k
 
break
 
end
 
end
 
return match or emocode
 
 
end
 
end
  
 
return p
 
return p

Revision as of 22:15, 24 March 2019

Module:Emoji implements two functions:

emocode 
It takes one unnamed parameter, the name of the emoji, and returns the hex code for the corresponding emoji. If no name is supplied it uses "smiley" as the default (and returns 1f603).
emoname 
It takes one unnamed parameter, the hex code of the emoji, and returns the name for the corresponding emoji. If no name is supplied it uses "1f603" as the default (and returns smiley).

It stores the mapping from name to code in Module:Emoji/data, which internally generates the reverse lookup table from code to name.

Examples

  • {{#invoke:Emoji | emocode | wink}}1f609
  • {{#invoke:Emoji | emocode | grin}}1f601
  • {{#invoke:Emoji | emocode | 8ball}}1f3b1
  • {{#invoke:Emoji | emocode }}1f603
  • {{#invoke:Emoji | emoname | 1f62b}}tired_face
  • {{#invoke:Emoji | emoname }}smiley



local p= {}
local emodata = mw.loadData ('Module:Emoji/data')

function p.emocode(frame)
	local emotbl = emodata.emotbl
	local emoname = mw.text.trim(frame.args[1] or "smiley")
	return emotbl[emoname] or emoname
end

function p.emoname(frame)
	local emorevtbl = emodata.emorevtbl
	local emocode = mw.text.trim(frame.args[1] or "1f603")
	return emorevtbl[emocode] or emocode
end

return p