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

Reply via email to