sharing/csv separator and properties overlay

This commit is contained in:
Peter Bieringer
2026-02-28 07:44:52 +01:00
parent b33f78344b
commit 9b6f6b2cd6
3 changed files with 13 additions and 7 deletions

View File

@@ -958,7 +958,8 @@ class BaseSharing:
if output_format == "csv":
writer.writeheader()
for entry in answer['Content']:
writer.writerow(entry)
# TODO: Argument 1 to "writerow" of "DictWriter" has incompatible type "str"; expected "Mapping[str, Any]" [arg-type]
writer.writerow(entry) # type: ignore[arg-type]
if output_format == "csv":
answer_array.append(csv.getvalue())
else:

View File

@@ -128,9 +128,9 @@ class Sharing(sharing.BaseSharing):
UserShare = row['User']
Permissions = row['Permissions']
Hidden: bool = (row['HiddenByOwner'] or row['HiddenByUser'])
Properties = row['Properties']
if logger.isEnabledFor(logging.DEBUG):
logger.debug("TRACE/sharing: map %r to %r (Owner=%r User=%r Permissions=%r Hidden=%s Properties=%r)", PathOrToken, PathMapped, Owner, UserShare, Permissions, Hidden, Properties)
Properties: Union[dict, None] = None
if 'Properties' in row:
Properties = row['Properties']
return {
"mapped": True,
"PathOrToken": PathOrToken,
@@ -501,7 +501,7 @@ class Sharing(sharing.BaseSharing):
def _create_empty_csv(self, file: str) -> bool:
with self._storage.acquire_lock("w", None, path=file):
with open(file, 'w', newline='') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=sharing.DB_FIELDS_V1)
writer = csv.DictWriter(csvfile, fieldnames=sharing.DB_FIELDS_V1, delimiter=';')
writer.writeheader()
return True
@@ -523,7 +523,10 @@ class Sharing(sharing.BaseSharing):
# convert txt to bool
if self._lines > 0:
for fieldname in sharing.DB_FIELDS_V1_BOOL:
row[fieldname] = config._convert_to_bool(row[fieldname])
try:
row[fieldname] = config._convert_to_bool(row[fieldname])
except Exception as e:
logger.error("sharing database row error fieldname=%r row=%r error: %r", fieldname, row, e)
for fieldname in sharing.DB_FIELDS_V1_INT:
row[fieldname] = int(row[fieldname])
# check for duplicates

View File

@@ -122,7 +122,9 @@ class Sharing(sharing.BaseSharing):
UserShare = row['User']
Permissions = row['Permissions']
Hidden: bool = (row['HiddenByOwner'] or row['HiddenByUser'])
Properties = row['Properties']
Properties: Union[dict, None] = None
if 'Properties' in row:
Properties = row['Properties']
if logger.isEnabledFor(logging.DEBUG):
logger.debug("TRACE/sharing: map %r to %r (Owner=%r User=%r Permissions=%r Hidden=%s Properties=%r)", PathOrToken, PathMapped, Owner, UserShare, Permissions, Hidden, Properties)
return {