From be4a84e9f37c01079550871cc30b24e82d9652aa Mon Sep 17 00:00:00 2001 From: etobi Date: Tue, 4 Oct 2011 09:39:40 +0200 Subject: Set mtime of file nodes to recording time (parsed from *.rec) --- HISTORY | 1 + .../sample-vdr1.7/2008-03-28.20.13.10-1.rec/00001.ts | 1 + .../sample-vdr1.7/2008-03-28.20.13.10-1.rec/00002.ts | 1 + .../sample-vdr1.7/2008-03-28.20.13.10-1.rec/00003.ts | 1 + .../sample-vdr1.7/2008-03-28.20.13.10-1.rec/00004.ts | 1 + .../sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/info | 6 ++++++ .../sample-vdr1.7/2008-03-28.20.13.99.99.rec/00001.ts | 1 - .../sample-vdr1.7/2008-03-28.20.13.99.99.rec/00002.ts | 1 - .../sample-vdr1.7/2008-03-28.20.13.99.99.rec/00003.ts | 1 - .../sample-vdr1.7/2008-03-28.20.13.99.99.rec/00004.ts | 1 - .../sample-vdr1.7/2008-03-28.20.13.99.99.rec/info | 6 ------ tests/test_gettattr.py | 8 ++++++++ tests/test_mpg.py | 2 +- tests/test_nfo.py | 2 +- vdrnfofs/filesystemnodes.py | 6 ++++++ vdrnfofs/vdrnfofs.py | 2 +- 16 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00001.ts create mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00002.ts create mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00003.ts create mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00004.ts create mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/info delete mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00001.ts delete mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00002.ts delete mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00003.ts delete mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00004.ts delete mode 100644 tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/info diff --git a/HISTORY b/HISTORY index 37f0a7f..1693729 100644 --- a/HISTORY +++ b/HISTORY @@ -2,6 +2,7 @@ version 0.8 - Use cStringIO instead of string concatenation - about 3 times faster (Patch provided by Ed Hein) - Fixed license header in source files - it's the BSD licence now! + - Set mtime of file nodes to recording time (parsed from *.rec) version 0.7 - Fixed file/dir node permissions diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00001.ts b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00001.ts new file mode 100644 index 0000000..6a537b5 --- /dev/null +++ b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00001.ts @@ -0,0 +1 @@ +1234567890 \ No newline at end of file diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00002.ts b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00002.ts new file mode 100644 index 0000000..c76a964 --- /dev/null +++ b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00002.ts @@ -0,0 +1 @@ +abcdefghij \ No newline at end of file diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00003.ts b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00003.ts new file mode 100644 index 0000000..6a537b5 --- /dev/null +++ b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00003.ts @@ -0,0 +1 @@ +1234567890 \ No newline at end of file diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00004.ts b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00004.ts new file mode 100644 index 0000000..c76a964 --- /dev/null +++ b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/00004.ts @@ -0,0 +1 @@ +abcdefghij \ No newline at end of file diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/info b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/info new file mode 100644 index 0000000..08787fc --- /dev/null +++ b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.10-1.rec/info @@ -0,0 +1,6 @@ +C S19.2E-1-1101-28112 +E 6345 1189982700 18900 4E 10 +T Movie Title +S Movie Subtitle +D A movie about something +X 2 03 deu stereo diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00001.ts b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00001.ts deleted file mode 100644 index 6a537b5..0000000 --- a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00001.ts +++ /dev/null @@ -1 +0,0 @@ -1234567890 \ No newline at end of file diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00002.ts b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00002.ts deleted file mode 100644 index c76a964..0000000 --- a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00002.ts +++ /dev/null @@ -1 +0,0 @@ -abcdefghij \ No newline at end of file diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00003.ts b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00003.ts deleted file mode 100644 index 6a537b5..0000000 --- a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00003.ts +++ /dev/null @@ -1 +0,0 @@ -1234567890 \ No newline at end of file diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00004.ts b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00004.ts deleted file mode 100644 index c76a964..0000000 --- a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/00004.ts +++ /dev/null @@ -1 +0,0 @@ -abcdefghij \ No newline at end of file diff --git a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/info b/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/info deleted file mode 100644 index 08787fc..0000000 --- a/tests/sample_video_dir/sample-vdr1.7/2008-03-28.20.13.99.99.rec/info +++ /dev/null @@ -1,6 +0,0 @@ -C S19.2E-1-1101-28112 -E 6345 1189982700 18900 4E 10 -T Movie Title -S Movie Subtitle -D A movie about something -X 2 03 deu stereo diff --git a/tests/test_gettattr.py b/tests/test_gettattr.py index 6b215e5..f0af089 100644 --- a/tests/test_gettattr.py +++ b/tests/test_gettattr.py @@ -32,6 +32,7 @@ import sys import os import unittest import stat +import datetime sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) @@ -56,7 +57,14 @@ class TestPathToNodeMapping(unittest.TestCase): def test_mpg(self): attr = self.fs.getattr('/sample_2008-03-28.20.13.99.99.rec.mpg') self.assertEqual(stat.S_IFREG | 0444, attr.st_mode) + self.assertEqual(datetime.datetime(2008,3,28,20,13), datetime.datetime.fromtimestamp(attr.st_mtime)) def test_nfo(self): attr = self.fs.getattr('/sample_2008-03-28.20.13.99.99.rec.nfo') self.assertEqual(stat.S_IFREG | 0444, attr.st_mode) + self.assertEqual(datetime.datetime(2008,3,28,20,13), datetime.datetime.fromtimestamp(attr.st_mtime)) + + def test_nfo_new(self): + attr = self.fs.getattr('/sample-vdr1.7_2008-03-28.20.13.10-1.rec.nfo') + self.assertEqual(stat.S_IFREG | 0444, attr.st_mode) + self.assertEqual(datetime.datetime(2008,3,28,20,13), datetime.datetime.fromtimestamp(attr.st_mtime)) diff --git a/tests/test_mpg.py b/tests/test_mpg.py index 1b93878..cebfec9 100644 --- a/tests/test_mpg.py +++ b/tests/test_mpg.py @@ -51,7 +51,7 @@ class TestMpg(unittest.TestCase): self.assertEqual('1234567890abcdefghij1234567890abcdefghij', node.read(0, 4096)) def test_mpg_new(self): - node = get_node(self.video, '/sample-vdr1.7_2008-03-28.20.13.99.99.rec.mpg') + node = get_node(self.video, '/sample-vdr1.7_2008-03-28.20.13.10-1.rec.mpg') self.assertEqual(40, node.size()) self.assertEqual('1234567890abcdefghij1234567890abcdefghij', node.read(0, 4096)) diff --git a/tests/test_nfo.py b/tests/test_nfo.py index 5e6cb2d..71c352d 100644 --- a/tests/test_nfo.py +++ b/tests/test_nfo.py @@ -52,7 +52,7 @@ class TestNfo(unittest.TestCase): self.assertEqual('A movie about something', nfo.find('plot').text) def test_nfo_new(self): - node = get_node(self.video, '/sample-vdr1.7_2008-03-28.20.13.99.99.rec.nfo') + node = get_node(self.video, '/sample-vdr1.7_2008-03-28.20.13.10-1.rec.nfo') nfo = xml.etree.ElementTree.fromstring(node.read(0, 4096)) self.assertEqual('Movie Title', nfo.find('title').text) self.assertEqual('A movie about something', nfo.find('plot').text) diff --git a/vdrnfofs/filesystemnodes.py b/vdrnfofs/filesystemnodes.py index f6d7673..c5eaade 100644 --- a/vdrnfofs/filesystemnodes.py +++ b/vdrnfofs/filesystemnodes.py @@ -32,6 +32,8 @@ import glob import os import fuse import stat +import datetime +import time from concatenated_file_reader import * from vdr import * @@ -76,6 +78,8 @@ class MpgNode: 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 @@ -107,6 +111,8 @@ class NfoNode: 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): diff --git a/vdrnfofs/vdrnfofs.py b/vdrnfofs/vdrnfofs.py index a1d807e..6e9cc8b 100644 --- a/vdrnfofs/vdrnfofs.py +++ b/vdrnfofs/vdrnfofs.py @@ -105,7 +105,7 @@ class VdrNfoFs(fuse.Fuse): return node.get_stat() return -errno.ENOENT except: - syslog.syslog('VdrFuseFs: Unexpected error for getattr(%s): %s' % path) + syslog.syslog('VdrFuseFs: Unexpected error for getattr(%s)' % path) def readdir(self, path, offset): try: -- cgit v1.2.3