view gpp/messages/utils.py @ 479:32cec6cd8808

Refactor RateLimiter so that if Redis is not running, everything still runs normally (minus the rate limiting protection). My assumption that creating a Redis connection would throw an exception if Redis wasn't running was wrong. The exceptions actually occur when you issue a command. This is for #224.
author Brian Neal <bgneal@gmail.com>
date Sun, 25 Sep 2011 00:49:05 +0000
parents 538a1bd2f1f4
children 4b9970ad0edb
line wrap: on
line source
"""
This file contains various helper utility functions for the messages
application.
"""

from django.utils.text import wrap


def reply_subject(subject):
   """
   Builds a subject line for a reply.
   If the subject already starts with Re: then return the subject.
   Otherwise, prepend Re: to the subject and return it.
   """
   if subject.startswith('Re: '):
      return subject
   return 'Re: ' + subject


def quote_message(who, date, message):
   """
   Builds a message reply by quoting the existing message in a
   typical email-like fashion. The quoting is compatible with Markdown.
   """
   header = '> On %s, %s wrote:\n>\n' % (date.strftime('%a, %b %d %Y, %I:%M %p'), who)
   lines = wrap(message, 55).split('\n')
   for i, line in enumerate(lines):
      lines[i] = '> ' + line
   return header + '\n'.join(lines) + '\n\n'