Software Freedom Law Center

Changeset 169

Show
Ignore:
Timestamp:
07/02/08 23:29:05 (2 months ago)
Author:
landon
Message:

Starting work on an entry API

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/antimatter/luke/myplugs/libtracker/timeadjustment.py

    r168 r169  
    1 import datetime as dt 
    2  
    3 class TimeAdjustment(dt.timedelta): 
     1class TimeAdjustment(): 
    42    """This class goes between the IRC parser and the entry API""" 
    53 
  • trunk/antimatter/luke/myplugs/libtracker/timeparser.py

    r166 r169  
    66from myplugs.libtracker.dateutil.parser import parse 
    77from myplugs.libtracker.dateutil.relativedelta import relativedelta 
    8  
    9 class TimeAdjustment(dt.timedelta): 
    10  
    11     adj_date = dt.datetime.today() 
    12     start = 0 
    13     end = 0 
    14     duration = 0 
    15  
    16     # If we aren't given a complete duration of time, we will need to wait 
    17     # in the User class until we have one 
    18     waiting = 0 
    19  
    20     def __init__(self, start=None, end=None, duration=None, date=None): 
    21         # All of these should be datetime objects, except for duration which should be 
    22         # a relativedelta object 
    23         if (not start == None): 
    24             self.start = start 
    25             waiting = 1 
    26         if (not end == None): 
    27             self.end = end 
    28             waiting = 0 
    29         if (not duration == None): 
    30             self.duration = duration 
    31             waiting = 0 
    32         if (not date == None): 
    33             adj_date = date 
     8from myplugs.libtracker.timeadjustment import TimeAdjustment 
     9from myplugs.libtracker.auth import check_auth 
     10from myplugs.libtracker.entry import add 
    3411 
    3512def msgparse(ievent): 
    36     """ The main `parser` 
     13    dtime = extractor(ievent) 
     14    if (dtime): 
     15        user = check_auth(ievent) 
     16        add(user, dtime[1]) 
     17 
     18def extractor(ievent): 
     19    """ The extractor 
    3720    INPUT: Ircevent 
    38     OUTPUT: TimeAdjustment 
     21    OUTPUT: (string, TimeAdjustment or int) or None 
    3922    """ 
    4023    #TODO: 
    4124    #   clean parser up 
    42     #   seperate the conetnts into functions 
     25    #   seperate the contents into functions 
    4326 
    4427    #First part: On $date: 
    4528    #   where $date is in the form: "Friday", "07-23-1989", or "July 23, 1989" 
    46     setdate_re = r"^(?:(?:on )?(?P<prefix>\b\w+\b|\b\d{2,2}\b.\b\d{1,2}\b.\b\d{2,4}\b|\b\w+\b.\b\d{1,2}(?:,.\d{2,4})?).?[,:])?" 
     29    setdate_re = r"^(?:(?:on )?(?P<prefix>\b\w+\b|\b\d{2,2}\b.\b\d{1,2}\b.\b\d{2,4}\b|\b\w+\b.\b\d{1,2}(?:,.\d{2,4})?).?[,:] ?)?" 
    4730    setdate = re.search(setdate_re + r"(?P<rest>.*)", ievent.txt, re.I).groupdict() 
    4831 
     
    6851            adjustment = dt.timedelta(days=7) 
    6952        date = parse(day, fuzzy = True) - adjustment 
    70         #time = repr(relativedelta(parse(time, fuzzy = True), dt.date.today())) 
    71         time = repr(relativedelta(parse(t_two, fuzzy = True), parse(t_one, fuzzy = True))) 
    72         reply = "Worked on: " + date.ctime() + " for " + time 
     53        start = parse(t_one, fuzzy = True) 
     54        end = parse(t_two, fuzzy = True) 
     55        time = relativedelta(end, start) 
     56        reply = "Worked on: " + date.ctime() + " for " + repr(time) 
    7357        ievent.reply(reply) 
     58        adjustment = TimeAdjustment(start, end, time, day) 
     59        return ("add", adjustment) 

SFLC Main Page

[frdm] Support SFLC