Wikipedia:Dugnadskontor/Legge til Sportslenker

Fra Wikipedia, den frie encyklopedi

Legge til Sportslenker[rediger kilde]


Lagt inn av: Løken (diskusjon) 25. mar. 2016 kl. 18:17 (CET)[svar]
{{Sportslenker}} blir større og større og flere og flere element får lenker. Det trenger dermed mer automatisk innlegging av sportslenker som før ble gjort av blant annet Profbot og spesielt Jebladbot. Det hadde vært ønskelig om man samtidig fjerner dubletter som oppstår og fjerner eventuelle kildeløsmaler. Hvem kan ta jobben?


Tekniske detaljer på foreslått kjøring[rediger kilde]

Hvilket script som kjøres med lenke til kildekode/hjemmeside.
Hvilke parametre som benyttes.
  • python pwb.py replace.py -wikidataquery:"claim[1285] or claim[1447] or claim[2323] or claim[2593] or claim[536] or claim[597] or claim[599] or claim[2641] or claim[2642] or claim[1146] or claim[2090] or claim[2162] or claim[1409] or claim[1541] or claim[1664] or claim[1663] or claim[2350] or claim[2481] or claim[2602] or claim[2601] or claim[2459] or claim[858] or claim[861] or claim[1825] or claim[1826] or claim[2482] or claim[1967] or claim[2091] or claim[2423] or claim[2640] or claim[1364] or claim[1469] or claim[2276] or claim[2020] or claim[2193] or claim[2195] or claim[2369] or claim[2446] or claim[2447] or claim[2574] or claim[2398] or claim[1238] or claim[2448] or claim[2449] or claim[2458]" -fix:sportslenker
def sportslenker_fix(m):
	import pywikibot
	import regex
	output = m.group(0)
	# first let's check for bailouts
	sportslenker = regex.findall(u'({{[Ss]portslenker}})', output)
	if len(sportslenker) > 0:
		return output
	# now let's check for existing "eksterne lenker"
	eksternelenkersection = regex.finditer(u'((?P<preamble>(?:\n|^))(?P<section>(?P<marker>===*) *(?:[Ee]ksterne? lenker?) *(?P=marker)(?:<!--[\s\S]*?-->)?)(?P<suff>[\s\S]*?\n\n))', output)
	# if it's there, let's check if it's easy to add to it:
	found_section = False
	for eksternelenker in eksternelenkersection:
		start = eksternelenker.start()
		end = eksternelenker.end()
		#check if there is an "offisielle lenker" there
		offisiellelenker = regex.finditer(u'(\n(:*\*+:*) *{{\s*(?:mal:\s*|template:\s*)?(?:[Oo]ffisiell?[et]?[_ ]*(?:lenker?|nettsted|blogg)*|[Hh]jemmeside|[Nn]ettsted|[Mm]ate-URL) *((?:\|[^}]*}|})})[^\n]*)', eksternelenker.group(0))
		for olenke in offisiellelenker:
			found_section = True
			pos = eksternelenker.start() + olenke.end()
			# so we found it, let's add our sportslenker
			output = output[0:pos] + "\n* {{Sportslenker}}" + output[pos:]
			break
		if not found_section:
			found_section = True
			pos = eksternelenker.start() + len(eksternelenker.group('section')) + 1
			#we found the section, but no offisielle lenker, so let's put it on top?
			output = output[0:pos] + "\n* {{Sportslenker}}" + output[pos:]
		break
	if not found_section:
		#it's not there, so let's add it, but find the appropriate place first
		#check for any section
		lastsection = regex.finditer(u'((?:\n|^)(?P<marker>===*) *[^=].*? *(?P=marker)(?![\s\S]*===*)[\s\S]*?)(?:\n{{.*?}}|\n\[\[ *(?:[Kk]ategori:|[Cc]ategory:)|$)', output)
		for section in lastsection:
			found_section = True
			start = section.start()
			end = start + len(section.group(1))
			output = output[0:end] + "\n== Eksterne lenker ==\n* {{Sportslenker}}\n" + output[end:]
			break
		if not found_section:
			#Still no place, find the end of the article
			lastsection = regex.finditer(u'(?P<tmpl>(?:{{.*?}}(?:[\s\n]|\s*<!--.*?-->)+)+)*(?P<cat>\[\[ *(?:[Kk]ategori:|[Cc]ategory:))', output)
			for section in lastsection:
				found_section = True
				start = section.start()
				end = section.end()
				output = output[0:start] + "== Eksterne lenker ==\n* {{Sportslenker}}\n\n" + output[start:]
				break #nasty, but we only process the first hit.
	return output

fixes['sportslenker']= { # can run with -recursive and -allowoverlap
	'regex': True,
	'recursive': False,
	'nocase': False,
	'allowoverlap': False,
	'msg': {
		'_default':u'[[WP:D/Botjobb/4|legge til sportslenker]]',
	},
	'replacements': [
		(ur'(^[\s\S]+$)', sportslenker_fix),
		
	],
	'exceptions': {
		'inside-tags': [
			'nowiki', 
			'source',
			'pre',
			'comment',
		],
		'text-contains': [
			ur'{{[Ss]portslenker}}',
		],
	}
}
Lenke til eventuelt datagrunnlag der dette er mulig å fremvise.

Testkjøring[rediger kilde]

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

Diskusjon[rediger kilde]

Hvis konsensus er for kjøringen, skal det settes en dato / tid for når kjøringen i henhold til retningslinjene kan utføres tidligst.

Kanskje kan en eventuelt kjøring samtidig plassere "offisielt nettsted" over sportslenker og "commons-lenke" over "offisielt nettsted" igjen (jeg er klar over at commonslenke kanskje faller ut etterhvert, men synes den gjør seg best øverst inntil videre, særlig siden den har "ikon" i stedet for punktmerke). --Wikijens (diskusjon) 25. mar. 2016 kl. 18:25 (CET)[svar]

Jeg ville hatt commonslenken sist hvis den skal være med, men det er vel snakk om smak og behag her. --Avilena (diskusjon) 26. mar. 2016 kl. 09:50 (CET)[svar]
Ok, men "offisielt nettsted" over sportslenker er det vel enighet om? Jeg synes det ligger litt i kortene at hvis noe(n) har et offisielt nettsted, er dette den naturlige første eksterne lenken. --Wikijens (diskusjon) 26. mar. 2016 kl. 11:38 (CET)[svar]
Litt på siden, men relatert: Kunne det være mulig å få laget en liste over artikler i Kategori:Deltakere under Sommer-OL 2012 (med underkategorier), som mangler malen/modulen Sportslenker? Jeg kunne gjerne ta en manuell gjennomgang for å se om det er noen som kan få sports-reference på wikidata, evt. for de som mangler (typisk reserver) kan jeg lete litt etter alternative databaser. Dette med tanke på OL 2016, hvor det ville være fint hvis alle deltagerartikler har, om ikke enkeltreferanser, i det minste lenke til resultatdatabaser. --Wikijens (diskusjon) 25. mar. 2016 kl. 20:24 (CET)[svar]
@Wikijens: 2676 articles without template; 1132 articles without SR link. Note, that there are still some 40 000 SR profiles, not connected to any WD item :) --Edgars2007 (diskusjon) 25. mar. 2016 kl. 20:48 (CET)[svar]
@Edgars2007: Great. Thanks for all these statistics! --Wikijens (diskusjon) 25. mar. 2016 kl. 21:45 (CET)[svar]
Less than 800 without template now. I guess most of them will get sports-reference-id eventually. The rest, typically team reserves etc. will hopefully get fifa-id or equivalent. Good job everyone! Og beklager engelsk. --Wikijens (diskusjon) 28. mar. 2016 kl. 19:10 (CEST)[svar]
There will be more 86 articles, where SR profile was added recently (today). I wouldn't be so optimistic about FIFA and other (sport-specific) properties, but most of them should have at least one. --Edgars2007 (diskusjon) 28. mar. 2016 kl. 22:02 (CEST)[svar]
Håper innleggingen kan, i hvertfall i første omgang, begrense seg til artikler som har sportslenker på wikidata. --Avilena (diskusjon) 26. mar. 2016 kl. 09:50 (CET)[svar]
Ja, det bør kun være de som har lenker i sitt element. Håpet mitt er at denne boten som skal utføre dette vil kjøre en gang i døgnet eller noe, slik at det blir gjort flere enn en gang i måneden. --- Løken (diskusjon) 26. mar. 2016 kl. 11:47 (CET)[svar]
@Løken:Jeg har snekret sammen et kjapt script som lytter på recent changes fra wikidata og tanken er å kanskje lage oversikter over artikler som skal sjekkes av en bot en gang i døgnet. Så kan vi evt. kjøre fulle "runder" hver måned for å få med de som eventuelt har blitt oversett av en eller annen grunn. Stigmj (diskusjon) 26. mar. 2016 kl. 20:54 (CET)[svar]
Høres bra ut. Dette er jo ikke noe som haster, men håper jo at dette er noe som kan gå rimelig automatisk slik at vi sportsidiotene slipper å spørre deg eller Profoss hver gang det blir lagt til et element eller en database. --- Løken (diskusjon) 27. mar. 2016 kl. 20:39 (CEST)[svar]

Nøyaktig hva er det dere ønsker utført her? Stigmj (diskusjon) 26. mar. 2016 kl. 12:37 (CET)[svar]

