fix: review findings - OUTPUT_DIR centralised, no hardcoded vwts.ru, normal imports

This commit is contained in:
2026-06-04 09:08:51 +03:00
parent 1cfa6d1595
commit 4a3d5d21d1
14 changed files with 12 additions and 13 deletions
+1 -3
View File
@@ -8,10 +8,8 @@
""" """
import sys, logging import sys, logging
from pathlib import Path from .config import OUTPUT_DIR
# Настройка логирования
OUTPUT_DIR = Path("vwts_data")
OUTPUT_DIR.mkdir(parents=True, exist_ok=True) OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
logging.basicConfig( logging.basicConfig(
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
View File
@@ -1,10 +1,12 @@
"""Константы.""" """Константы."""
import socket import socket
from pathlib import Path
# Глобальный таймаут сокетов # Глобальный таймаут сокетов
socket.setdefaulttimeout(30) socket.setdefaulttimeout(30)
OUTPUT_DIR = Path("vwts_data") # куда сохраняем данные
DELAY = 1.5 # секунд между запросами DELAY = 1.5 # секунд между запросами
TIMEOUT = (10, 30) # (connect, read) TIMEOUT = (10, 30) # (connect, read)
TOPICS_PER_FILE = 100 TOPICS_PER_FILE = 100
+1 -3
View File
@@ -2,10 +2,8 @@
import json, logging import json, logging
from datetime import datetime from datetime import datetime
from pathlib import Path from .config import TOPICS_PER_FILE, OUTPUT_DIR
from .config import TOPICS_PER_FILE
OUTPUT_DIR = Path("vwts_data")
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
+7 -4
View File
@@ -1,7 +1,9 @@
"""Основной цикл: обход страниц раздела → темы → посты → сохранение.""" """Основной цикл: обход страниц раздела → темы → посты → сохранение."""
import sys, logging import sys, logging
from .config import HEADERS from pathlib import Path
from urllib.parse import urlparse
from .config import OUTPUT_DIR
from .fetch import get, session from .fetch import get, session
from .paginate import count, verify_last from .paginate import count, verify_last
from .parse import parse_topics, parse_posts, parse_tags from .parse import parse_topics, parse_posts, parse_tags
@@ -85,11 +87,13 @@ def run(section_url: str):
posts, tags = [], parse_tags(topic_soup) posts, tags = [], parse_tags(topic_soup)
# ── Обход страниц темы ──────────────────────────────────── # ── Обход страниц темы ────────────────────────────────────
base = f"{urlparse(section_url).scheme}://{urlparse(section_url).netloc}"
for tpp in range(1, topic_pages + 1): for tpp in range(1, topic_pages + 1):
if tpp == 1: if tpp == 1:
posts += parse_posts(topic_soup) posts += parse_posts(topic_soup)
else: else:
tp2 = get(f"https://vwts.ru/forum/topic/{tid}/page-{tpp}") tp2 = get(f"{base}/forum/topic/{tid}/page-{tpp}")
if tp2: if tp2:
posts += parse_posts(tp2) posts += parse_posts(tp2)
@@ -106,7 +110,6 @@ def run(section_url: str):
log.info("=" * 60) log.info("=" * 60)
log.info(f"'{section_name}'{st['topic_count']} тем " log.info(f"'{section_name}'{st['topic_count']} тем "
f"в {st['file_index']+1} частях") f"в {st['file_index']+1} частях")
for f in sorted((__import__('pathlib').Path('vwts_data') / for f in sorted((OUTPUT_DIR / section_slug).glob("part_*.jsonl")):
section_slug).glob("part_*.jsonl")):
log.info(f" 📄 {f.name} ({f.stat().st_size/1024/1024:.1f} MB)") log.info(f" 📄 {f.name} ({f.stat().st_size/1024/1024:.1f} MB)")
log.info("=" * 60) log.info("=" * 60)
+1 -3
View File
@@ -1,9 +1,7 @@
"""Управление состоянием (state.json в папке раздела).""" """Управление состоянием (state.json в папке раздела)."""
import json import json
from pathlib import Path from .config import OUTPUT_DIR
OUTPUT_DIR = Path("vwts_data")
def _state_file(section_slug: str) -> Path: def _state_file(section_slug: str) -> Path: