Difference between revisions of "TruxtonInvestigation"
(→Sample) |
|||
| Line 3: | Line 3: | ||
=Attributes and Methods= | =Attributes and Methods= | ||
| − | ==<code>addmedia(id)</code>== | + | ==<code>addmedia(id: object)</code>== |
Adds the given media to this investigation. | Adds the given media to this investigation. | ||
| − | The <code>id</code> parameter is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the [[TruxtonMedia | media]] to add. | + | The <code>id</code> parameter is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the [[TruxtonMedia|media]] to add. |
This is valid only after a call to <code>save()</code> | This is valid only after a call to <code>save()</code> | ||
| − | ==<code>case</code>== | + | ==<code>case: str</code>== |
A case number for this investigation. | A case number for this investigation. | ||
This corresponds to the <code>[CaseNumber]</code> column of the <code>[Investigation]</code> table. | This corresponds to the <code>[CaseNumber]</code> column of the <code>[Investigation]</code> table. | ||
| − | ==<code>description</code>== | + | ==<code>description: str</code>== |
A description of the investigation. | A description of the investigation. | ||
This corresponds to the <code>[Description]</code> column of the <code>[Investigation]</code> table. | This corresponds to the <code>[Description]</code> column of the <code>[Investigation]</code> table. | ||
| − | ==<code>id</code>== | + | ==<code>id: str</code>== |
A [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] for the investigation. | A [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] for the investigation. | ||
This corresponds to the <code>[ID]</code> column of the <code>[Investigation]</code> table. | This corresponds to the <code>[ID]</code> column of the <code>[Investigation]</code> table. | ||
| − | ==<code>jurisdiction</code>== | + | ==<code>jurisdiction: str</code>== |
The jurisdiction for whom this investigation is being conducted. | The jurisdiction for whom this investigation is being conducted. | ||
This corresponds to the <code>[Name]</code> column of the <code>[Jurisdiction]</code> table. | This corresponds to the <code>[Name]</code> column of the <code>[Jurisdiction]</code> table. | ||
| − | ==<code>name</code>== | + | ==<code>name: str</code>== |
The name of this investigation. | The name of this investigation. | ||
This corresponds to the <code>[Name]</code> column of the <code>[Investigation]</code> table. | This corresponds to the <code>[Name]</code> column of the <code>[Investigation]</code> table. | ||
| − | ==<code>removemedia(id)</code>== | + | ==<code>removemedia(id: object)</code>== |
Removes the given media from this investigation. | Removes the given media from this investigation. | ||
The <code>id</code> parameter is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the [[TruxtonMedia|media]] to remove. | The <code>id</code> parameter is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the [[TruxtonMedia|media]] to remove. | ||
This is valid only after a call to <code>save()</code> and does not delete the media. | This is valid only after a call to <code>save()</code> and does not delete the media. | ||
| − | ==<code>save()</code>== | + | ==<code>save() -> bool</code>== |
This will commit the information to the <code>[Investigation]</code> table. | This will commit the information to the <code>[Investigation]</code> table. | ||
It will return [https://docs.python.org/3/library/constants.html#True True] if the record was saved to the database, [https://docs.python.org/3/library/constants.html#False False] if there was an error. | It will return [https://docs.python.org/3/library/constants.html#True True] if the record was saved to the database, [https://docs.python.org/3/library/constants.html#False False] if there was an error. | ||
| − | ==<code>status</code>== | + | ==<code>status: int</code>== |
The name of this investigation. | The name of this investigation. | ||
This corresponds to the <code>[InvestigationStatusID]</code> column of the <code>[Investigation]</code> table. | This corresponds to the <code>[InvestigationStatusID]</code> column of the <code>[Investigation]</code> table. | ||
It should contain a value from the <code>[ID]</code> column of the <code>[InvestigationStatus]</code> table. | It should contain a value from the <code>[ID]</code> column of the <code>[InvestigationStatus]</code> table. | ||
| − | ==<code>type</code>== | + | ==<code>type: int</code>== |
The type of the investigation. | The type of the investigation. | ||
This corresponds to the <code>[InvestigationTypeID]</code> column of the <code>[Investigation]</code> table or it can be a [[Investigation Types | predefined constant.]] | This corresponds to the <code>[InvestigationTypeID]</code> column of the <code>[Investigation]</code> table or it can be a [[Investigation Types | predefined constant.]] | ||
Revision as of 11:11, 30 July 2022
This class lets you add an investigation to Truxton.
Contents
Attributes and Methods
addmedia(id: object)
Adds the given media to this investigation.
The id parameter is the GUID of the media to add.
This is valid only after a call to save()
case: str
A case number for this investigation.
This corresponds to the [CaseNumber] column of the [Investigation] table.
description: str
A description of the investigation.
This corresponds to the [Description] column of the [Investigation] table.
id: str
A GUID for the investigation.
This corresponds to the [ID] column of the [Investigation] table.
jurisdiction: str
The jurisdiction for whom this investigation is being conducted.
This corresponds to the [Name] column of the [Jurisdiction] table.
name: str
The name of this investigation.
This corresponds to the [Name] column of the [Investigation] table.
removemedia(id: object)
Removes the given media from this investigation.
The id parameter is the GUID of the media to remove.
This is valid only after a call to save() and does not delete the media.
save() -> bool
This will commit the information to the [Investigation] table.
It will return True if the record was saved to the database, False if there was an error.
status: int
The name of this investigation.
This corresponds to the [InvestigationStatusID] column of the [Investigation] table.
It should contain a value from the [ID] column of the [InvestigationStatus] table.
type: int
The type of the investigation.
This corresponds to the [InvestigationTypeID] column of the [Investigation] table or it can be a predefined constant.
It should contain a value from the [ID] column of the [InvestigationType] table.
Sample
import sys
sys.path.append('C:/Program Files/Truxton/SDK')
import truxton
import shutil
from datetime import datetime
from calendar import timegm
from pathlib import Path
EPOCH_AS_FILETIME = 116444736000000000
HUNDREDS_OF_NANOSECONDS = 10000000
EVENT_TYPE_FBI = 20001
def date_to_filetime(dt):
return EPOCH_AS_FILETIME + (timegm(dt.timetuple()) * HUNDREDS_OF_NANOSECONDS)
def add_file(parent_truxton_file, filename):
source_file = open(filename, "rb")
child = parent_truxton_file.newchild()
child.name = Path(filename).name
shutil.copyfileobj(source_file, child)
source_file.close()
child.save()
return child
def add_media(t):
media = t.newmedia()
media.name = "Public Documents"
media.description = "Publicly available documents"
media.case = "DC-SNAFU-2016.2020"
media.evidencebag = "EV-0937459386623-a"
media.originator = "Jeffrey Jensen"
media.latitude = 38.897661
media.longitude = -77.036458
media.type = truxton.MEDIA_TYPE_LOGICAL_FILES
media.save()
return media
def add_cs(parent_file ):
child_file = add_file(parent_file, "cs.jpg")
gps = child_file.newlocation()
gps.type = truxton.LOCATION_TYPE_MEETING
gps.latitude = 51.487329
gps.longitude = -0.124057
gps.label = "HQ"
gps.when= date_to_filetime(datetime.fromisoformat("2016-04-01T12:00:00-05:00"))
gps.save()
def create_investigation(t):
investigation = t.newinvestigation()
investigation.name = "Collusion"
investigation.description = "United States vs. John Smith"
investigation.case = "DC-SNAFU-2016.2020"
investigation.status = truxton.INVESTIGATION_STATUS_OPEN
investigation.type = truxton.INVESTIGATION_TYPE_FRAUD
investigation.save()
return investigation
def main():
t = truxton.create()
new_type = t.neweventtype()
new_type.id = EVENT_TYPE_FBI
new_type.name = "FBI Actions"
new_type.save()
investigation = create_investigation(t)
media = add_media(t)
root_file = media.addroot()
root_file.save()
investigation.addmedia(media.id)
add_cs(root_file)
if __name__ == "__main__":
main()