GodsDevProject commited on
Commit
f9ddf4e
·
verified ·
1 Parent(s): ec62744

Update ingest/fbi_vault_live.py

Browse files
Files changed (1) hide show
  1. ingest/fbi_vault_live.py +31 -15
ingest/fbi_vault_live.py CHANGED
@@ -1,20 +1,36 @@
1
- import httpx
2
  from ingest.generic_public_foia import GenericFOIAAdapter
3
 
 
4
  class FBIAdapter(GenericFOIAAdapter):
5
- name = "FBI Vault"
6
- rate_limit = 1
7
- robots_respected = True
8
- base_url = "https://vault.fbi.gov/search"
9
 
10
  async def search(self, query: str):
11
- async with httpx.AsyncClient(timeout=10) as client:
12
- r = await client.get(self.base_url, params={"q": query})
13
- if r.status_code != 200:
14
- return []
15
- return [{
16
- "source": "FBI Vault",
17
- "query": query,
18
- "url": str(r.url),
19
- "snippet": "Public FBI Vault search results"
20
- }]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import aiohttp
2
  from ingest.generic_public_foia import GenericFOIAAdapter
3
 
4
+
5
  class FBIAdapter(GenericFOIAAdapter):
6
+ source_name = "FBI Vault"
7
+ base_url = "https://vault.fbi.gov"
8
+ source_type = "live"
 
9
 
10
  async def search(self, query: str):
11
+ await self._rate_limit()
12
+ try:
13
+ async with aiohttp.ClientSession() as session:
14
+ async with session.get(
15
+ f"{self.base_url}/search",
16
+ params={"q": query},
17
+ timeout=12
18
+ ) as resp:
19
+ if resp.status != 200:
20
+ return []
21
+
22
+ text = await resp.text()
23
+
24
+ if "reading-room" in text.lower():
25
+ return [{
26
+ "source": self.source_name,
27
+ "title": f"FBI Vault document mentioning '{query}'",
28
+ "url": f"{self.base_url}/search?q={query}",
29
+ "snippet": "Public FBI FOIA document from The Vault.",
30
+ "live": True,
31
+ "extended": False
32
+ }]
33
+ except Exception:
34
+ return []
35
+
36
+ return []