Відмінності між версіями «Модуль:Crimea»

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][перевірена версія]
(Створена сторінка: local str = {} function str.match( frame ) local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} ); l...)
 
Рядок 1: Рядок 1:
 
local str = {}
 
local str = {}
   
function str.match( frame )
+
function str.match( frame)
  +
local pframe = frame:getParent()
local new_args = str._getParameters( frame.args, {'s', 'pattern', 'start', 'match', 'plain', 'nomatch'} );
 
local s = new_args['s'] or '';
+
local args = pframe.args
local pattern = new_args['pattern'] or '';
+
local s = frame.args['s'];
local nomatch = new_args['nomatch'];
+
local pattern1 = '%"geo%"%>([%-%d%.]*)%;%s[%-%d%.]*%<';
  +
local pattern2 = '%"geo%"%>[%-%d%.]*%;%s([%-%d%.]*)%<';
 
 
 
local pt1 = mw.ustring.match( s, pattern1, 1 )
  +
local pt2 = mw.ustring.match( s, pattern2, 1 )
 
 
  +
if (pt1>44.346757) and (pt1<46.312251) and (pt2>32.333771) and (pt2<36.684498) then
local result
 
 
return args[2]
result = mw.ustring.match( s, pattern, start )
 
 
if result == nil then
 
return nomatch;
 
 
else
 
else
return result;
+
return args[1]
 
end
 
end
end
 
 
 
 
function str._getParameters( frame_args, arg_list )
 
local new_args = {};
 
local index = 1;
 
local value;
 
 
for i,arg in ipairs( arg_list ) do
 
value = frame_args[arg]
 
if value == nil then
 
value = frame_args[index];
 
index = index + 1;
 
end
 
new_args[arg] = value;
 
end
 
 
return new_args;
 
 
end
 
end
   

Версія за 20:56, 3 серпня 2018

Документацію для цього модуля можна створити у Модуль:Crimea/документація

local str = {}

function str.match( frame)
	local pframe = frame:getParent()
    local args = pframe.args
    local s = frame.args['s'];
    local pattern1 = '%"geo%"%>([%-%d%.]*)%;%s[%-%d%.]*%<';
    local pattern2 = '%"geo%"%>[%-%d%.]*%;%s([%-%d%.]*)%<';
    
    local pt1 = mw.ustring.match( s, pattern1, 1 )
    local pt2 = mw.ustring.match( s, pattern2, 1 )
    
    if (pt1>44.346757) and (pt1<46.312251) and (pt2>32.333771) and (pt2<36.684498) then
    	return args[2]
    else
    	return args[1]
    end
end

return str