def test_utils_parse_datestring(): single_dot = parse_datestring('01.01.1970') assert single_dot == (datetime.datetime(1970, 1, 1, 23, 59), None) single_dash = parse_datestring('01-01-1970') assert single_dash == (datetime.datetime(1970, 1, 1, 23, 59), None) ans_range = (datetime.datetime(1970, 1, 1, 23, 59), datetime.datetime(1970, 5, 1, 23, 59)) range_dot = parse_datestring('01.01.1970 - 01.05.1970') assert range_dot == ans_range range_dash = parse_datestring('01.05.1970 01-01-1970') assert range_dash == ans_range assert parse_datestring('01.05.1970.0101-1970') == ans_range
def expires_at(self, date=None, category=None, media_type=None): new = None if date is None: date = datetime.now().date() else: old, new = parse_datestring(date) if new is None: date = old.date() expires_soon = [] all_programs = self.site_rip() for media in all_programs: if media.type == 'serie' and media_type is None or media_type == 'serie': for ep in media.episodes(): if category and category != ep.category.name: continue if new: # We need to check ep is available because # it still be available_to but we cant download it.. if old <= ep.available_to <= new and ep.available: expires_soon.append(ep) elif ep.available_to.date() == date and ep.available: expires_soon.append(ep) else: if category and category != media.category.name: continue if media_type and media_type != media.type: continue if new: if old <= media.available_to <= new and media.available: expires_soon.append(media) elif media.available_to.date() == date and media.available: expires_soon.append(media) if expires_soon: print('%s expires today' % len(expires_soon)) eps = _console_select(expires_soon, ['full_title']) [m.download(os.path.join(self.save_path, str(date))) for m in eps] ip = compat_input('Download que is %s do you wish to download everything now? y/n\n' % len(self.downloads())) if ip == 'y': self.downloads().start()