Пример #1
0
    def add(self, args):
        _fields = {}

        if 'link' in args:
            try:
                args['title'] = self.TITLE_LINK_REGEX.search(
                    args['link']).group(1)
            except AttributeError:
                raise TVShowsTrackerError((
                    f"Couldn't find {self.TITLE_LINK_REGEX} pattern "
                    f"in {args['link']} string"))
        for field_name in ['topic URL', 'title', 'air', 'link']:
            if field_name == 'air':
                _candidates = ['daily', 'weekly']
                ucli.header('Air:')
                ucli.print_candidates(_candidates)
                _fields['air'] = ucli.parse_selection(_candidates)
                continue
            _field = ucli.get_field(
                field_name,
                prefill=args[field_name] if field_name in args else False,
                necessary=True)
            if field_name == 'topic URL':
                _fields['tracker'], _fields['id'] = self.URL_REGEX.search(
                    _field).groups()
                continue
            if field_name == 'link':
                _fields['link'] = manager.get_path(_field)
                continue
            _fields[field_name] = _field

        topic = self.db.topics.insert(**_fields)
        return self.db.topics[topic]
Пример #2
0
def list(args, db):
    db.check_sort_field(args['--sortby'])
    topics = db.get_list_topics(args['--sortby'])

    from locale import setlocale, LC_TIME
    setlocale(LC_TIME, 'en_US.UTF-8')

    ucli.header(db.format_list_header())
    for topic in topics:
        print(db.format_list_item(topic))
Пример #3
0
 def create_link(self, path_to_file, linkname):
     ucli.header('Linkname:', linkname)
     ucli.print_options('[RETURN] to confirm or [e]dit the linkname')
     linkname = ucli.parse_selection(
             [linkname], {
                 'e': (ucli.inline_prompt, 'New Linkname: ', linkname)})
     self.linkpath = os.path.join(self.LINKS_DIR, linkname)
     try:
         os.symlink(path_to_file, self.linkpath)
         ucli.header('Symlink:', self.linkpath)
         ucli.header('      ->', path_to_file)
         return True
     except FileExistsError:
         return ucli.info('File already exists. Skipping')
Пример #4
0
 def get_metadata(self, filename):
     ucli.header(f'Processing:', filename, with_newline=True)
     if not filename.endswith(self.VIDEO_EXTENTIONS):
         return ucli.info('File hasn\'t recognised as a video file')
     return self.search(**dict(guessit(filename)))