Wikipedia:Dugnadskontor/Bytte lenker til NFF-lenke-mal

Bytte lenker til NFF-lenke-mal rediger

Lagt inn av: -- Stigmj (diskusjon) 10. jun. 2016 kl. 11:58 (CEST)[svar]

Fjerne eksterne lenker til fotball.no og erstatte med bruk av {{NFF-lenke}} der dette er mulig.


Tekniske detaljer på foreslått kjøring rediger

Hvilket script som kjøres med lenke til kildekode/hjemmeside.
Hvilke parametre som benyttes.
  1. python pwb.py replace.py -ns:0 -ns:10 -fix:nff-fix -search:"/insource:https?:\/\/www\.fotball\.no\/System/"
  2. python pwb.py replace.py -ns:0 -ns:10 -fix:nff-fix -transcludes:"NFFkamp"
def nff_fix(m):
	import pywikibot
	from pywikibot import textlib
	templates = textlib.extract_templates_and_params(m.group(0))
	nff = '{{NFF-lenke|' + m.group('id')
	suffix = ''
	if m.group('type') == 'Kampfakta':
		nff = nff + '|kamp|'
	elif m.group('type') == 'Tabell':
		nff = nff + '|turnering|'
	elif m.group('type') == 'TabellTermin':
		nff = nff + '|terminliste|'
	nff = nff + 'kilde}}'
	ret = ''
	for (template, fielddict) in templates:
		ret = '{{' + template
		for field, value in fielddict.items():
			field = field.strip()
			value = value.strip()
			if field == m.group('kilde'):
				ret = '%s|%s=%s' % (ret, field, nff)
			elif value != '':
				ret = '%s|%s=%s' % (ret, field, value) 
		
	ret = ret + '}}'
	
	return ret

fixes['nff-fix']= {
	'regex': True,
	'nocase': True,
	'recursive': True,
	'msg': {
		'_default':u'[[Wikipedia:Dugnadskontor/Bytte lenker til NFF-lenke-mal|Erstatte lenker med NFF-mal]]',
	},
	'replacements': [
		(ur'\[https?://www\.fotball\.no/System-pages/Kampfakta/\?matchId=(?P<id>\w+) *(?P<comment>[^\]]*)\]',
			lambda m:( '{{NFF-lenke|' + m.group('id') + '|kamp' + (m.group('comment') and '|' + m.group('comment') or '') + '}}' )  ), # rewriting
		(ur'\[https?://www\.fotball\.no/System-pages/Tabell/\?tournamentId=(?P<id>\w+) *(?P<comment>[^\]]*)\]',
			lambda m:( '{{NFF-lenke|' + m.group('id') + '|turnering' + (m.group('comment') and '|' + m.group('comment') or '') + '}}' )  ), # rewriting
		(ur'\[https?://www\.fotball\.no/System-pages/TabellTermin/\?tournamentId=(?P<id>\w+) *(?P<comment>[^\]]*)\]',
			lambda m:( '{{NFF-lenke|' + m.group('id') + '|terminliste' + (m.group('comment') and '|' + m.group('comment') or '') + '}}' )  ), # rewriting
		(ur'(\{\{\s*[Kk]ilde[_ ](?:www|web)\s*\|[^}]*?(?P<kilde>url)\s*=\s*https?://www\.fotball\.no/System-pages/(?P<type>[^\/]+)/\?(?:match|tournament)Id=(?P<id>\w+)\s*(?:\||\})[^\}]*?\}\})',  nff_fix),
		(ur'(\{\{\s*[Cc]ite[_ ]web\s*\|[^}]*?(?P<kilde>url)\s*=\s*https?://www\.fotball\.no/System-pages/(?P<type>[^\/]+)/\?(?:match|tournament)Id=(?P<id>\w+)\s*(?:\||\})[^\}]*?\}\})',  nff_fix),
		(ur'(\{\{\s*(?:[Ss]erietabell[_ ]footer|[Ss]pillerstall[_ ]vedlikehold)[\s\n]*\|[^}]*?(?P<kilde>(?:kilde|oppdateringskilde))\s*=\s*https?://www\.fotball\.no/System-pages/(?P<type>[^\/]+)/\?(?:match|tournament)Id=(?P<id>\w+)\s*[^\}]*?\}\})',  nff_fix),
		(ur'(<ref>\s*https?://www\.fotball\.no/System-pages/Kampfakta/\?(?:match|tournament)Id=(?P<id>\w+) *(?P<comment>[^<]*)\s*</ref>)',  
			lambda m:( '<ref>{{NFF-lenke|' + m.group('id') + '|kamp' + (m.group('comment') and '|' + m.group('comment') or '') + '}}</ref>' )  ), # rewriting
		(ur'(<ref>\s*https?://www\.fotball\.no/System-pages/Tabell/\?(?:match|tournament)Id=(?P<id>\w+) *(?P<comment>[^<]*)\s*</ref>)',
			lambda m:( '<ref>{{NFF-lenke|' + m.group('id') + '|turnering' + (m.group('comment') and '|' + m.group('comment') or '') + '}}</ref>' )  ), # rewriting
		(ur'(<ref>\s*https?://www\.fotball\.no/System-pages/TabellTermin/\?(?:match|tournament)Id=(?P<id>\w+) *(?P<comment>[^<]*)\s*</ref>)',
			lambda m:( '<ref>{{NFF-lenke|' + m.group('id') + '|terminliste' + (m.group('comment') and '|' + m.group('comment') or '') + '}}</ref>' )  ), # rewriting
		(ur'\{\{\s*NFFKamp\s*\|\s*(\d+)\s*([^\}]*?)\}\}', ur'{{NFF-lenke|\1|kamp\2}}' ),
	],
	'exceptions': {
		'inside-tags': [
			'nowiki', 
			'source',
			'pre',
		],
	}
}
Lenke til eventuelt datagrunnlag der dette er mulig å fremvise.

Testkjøring rediger

Bevis på testkjøring uten at noen faktiske endringer er utført. Legges helst inn som en underside av denne jobben

Diskusjon rediger

Kjører denne nå. -- Stigmj (diskusjon) 10. jun. 2016 kl. 12:29 (CEST)[svar]

Er vel nå mer eller mindre ferdig med det som kan tas automatisk. -- Stigmj (diskusjon) 10. jun. 2016 kl. 20:55 (CEST)[svar]