Add Debug option

This commit is contained in:
monosans
2023-02-06 20:59:03 +03:00
parent 9eb893bb6c
commit 490efee372
3 changed files with 32 additions and 10 deletions
+3
View File
@@ -29,6 +29,9 @@ SortBySpeed = yes
; Leave empty to save the proxies to the current directory.
SavePath =
; Enable output of all errors
Debug = no
[Folders]
; This section is ignored if CheckWebsite is not 'default'.
+14 -5
View File
@@ -3,6 +3,7 @@ from __future__ import annotations
import asyncio
import logging
import sys
from configparser import ConfigParser
import rich.traceback
from rich.console import Console
@@ -26,10 +27,10 @@ def set_event_loop_policy() -> None:
uvloop.install()
def configure_logging(console: Console) -> None:
def configure_logging(console: Console, *, debug: bool) -> None:
rich.traceback.install(console=console)
logging.basicConfig(
level=logging.INFO,
level=logging.DEBUG if debug else logging.INFO,
format="%(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
handlers=(
@@ -43,13 +44,21 @@ def configure_logging(console: Console) -> None:
)
def get_config(file: str) -> ConfigParser:
cfg = ConfigParser(interpolation=None)
cfg.read(file, encoding="utf-8")
return cfg
def main() -> None:
set_event_loop_policy()
console = Console()
configure_logging(console)
cfg = get_config("config.ini")
psc = ProxyScraperChecker.from_ini("config.ini", console=console)
console = Console()
configure_logging(console, debug=cfg["General"].getboolean("Debug", False))
psc = ProxyScraperChecker.from_configparser(cfg, console=console)
asyncio.run(psc.run())
+15 -5
View File
@@ -173,14 +173,12 @@ class ProxyScraperChecker:
self.sem = asyncio.Semaphore(max_connections)
@classmethod
def from_ini(
def from_configparser(
cls: Type[TProxyScraperChecker],
file_name: str,
cfg: ConfigParser,
*,
console: Optional[Console] = None,
) -> TProxyScraperChecker:
cfg = ConfigParser(interpolation=None)
cfg.read(file_name, encoding="utf-8")
general = cfg["General"]
folders = cfg["Folders"]
http = cfg["HTTP"]
@@ -261,7 +259,13 @@ class ProxyScraperChecker:
status = response.status
text = await response.text()
except Exception as e:
logger.error("%s | %s | %s", source, e.__class__.__qualname__, e)
logger.error(
"%s | %s.%s | %s",
source,
e.__class__.__module__,
e.__class__.__qualname__,
e,
)
else:
proxies = tuple(self.regex.finditer(text))
if proxies:
@@ -300,6 +304,12 @@ class ProxyScraperChecker:
if isinstance(e, OSError) and e.errno == 24:
logger.error("Please, set MaxConnections to lower value.")
logger.debug(
"%s.%s | %s",
e.__class__.__module__,
e.__class__.__qualname__,
e,
)
self.proxies[proto].remove(proxy)
progress.update(task, advance=1)