Xqt has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/337288 )
Change subject: Make code flat ...................................................................... Make code flat Change-Id: I843c91fc18efc29947a98e35a6f2d537e86567c8 --- M pywikibot/cosmetic_changes.py 1 file changed, 99 insertions(+), 101 deletions(-) Approvals: Xqt: Looks good to me, approved jenkins-bot: Verified diff --git a/pywikibot/cosmetic_changes.py b/pywikibot/cosmetic_changes.py index 7d35834..90847d1 100755 --- a/pywikibot/cosmetic_changes.py +++ b/pywikibot/cosmetic_changes.py @@ -53,7 +53,7 @@ """ # # (C) xqt, 2009-2018 -# (C) Pywikibot team, 2006-2018 +# (C) Pywikibot team, 2006-2019 # # Distributed under the terms of the MIT license. # @@ -71,6 +71,7 @@ import pywikibot from pywikibot import config, textlib +from pywikibot.page import url2unicode from pywikibot.textlib import (_MultiTemplateMatchBuilder, FILE_LINK_REGEX, _get_regexes) from pywikibot.tools import deprecated_args, first_lower, first_upper @@ -511,112 +512,109 @@ except ValueError: # T111513 is_interwiki = True - if not is_interwiki: - # The link looks like this: - # [[page_title|link_text]]trailing_chars - # We only work on namespace 0 because pipes and linktrails work - # differently for images and categories. - page = pywikibot.Page(pywikibot.Link(titleWithSection, - self.site)) - try: - namespace = page.namespace() - except pywikibot.InvalidTitle: - return match.group() - if namespace == 0: - # Replace underlines by spaces, also multiple underlines - titleWithSection = re.sub('_+', ' ', titleWithSection) - # Remove double spaces - titleWithSection = re.sub(' +', ' ', titleWithSection) - # Remove unnecessary leading spaces from title, - # but remember if we did this because we eventually want - # to re-add it outside of the link later. - titleLength = len(titleWithSection) - titleWithSection = titleWithSection.lstrip() - hadLeadingSpaces = (len(titleWithSection) != titleLength) - hadTrailingSpaces = False - # Remove unnecessary trailing spaces from title, - # but remember if we did this because it may affect - # the linktrail and because we eventually want to - # re-add it outside of the link later. - if not trailingChars: - titleLength = len(titleWithSection) - titleWithSection = titleWithSection.rstrip() - hadTrailingSpaces = (len(titleWithSection) - != titleLength) + if is_interwiki: + return match.group() - # Convert URL-encoded characters to unicode - from pywikibot.page import url2unicode - titleWithSection = url2unicode(titleWithSection, - encodings=self.site) + # The link looks like this: + # [[page_title|link_text]]trailing_chars + # We only work on namespace 0 because pipes and linktrails work + # differently for images and categories. + page = pywikibot.Page(pywikibot.Link(titleWithSection, self.site)) + try: + in_main_namespace = page.namespace() == 0 + except pywikibot.InvalidTitle: + in_main_namespace = False + if not in_main_namespace: + return match.group() - if titleWithSection == '': - # just skip empty links. - return match.group() + # Replace underlines by spaces, also multiple underlines + titleWithSection = re.sub('_+', ' ', titleWithSection) + # Remove double spaces + titleWithSection = re.sub(' +', ' ', titleWithSection) + # Remove unnecessary leading spaces from title, + # but remember if we did this because we eventually want + # to re-add it outside of the link later. + titleLength = len(titleWithSection) + titleWithSection = titleWithSection.lstrip() + hadLeadingSpaces = len(titleWithSection) != titleLength + hadTrailingSpaces = False + # Remove unnecessary trailing spaces from title, + # but remember if we did this because it may affect + # the linktrail and because we eventually want to + # re-add it outside of the link later. + if not trailingChars: + titleLength = len(titleWithSection) + titleWithSection = titleWithSection.rstrip() + hadTrailingSpaces = len(titleWithSection) != titleLength - # Remove unnecessary initial and final spaces from label. - # Please note that some editors prefer spaces around pipes. - # (See [[en:Wikipedia:Semi-bots]]). We remove them anyway. - if label is not None: - # Remove unnecessary leading spaces from label, - # but remember if we did this because we want - # to re-add it outside of the link later. - labelLength = len(label) - label = label.lstrip() - hadLeadingSpaces = (len(label) != labelLength) - # Remove unnecessary trailing spaces from label, - # but remember if we did this because it affects - # the linktrail. - if not trailingChars: - labelLength = len(label) - label = label.rstrip() - hadTrailingSpaces = (len(label) != labelLength) - else: - label = titleWithSection - if trailingChars: - label += trailingChars + # Convert URL-encoded characters to unicode + titleWithSection = url2unicode(titleWithSection, + encodings=self.site) - if self.site.siteinfo['case'] == 'first-letter': - firstcase_title = first_lower(titleWithSection) - firstcase_label = first_lower(label) - else: - firstcase_title = titleWithSection - firstcase_label = label + if not titleWithSection: + # just skip empty links. + return match.group() - if firstcase_label == firstcase_title: - newLink = '[[%s]]' % label - # Check if we can create a link with trailing characters - # instead of a pipelink - elif (firstcase_label.startswith(firstcase_title) - and trailR.sub('', - label[len(titleWithSection):]) == ''): - newLink = '[[%s]]%s' % ( - label[:len(titleWithSection)], - label[len(titleWithSection):]) + # Remove unnecessary initial and final spaces from label. + # Please note that some editors prefer spaces around pipes. + # (See [[en:Wikipedia:Semi-bots]]). We remove them anyway. + if label is not None: + # Remove unnecessary leading spaces from label, + # but remember if we did this because we want + # to re-add it outside of the link later. + labelLength = len(label) + label = label.lstrip() + hadLeadingSpaces = len(label) != labelLength + # Remove unnecessary trailing spaces from label, + # but remember if we did this because it affects + # the linktrail. + if not trailingChars: + labelLength = len(label) + label = label.rstrip() + hadTrailingSpaces = len(label) != labelLength + else: + label = titleWithSection + if trailingChars: + label += trailingChars - else: - # Try to capitalize the first letter of the title. - # Not useful for languages that don't capitalize nouns. - # TODO: Add a configuration variable for each site, - # which determines if the link target is written in - # uppercase - if self.site.sitename == 'wikipedia:de': - titleWithSection = first_upper(titleWithSection) - newLink = '[[%s|%s]]' % (titleWithSection, label) - # re-add spaces that were pulled out of the link. - # Examples: - # text[[ title ]]text -> text [[title]] text - # text[[ title | name ]]text -> text [[title|name]] text - # text[[ title |name]]text -> text[[title|name]]text - # text[[title| name]]text -> text [[title|name]]text - if hadLeadingSpaces and not newline: - newLink = ' ' + newLink - if hadTrailingSpaces: - newLink = newLink + ' ' - if newline: - newLink = newline + newLink - return newLink - # don't change anything - return match.group() + if self.site.siteinfo['case'] == 'first-letter': + firstcase_title = first_lower(titleWithSection) + firstcase_label = first_lower(label) + else: + firstcase_title = titleWithSection + firstcase_label = label + + if firstcase_label == firstcase_title: + newLink = '[[%s]]' % label + # Check if we can create a link with trailing characters + # instead of a pipelink + elif (firstcase_label.startswith(firstcase_title) + and trailR.sub('', label[len(titleWithSection):]) == ''): + newLink = '[[%s]]%s' % (label[:len(titleWithSection)], + label[len(titleWithSection):]) + + else: + # Try to capitalize the first letter of the title. + # Not useful for languages that don't capitalize nouns. + # TODO: Add a configuration variable for each site, + # which determines if the link target is written in + # uppercase + if self.site.sitename == 'wikipedia:de': + titleWithSection = first_upper(titleWithSection) + newLink = '[[%s|%s]]' % (titleWithSection, label) + # re-add spaces that were pulled out of the link. + # Examples: + # text[[ title ]]text -> text [[title]] text + # text[[ title | name ]]text -> text [[title|name]] text + # text[[ title |name]]text -> text[[title|name]]text + # text[[title| name]]text -> text [[title|name]]text + if hadLeadingSpaces and not newline: + newLink = ' ' + newLink + if hadTrailingSpaces: + newLink = newLink + ' ' + if newline: + newLink = newline + newLink + return newLink trailR = re.compile(self.site.linktrail()) # The regular expression which finds links. Results consist of four groups: -- To view, visit https://gerrit.wikimedia.org/r/337288 To unsubscribe, or for help writing mail filters, visit https://gerrit.wikimedia.org/r/settings Gerrit-Project: pywikibot/core Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I843c91fc18efc29947a98e35a6f2d537e86567c8 Gerrit-Change-Number: 337288 Gerrit-PatchSet: 6 Gerrit-Owner: Matěj Suchánek <matejsuchane...@gmail.com> Gerrit-Reviewer: Xqt <i...@gno.de> Gerrit-Reviewer: jenkins-bot (75)
_______________________________________________ Pywikibot-commits mailing list Pywikibot-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/pywikibot-commits