Exemplo n.º 1
0
    def emailAboutBooksIfNecessary(self, toAccount, fromAccount, books):
      overdueBooks = []
      dueTodayBooks = []
      for dueDate in books:
        if datetime.strptime(dueDate, "%m/%d/%Y").date() < date.today():
          for book in books[dueDate]:
            overdueBooks.append({'dueDate': dueDate, 'book': book})
        if datetime.strptime(dueDate, "%m/%d/%Y").date() == date.today():
          for book in books[dueDate]:
            dueTodayBooks.append(book)
      if len(overdueBooks) > 0 or len(dueTodayBooks) > 0:
        es = EmailSender()
        dueTodayString = ""
        overdueString = ""
        if len(dueTodayBooks) > 0:
          dueTodayString = "%d book%s due today" % (len(dueTodayBooks), "s" if len(dueTodayBooks) > 0 else "")
        if len(overdueBooks) > 0:
          overdueString = "%d book%s overdue" % (len(overdueBooks), "s" if len(overdueBooks) > 0 else "")
        summaryString = ""
        subjectString = ""
        if len(dueTodayBooks) > 0 and len(overdueBooks) > 0:
          summaryString = "%s and %s" % (dueTodayString, overdueString)
        else:
          summaryString = "%s%s" % (dueTodayString, overdueString)
        subject = message = "There %s %s at the library!" % ("is" if len(dueTodayBooks) + len(overdueBooks) == 1 else "are", summaryString, )
        message += "\n"
        if len(dueTodayBooks) > 0:
          booksDueTodayString = "Due today:\n"
          for book in dueTodayBooks:
            booksDueTodayString += "%s %s\n" % (book["title"], book["author"])
          message += booksDueTodayString
        if len(overdueBooks) > 0:
          overdueBooksString = "Overdue:\n"
          for bookStruct in overdueBooks:
            overdueBooksString += "%s %s - Due: %s\n" % (bookStruct["book"]["title"], bookStruct["book"]["author"], bookStruct["dueDate"])
          message += overdueBooksString

        es.sendEmail(toAccount, fromAccount, subject, message)