GodsDevProject commited on
Commit
2568db7
·
verified ·
1 Parent(s): 49e17bf

Create ingest/extended_live_adapter.py

Browse files
Files changed (1) hide show
  1. ingest/extended_live_adapter.py +43 -0
ingest/extended_live_adapter.py ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import aiohttp
2
+ from ingest.generic_public_foia import GenericFOIAAdapter
3
+
4
+ class ExtendedLiveAdapter(GenericFOIAAdapter):
5
+ """
6
+ Extended live adapter.
7
+ Only active when Extended Features are enabled.
8
+ Uses conservative public search / keyword presence.
9
+ """
10
+
11
+ source_type = "live"
12
+ extended_only = True # UI gate
13
+
14
+ async def _safe_search(self, search_url: str, query: str):
15
+ await self._rate_limit()
16
+
17
+ try:
18
+ async with aiohttp.ClientSession() as session:
19
+ async with session.get(
20
+ search_url,
21
+ params={"q": query},
22
+ timeout=12,
23
+ headers={"User-Agent": "HF-FOIA-Search/1.0"}
24
+ ) as resp:
25
+ if resp.status != 200:
26
+ return []
27
+
28
+ text = await resp.text()
29
+
30
+ # conservative presence check
31
+ if query.lower() in text.lower():
32
+ return [{
33
+ "source": self.source_name,
34
+ "title": f"{self.source_name} public document mentioning '{query}'",
35
+ "url": search_url,
36
+ "snippet": "Public FOIA-released material (extended live mode).",
37
+ "live": True,
38
+ "extended": True
39
+ }]
40
+ except Exception:
41
+ return []
42
+
43
+ return []