Difference between revisions of "TruxtonInvestigation"
(→Sample) |
|||
| (5 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
=Attributes and Methods= | =Attributes and Methods= | ||
| + | ==<code>addmedia(id: object) -> None</code>== | ||
| + | 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. | ||
| + | This is valid only after a call to <code>save()</code> | ||
==<code>addnote(text: str) -> boolean</code>== | ==<code>addnote(text: str) -> boolean</code>== | ||
| Line 9: | Line 13: | ||
[https://docs.python.org/3.10/library/constants.html?highlight=false#True True] if the tag was associated with the investigation, [https://docs.python.org/3.10/library/constants.html?highlight=false#False False] on failure. | [https://docs.python.org/3.10/library/constants.html?highlight=false#True True] if the tag was associated with the investigation, [https://docs.python.org/3.10/library/constants.html?highlight=false#False False] on failure. | ||
The note is stored in the <code>[InvestigatorNote]</code> table in the database. | The note is stored in the <code>[InvestigatorNote]</code> table in the database. | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
==<code>case: str</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>createevent() -> [[TruxtonInvestigationEvent]]</code>== | ||
| + | This will create a new event associated with this investigation. | ||
==<code>description: str</code>== | ==<code>description: str</code>== | ||
| Line 35: | Line 37: | ||
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: object)</code>== | + | ==<code>removemedia(id: object) -> None</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. | ||
| Line 55: | Line 57: | ||
=Sample= | =Sample= | ||
| − | <source lang="Python" highlight=" | + | <source lang="Python" highlight="50-55,74"> |
import sys | import sys | ||
sys.path.append('C:/Program Files/Truxton/SDK') | sys.path.append('C:/Program Files/Truxton/SDK') | ||
| Line 64: | Line 66: | ||
from calendar import timegm | from calendar import timegm | ||
from pathlib import Path | from pathlib import Path | ||
| − | |||
| − | |||
| − | |||
EVENT_TYPE_FBI = 20001 | EVENT_TYPE_FBI = 20001 | ||
| − | |||
| − | |||
| − | |||
def add_file(parent_truxton_file, filename): | def add_file(parent_truxton_file, filename): | ||
| Line 105: | Line 101: | ||
gps.longitude = -0.124057 | gps.longitude = -0.124057 | ||
gps.label = "HQ" | gps.label = "HQ" | ||
| − | gps.when= | + | gps.when= datetime.fromisoformat("2016-04-01T12:00:00-05:00") |
gps.save() | gps.save() | ||
| Line 140: | Line 136: | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
| − | main() | + | sys.exit(main()) |
</source> | </source> | ||
Latest revision as of 15:10, 27 January 2024
This class lets you add an investigation to Truxton.
Contents
Attributes and Methods
addmedia(id: object) -> None
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()
addnote(text: str) -> boolean
This adds an investigator's note.
The text parameter is the contents of the note.
It will return
True if the tag was associated with the investigation, False on failure.
The note is stored in the [InvestigatorNote] table in the database.
case: str
A case number for this investigation.
This corresponds to the [CaseNumber] column of the [Investigation] table.
createevent() -> TruxtonInvestigationEvent
This will create a new event associated with this investigation.
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) -> None
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() -> boolean
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
EVENT_TYPE_FBI = 20001
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= 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__":
sys.exit(main())