project/kiwipycon/utils.py
author Madhusudan.C.S <madhusudancs@gmail.com>
Fri, 30 Oct 2009 15:09:12 +0530
changeset 1 fda1c66b25f9
permissions -rw-r--r--
Added all the files from kiwipycon and the changes made for SciPy.in.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     2
#python
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     3
import urllib
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     4
import datetime
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     5
import re
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     6
from random import randint
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     7
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     8
#django
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
     9
from django.http import HttpResponseRedirect
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    10
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    11
def kiwipycon_quote(string, encoding="utf-8"):
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    12
    """Encodes string to encoding before quoting.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    13
    """
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    14
    return urllib.quote(string.encode(encoding))
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    15
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    16
# from LFS
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    17
def set_message_cookie(url, msg):
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    18
    """Creates response object with given url and adds message cookie with passed
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    19
    message.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    20
    """
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    21
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    22
    # We just keep the message two seconds.
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    23
    max_age = 2
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    24
    expires = datetime.datetime.strftime(
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    25
        datetime.datetime.utcnow() +
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    26
        datetime.timedelta(seconds=max_age), "%a, %d-%b-%Y %H:%M:%S GMT")
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    27
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    28
    response = HttpResponseRedirect(url)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    29
    response.set_cookie("message", kiwipycon_quote(msg), max_age=max_age, expires=expires)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    30
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    31
    return response
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    32
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    33
# from django-snippets
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    34
def slugify(inStr):
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    35
    removelist = ["a", "an", "as", "at", "before", "but", "by", "for","from","is", "in", "into", "like", "of", "off", "on", "onto","per","since", "than", "the", "this", "that", "to", "up", "via","with"];
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    36
    for a in removelist:
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    37
        aslug = re.sub(r'\b'+a+r'\b','',inStr)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    38
    aslug = re.sub('[^\w\s-]', '', aslug).strip().lower()
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    39
    aslug = re.sub('\s+', '-', aslug)
fda1c66b25f9 Added all the files from kiwipycon and the changes made for SciPy.in.
Madhusudan.C.S <madhusudancs@gmail.com>
parents:
diff changeset
    40
    return len(aslug) > 50 and '%s-%d' % (aslug[:43], randint(100000,999999)) or aslug