diff options
author | etobi <git@e-tobi.net> | 2011-10-09 12:49:45 +0200 |
---|---|---|
committer | etobi <git@e-tobi.net> | 2011-10-09 19:21:30 +0200 |
commit | 600533b42ef089086d57d7812eaf74c3fdee64ec (patch) | |
tree | e4700e91d819fe780f8eb76cd806a9e7610514ca | |
parent | 5520c303945ce637ff27e97563e376440de05571 (diff) | |
download | vdrnfofs-600533b42ef089086d57d7812eaf74c3fdee64ec.tar.gz vdrnfofs-600533b42ef089086d57d7812eaf74c3fdee64ec.tar.bz2 |
Common base class for file nodes
-rw-r--r-- | vdrnfofs/filesystemnodes.py | 54 |
1 files changed, 22 insertions, 32 deletions
diff --git a/vdrnfofs/filesystemnodes.py b/vdrnfofs/filesystemnodes.py index 99783d0..a25a59c 100644 --- a/vdrnfofs/filesystemnodes.py +++ b/vdrnfofs/filesystemnodes.py @@ -51,18 +51,32 @@ class NodeAttributes(fuse.Stat): self.st_mtime = 0 self.st_ctime = 0 -class MpgNode: - def __init__(self, path): +class FileNode(object): + def __init__(self, path, extension): self.path = path self._file_system_name = None - self._mpeg_files = None - self._reader = None + self.extension = extension def file_system_name(self): if not self._file_system_name: - self._file_system_name = '_'.join(self.path.rsplit('/', 3)[-2:]) + '.mpg' + self._file_system_name = '_'.join(self.path.rsplit('/', 3)[-2:]) + '.' + self.extension return self._file_system_name + def get_stat(self): + attr = NodeAttributes() + attr.st_mode = stat.S_IFREG | stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH + attr.st_nlink = 1 + attr.st_size = self.size() + timevalues = self.path.rsplit('/', 1)[1][:16].replace('.', '-').split('-') + attr.st_mtime = time.mktime(datetime.datetime(*[ int(s) for s in timevalues ]).timetuple()) + return attr + +class MpgNode(FileNode): + def __init__(self, path): + super(MpgNode, self).__init__(path, 'mpg') + self._mpeg_files = None + self._reader = None + def mpeg_files(self): if not self._mpeg_files: self._mpeg_files = glob.glob(self.path + '/[0-9]*.ts') @@ -89,27 +103,12 @@ class MpgNode: if self._reader: self._reader.release() - def get_stat(self): - attr = NodeAttributes() - attr.st_mode = stat.S_IFREG | stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH - attr.st_nlink = 1 - attr.st_size = self.size() - timevalues = self.path.rsplit('/', 1)[1][:16].replace('.', '-').split('-') - attr.st_mtime = time.mktime(datetime.datetime(*[ int(s) for s in timevalues ]).timetuple()) - return attr - -class NfoNode: +class NfoNode(FileNode): def __init__(self, path): - self._file_system_name = None - self.path = path + super(NfoNode, self).__init__(path, 'nfo') self._nfo_content = None - def file_system_name(self): - if not self._file_system_name: - self._file_system_name = '_'.join(self.path.rsplit('/', 3)[-2:]) + '.nfo' - return self._file_system_name - def nfo_content(self): if not self._nfo_content: info_path = self.path + '/info' @@ -132,17 +131,8 @@ class NfoNode: def read(self, offset, size): return self.nfo_content()[offset:offset+size] - def get_stat(self): - attr = NodeAttributes() - attr.st_mode = stat.S_IFREG | stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH - attr.st_nlink = 1 - attr.st_size = self.size() - timevalues = self.path.rsplit('/', 1)[1][:16].replace('.', '-').split('-') - attr.st_mtime = time.mktime(datetime.datetime(*[ int(s) for s in timevalues ]).timetuple()) - return attr - def release(self): - return + pass class DirNode: def __init__(self, path): |