From 7526f4d7b19c981affaab838ff7a6eeaaefe1894 Mon Sep 17 00:00:00 2001 From: n1073645 Date: Mon, 1 Jun 2020 13:47:51 +0100 Subject: [PATCH] Generate Epoch Time Operation Added --- src/core/config/Categories.json | 1 + src/core/operations/GenerateCurrentEpoch.mjs | 49 ++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 src/core/operations/GenerateCurrentEpoch.mjs diff --git a/src/core/config/Categories.json b/src/core/config/Categories.json index 77e3d319..dbc003e9 100755 --- a/src/core/config/Categories.json +++ b/src/core/config/Categories.json @@ -261,6 +261,7 @@ "Windows Filetime to UNIX Timestamp", "UNIX Timestamp to Windows Filetime", "Extract dates", + "Generate Current Epoch", "Sleep" ] }, diff --git a/src/core/operations/GenerateCurrentEpoch.mjs b/src/core/operations/GenerateCurrentEpoch.mjs new file mode 100644 index 00000000..a49ddc44 --- /dev/null +++ b/src/core/operations/GenerateCurrentEpoch.mjs @@ -0,0 +1,49 @@ +/** + * @author n1073645 [n1073645@gmail.com] + * @copyright Crown Copyright 2020 + * @license Apache-2.0 + */ + +import Operation from "../Operation.mjs"; + +/** + * GenerateCurrentEpoch operation + */ +class GenerateCurrentEpoch extends Operation { + + /** + * GenerateCurrentEpoch constructor + */ + constructor() { + super(); + + this.name = "Generate Current Epoch"; + this.module = "Default"; + this.description = "Generates the current time(in seconds/milliseconds) since the UNIX epoch."; + this.infoURL = "https://wikipedia.org/wiki/Unix_time"; + this.inputType = "string"; + this.outputType = "string"; + this.args = [ + { + name: "Granularity", + type: "option", + value: ["Milliseconds", "Seconds"] + } + ]; + } + + /** + * @param {string} input + * @param {Object[]} args + * @returns {string} + */ + run(input, args) { + if (args[0] === "Milliseconds") + return (new Date()).getTime().toString(); + else + return Math.round((new Date()).getTime() / 1000).toString(); + } + +} + +export default GenerateCurrentEpoch;