Revision: 4532
Author: erwin85
Date: 2007-11-12 20:40:56 +0000 (Mon, 12 Nov 2007)
Log Message:
-----------
solve_dismabiguation.py
* add new targets to edit summary
* ignore my user page
Modified Paths:
--------------
trunk/pywikipedia/solve_disambiguation.py
Modified: trunk/pywikipedia/solve_disambiguation.py
===================================================================
--- trunk/pywikipedia/solve_disambiguation.py 2007-11-12 14:32:28 UTC (rev 4531)
+++ trunk/pywikipedia/solve_disambiguation.py 2007-11-12 20:40:56 UTC (rev 4532)
@@ -76,46 +76,87 @@
# Summary message when working on disambiguation pages
msg = {
- 'cs': u'Odstranění linku na rozcestník [[%s]] s použitím robota',
- 'en': u'Robot-assisted disambiguation: %s',
- 'da': u'Retter flertydigt link til: %s',
- 'de': u'Bot-unterstützte Begriffsklärung: %s',
- 'fr': u'Homonymie résolue à l\'aide du robot: %s',
- 'he': u'תיקון הפניה לדף פירושונים באמצעות בוט: %s',
- 'ia': u'Disambiguation assistite per robot: %s',
- 'it': u'Sistemazione automatica della disambigua: %s',
- 'lt': u'Nuorodų į nukrepiamąjį straipsnį keitimas: %s',
- 'kk': u'Айрықты мағыналарды бот көмегімен шешу: %s',
- 'nl': u'Robot-geholpen doorverwijzing: %s',
- 'no': u'bot: Retter lenke til peker: %s',
- 'pl': u'Wspomagane przez robota ujednoznacznienie: %s',
- 'pt': u'Desambiguação assistida por bot: %s',
- 'ru': u'Разрешение значений с помощью бота: %s',
- 'sr': u'Решавање вишезначних одредница помоћу бота: %s',
- 'sv': u'Länkar direkt till rätt artikel för: %s',
+ 'cs': u'Odstranění linku na rozcestník [[%s]] s použitím robota - Změněn(y) odkaz(y) na %s',
+ 'en': u'Robot-assisted disambiguation: %s - Changed link(s) to %s',
+ 'da': u'Retter flertydigt link til: %s - Ændrede link(s) til %s',
+ 'de': u'Bot-unterstützte Begriffsklärung: %s - Link(s) ersetzt durch %s',
+ 'fr': u'Homonymie résolue à l\'aide du robot: %s - Modifications du (des) lien(s) pour %s',
+ 'he': u'תיקון קישור לדף פירושונים באמצעות בוט: %s שונה ל%s',
+ 'ia': u'Disambiguation assistite per robot: %s - Changed link(s) to %s',
+ 'it': u'Sistemazione automatica della disambigua: %s - Inversione di redirect %s',
+ 'lt': u'Nuorodų į nukrepiamąjį straipsnį keitimas: %s - Pakeistos nuorodos į %s',
+ 'kk': u'Айрықты мағыналарды бот көмегімен шешу: %s - Changed link(s) to %s',
+ 'nl': u'Robot-geholpen doorverwijzing: [[%s]] - Link(s) veranderd naar %s',
+ 'no': u'bot: Retter lenke til peker: %s - Endret lenke(r) til %s',
+ 'pl': u'Wspomagane przez robota ujednoznacznienie: %s - Zmieniono link(i) %s',
+ 'pt': u'Desambiguação assistida por bot: %s - Mudado(s) link(s) para %s',
+ 'ru': u'Разрешение значений с помощью бота: %s - Changed link(s) to %s',
+ 'sr': u'Решавање вишезначних одредница помоћу бота: %s - Changed link(s) to %s',
+ 'sv': u'Länkar direkt till rätt artikel för: %s - Bytte länk(ar) till %s',
}
+# Summary message when working on disambiguation pages and the link is removed
+msg_unlink = {
+ 'cs': u'Odstranění linku na rozcestník [[%s]] s použitím robota - Odstraněn(y) odkaz(y)',
+ 'en': u'Robot-assisted disambiguation: %s - Removed link(s).',
+ 'da': u'Retter flertydigt link til: %s - Fjernede link(s)',
+ 'de': u'Bot-unterstützte Begriffsklärung: %s - Link(s) entfernt',
+ 'fr': u'Homonymie résolue à l\'aide du robot: %s - Retrait du (des) lien(s)',
+ 'he': u'הסרת קישור לדף פירושונים באמצעות בוט: %s',
+ 'ia': u'Disambiguation assistite per robot: %s - Removed link(s).',
+ 'it': u'Sistemazione automatica della disambigua: %s - Collegamenti rimossi',
+ 'lt': u'Nuorodų į nukrepiamąjį straipsnį keitimas: %s - Pašalintos nuorodos',
+ 'kk': u'Айрықты мағыналарды бот көмегімен шешу: %s - Removed link(s).',
+ 'nl': u'Robot-geholpen doorverwijzing: [[%s]] - Link(s) weggehaald.',
+ 'no': u'bot: Retter lenke til peker: %s - Fjernet lenke(r)',
+ 'pl': u'Wspomagane przez robota ujednoznacznienie: %s - Usunięto link(i)',
+ 'pt': u'Desambiguação assistida por bot: %s - Removido(s) link(s)',
+ 'ru': u'Разрешение значений с помощью бота: %s - Removed link(s)',
+ 'sr': u'Решавање вишезначних одредница помоћу бота: %s - Removed link(s)',
+ 'sv': u'Länkar direkt till rätt artikel för: %s - Tog bort länk(ar)',
+ }
+
# Summary message when working on redirects
msg_redir = {
- 'cs': u'Robot opravil přesměrování na %s',
- 'en': u'Robot-assisted disambiguation: %s',
- 'da': u'Retter flertydigt link til: %s',
- 'de': u'Bot-unterstützte Redirectauflösung: %s',
- 'fr': u'Correction de lien vers redirect: %s',
- 'he': u'תיקון הפניה לדף פירושונים באמצעות בוט: %s',
- 'ia': u'Resolution de redirectiones assistite per robot: %s',
- 'it': u'Sistemazione automatica del redirect: %s',
- 'lt': u'Nuorodų į peradresavimo straipsnį keitimas: %s',
- 'kk': u'Айрықты мағыналарды бот көмегімен шешу: %s',
- 'nl': u'Robot-geholpen redirect-oplossing: %s',
- 'no': u'bot: Endrer omdirigeringslenke: %s',
- 'pl': u'Wspomagane przez robota ujednoznacznienie: %s',
- 'pt': u'Desambiguação assistida por bot: %s',
- 'ru': u'Разрешение значений с помощью бота: %s',
- 'sr': u'Решавање вишезначних одредница помоћу бота: %s',
- 'sv': u'Länkar direkt till rätt artikel för: %s',
+ 'cs': u'Robot opravil přesměrování na %s - Změněn(y) odkaz(y) na %s',
+ 'en': u'Robot-assisted disambiguation: %s - Changed link(s) to %s',
+ 'da': u'Retter flertydigt link til: %s - Ændrede link(s) til %s',
+ 'de': u'Bot-unterstützte Redirectauflösung: %s - Link(s) ersetzt durch %s',
+ 'fr': u'Correction de lien vers redirect: %s - Modifications du (des) lien(s) pour %s',
+ 'he': u'תיקון קישור לדף פירושונים באמצעות בוט: %s שונה ל%s',
+ 'ia': u'Resolution de redirectiones assistite per robot: %s - Changed link(s) to %s',
+ 'it': u'Sistemazione automatica del redirect: %s - Inversione di redirect %s',
+ 'lt': u'Nuorodų į peradresavimo straipsnį keitimas: %s - Pakeistos nuorodos į %s',
+ 'kk': u'Айрықты мағыналарды бот көмегімен шешу: %s - Changed link(s) to %s',
+ 'nl': u'Robot-geholpen redirect-oplossing: [[%s]] - Link(s) veranderd naar %s',
+ 'no': u'bot: Endrer omdirigeringslenke: %s - Endret lenke(r) til %s',
+ 'pl': u'Wspomagane przez robota ujednoznacznienie: %s - Zmieniono link(i) %s',
+ 'pt': u'Desambiguação assistida por bot: %s - Mudado(s) link(s) para %s',
+ 'ru': u'Разрешение значений с помощью бота: %s - Changed link(s) to %s',
+ 'sr': u'Решавање вишезначних одредница помоћу бота: %s - Changed link(s) to %s',
+ 'sv': u'Länkar direkt till rätt artikel för: %s - Bytte länk(ar) till %s',
}
+# Summary message when working on redirects and the link is removed
+msg_redir_unlink = {
+ 'cs': u'Robot opravil přesměrování na %s - Odstraněn(y) odkaz(y)',
+ 'en': u'Robot-assisted disambiguation: %s - Removed link(s)',
+ 'da': u'Retter flertydigt link til: %s - Fjernede link(s)',
+ 'de': u'Bot-unterstützte Redirectauflösung: %s - Link(s) entfernt',
+ 'fr': u'Correction de lien vers redirect: %s - Retrait du (des) lien(s)',
+ 'he': u'הסרת קישור לדף פירושונים באמצעות בוט: %s',
+ 'ia': u'Resolution de redirectiones assistite per robot: %s - Removed link(s).',
+ 'it': u'Sistemazione automatica del redirect: %s - Collegamenti rimossi',
+ 'lt': u'Nuorodų į peradresavimo straipsnį keitimas: %s - Pašalintos nuorodos',
+ 'kk': u'Айрықты мағыналарды бот көмегімен шешу: %s - Removed link(s).',
+ 'nl': u'Robot-geholpen redirect-oplossing: [[%s]] - Link(s) weggehaald',
+ 'no': u'bot: Endrer omdirigeringslenke: %s - Fjernet lenke(r)',
+ 'pl': u'Wspomagane przez robota ujednoznacznienie: %s - Usunięto link(i)',
+ 'pt': u'Desambiguação assistida por bot: %s - Removido(s) link(s)',
+ 'ru': u'Разрешение значений с помощью бота: %s - Removed link(s)',
+ 'sr': u'Решавање вишезначних одредница помоћу бота: %s - Removed link(s)',
+ 'sv': u'Länkar direkt till rätt artikel för: %s - Tog bort länk(ar)',
+ }
# disambiguation page name format for "primary topic" disambiguations
# (Begriffsklärungen nach Modell 2)
primary_topic_format = {
@@ -300,6 +341,7 @@
u'Wikipedia:Woorden die niet als zoekterm gebruikt kunnen worden',
u"Gebruiker:Michiel1972/Lijst plaatsen VS.+",
u"Gebruiker:Zanaq/SG1",
+ u'Gebruiker:Erwin.*',
],
'pl': [
u'Wikipedysta:.+',
@@ -499,6 +541,8 @@
# TODO: break this function up into subroutines!
include = False
+ unlink = False
+ new_targets = []
try:
text=refPage.get(throttle=False)
ignoreReason = self.checkContents(text)
@@ -649,6 +693,7 @@
if choice in ['u', 'U']:
# unlink - we remove the section if there's any
text = text[:m.start()] + link_text + text[m.end():]
+ unlink = True
continue
else:
if len(choice)>0 and choice[0] == 'r':
@@ -681,6 +726,8 @@
else:
new_page_title = repPl.title()
new_page_title = new_page_title[0].lower() + new_page_title[1:]
+ if new_page_title not in new_targets:
+ new_targets.append(new_page_title)
if replaceit and trailing_chars:
newlink = "[[%s%s]]%s" % (new_page_title, section, trailing_chars)
elif replaceit or (new_page_title == link_text and not section):
@@ -701,6 +748,7 @@
wikipedia.showDiff(original_text, text)
wikipedia.output(u'')
# save the page
+ self.setSummaryMessage(disambPage, new_targets, unlink)
try:
refPage.put_async(text,comment=self.comment)
except wikipedia.LockedPage:
@@ -754,18 +802,41 @@
self.alternatives += links
return True
- def setSummaryMessage(self, disambPage):
+ def setSummaryMessage(self, disambPage, new_targets = [], unlink = False):
+ # make list of new targets
+ targets = ''
+ for page_title in new_targets:
+ targets += u'[[%s]], ' % page_title
+ # remove last comma
+ targets = targets[:-2]
+
+ if not targets:
+ targets = u'(unknown)'
+
# first check whether user has customized the edit comment
if wikipedia.config.disambiguation_comment.has_key(self.mysite.family.name) and wikipedia.config.disambiguation_comment[self.mysite.family.name].has_key(self.mylang):
- self.comment = wikipedia.translate(self.mysite,
- wikipedia.config.disambiguation_comment[
- self.mysite.family.name]
- ) % disambPage.title()
+ try:
+ self.comment = wikipedia.translate(self.mysite,
+ wikipedia.config.disambiguation_comment[
+ self.mysite.family.name]
+ ) % (disambPage.title(), targets)
+ #Backwards compatibility, type error probably caused by too many arguments for format string
+ except TypeError:
+ self.comment = wikipedia.translate(self.mysite,
+ wikipedia.config.disambiguation_comment[
+ self.mysite.family.name]
+ ) % disambPage.title()
elif disambPage.isRedirectPage():
# when working on redirects, there's another summary message
- self.comment = wikipedia.translate(self.mysite, msg_redir) % disambPage.title()
+ if unlink and not new_targets:
+ self.comment = wikipedia.translate(self.mysite, msg_redir_unlink) % disambPage.title()
+ else:
+ self.comment = wikipedia.translate(self.mysite, msg_redir) % (disambPage.title(), targets)
else:
- self.comment = wikipedia.translate(self.mysite, msg) % disambPage.title()
+ if unlink and not new_targets:
+ self.comment = wikipedia.translate(self.mysite, msg_unlink) % disambPage.title()
+ else:
+ self.comment = wikipedia.translate(self.mysite, msg) % (disambPage.title(), targets)
def run(self):
if self.main_only:
@@ -777,7 +848,6 @@
u'%s:' % namespace for namespace in self.mysite.namespaces()]
for disambPage in self.generator:
- self.setSummaryMessage(disambPage)
self.primaryIgnoreManager = PrimaryIgnoreManager(disambPage, enabled=self.primary)
if not self.findAlternatives(disambPage):