|
67 | 67 | ) |
68 | 68 |
|
69 | 69 | # All control characters are disallowed in str metadata except \n, \r and \t |
70 | | -CONTROL_CHARACTERS_REGEX = regex.compile(r"(?![\n\t\r])\p{C}") |
| 70 | +UNWANTED_CONTROL_CHARACTERS_REGEX = regex.compile(r"(?![\n\t\r])\p{C}") |
71 | 71 |
|
72 | 72 |
|
73 | 73 | def mimetype_for( |
@@ -256,10 +256,9 @@ def add_metadata( |
256 | 256 | ): |
257 | 257 | # drop control characters before passing them to libzim |
258 | 258 | if isinstance(content, str): |
259 | | - if CONTROL_CHARACTERS_REGEX.search(content): |
260 | | - content = CONTROL_CHARACTERS_REGEX.sub("", content).strip(" \r\n\t") |
261 | | - else: |
262 | | - content = content.strip(" \r\n\t") |
| 259 | + content = UNWANTED_CONTROL_CHARACTERS_REGEX.sub("", content).strip( |
| 260 | + " \r\n\t" |
| 261 | + ) |
263 | 262 | if not self.disable_metadata_checks: |
264 | 263 | self.validate_metadata(name, content) |
265 | 264 | if name == "Date" and isinstance(content, (datetime.date, datetime.datetime)): |
@@ -314,16 +313,13 @@ def config_metadata( |
314 | 313 | } |
315 | 314 | ) |
316 | 315 | self._metadata.update(extras) |
317 | | - for k, v in self._metadata.items(): |
| 316 | + for metadata_key, metadata_value in self._metadata.items(): |
318 | 317 | # drop control characters so that proper value is stored in memory and |
319 | 318 | # logged in DEBUG mode ; also strip blank characters |
320 | | - if isinstance(v, str): |
321 | | - if CONTROL_CHARACTERS_REGEX.search(v): |
322 | | - self._metadata[k] = CONTROL_CHARACTERS_REGEX.sub("", v).strip( |
323 | | - " \r\n\t" |
324 | | - ) |
325 | | - else: |
326 | | - self._metadata[k] = v.strip(" \r\n\t") |
| 319 | + if isinstance(metadata_value, str): |
| 320 | + self._metadata[metadata_key] = UNWANTED_CONTROL_CHARACTERS_REGEX.sub( |
| 321 | + "", metadata_value |
| 322 | + ).strip(" \r\n\t") |
327 | 323 | return self |
328 | 324 |
|
329 | 325 | def config_dev_metadata(self, **extras: str): |
|
0 commit comments