Am Donnerstag, 27. September 2007 16:12 schrieb cosoleto(a)svn.wikimedia.org:
Fix bug #1802910: Swedish wikis (and only they) use
's:t' and 's:a' as an
abbreviation for 'saint', 'src' as abbreviation for
'wikisource'.
Consequently, added in family.py a get_known_families(code) function.
Hi,
As far as I know, this only applies to the Swedish Wikipedia. I tried a [[S:t
foobar]] link on sv.wiktionary, and it became a Wikisource link. Not sure
about other sv: projects, though.
Daniel
Modified Paths:
--------------
trunk/pywikipedia/family.py
trunk/pywikipedia/wikipedia.py
Modified: trunk/pywikipedia/family.py
===================================================================
--- trunk/pywikipedia/family.py 2007-09-27 11:55:26 UTC (rev 4370)
+++ trunk/pywikipedia/family.py 2007-09-27 14:12:09 UTC (rev 4371)
@@ -30,13 +30,13 @@
'tr','tk','tw','udm','bug','uk','ur','vec','vo','fiu-vro','wa',
'vls','war','wo','wuu','ts','ii','yi','yo','zh-yue','cbk-zam','diq','zea','
bat-smg','zh', 'zh-tw','zh-cn']
-
+
# knownlanguages is the same list but sorted by code
self.knownlanguages = list(self.alphabetic)
self.knownlanguages.sort()
-
+
self.langs = {}
-
+
# Translation used on all wikis for the different namespaces.
# (Please sort languages alphabetically)
# You only need to enter translations that differ from _default.
@@ -1767,7 +1767,7 @@
# element that contains the actual page content; change this for
# wikis that use something else (e.g., mozilla family)
self.content_id = "bodyContent"
-
+
# A dictionary where keys are family codes that can be used in
# inter-family interwiki links. Values are not used yet.
# Generated from
http://tools.wikimedia.de/~daniel/interwiki-en.txt: @@ -2189,7 +2189,7 @@
# on_one_line is a list of languages that want the category links
# one-after-another on a single line
self.category_on_one_line = []
-
+
# String used as separator between category links and the text
self.category_text_separator = '\r\n\r\n'
@@ -2258,17 +2258,26 @@
for num, val in namespaces.items():
self.namespaces[num][code]=val
+ def get_known_families(self, code):
+ if code == 'sv':
+ # In Swedish wiki projects 's:' is part of page title
+ # not a family prefix for 'wikisource'.
+ d = self.known_families.copy()
+ d.pop('s') ; d['src'] = 'wikisource'
+ return d
+ return self.known_families
+
def linktrail(self, code, fallback = '_default'):
if self.linktrails.has_key(code):
return self.linktrails[code]
elif fallback:
return self.linktrails[fallback]
else:
- raise KeyError('ERROR: linktrail in language %s unknown' %
code) + raise KeyError('ERROR: linktrail in language %s unknown'
% code)
def namespace(self, code, ns_number, fallback = '_default', all =
False): if not self.isDefinedNS(ns_number):
- raise KeyError('ERROR: Unknown namespace %d for %s:%s' %
(ns_number, code, self.name)) + raise KeyError('ERROR: Unknown
namespace %d for %s:%s' % (ns_number, code, self.name)) elif
self.isNsI18N(ns_number, code):
v = self.namespaces[ns_number][code]
elif fallback:
Modified: trunk/pywikipedia/wikipedia.py
===================================================================
--- trunk/pywikipedia/wikipedia.py 2007-09-27 11:55:26 UTC (rev 4370)
+++ trunk/pywikipedia/wikipedia.py 2007-09-27 14:12:09 UTC (rev 4371)
@@ -243,7 +243,7 @@
site = getSite()
elif type(site) in [type(''), type(u'')]:
site = getSite(site)
-
+
self._site = site
if not insite:
@@ -304,8 +304,8 @@
if t != '' and t[0] == ':':
self._namespace = 0
t = t[1:]
- elif lowerNs in self.site().family.known_families:
- if self.site().family.known_families[lowerNs] ==
self.site().family.name: + elif lowerNs in
self.site().family.get_known_families(code = self.site().lang): +
if self.site().get_family.known_families(code =
self.site().lang)[lowerNs] == self.site().family.name: t = m.group(2)
else:
# This page is from a different family
@@ -1357,7 +1357,7 @@
category links in the page text.
"""
try:
- category_links_to_return =
getCategoryLinks(self.get(nofollow_redirects=nofollow_redirects),
self.site()) + category_links_to_return =
getCategoryLinks(self.get(nofollow_redirects=nofollow_redirects),
self.site()) except NoPage:
category_links_to_return = []
return category_links_to_return
@@ -4031,7 +4031,7 @@
return self.isInterwikiLink(rest)
else:
return True
- if first in self.family.known_families:
+ if first in self.family.get_known_families(code = self.lang):
if first == self.family.name:
return self.isInterwikiLink(rest)
else:
_______________________________________________
Pywikipedia-l mailing list
Pywikipedia-l(a)lists.wikimedia.org
http://lists.wikimedia.org/mailman/listinfo/pywikipedia-l