1
\$\begingroup\$

Please review this:

class KoolDailyReminderAfterWeek(webapp2.RequestHandler):
 def get(self):
 logging.info('sending reminders')
 timeline = datetime.now () - timedelta (days = 7)
 edge = datetime.now () - timedelta (days = 8)
 ads = Ad.all().filter("published =", True).filter("added <", timeline).filter("url IN", ['www.koolbusiness.com']).filter("added >", edge).fetch(99999)
 for ad in ads:
 logging.info('sending reminder to %s', ad.name)
 if ad.title:
 subject= ad.title
 else:
 subject = 'Reminder'
 message = mail.EmailMessage(sender='Kool Business <[email protected]>', subject=subject)
 message.body = """
 Hello!<br>Now your ad <a href="http://www.koolbusiness.com/vi/%d.html">%s</a> has been out for a week. If you already have sold your product you can remove your ad.<br><br>Some advice to promote your ad:<br>Change + Renew the ad and it will be on top of the list. You can also change text and price.<br>Change the ad if you only want to lower the price or change the ad text<br>Renew so that the ad will be on top if the list. <br><br>Best regards,<br>Koolbusiness.com
 """ % (ad.key().id(),ad.title)
 message.html = """
 <html><head></head><body>
 Hello!<br>Now your ad <a href="http://www.koolbusiness.com/vi/%d.html">%s</a> has been out for a week. If you already have sold your product you can remove your ad.<br><br>Some advice to promote your ad:<br>Change + Renew the ad and it will be on top of the list. You can also change text and price.<br>Change the ad if you only want to lower the price or change the ad text<br>Renew so that the ad will be on top if the list. <br><br>Best regards,<br>Koolbusiness.com
 </body></html>
 """ % (ad.key().id(),ad.title)
 message.to=ad.email
 message.send()
 logging.info('sent email to: ' +ad.email)

YAML

 - description: daily mailout
 url: /report/dailyafterweek
 schedule: every 24 hours

Background

asked Jul 21, 2013 at 4:37
\$\endgroup\$

1 Answer 1

1
\$\begingroup\$

I'm not familiar with that framework, so I can only provide some general points:

  • You can rewrite the if statement to subject = ad.title or 'Reminder' (see here).
  • You are a bit inconsistent with spacings (before and after =, ,, (), etc.), and string formatting (your second and third logging.info)
  • I'd recomment spreading both those chained filters and overly long strings over multiple lines.
  • Maybe you could use some helper method to derive the HTML version of the message from the plain-text version or vice versa?
answered Jul 21, 2013 at 8:03
\$\endgroup\$

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.