Skip to content

Instantly share code, notes, and snippets.

@tcha-tcho
tcha-tcho / index.f.js
Created March 10, 2025 17:39
Intercept html calls for SEO and Card formation....
const isBot = require('./../helpers/isBot.js').isBot
const dummyPage = [
'<!doctype html> <html lang="en"> <head>'
,'</head> <body>'
,'</body> </html>'
]
const defTitle = 'Chats to follow';
const defLogo = 'https://unnon.com/ogimg.png';
const app_id = "267524633679818"
function oldFix (newdata, previous_position, imei) {
const checkValidDate = function (date) {
const parsed = new Date(date);
if (!parsed) { return null };
const oneDayInMilliseconds = 24 * 60 * 60 * 1000;
const threeMonthsAgo = new Date(Date.now() - 3 * 30 * oneDayInMilliseconds);
const oneDayInFuture = new Date(Date.now() + oneDayInMilliseconds);
const isFromPast = parsed <= threeMonthsAgo;
const isFromFuture = parsed >= oneDayInFuture;
// Shorten names
// types:
export const STRING = "STRING";
export const BYTES = "BYTES";
export const INTEGER = "INTEGER";
export const FLOAT = "FLOAT";
export const NUMERIC = "NUMERIC";
export const BOOLEAN = "BOOLEAN";
export const TIMESTAMP = "TIMESTAMP";
export const DATE = "DATE";
class PositionsWriter {
static MIN_DISTANCE = 0.02;
static PARKED_MIN_DURATION = 120;
constructor(device, debug = false) {
this.device = device;
this.debug = debug;
this.events = [];
this.positions = [];
this.position = null;
const https = require('https');
const http = require('http');
const getJSON = (options, onResult) => {
console.log('rest::getJSON');
const port = options.port == 443 ? https : http;
let output = '';
const req = port.request(options, (res) => {
@tcha-tcho
tcha-tcho / gist:ee166789bd892970df9c5de440f4c832
Last active July 12, 2024 18:18
Real time fixando valor
let yamldata = {
t: newdata.t
,dt: newdata.dt
,ft: newdata.ft
,spd: newdata.spd
,lat: newdata.lat || 0
,lng: newdata.lng || 0
,ang: newdata.ang
,stp: newdata.stp
,ign: newdata.ign
/* UTILS AND CONSTANTS*/
const SPEED_MULTIPLIER = 1.852;
const DISTANCE_MULTIPLIER = 111.045;
const SETTINGS = {
"default_object_online_timeout": 5
,"valid_by_avg_speed": false
,"min_moving_speed": 6
,"addon.device_tracker_app_login": false
@tcha-tcho
tcha-tcho / company count.md
Last active February 15, 2024 19:43
Comportamento do arquivo company e sua relação com devices e users

Organização de devices e companies

Agregação de dispositivos e organização geral entre a hierarquia de empresas.

Dispositivos sempre ficam lotados em alguma companhia específica. Ela fica identificada no arquivo device:

{// documento device gravado com o nome "<imei>" na collection de devices
  "imei": "<imei>"
  ,"deviceOf": "<companyId>"
@tcha-tcho
tcha-tcho / invoice.js
Last active January 31, 2024 21:11
Invoice_data.js
// [bucket]/<userID>/invoices/invoiceID.json
{
"invoiceID": "Number"
,"by": "UID"
,"createdAt": "Date"
,"legacyLogin": "String"
,"chargeType": "String[event|recurrent|occasional]"
,"userToCharge": {
"name": "String"
,"CPFCNPJ": "String"