예제 #1
0
파일: model.py 프로젝트: nullzero/wpcgi
    def check_old(self):
        now = self.site.getcurrenttime()
        oldestRev = None
        newArt = False
        if self.oldid:
            oldestRev = self.oldid
        else:
            for revision in self.page.getVersionHistory():
                if (now - revision[1]).days > self.maxday:
                    break
                oldestRev = revision
            else:
                createRev = oldestRev
                newArt = True

            if not newArt:
                createRev = self.page.getVersionHistory(reverseOrder=True, total=1)[0]

            if newArt:
                article_creation_desc = msg["dykchecker-creation-new-desc"].format(self.maxday)
                article_creation_eval = self.evaluate(True)
            else:
                article_creation_desc = msg["dykchecker-creation-desc"]
                article_creation_eval = self.neutral()

            self.results.append(
                AttrObject(text=msg["dykchecker-creation"],
                           desc=msg[article_creation_desc],
                           cl=article_creation_eval,
                           value=msg['dykchecker-creation-value'].format(
                               createRev[0], createRev[1], createRev[2], (now - createRev[1]).days
                           )
                )
            )

            if newArt:
                return

        result = AttrObject(text=msg["dykchecker-old-revision"],
                            desc=msg["dykchecker-old-revision-desc"].format(self.ratio, self.maxday))

        if oldestRev is None:
            result.cl = self.evaluate(False)
            result.value = msg['dykchecker-old-revision-not-exist'].format(self.maxday)
        else:
            if self.oldid:
                text = oldestRev[3]
            else:
                text = self.page.getOldVersion(oldestRev[0], get_redirect=True)
            text = self.textEngine.remove(text)
            length = self.textEngine.length(text)[0]
            ratio = float(self.length) / float(length)
            result.cl = self.evaluate(ratio >= (self.ratio + 1))
            result.value = msg['dykchecker-old-revision-value'].format(
                oldestRev[0], oldestRev[1], (now - oldestRev[1]).days, length, ratio - 1.0
            )
        self.results.append(result)
예제 #2
0
 def check_ref(self):
     allrefs = self.text.count("<ref")
     self.results.append(
         AttrObject(cl=self.evaluate(allrefs > 0),
                    value=msg['dykchecker-inlineref-value'].format(allrefs),
                    text=msg["dykchecker-inlineref"],
                    desc=msg["dykchecker-inlineref-desc"]))
예제 #3
0
    def check_old(self):
        now = self.site.getcurrenttime()
        oldestRev = None
        newArt = False
        if self.oldid:
            oldestRev = self.oldid
        else:
            for revision in self.page.getVersionHistory():
                if (now - revision[1]).days > self.maxday:
                    break
                oldestRev = revision
            else:
                createRev = oldestRev
                newArt = True

            if not newArt:
                createRev = self.page.getVersionHistory(reverseOrder=True,
                                                        total=1)[0]

            if newArt:
                article_creation_desc = msg[
                    "dykchecker-creation-new-desc"].format(self.maxday)
                article_creation_eval = self.evaluate(True)
            else:
                article_creation_desc = msg["dykchecker-creation-desc"]
                article_creation_eval = self.neutral()

            self.results.append(
                AttrObject(text=msg["dykchecker-creation"],
                           desc=msg[article_creation_desc],
                           cl=article_creation_eval,
                           value=msg['dykchecker-creation-value'].format(
                               createRev[0], createRev[1], createRev[2],
                               (now - createRev[1]).days)))

            if newArt:
                return

        result = AttrObject(text=msg["dykchecker-old-revision"],
                            desc=msg["dykchecker-old-revision-desc"].format(
                                self.ratio, self.maxday))

        if oldestRev is None:
            result.cl = self.evaluate(False)
            result.value = msg['dykchecker-old-revision-not-exist'].format(
                self.maxday)
        else:
            if self.oldid:
                text = oldestRev[3]
            else:
                text = self.page.getOldVersion(oldestRev[0], get_redirect=True)
            text = self.textEngine.remove(text)
            length = self.textEngine.length(text)[0]
            ratio = float(self.length) / float(length)
            result.cl = self.evaluate(ratio >= (self.ratio + 1))
            result.value = msg['dykchecker-old-revision-value'].format(
                oldestRev[0], oldestRev[1], (now - oldestRev[1]).days, length,
                ratio - 1.0)
        self.results.append(result)
예제 #4
0
 def check_info(self):
     self.results.append(
         AttrObject(
             cl=self.neutral(),
             value=msg['dykchecker-revision-info-value'].format(
                 self.page.latestRevision(), self.page.title(),
                 self.page.userName(), self.page.editTime()),
             text=msg["dykchecker-revision-info"],
             desc="",
         ))
예제 #5
0
 def check_length(self):
     self.text = self.textEngine.remove(self.text)
     self.length, self.swath = self.textEngine.length(self.text)
     self.results.append(
         AttrObject(
             cl=self.evaluate(self.length > self.minlen),
             value=msg['dykchecker-length-value'].format(self.length),
             text=msg["dykchecker-length"],
             desc=msg["dykchecker-length-desc"].format(self.minlen),
         ))
     self.text = self.textEngine.convert(self.text)
예제 #6
0
    def dorender(self):
        self.textEngine = TextEngine()
        self.text = self.page.get()

        self.check_info()
        self.check_ref()
        self.check_length()
        self.check_old()

        result = AttrObject(cl=self.evaluate(not self.failed),
                            text=msg['dykchecker-summary'],
                            desc='')

        if self.failed:
            result.value = msg['dykchecker-summary-fail']
        else:
            result.value = msg['dykchecker-summary-pass']

        self.results.insert(0, result)

        self.results = enumerate(self.results)
예제 #7
0
파일: model.py 프로젝트: nullzero/wpcgi
    def dorender(self):
        self.textEngine = TextEngine()
        self.text = self.page.get()

        self.check_info()
        self.check_ref()
        self.check_length()
        self.check_old()

        result = AttrObject(cl=self.evaluate(not self.failed),
                            text=msg['dykchecker-summary'],
                            desc='')

        if self.failed:
            result.value = msg['dykchecker-summary-fail']
        else:
            result.value = msg['dykchecker-summary-pass']

        self.results.insert(0, result)

        self.results = enumerate(self.results)