mirror of
https://github.com/Second-Hand-Friends/kleinanzeigen-bot.git
synced 2026-03-12 18:41:50 +01:00
Support extended glob patterns
This commit is contained in:
@@ -2,11 +2,12 @@
|
||||
Copyright (C) 2022 Sebastian Thomschke and contributors
|
||||
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
"""
|
||||
import atexit, copy, getopt, glob, importlib.metadata, json, logging, os, signal, sys, textwrap, time, urllib
|
||||
import atexit, copy, getopt, importlib.metadata, json, logging, os, signal, sys, textwrap, time, urllib
|
||||
from collections.abc import Iterable
|
||||
from datetime import datetime
|
||||
from logging.handlers import RotatingFileHandler
|
||||
from typing import Any, Final
|
||||
from wcmatch import glob
|
||||
|
||||
from overrides import overrides
|
||||
from ruamel.yaml import YAML
|
||||
@@ -192,7 +193,7 @@ class KleinanzeigenBot(SeleniumMixin):
|
||||
ad_files = set()
|
||||
data_root_dir = os.path.dirname(self.config_file_path)
|
||||
for file_pattern in self.config["ad_files"]:
|
||||
for ad_file in glob.glob(file_pattern, root_dir = data_root_dir, recursive = True):
|
||||
for ad_file in glob.glob(file_pattern, root_dir = data_root_dir, flags = glob.BRACE | glob.EXTGLOB):
|
||||
ad_files.add(abspath(ad_file, relative_to = data_root_dir))
|
||||
LOG.info(" -> found %s", pluralize("ad config file", ad_files))
|
||||
if not ad_files:
|
||||
@@ -275,7 +276,7 @@ class KleinanzeigenBot(SeleniumMixin):
|
||||
for image_pattern in ad_cfg["images"]:
|
||||
pattern_images = set()
|
||||
ad_dir = os.path.dirname(ad_file)
|
||||
for image_file in glob.glob(image_pattern, root_dir = ad_dir, recursive = True):
|
||||
for image_file in glob.glob(image_pattern, root_dir = ad_dir, flags = glob.BRACE | glob.EXTGLOB):
|
||||
_, image_file_ext = os.path.splitext(image_file)
|
||||
ensure(image_file_ext.lower() in {".gif", ".jpg", ".jpeg", ".png"}, f"Unsupported image file type [{image_file}]")
|
||||
if os.path.isabs(image_file):
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
ad_files:
|
||||
- "**/ad_*.json"
|
||||
- "**/ad_*.yml"
|
||||
- "**/ad_*.yaml"
|
||||
- "**/ad_*.{json,yml,yaml}"
|
||||
|
||||
# default values for ads, can be overwritten in each ad configuration file
|
||||
ad_defaults:
|
||||
|
||||
Reference in New Issue
Block a user