Example #1
0
def run():
    """ Parse command-line arguments and invoke room availability finder """
    parser = argparse.ArgumentParser()
    parser.add_argument("-u", "--user", help="user name for exchange/outlook")
    parser.add_argument("-prefix", "--prefix",
                        help="A prefix to search for. e.g. 'SJC19- SJC18-'",
                        default='SJC19-2-')
    parser.add_argument("-start", "--starttime",
                        help="Starttime e.g. 2014-07-02T11:00:00 (default = now)",
                        default=common.time_now())
    parser.add_argument("-duration", "--duration",
                        help="Duration e.g. 1h or 15m (default = 1h)",
                        default='1h')
    parser.add_argument("-f", "--file",
                        help="csv filename with room info (default={}).".format(common.ROOMS_CSV),
                        default=common.ROOMS_CSV)

    args = parser.parse_args()

    if args.user:
        args.password = base64.b64encode(getpass.getpass("Password:"))
    else:
        args.user = '******'
        args.password = ''

    room_finder = AvailRoomFinder(user=args.user, password=args.password,
                                  start_time=args.starttime, duration=args.duration,
                                  filename=args.file)
#    print room_finder.search_free(prefix=args.prefix)
    print room_finder.search_common_free(['*****@*****.**', '*****@*****.**'])
Example #2
0
 def __init__(self):
     self.start_time = common.time_now()
     self.end_time = common.end_time(self.start_time, "15m")
     self.room_info = {}
     self.timezone = common.SJ_TIME_ZONE
     self.error = None
     self.exchange_api = ExchangeApi('', '')
Example #3
0
def process(name, url):
    date = common.time_now()
    try:
        p = multiprocessing.Process(target=download, args=(name, url))
        p.start()
        p.join()
        # download(name, url)
    finally:
        return Event(UPLOAD, (name, url, date))
Example #4
0
def process(name, url):
    try:
        data = {"url": url, "date": common.time_now()}
        p = multiprocessing.Process(target=download, args=(name, url))
        p.start()
        p.join()
        # download(name, url)
        upload("bili_web", name, data)
    finally:
        return Event(BE_MODIFIED, args=(url, ))
Example #5
0
 def __init__(self, user, password,
              start_time=common.time_now(), duration=None, end_time=None,
              filename=common.ROOMS_CSV, timezone=common.SJ_TIME_ZONE):
     self.rooms = common.read_room_list(filename)
     self.user = user
     self.start_time = start_time
     self.room_info = {}
     self.timezone = timezone or common.SJ_TIME_ZONE
     self.error = None
     self.exchange_api = ExchangeApi(user, base64.b64decode(urllib.unquote(password)))
     if end_time is None:
         self.end_time = common.end_time(self.start_time, duration)
     if duration is None:
         self.end_time = end_time
Example #6
0
def process(name, url, mod):
    try:
        now = common.time_now()
        if mod == 'dl':
            p = multiprocessing.Process(target=download, args=(name, url))
            p.start()
            p.join()
            # download(name, url)
            Upload(name).start(url, now)
        elif mod == 'up':
            Upload(name).start(url, now)
        else:
            return url
    finally:
        event = Event(BE_MODIFIED)
        event.args = (url, )
        return event
Example #7
0
 def __init__(self, user, password,
              roomname, roomemail=None,
              start_time=common.time_now(), duration=None, end_time=None,
              raw_password=None,
              timezone=common.SJ_TIME_ZONE):
     self.user = user
     self.roomname = roomname
     if roomemail is None:
         self.roomemail = common.read_room_list()[roomname]["email"]
     else:
         self.roomemail = roomemail
     self.start_time = start_time
     self.timezone = self._calc_timezone_str(timezone)
     password = raw_password or base64.b64decode(urllib.unquote(password))
     self.exchange_api = ExchangeApi(user, password)
     if end_time is None:
         self.end_time = common.end_time(self.start_time, duration)
     if duration is None:
         self.end_time = end_time
Example #8
0
def run():
    """ Parse command-line arguments and request room reservation """
    parser = argparse.ArgumentParser()
    parser.add_argument("-u", "--user", help="user name for exchange/outlook", required=True)
    parser.add_argument("-start", "--starttime",
                        help="Starttime e.g. 2014-07-02T11:00:00 (default = now)",
                        default=common.time_now())
    parser.add_argument("-d", "--duration",
                        help="Duration e.g. 30m (default = 1h)",
                        default='1h')
    parser.add_argument("-e", "--roomemail",
                        help="Email address of room",
                        required=True)
    parser.add_argument("-r", "--roomname",
                        help="Name of room",
                        required=True)

    args = parser.parse_args()
    args.password = base64.b64encode(getpass.getpass("Password:"))

    room_finder = ReserveAvailRoom(user=args.user, password=args.password,
                                   roomname=args.roomname, roomemail=args.roomemail,
                                   start_time=args.starttime, duration=args.duration)
    room_finder.reserve_room()
Example #9
0
 def free_upload(self):
     for title, urls in self.streamer_url.items():
         if self.free(urls) and UploadBase.filter_file(title):
             yield Event(UPLOAD, args=(title, urls[0], common.time_now()))
Example #10
0
def process(name, url):
    date = common.time_now()
    try:
        download(name, url)
    finally:
        return Event(UPLOAD, (name, url, date))
Example #11
0
def process_upload(name, url):
    try:
        data = {"url": url, "date": common.time_now()}
        upload("bili_web", name, data)
    finally:
        return Event(BE_MODIFIED, args=(url, ))