Просмотр исходного кода

Cleanup function signatures a bit; some more work.

tags/v0.1^2
Ben Kurtovic 12 лет назад
Родитель
Сommit
de5fc95c83
1 измененных файлов: 28 добавлений и 24 удалений
  1. +28
    -24
      earwigbot/tasks/drn_clerkbot.py

+ 28
- 24
earwigbot/tasks/drn_clerkbot.py Просмотреть файл

@@ -227,15 +227,15 @@ class DRNClerkBot(Task):
"""Clerk a particular case and return a list of any notices to send.""" """Clerk a particular case and return a list of any notices to send."""
notices = [] notices = []
if case.status == self.STATUS_NEW: if case.status == self.STATUS_NEW:
notices = self.clerk_new_case(conn, case, volunteers)
notices = self.clerk_new_case(case, volunteers)
elif case.status == self.STATUS_OPEN: elif case.status == self.STATUS_OPEN:
notices = self.clerk_open_case(conn, case, volunteers)
notices = self.clerk_open_case(case)
elif case.status == self.STATUS_NEEDASSIST: elif case.status == self.STATUS_NEEDASSIST:
notices = self.clerk_needassist_case(conn, case, volunteers)
notices = self.clerk_needassist_case(case, volunteers)
elif case.status == self.STATUS_STALE: elif case.status == self.STATUS_STALE:
notices = self.clerk_stale_case(conn, case, volunteers)
notices = self.clerk_stale_case(case)
elif case.status == self.STATUS_REVIEW: elif case.status == self.STATUS_REVIEW:
notices = self.clerk_review_case(conn, case, volunteers)
notices = self.clerk_review_case(case)
elif case.status in [self.STATUS_RESOLVED, self.STATUS_CLOSED]: elif case.status in [self.STATUS_RESOLVED, self.STATUS_CLOSED]:
self.clerk_closed_case(conn) self.clerk_closed_case(conn)
else: else:
@@ -246,19 +246,24 @@ class DRNClerkBot(Task):
# APPLY STATUS UPDATES TO CASE BODY # APPLY STATUS UPDATES TO CASE BODY
return notices return notices


def clerk_new_case(self, conn, case, volunteers):
notices = self.notify_parties(conn, case)
def check_for_review(self, case):
if time() - case.file_time > 60 * 60 * 24 * 4:
if case.last_action != self.STATUS_REVIEW:
case.status = self.STATUS_REVIEW
return SEND_MESSAGE_TO_WT:DRN

def clerk_new_case(self, case, volunteers):
notices = self.notify_parties(case)
signatures = self.read_signatures(case.body) signatures = self.read_signatures(case.body)
if any([editor in volunteers for (editor, time) in signatures]): if any([editor in volunteers for (editor, time) in signatures]):
if case.last_action != self.STATUS_OPEN: if case.last_action != self.STATUS_OPEN:
case.status = self.STATUS_OPEN case.status = self.STATUS_OPEN
return notices return notices


def clerk_open_case(self, conn, case, volunteers):
if time() - case.file_time > 60 * 60 * 24 * 4:
if case.last_action != self.STATUS_REVIEW:
case.status = self.STATUS_REVIEW
return SEND_MESSAGE_TO_WT:DRN
def clerk_open_case(self, case):
flagged = self.check_for_review(case):
if flagged:
return flagged


if len(case.body) - SIZE_WHEN_LAST_VOLUNTEER_EDIT > 15000: if len(case.body) - SIZE_WHEN_LAST_VOLUNTEER_EDIT > 15000:
if case.last_action != self.STATUS_NEEDASSIST: if case.last_action != self.STATUS_NEEDASSIST:
@@ -271,11 +276,10 @@ class DRNClerkBot(Task):
return SEND_MESSAGE_TO_WT:DRN return SEND_MESSAGE_TO_WT:DRN
return [] return []


def clerk_needassist_case(self, conn, case, volunteers):
if time() - case.file_time > 60 * 60 * 24 * 4:
if case.last_action != self.STATUS_REVIEW:
case.status = self.STATUS_REVIEW
return SEND_MESSAGE_TO_WT:DRN
def clerk_needassist_case(self, case, volunteers):
flagged = self.check_for_review(case):
if flagged:
return flagged


signatures = self.read_signatures(case.body) signatures = self.read_signatures(case.body)
newsigs = signatures - SIGNATURES_FROM_DATABASE newsigs = signatures - SIGNATURES_FROM_DATABASE
@@ -284,11 +288,10 @@ class DRNClerkBot(Task):
case.status = self.STATUS_OPEN case.status = self.STATUS_OPEN
return [] return []


def clerk_stale_case(self, conn, case, volunteers):
if time() - case.file_time > 60 * 60 * 24 * 4:
if case.last_action != self.STATUS_REVIEW:
case.status = self.STATUS_REVIEW
return SEND_MESSAGE_TO_WT:DRN
def clerk_stale_case(self, case):
flagged = self.check_for_review(case):
if flagged:
return flagged


signatures = self.read_signatures(case.body) signatures = self.read_signatures(case.body)
if signatures - SIGNATURES_FROM_DATABASE: if signatures - SIGNATURES_FROM_DATABASE:
@@ -296,7 +299,7 @@ class DRNClerkBot(Task):
case.status = self.STATUS_OPEN case.status = self.STATUS_OPEN
return [] return []


def clerk_review_case(self, conn, case, volunteers):
def clerk_review_case(self, case):
if time() - case.file_time > 60 * 60 * 24 * 7: if time() - case.file_time > 60 * 60 * 24 * 7:
if not case.very_old_notified: if not case.very_old_notified:
return SEND_MESSAGE_TO_ZHANG return SEND_MESSAGE_TO_ZHANG
@@ -311,10 +314,11 @@ class DRNClerkBot(Task):
def read_signatures(self, text): def read_signatures(self, text):
raise NotImplementedError() raise NotImplementedError()


def notify_parties(self, conn, case):
def notify_parties(self, case):
if case.parties_notified: if case.parties_notified:
return return
raise NotImplementedError() raise NotImplementedError()
case.parties_notified = True


def save(self, page, cases, kwargs): def save(self, page, cases, kwargs):
"""Save any changes to the noticeboard.""" """Save any changes to the noticeboard."""


Загрузка…
Отмена
Сохранить