File tree Expand file tree Collapse file tree 5 files changed +21
-7
lines changed Expand file tree Collapse file tree 5 files changed +21
-7
lines changed Original file line number Diff line number Diff line change 1
1
"""An API to the CASE ontology."""
2
2
3
3
import rdflib
4
- from rdflib import RDF
4
+ from rdflib import RDF , XSD
5
+ import rdflib .term
5
6
6
7
CASE = rdflib .Namespace ('http://case.example.org/core#' )
7
8
Original file line number Diff line number Diff line change 1
1
2
- from case_plaso import event_exporter
2
+ from case_plaso import event_exporter , lib
3
3
4
4
5
5
@event_exporter .register
@@ -15,7 +15,6 @@ class AndroidCallExporter(event_exporter.EventExporter):
15
15
def __init__ (self , document ):
16
16
super (AndroidCallExporter , self ).__init__ (document )
17
17
self ._contacts = {}
18
- self ._phone_calls = {}
19
18
20
19
def export_event_data (self , event ):
21
20
phone_call_pb = self .document .create_trace ().create_property_bundle (
@@ -43,6 +42,6 @@ def export_event_data(self, event):
43
42
44
43
def export_timestamp (self , event , pb ):
45
44
try :
46
- pb .add (self .TIMESTAMP_MAP [event .timestamp_desc ], event .timestamp )
45
+ pb .add (self .TIMESTAMP_MAP [event .timestamp_desc ], lib . convert_timestamp ( event .timestamp ) )
47
46
except KeyError :
48
47
pass
Original file line number Diff line number Diff line change 1
1
2
2
from plaso .lib .eventdata import EventTimestamp
3
3
4
- from case_plaso import event_exporter
4
+ from case_plaso import event_exporter , lib
5
5
6
6
7
7
@event_exporter .register
@@ -28,7 +28,7 @@ def export_event_data(self, event):
28
28
29
29
def export_timestamp (self , event , pb ):
30
30
try :
31
- pb .add (self .TIMESTAMP_MAP [event .timestamp_desc ], event .timestamp )
31
+ pb .add (self .TIMESTAMP_MAP [event .timestamp_desc ], lib . convert_timestamp ( event .timestamp ) )
32
32
except KeyError :
33
33
# TODO: Log this or something.
34
34
pass
Original file line number Diff line number Diff line change 1
1
2
+ import rdflib
3
+ from plaso .lib import timelib
4
+ import pytz
5
+
6
+
7
+ def convert_timestamp (timestamp ):
8
+ """Converts a plaso timestamp into a valid rdflib Literal."""
9
+ # TODO: Extract timezone from knowledge base in plaso storage file. Assuming UTC for now.
10
+ # TODO: Create binding for XSD.dateTimeStamp. It's unavailable in rdflib.
11
+ # - Binding should allow direct conversion from Iso format.
12
+ timestamp = timelib .Timestamp .CopyToDatetime (timestamp , timezone = pytz .UTC )
13
+ return rdflib .Literal (timestamp , datatype = rdflib .XSD .dateTime )
14
+
2
15
3
16
def hash_dict (dictionary ):
4
17
# NOTE: If we have a recursive dictionary, we have bigger problems.
Original file line number Diff line number Diff line change 26
26
27
27
document = case .Document ()
28
28
exporter = plaso_exporter .PlasoExporter (document )
29
+ print 'Exporting storage file...'
29
30
exporter .export_storage_file (options .storage_file )
30
-
31
+ print 'Serializing graph...'
31
32
document .serialize (format = 'json-ld' , destination = 'test.json' )
You can’t perform that action at this time.
0 commit comments