XZise has uploaded a new change for review.
https://gerrit.wikimedia.org/r/151809
Change subject: Site.sametitle recognizes namespace capitalisation
......................................................................
Site.sametitle recognizes namespace capitalisation
If the namespace of the two pages is using "first-letter"
capitalisation it overrides a possible "case-senstive" site wide.
Bug: 69118
Change-Id: I0b57ea6d7014b4ddfd8ceafbd859594b021e92b4
---
M pywikibot/site.py
1 file changed, 14 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core
refs/changes/09/151809/1
diff --git a/pywikibot/site.py b/pywikibot/site.py
index 92c72df..93a2055 100644
--- a/pywikibot/site.py
+++ b/pywikibot/site.py
@@ -561,45 +561,46 @@
@param alias: namespace alias
@type alias: unicode
@param ns: namespace
- @type ns: int
+ @type ns: Namespace
@return: bool
"""
- for text in self.namespace(ns, all=True):
+ for text in ns:
if text.lower() == alias.lower():
return True
return False
if title1 == title2:
return True
+ default_ns = self.namespaces()[0]
# determine whether titles contain namespace prefixes
if ":" in title1:
ns1, name1 = title1.split(":", 1)
else:
- ns1, name1 = 0, title1
+ ns1, name1 = default_ns, title1
if ":" in title2:
ns2, name2 = title2.split(":", 1)
else:
- ns2, name2 = 0, title2
+ ns2, name2 = default_ns, title2
for space in self.namespaces(): # iterate over all valid namespaces
- if not isinstance(ns1, int) and valid_namespace(ns1, space):
+ if not isinstance(ns1, Namespace) and valid_namespace(ns1, space):
ns1 = space
- if not isinstance(ns2, int) and valid_namespace(ns2, space):
+ if not isinstance(ns2, Namespace) and valid_namespace(ns2, space):
ns2 = space
- if not isinstance(ns1, int):
+ if not isinstance(ns1, Namespace):
# no valid namespace prefix found, so the string followed by ":"
# must be part of the title
name1 = ns1 + ":" + name1
- ns1 = 0
- if not isinstance(ns2, int):
+ ns1 = default_ns
+ if not isinstance(ns2, Namespace):
name2 = ns2 + ":" + name2
- ns2 = 0
+ ns2 = default_ns
if ns1 != ns2:
# pages in different namespaces
return False
- if self.case() == "first-letter":
- name1 = name1[:1].upper() + name1[1:]
- name2 = name2[:1].upper() + name2[1:]
+ if self.case() == "first-letter" or ns1.case == "first-letter":
+ name1 = name1.title()
+ name2 = name2.title()
return name1 == name2
# namespace shortcuts for backwards-compatibility
--
To view, visit https://gerrit.wikimedia.org/r/151809
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I0b57ea6d7014b4ddfd8ceafbd859594b021e92b4
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: XZise <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits