Skip to content

Commit

Permalink
fix: add logs expire after to config
Browse files Browse the repository at this point in the history
  • Loading branch information
datawhores committed Jan 14, 2025
1 parent 34d70ff commit b783ba2
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion cyberdrop_dl/config_definitions/config_settings.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
from logging import DEBUG
from pathlib import Path
from typing import Literal

from datetime import timedelta
from pydantic import BaseModel, ByteSize, Field, NonNegativeInt, PositiveInt, field_serializer, field_validator

from cyberdrop_dl.utils.constants import APP_STORAGE, BROWSERS, DOWNLOAD_STORAGE
from cyberdrop_dl.utils.data_enums_classes.hash import Hashing
from cyberdrop_dl.utils.data_enums_classes.supported_domains import SUPPORTED_SITES_DOMAINS

from .pydantic.custom_types import AliasModel, HttpAppriseURL, NonEmptyStr
from cyberdrop_dl.config_definitions.pydantic.validators import parse_duration_to_timedelta


class DownloadOptions(BaseModel):

Check failure on line 15 in cyberdrop_dl/config_definitions/config_settings.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (I001)

cyberdrop_dl/config_definitions/config_settings.py:1:1: I001 Import block is un-sorted or un-formatted
Expand Down Expand Up @@ -49,6 +50,7 @@ class Logs(AliasModel):
scrape_error_urls: Path = Field(Path("Scrape_Error_URLs.csv"), validation_alias="scrape_error_urls_filename")
rotate_logs: bool = False
log_line_width: PositiveInt = Field(default=240, ge=50)
logs_expire_after: timedelta|None=None

@field_validator("webhook", mode="before")
@classmethod
Expand All @@ -66,6 +68,20 @@ def fix_main_log_extension(cls, value: Path) -> Path:
@classmethod
def fix_other_logs_extensions(cls, value: Path) -> Path:
return value.with_suffix(".csv")

Check failure on line 71 in cyberdrop_dl/config_definitions/config_settings.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

cyberdrop_dl/config_definitions/config_settings.py:71:1: W293 Blank line contains whitespace
@field_validator("logs_expire_after", mode="before")
@staticmethod
def parse_logs_duration(input_date: timedelta | str | int) -> timedelta:
"""Parses `datetime.timedelta`, `str` or `int` into a timedelta format.
for `str`, the expected format is `value unit`, ex: `5 days`, `10 minutes`, `1 year`
valid units:
year(s), week(s), day(s), hour(s), minute(s), second(s), millisecond(s), microsecond(s)
for `int`, value is assummed as `days`
"""
return parse_duration_to_timedelta(input_date)


class FileSizeLimits(BaseModel):
Expand Down

0 comments on commit b783ba2

Please sign in to comment.