Module:Stbox

来自维基导游
跳到导航 跳到搜索
文档图示 模块文档[创建]
local p = {}
local name = {
	district='区',
	city='城市',
	airport='机场',
	park='公园',
	diveguide='潜水点',
	region='地区',
	country='国家',
	continent='洲',
	itinerary='旅行路线',
	topic='话题',
	phrasebook='会话手册',
	usable='可用',
	outline='大纲',
	guide='指南',
	star='明星',
}
local usabletext = {
	district='有抵达信息以及一些完整的餐馆和旅馆列表项',
	city='有抵达信息以及一些完整的餐馆和旅馆列表项',
	airport='有关于[[Wikivoyage:机场条目模板#航班|航班]]和[[Wikivoyage:机场条目模板#地面交通|地面交通]]的信息以及一些完整的机场内餐饮选择列表项',
	park='有关于这个公园的抵达、少许景点和园内住宿信息',
	diveguide='有关于地点和设备的信息以及一些完整的景观列表项',
	region='提供了关于此地区在视觉、抵达等多方面的信息以及指向与之相关的主要目的地的链接',
	country='拥有一些关于抵达此国家和连接到其他目的地的链接',
	continent='拥有一些关于此大洲和到其他目的地的链接',
	itinerary='讲解说明了如何抵达那里并提及了路上需要注意的要点',
	topic='提及了关于此话题的大主题',
	phrasebook='讲解了旅游最基本交流用语的发音'
}
local guidetext = {
	district='包括旅馆、餐馆、景点、抵达和下一站信息在内的',
	city='包括旅馆、餐馆、景点、抵达和下一站信息在内的',
	airport='包括航班、地面交通、餐馆、抵达和下一站信息在内的',
	park='包括景点、活动、住宿、宿营地、餐馆和抵达/下一站信息在内的',
	diveguide='包括地点、条件与设备和关于海洋生物及其他景观的信息在内的',
	region='遍及整个地区及地区内所有目的地的',
	country='包括游览地点链接、景点、抵达和下一站信息在内的关于这个国家的',
	continent='包括住宿、饮食、观光、抵达和下一站信息在内的',
	itinerary='覆盖整条路线的',
	topic='覆盖整个话题的',
	phrasebook='覆盖了所有主要的旅途话题的'
}
local startext = {
	itinerary='拥有覆盖整个旅行路线的优质的信息和可视化的内容',
	topic='有覆盖整个话题的优质文字信息和可视化信息',
	phrasebook='几乎覆盖了所有可能遇到的旅行交流的话题,由优质的文本、可视化信息组成'
}
function p.main(frame)
	args = frame:getParent().args
	entity = mw.wikibase.getEntityObject()
	title = mw.title.getCurrentTitle()
	wdstatus='outline'
	type=args.type or 'country'
	if entity then
		if entity.sitelinks.zhwikivoyage.badges[1]=='Q17559452' then
			wdstatus='usable'
		elseif entity.sitelinks.zhwikivoyage.badges[1]=='Q17437798' then
			wdstatus='guide'
		elseif entity.sitelinks.zhwikivoyage.badges[1]=='Q17437796' then
			wdstatus='star'
		end
	end
	status=args.status or wdstatus
	text='<div class="noprint">'
	text=text..'<table id="'..status..'_'..type..'" class="articleState" '
	if status=='star' then
		text=text..'style="border-style:double;border-width:6px;"'
	elseif status=='usable' then
		text=text..'style="border-style:dashed;border-width:2px;"'
	elseif status=='outline' then
		text=text..'style="border-style:dotted;border-width:2px;"'
	end
	text=text..'>\n'
	if status=='star' then
		text=text..'<td>[[Image:Cscr-featured.svg|30px]]</td>'
	end
	text=text..'\n<td>本[['
	if type=='park' then
		text=text..'Wikivoyage:地理分层#其他类型'
	elseif type=='diveguide' then
		text=text..'Wikivoyage:什么是潜水指南'
	elseif type=='itinerary' then
		text=text..'Wikivoyage:旅行路线'
	elseif type=='topic' then
		text=text..'旅行话题'
	elseif type=='phrasebook' then
		text=text..'会话手册'
	else
		text=text..'Wikivoyage:地理分层#'..name[type]
	end
	text=text..'|'..name[type]..'条目]]是[[Wikivoyage:'..name[status]..'条目|'..name[status]..']]条目'
	if status=='outline' then
		text=text..',需要更多内容。它有[[Wikivoyage:条目模板|条目模板]],但是目前没有充足的[[Wikivoyage:信息可以放在哪里|信息]]。'
		if type=='country' then
			text=text.."如果该国家列出了[[Wikivoyage:城市条目状态|城市]]和'''其他目的地''',那么它们可能并未全都达到'''可用'''状态;或者该国家没有[[Wikivoyage:国家条目状态|有效的地区结构]]和叙述所有抵达这里的典型方式的“抵达”段落。"
		end
		text=text..'请[[Wikivoyage:勇往直前|勇往直前]],[[Wikivoyage:如何编辑页面|帮助它充实]]!'
	elseif status=='usable' then
		text=text..'。它'..usabletext[type]..'。爱冒险的人可以直接使用此条目,但还是请[[Wikivoyage:勇往直前|勇往直前]],[[Wikivoyage:如何编辑页面|帮助它充实]]!'
	elseif status=='guide' then
		text=text..'。它有'..guidetext[type].."完整优质的信息。[[Wikivoyage:勇往直前|勇往直前]],帮助我们把它打造为'''[[Wikivoyage:明星条目|明星]]'''!"
	elseif status=='star' then
		text=text..'。它'..(startext[type] or '是由地图、照片和充足的信息组成的高品质条目')..'。如果你知道有什么新变化,请[[Wikivoyage:勇往直前|勇往直前]],[[Wikivoyage:如何编辑页面|帮助它充实]]!'
	end
	text=text..'</td></table></div>'
	if title.namespace == 0 then
		text=text..'[[Category:'..name[status]..name[type]..']][[Category:'..name[status]..'条目]][[Category:'..name[type]
		if type=='phrasebook' or type=='itinerary' then
			text=text..']]'
		else
			text=text..'条目]]'
		end
		if type=='region' then
			subcats=mw.site.stats.pagesInCategory( title.text, 'subcats' )
			pages=mw.site.stats.pagesInCategory( title.text, 'pages' )
			if subcats+pages==0 then
				text=text..'[[Category:空地区]]'
			end
			if not mw.title.new( title.text, 14 ).exists then
				text=text..'[[Category:无分类地区]]'
			end
			if subcats==0 then
				text=text..'[[Category:底层地区]]'
			end
			if pages>25 then
				text=text..'[[Category:多于25个条目的地区]]'
			end
			if pages>40 then
				text=text..'[[Category:多于40个条目的地区]]'
			end
			if subcats>9 then
				text=text..'[[Category:多于9个下级地区的地区]]'
			end
		elseif type~='topic' and type~='continent' and type~='country' and mw.title.new( title.text, 14 ).exists then
			text=text..'[[Category:有分类的'..name[type]..']]'
		end
		if wdstatus~=status then
			text=text..'[[Category:需要更新维基数据徽章的页面|'
			if wdstatus=='outline' then
				text=text..string.upper(string.sub(status,1,1))
			elseif status=='outline' then
				text=text..'-'
			else
				text=text..string.sub(status,1,1)
			end
			text=text..']]'
		end
	end
	return text
end

return p