示例#1
0
def record_name_path(rootPath):
    """record_name_path"""
    global filelist, cmdlist
    for item in rootPath.iterdir():
        try:
            if item.is_dir():
                record_name_path(item)

            elif item.is_file() and item.suffix in [".mp4", ".mkv"]:
                tmp_name = Name(name=item.stem)
                tmp_name.save()

                tmp_path = FilePath(
                    filepath=item,
                    f_name=tmp_name,
                    ctime=time.strftime("%Y-%m-%dT%H:%M:%S",
                                        time.localtime(item.stat().st_ctime)),
                    mtime=time.strftime("%Y-%m-%dT%H:%M:%S",
                                        time.localtime(item.stat().st_mtime)),
                    atime=time.strftime("%Y-%m-%dT%H:%M:%S",
                                        time.localtime(item.stat().st_atime)),
                    size=item.stat().st_size,
                )
                tmp_path.save()

                tmp_coverpath = CoverPath(coverpath=coverpath /
                                          (str(item.stem) + ".jpg"),
                                          f_name=tmp_name)
                tmp_coverpath.save()

                log.debug(("add", item.stem))

        except:
            continue
    def set_name_tag(self, name_id, tag_name):
        tmp_tag, _ = Tag.get_or_create(tagname=tag_name)
        tmp_tag.save()

        tmp_tag.names.add(Name.get(Name.id == name_id))

        return 1
    def get_items(self, start=1, end=None):
        # dont do so much check now
        # end set
        if end is None:
            end = self.nameCount
        elif end > self.nameCount:
            end = self.nameCount

        return list(
            Name.select(Name, FilePath, CoverPath, Name.tags).join_from(
                Name, FilePath).join_from(
                    Name, CoverPath).where((Name.id >= start)
                                           & (Name.id <= end)).order_by(
                                               FilePath.ctime.desc()).dicts())
    def get_items2(self, start=1, end=None):
        # dont do so much check now
        # end set
        if end is None:
            end = self.nameCount
        elif end > self.nameCount:
            end = self.nameCount
        data = []
        for name in (Name.select(Name, FilePath).join_from(
                Name, FilePath).where((Name.id >= start)
                                      & (Name.id <= end)).order_by(
                                          FilePath.ctime.desc())):
            tmp_d = {
                "name_id": name.id,
                "name": name.name,
                "filepath": name.filepath.filepath,
                "tags": list(name.tags.dicts()),
            }
            data.append(tmp_d)

        return data
    def get_file_path_by_name(self, name):
        tmp_name = Name.select().where(Name.name == name).get()

        tmp_file = tmp_name.filepath.get()

        return [peewee_model_to_dict_string(tmp_cover)]
 def get_all_name(self):
     return [peewee_model_to_dict_string(i) for i in Name.select(Name.name)]
 def name2tags(self, name_id):
     tmp_name = Name.get(Name.id == name_id)
     return list(tmp_name.tags.dicts())
 def count_names(self):
     self.nameCount = Name.select().count()
     return self.nameCount
 def __init__(self):
     """__init__"""
     self.nameCount = Name.select().count()