From 6dd9a112fe3eae265aca2a6a9dcacaa7c9fbf883 Mon Sep 17 00:00:00 2001 From: Gregory Schier Date: Thu, 9 Nov 2023 11:44:59 -0800 Subject: [PATCH] Analytics event properties --- src-tauri/Cargo.lock | 82 +++++++++++++++++++++++++++++++++++--- src-tauri/Cargo.toml | 1 + src-tauri/src/analytics.rs | 17 ++++---- 3 files changed, 87 insertions(+), 13 deletions(-) diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 279ab1ec..d855f324 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -25,7 +25,7 @@ checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ "getrandom 0.2.10", "once_cell", - "version_check", + "version_check 0.9.4", ] [[package]] @@ -36,7 +36,7 @@ checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ "cfg-if", "once_cell", - "version_check", + "version_check 0.9.4", "zerocopy", ] @@ -880,6 +880,20 @@ dependencies = [ "parking_lot_core 0.9.9", ] +[[package]] +name = "datetime" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c3f7a77f3e57fedf80e09136f2d8777ebf621207306f6d96d610af048354bc" +dependencies = [ + "iso8601", + "libc", + "locale", + "pad", + "redox_syscall 0.1.57", + "winapi", +] + [[package]] name = "deranged" version = "0.3.9" @@ -1430,7 +1444,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", - "version_check", + "version_check 0.9.4", ] [[package]] @@ -2084,6 +2098,15 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "iso8601" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43e86914a73535f3f541a765adea0a9fafcf53fa6adb73662c4988fd9233766f" +dependencies = [ + "nom 4.2.3", +] + [[package]] name = "itertools" version = "0.11.0" @@ -2287,6 +2310,15 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77a1a2647d5b7134127971a6de0d533c49de2159167e7f259c427195f87168a1" +[[package]] +name = "locale" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fdbe492a9c0238da900a1165c42fc5067161ce292678a6fe80921f30fe307fd" +dependencies = [ + "libc", +] + [[package]] name = "lock_api" version = "0.4.11" @@ -2491,6 +2523,16 @@ version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" +[[package]] +name = "nom" +version = "4.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6" +dependencies = [ + "memchr", + "version_check 0.1.5", +] + [[package]] name = "nom" version = "7.1.3" @@ -2749,6 +2791,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" +[[package]] +name = "pad" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ad9b889f1b12e0b9ee24db044b5129150d5eada288edc800f789928dc8c0e3" +dependencies = [ + "unicode-width", +] + [[package]] name = "pango" version = "0.15.10" @@ -3110,7 +3161,7 @@ dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "version_check", + "version_check 0.9.4", ] [[package]] @@ -3121,7 +3172,7 @@ checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" dependencies = [ "proc-macro2", "quote", - "version_check", + "version_check 0.9.4", ] [[package]] @@ -3273,6 +3324,12 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "redox_syscall" +version = "0.1.57" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + [[package]] name = "redox_syscall" version = "0.2.16" @@ -3876,7 +3933,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b7b278788e7be4d0d29c0f39497a0eef3fba6bbc8e70d8bf7fde46edeaa9e85" dependencies = [ "itertools", - "nom", + "nom 7.1.3", "unicode_categories", ] @@ -4852,6 +4909,12 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + [[package]] name = "unicode-xid" version = "0.2.4" @@ -4951,6 +5014,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" +[[package]] +name = "version_check" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" + [[package]] name = "version_check" version = "0.9.4" @@ -5640,6 +5709,7 @@ dependencies = [ "boa_runtime", "chrono", "cocoa 0.25.0", + "datetime", "futures", "http", "log", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index d1527f17..8daa2923 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -48,6 +48,7 @@ tokio = { version = "1.25.0", features = ["sync"] } uuid = "1.3.0" log = "0.4.20" tauri-plugin-context-menu = "0.5.0" +datetime = "0.5.2" [features] # by default Tauri runs in production mode diff --git a/src-tauri/src/analytics.rs b/src-tauri/src/analytics.rs index da6576ce..4728e245 100644 --- a/src-tauri/src/analytics.rs +++ b/src-tauri/src/analytics.rs @@ -55,29 +55,32 @@ pub fn track_event( let event = format!("{}.{}", resource_name(resource), action_name(action)); let attributes_json = attributes.unwrap_or("{}".to_string().into()).to_string(); let info = app_handle.package_info(); + let tz = datetime::sys_timezone().unwrap_or("unknown".to_string()); let params = vec![ ("e", event.clone()), ("a", attributes_json.clone()), ("id", "site_zOK0d7jeBy2TLxFCnZ".to_string()), ("v", info.version.clone().to_string()), ("os", get_os().to_string()), + ("tz", tz), ("xy", get_window_size(app_handle)), ]; - let url = format!("https://t.yaak.app/t/e"); + let url = "https://t.yaak.app/t/e".to_string(); let req = reqwest::Client::builder() .build() .unwrap() .get(&url) .query(¶ms); - if is_dev() { + if !is_dev() { println!("Ignore dev analytics event: {} {:?}", event, params); + } else if let Err(e) = req.send().await { + println!( + "Error sending analytics event: {} {} {:?}", + e, event, params + ); } else { - if let Err(e) = req.send().await { - println!("Error sending analytics event: {}", e); - } else { - println!("Sent analytics event: {}", event); - } + println!("Sent analytics event: {}: {:?}", event, params); } }); }