diff --git a/apps/crawler/src/ma_http.py b/apps/crawler/src/ma_http.py index 1bee730..ad9188b 100644 --- a/apps/crawler/src/ma_http.py +++ b/apps/crawler/src/ma_http.py @@ -240,24 +240,33 @@ def _parse_list_row(row, country_code: str) -> Optional[Dict]: def _parse_archive_row(row, order_by: str) -> Optional[Dict]: - """Ligne des archives : [name_html, country_html, genre, date_str]""" + """ + Ligne des archives MA (6 colonnes) : + [date_label, band_link, country_link, genre, time_label, user_link] + ex: ["June 1", "Foo", "Germany", + "Black Metal", "Jun 1st, 02:04", "bar"] + + Note : les dates ("June 1", "Jun 1st, 02:04") n'incluent pas l'année → date_str=None, + la logique d'arrêt incrémental sur date est désactivée, on re-fetch toutes les ~800 + entrées à chaque run (coût négligeable). + """ if len(row) < 4: return None - href, name = _extract_link(row[0]) + href, name = _extract_link(row[1]) ma_id = _extract_ma_id(href) if not ma_id or not name: return None - country_href, _ = _extract_link(row[1]) + country_href, _ = _extract_link(row[2]) m = re.search(r"/lists/([A-Z]{1,3})", country_href or "") - cc = m.group(1) if m else _clean(row[1]) + cc = m.group(1) if m else _clean(row[2]) return { "ma_id": ma_id, "name": name, "url": href, "country": cc, - "genre": _clean(row[2]), - "date_str": _clean(row[3]), + "genre": _clean(row[3]), + "date_str": None, # pas d'année dans le format MA → pas de filtre date "date_type": order_by, }