At en bot legger til {{Sportslenker}} der det ikke er lagt inn. Se tidligere forespørsler hos Profoss og Jon Harald. --- Løken (diskusjon) 26. mar. 2016 kl. 12:52 (CET)[svar]
Det er viktig å dokumentere hva som forespørres utført og hva som faktisk skal gjøres og hvordan her i denne oppgaven både for de som lurer på hva som skjer og for å kunne gjenbruke dette i etterkant. Brukerdiskusjonssider kan fjernes og redigeres, noe som gjør de relativt uegnede som dokumentasjon i etterkant. Hvis jeg forstå dette riktig da, ønsker dere at en bot skal sjekke alle artikler som har claims for følgende properties i WD og legge inn {{Sportslenker}} dersom de ikke allerede har dette (hentet fra Modul:Sportslenker):
P1285, P1447, P2323, P2593, P536, P597, P599, P2641, P2642, P1146, P2090, P2162, P1409, P1541, P1664, P1663, P2350, P2481, P2602, P2601, P2459, P858, P861, P1825, P1826, P2482, P1967, P2091, P2423, P2640, P1364, P1469, P2276, P2020, P2193, P2195, P2369, P2446, P2447, P2574, P2398, P1238, P2448, P2449, P2458. Stemmer det? Stigmj (diskusjon) 26. mar. 2016 kl. 13:05 (CET)[svar]
Ja alle som er inkludert i modulen ja. For eksempel la jeg til to sjakkdatabaser nå, men det mange sjakkspillere som har sportslenker på WD men ikke har malen på siden sin. Det lages jo også properties hele tiden (bare nå er det jo over 5 til vurdering) og det vil komme flere og flere. --- Løken (diskusjon) 26. mar. 2016 kl. 13:08 (CET)[svar]

Har nå kjørt to testtilfeller her: Adrian Crișan (denne hadde jeg fjernet fra først) og Graham Taylor samt at jeg har kjørt testkjøring uten å lagre først. Legg merke til at jeg tenker å kjøre en del andre fikser i samme kjøring siden jeg må innom og sjekke alle artiklene uansett, så det betyr at omfanget av endringer vil bli mye større enn hvis jeg bare hadde lagt inn sportslenkene. Det vil tas med fikser for Fikse html-tagger, firstcap maler og mellomrom og legge til mellomrom i overskrifter. Eventuelle påfølgende kjøringer vil da ha betraktelig mindre støy. Jeg kommer ikke til å sette i gang denne kjøringen enda da jeg må sjekke noen spesialtilfeller enda, men basert på omfanget og antall artikler involvert, vil jeg anta at dette vil kunne ta opp til 24 timer å gjennomføre når den først settes i gang. Stigmj (diskusjon) 26. mar. 2016 kl. 21:16 (CET)[svar]

Har nå kjørt gjennom en hel rekke artikler og funnet noen småbugs som jeg har rettet opp underveis, men det som er mest problematisk nå er at det er relativt ofte at selve claim'et er definert, men at det ikke er noen verdi i wikidata. Se f.eks. Margaret_Osborne_duPont som har både P599 og P597 definert, men uten noen verdier. Stigmj (diskusjon) 27. mar. 2016 kl. 17:38 (CEST)[svar]
Virker som om det kun er kvinnelige tennisspillere det gjelder. Kan du inntil videre hoppe over disse to (P597 og P599) i botkjøringen, og gå videre, så kan vi evt. se om Kategori:Artikler uten sportslenker fra Wikidata skulle ese ut igjen? --Wikijens (diskusjon) 27. mar. 2016 kl. 19:34 (CEST)[svar]
Da har botten kjørt ferdig og har gått gjennom rundt 42 000 artikler, gjort rettelser i rundt 36 500 av disse og lagt til {{Sportslenker}} i 4059 artikler. Stigmj (diskusjon) 28. mar. 2016 kl. 18:16 (CEST)[svar]
Ser for øvrig at {{Sportslenker}} nå er brukt i 42 199 sider. Stigmj (diskusjon) 28. mar. 2016 kl. 18:19 (CEST)[svar]

Mulig det allerede er korrigert for, men her blir rekkefølgen feil. --Avilena (diskusjon) 12. apr. 2016 kl. 18:36 (CEST)[svar]

@Stigmj: Kan denne kjøres på nytt? Er lagt til en del elementer i Sportslenker nå =) --- Løken (diskusjon) 27. okt. 2016 kl. 16:35 (CEST)[svar]

@Løken: Kan du sette opp en liste over hvilke claims som nå er lagt til og som skal brukes som grunnlag for hvilke artikler som skal kjøres på? -- Stigmj (diskusjon) 14. nov. 2016 kl. 00:11 (CET)[svar]
Jeg kommer til å vente litt med å kjøre denne til spørsmålene angående underprosjektkategoriseringer er avklart i Wikipedia:Dugnadskontor/Standardisere_kategorier_i_wikiteksten. -- Stigmj (diskusjon) 14. nov. 2016 kl. 10:50 (CET)[svar]

@Stigmj: Jeg la til dette i oktober: [1]. Men håper at også de som allerede er lagt inn og som har fått et element til seg kan finnes. Tror det er en del. --- Løken (diskusjon) 14. nov. 2016 kl. 15:50 (CET)[svar]

Den er grei, når jeg jeg setter i gang botten, tar jeg med alle claimene. Venter da bare på avklaringen i den andre dugnaden. -- Stigmj (diskusjon) 14. nov. 2016 kl. 23:37 (CET)[svar]