(text: Any)
| 1264 | |
| 1265 | |
| 1266 | def detect_reviewer_watch_request(text: Any) -> Optional[Dict[str, Any]]: |
| 1267 | cleaned = first_meaningful_line(text) |
| 1268 | lowered = cleaned.lower().strip() |
| 1269 | if "reviewer" not in lowered and "审稿" not in cleaned: |
| 1270 | return None |
| 1271 | conference_match = re.search(r"\b(ICLR|NeurIPS|ICML|ACL|EMNLP)\b", cleaned, flags=re.I) |
| 1272 | year_match = re.search(r"\b(20\d{2})\b", cleaned) |
| 1273 | if not conference_match: |
| 1274 | return None |
| 1275 | return { |
| 1276 | "conference": conference_match.group(1).lower(), |
| 1277 | "year": int(year_match.group(1)) if year_match else datetime.now().year, |
| 1278 | } |
| 1279 | |
| 1280 | |
| 1281 | def looks_like_cold_start_description(text: Any, profile: Optional[Dict[str, Any]] = None) -> bool: |
no test coverage detected