Difference between revisions of "TruxtonEventType"

From truxwiki.com
Jump to navigation Jump to search
Line 1: Line 1:
This class lets you add to the <code>EventType</code> table in Truxton.
+
This class lets you add to the <code>[EventType]</code> table in Truxton.
 
This is how you add your own custom event types to Truxton.
 
This is how you add your own custom event types to Truxton.
  
Line 11: Line 11:
  
 
==<code>save()</code>==
 
==<code>save()</code>==
This will commit the information to the <code>EventType</code> table.
+
This will commit the information to the <code>[EventType]</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.
  
 
=Sample=
 
=Sample=
 
+
<source lang="Python" highlight="54-57">
<syntaxhighlight lang="Python" highlight="54-57">
 
 
import truxton
 
import truxton
 
import shutil
 
import shutil
Line 84: Line 83:
 
if __name__ == "__main__":
 
if __name__ == "__main__":
 
   main()
 
   main()
</syntaxhighlight>
+
</source>

Revision as of 07:29, 8 December 2020

This class lets you add to the [EventType] table in Truxton. This is how you add your own custom event types to Truxton.

Attributes and Methods

id

An 16-bit integer value for the type of event this is. The valid range of values is 11,000 through 31,999.

name

A human readable label for the event type.

save()

This will commit the information to the [EventType] table. It will return True if the record was saved to the database, False if there was an error.

Sample

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 main():
  t = truxton.create()

  new_type = t.neweventtype()
  new_type.id = EVENT_TYPE_FBI
  new_type.name = "FBI Actions"
  new_type.save()

  media = add_media(t)

  root_file = media.addroot()
  root_file.save()

  add_cs(root_file)

if __name__ == "__main__":
  main()