File size: 1,396 Bytes
19949cf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
be9311f
 
 
 
 
 
 
19949cf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c73ca9d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import json
import os
from datetime import datetime

def save_cve_analysis(cve_id, cve_data, summary=None):
    """Save CVE analysis results to JSON file"""
    if not os.path.exists('data'):
        os.makedirs('data')
    
    analysis = {
        'cve_id': cve_id,
        'analyzed_at': datetime.now().isoformat(),
        'cve_data': cve_data,
        'ai_summary': summary
    }
    
    filename = f"data/{cve_id}.json"
    with open(filename, 'w', encoding='utf-8') as f:
        json.dump(analysis, f, ensure_ascii=False, indent=2)
    
    print(f" Saved to {filename}")
    
    # Also store in vector database for similarity search
    try:
        from vector_storage import vector_storage
        vector_storage.add_cve(cve_id, cve_data, summary)
    except:
        pass  # Graceful degradation if vector storage fails

def load_cve_analysis(cve_id):
    """Load analyzed CVE data"""
    filename = f"data/{cve_id}.json"
    if os.path.exists(filename):
        with open(filename, 'r', encoding='utf-8') as f:
            return json.load(f)
    return None

# Test
if __name__ == "__main__":
    from api_client import fetch_cve_simple
    cve_data = fetch_cve_simple("CVE-2021-44228")
    if cve_data:
        save_cve_analysis("CVE-2021-44228", cve_data, "Test summary")
        loaded = load_cve_analysis("CVE-2021-44228")
        print(f"Load successful: {loaded['cve_id']}")