Hauptmenü öffnen

Memory Alpha Nova β

Änderungen

Benutzer Diskussion:Kobi/Archiv1

2.236 Bytes hinzugefügt, 12:57, 8. Apr. 2005
Python Bot Fehler: Sortierschlüssel Kategorie
Hi Kobi. Ich hatte jetzt das Interwiki-Link Problem mit "[[:en:" gelöst, sowie das Problem, dass der Bot Wiki-Tabellen zerstört durch das Löschen der Interwiki-Links (siehe [[Benutzer:DataMA|DataMA]]). Bei der Kategorisierung der [[TOS Staffel 1|ersten TOS Staffel]] hat sich dann noch ein Nebeneffekt herausgestellt: [http://www.memory-alpha.org/de/index.php?title=Krieg_der_Computer&curid=974&diff=0&oldid=13102&rcid=5355] Der Bot nimmt den [[:en: Link und baut einen [[en: Link ein. Vielleicht hattest du noch ein paar Fehler auf der Wunschliste? -- [[Benutzer:Florian K|Florian]] - [[{{ns:user_talk}}:Florian K|''{{ns:talk}}'']] 04:27, 31. Mär 2005 (EST)
 
Die Kategorisierung ist bei allen Episodentiteln ohne Namenskonvention durchgeführt worden. Um das zu verbessern habe ich die category.py angepasst, da mir der Sortierschlüssel der Personen passend erschien. Allerdings musste ich die py-Datei anpassen. Folgende def ist umgeschrieben:
<pre>def sorted_by_last_name(catlink, pagelink):
'''
given a CatLink, returns a CatLink which has an explicit sort key which
sorts persons by their last names.
Trailing words in brackets will be removed.
Example: If category_name is 'Author' and pl is a PageLink to
[[Alexandre Dumas (senior)]], this function will return this CatLink:
[[Category:Author|Dumas, Alexandre]]
'''
page_name = pagelink.linkname()
site = pagelink.site()
# regular expression that matches a name followed by a space and
# disambiguation brackets. Group 1 is the name without the rest.
bracketsR = re.compile('(.*) \(.+?\)')
match_object = bracketsR.match(page_name)
if match_object:
page_name = match_object.group(1)
split_string = page_name.split(' ')
if len(split_string) > 1 and (split_string[0] == 'Der' or split_string[0] == 'Die' or split_string[0] == 'Das' or split_string[0] == 'Ein' or split_string[0] == 'Eine'):
# we will concatinate the pagename beginning from the second word until the end with the first word
# e.g. "Das koerperlose Wesen" becomes "koerperlose Wesen, Das"
sorted_key = string.join(split_string[1:len(split_string)], ' ') + ', ' + split_string[0]
# give explicit sort key
return wikipedia.PageLink(site, catlink.linkname() + '|' + sorted_key)
else:
return wikipedia.PageLink(site, catlink.linkname())
</pre>
Da die Funktion "-person" jetzt nur noch für der/die/das/ein/eine Artikel-Namen funktioniert, würde ich empfehlen, die bestehende category.py zu kopieren und die neue Datei (category-ep.py) zu verändern. Ich werde anschließend den Sortierschlüssel der Episoden neu ordnen. -- [[Benutzer:Florian K|Florian]] - [[{{ns:user_talk}}:Florian K|<big><big>&#9997;</big></big> talk]] 07:57, 8. Apr 2005 (EDT)
Anonymer Benutzer