Difference between revisions of "TruxtonInvestigation"
(→Sample) |
(→Sample) |
||
| (13 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>case</code>== | + | ==<code>addnote(text: str) -> boolean</code>== |
| + | This adds an investigator's note. | ||
| + | The <code>text</code> parameter is the contents of the note. | ||
| + | It will return | ||
| + | [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. | ||
| + | |||
| + | ==<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</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: object) -> None</code>== | ||
| + | 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. | ||
| + | This is valid only after a call to <code>save()</code> and does not delete the media. | ||
| − | ==<code>save()</code>== | + | ==<code>save() -> boolean</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.10/library/constants.html#True True] if the record was saved to the database, [https://docs.python.org/3.10/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.]] |
| − | It should contain a value from the <code>ID</code> column of the <code>InvestigationType</code> table. | + | It should contain a value from the <code>[ID]</code> column of the <code>[InvestigationType]</code> table. |
=Sample= | =Sample= | ||
| − | + | <source lang="Python" highlight="50-55,74"> | |
| − | < | + | import sys |
| + | sys.path.append('C:/Program Files/Truxton/SDK') | ||
import truxton | import truxton | ||
import shutil | import shutil | ||
| Line 46: | 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 87: | 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 116: | Line 130: | ||
root_file = media.addroot() | root_file = media.addroot() | ||
root_file.save() | root_file.save() | ||
| + | |||
| + | investigation.addmedia(media.id) | ||
add_cs(root_file) | add_cs(root_file) | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
| − | main() | + | sys.exit(main()) |
| − | </ | + | </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())