try/catch of objects avoiding not serving any object in case an object has no valid contents
also log duration of how many objects are read per folder
This commit is contained in:
parent
0c1dbc30bd
commit
cd97aab72c
@ -34,6 +34,7 @@ import stat
|
|||||||
import subprocess
|
import subprocess
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
|
import datetime
|
||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
from hashlib import md5
|
from hashlib import md5
|
||||||
from importlib import import_module
|
from importlib import import_module
|
||||||
@ -699,6 +700,7 @@ class Collection(BaseCollection):
|
|||||||
if not os.path.exists(self._filesystem_path):
|
if not os.path.exists(self._filesystem_path):
|
||||||
return None
|
return None
|
||||||
items = []
|
items = []
|
||||||
|
time_begin = datetime.datetime.now()
|
||||||
for href in os.listdir(self._filesystem_path):
|
for href in os.listdir(self._filesystem_path):
|
||||||
if not is_safe_filesystem_path_component(href):
|
if not is_safe_filesystem_path_component(href):
|
||||||
self.logger.debug("Skipping component: %s", href)
|
self.logger.debug("Skipping component: %s", href)
|
||||||
@ -707,7 +709,12 @@ class Collection(BaseCollection):
|
|||||||
if os.path.isfile(path):
|
if os.path.isfile(path):
|
||||||
self.logger.debug("Read object: %s", path)
|
self.logger.debug("Read object: %s", path)
|
||||||
with open(path, encoding=self.encoding, newline="") as fd:
|
with open(path, encoding=self.encoding, newline="") as fd:
|
||||||
items.append(vobject.readOne(fd.read()))
|
try:
|
||||||
|
items.append(vobject.readOne(fd.read()))
|
||||||
|
except:
|
||||||
|
self.logger.error("Object broken (skip): %s", path)
|
||||||
|
time_end = datetime.datetime.now()
|
||||||
|
self.logger.info("Collection read %d items in %s sec from %s", len(items),(time_end - time_begin).total_seconds(), self._filesystem_path)
|
||||||
if self.get_meta("tag") == "VCALENDAR":
|
if self.get_meta("tag") == "VCALENDAR":
|
||||||
collection = vobject.iCalendar()
|
collection = vobject.iCalendar()
|
||||||
for item in items:
|
for item in items:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user