# -*- coding: utf-8 -*-
# @author: RaNaN

import Cookie

from datetime import datetime, timedelta
from time import time


# monkey patch for 32 bit systems
def _getdate(future=0, weekdayname=Cookie._weekdayname, monthname=Cookie._monthname):
    dt = datetime.now() + timedelta(seconds=int(future))
    return "%s, %02d %3s %4d %02d:%02d:%02d GMT" % \
           (weekdayname[dt.weekday()], dt.day, monthname[dt.month], dt.year, dt.hour, dt.minute, dt.second)

Cookie._getdate = _getdate


class CookieJar(Cookie.SimpleCookie):

    def getCookie(self, name):
        return self[name].value

    def setCookie(self, domain, name, value, path="/", exp=None, secure="FALSE"):
        self[name] = value
        self[name]["domain"] = domain
        self[name]["path"]   = path

        # Value of expires should be integer if possible
        # otherwise the cookie won't be used
        if not exp:
            expires = time() + 3600 * 24 * 180
        else:
            try:
                expires = int(exp)
            except ValueError:
                expires = exp

        self[name]["expires"] = expires

        if secure == "TRUE":
            self[name]["secure"] = secure