Модуль:GAS

Материал из Справочника наблюдателя
Перейти к:навигация, поиск

(i)      Описание модуля[]

Функция Addr выдает имя поддомена региона в ГАС «Выборы» по названию региона.

Пример: «{{#invoke:GAS|Addr|Москва}}» → «moscow-city».

Функция Page выдает URL основной страницы выборов в региональном сегменте ГАС «Выборы» по любому URL этих выборов.

Пример: «{{#invoke:GAS|Page|1=http://www.vybory.izbirkom.ru/region/izbirkom?action=show&vrn=4054004122442&region=5&prver=0&pronetvd=null}}» → «http://www.dagestan.vybory.izbirkom.ru/region/dagestan?action=show&region=5&vrn=4054004122442». «{{#invoke:GAS|Page|1=http://www.vybory.izbirkom.ru/region/izbirkom?action=show&vrn=2432000772863&region=43&prver=1&pronetvd=1<nowiki>}}» → «http://www.kirov.vybory.izbirkom.ru/region/kirov?action=show&region=43&vrn=2432000772863&prver=1pronetvd=1».


local p = {}

local regdata = mw.loadData( 'Module:RegionData' )

function p.Addr (frame)
	return regdata.name2[frame.args[1]].www;
end

function p._Page( url )
	local vrn = string.match( url or '', 'vrn=(%d+)' )
	if not vrn then
		return url
	end
	local reg1 = tonumber( string.match( url or '', 'region=(%d+)' ) or 0 )
	local reg = tonumber( string.sub( vrn, 2, 3 ))
	if reg == 0 or reg ~= reg1 then
		return url
	end
	local prver, pronetvd = string.match( url or '', 'prver=(%d+)' ), ( string.match( url or '', 'pronetvd=(%d+)' ) or 'null' )
	local vers = ''
	if prver and prver ~= '0' then
		vers = '&prver=' .. prver .. 'pronetvd=' .. pronetvd
	end
	local regwww = regdata.name2[regdata.code2name[ reg ]].www
	return 'http://www.' .. regwww .. '.vybory.izbirkom.ru/region/' .. regwww 
		.. '?action=show&region=' .. reg .. '&vrn=' .. vrn .. vers
end

function p.Page( frame )
	return p._Page( frame.args[1] )
end

 
return p