Skip to content

Commit

Permalink
Update telemetry API
Browse files Browse the repository at this point in the history
  • Loading branch information
fahminlb33 committed Sep 6, 2020
1 parent 2d429e3 commit 6fd6abb
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 30 deletions.
51 changes: 29 additions & 22 deletions src/KFlearning.Core/API/TelemetryClient.cs
Expand Up @@ -8,18 +8,20 @@
// This file is part of KFlearning, see LICENSE.
// See this code in repository URL above!

using Newtonsoft.Json;
using System;
using System.Globalization;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace KFlearning.Core.API
{
public interface ITelemetryClient
{
Task SendAppStart(DateTime dateTime, string appName, string deviceId);
Task SendAppExit(DateTime dateTime, string appName, string deviceId);
Task SendIdentification(string deviceId, string cpu, string ram, string os, string bitness);
Task SendAppStart(string appName, string deviceId);
Task SendAppExit(string appName, string deviceId);
Task SendIdentification(string deviceId, string cpu, double ram, string os, string bitness);
}

public class TelemetryClient : ITelemetryClient
Expand All @@ -33,41 +35,46 @@ static TelemetryClient()
Client.DefaultRequestHeaders.Add("Authorization", "fahmi-kodesiana");
}

public async Task SendAppStart(DateTime dateTime, string appName, string deviceId)
public async Task SendAppStart(string appName, string deviceId)
{
await SendTelemetry(dateTime, appName, "started", deviceId);
await SendTelemetry(appName, "started", deviceId);
}

public async Task SendAppExit(DateTime dateTime, string appName, string deviceId)
public async Task SendAppExit(string appName, string deviceId)
{
await SendTelemetry(dateTime, appName, "exit", deviceId);
await SendTelemetry(appName, "exit", deviceId);
}

public async Task SendIdentification(string deviceId, string cpu, string ram, string os, string bitness)
public async Task SendIdentification(string deviceId, string cpu, double ram, string os, string bitness)
{
using (var content = new MultipartFormDataContent())
var body = new
{
content.Add(new StringContent(deviceId), "device_id");
content.Add(new StringContent(cpu), "cpu");
content.Add(new StringContent(ram), "ram");
content.Add(new StringContent(os), "os");
content.Add(new StringContent(bitness), "bitness");
deviceId,
cpu,
os,
ram,
bitness
};

var result = await Client.PostAsync(BaseUri + "/api/identification.php", content);
using (var content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"))
{
var result = await Client.PostAsync(BaseUri + "/telemetry/device", content);
result.EnsureSuccessStatusCode();
}
}

private async Task SendTelemetry(DateTime dateTime, string appName, string appEvent, string deviceId)
private async Task SendTelemetry(string appName, string appEvent, string deviceId)
{
using (var content = new MultipartFormDataContent())
var body = new
{
content.Add(new StringContent(dateTime.ToUnixTime().ToString(_culture)), "timestamp");
content.Add(new StringContent(deviceId), "device_id");
content.Add(new StringContent(appName), "app_name");
content.Add(new StringContent(appEvent), "event");
deviceId,
appName,
intent = appEvent
};

var result = await Client.PostAsync(BaseUri + "/api/telemetry.php", content);
using (var content = new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"))
{
var result = await Client.PostAsync(BaseUri + "/telemetry/intent", content);
result.EnsureSuccessStatusCode();
}
}
Expand Down
6 changes: 3 additions & 3 deletions src/KFlearning.Core/Services/SystemInfoService.cs
Expand Up @@ -22,7 +22,7 @@ public interface ISystemInfoService
string OS { get; }
string OSVersion { get; }
string Architecture { get; }
string RAM { get; }
double RAM { get; }
string CPU { get; }

void Query();
Expand All @@ -46,7 +46,7 @@ public void Query()
OS = queryObj["Caption"].ToString();
OSVersion = queryObj["Version"].ToString();
Architecture = queryObj["OSArchitecture"].ToString();
RAM = queryObj["TotalVisibleMemorySize"].ToString();
RAM = Convert.ToDouble(queryObj["TotalVisibleMemorySize"].ToString());
deviceId = queryObj["TotalVisibleMemorySize"].ToString();

// CPU info
Expand Down Expand Up @@ -86,7 +86,7 @@ private ManagementBaseObject SearchWmi(string scope, string query)
public string OS { get; private set; } = "-";
public string OSVersion { get; private set; } = "-";
public string Architecture { get; private set; } = "-";
public string RAM { get; private set; } = "-";
public double RAM { get; private set; } = 0;
public string CPU { get; private set; } = "-";
}
}
4 changes: 2 additions & 2 deletions src/KFlearning/Services/TelemetryService.cs
Expand Up @@ -36,7 +36,7 @@ public void Load()
try
{
_infoService.Query();
Task.WaitAll(_telemetry.SendAppStart(DateTime.Now, Resources.AppName, _infoService.DeviceId),
Task.WaitAll(_telemetry.SendAppStart(Resources.AppName, _infoService.DeviceId),
_telemetry.SendIdentification(_infoService.DeviceId, _infoService.CPU, _infoService.RAM,
_infoService.OS, _infoService.Architecture));
}
Expand All @@ -51,7 +51,7 @@ public void Save()
try
{
_infoService.Query();
Task.WaitAll(_telemetry.SendAppExit(DateTime.Now, Resources.AppName, _infoService.DeviceId));
Task.WaitAll(_telemetry.SendAppExit(Resources.AppName, _infoService.DeviceId));
}
catch (Exception)
{
Expand Down
4 changes: 2 additions & 2 deletions src/KFmaintenance/Services/TelemetryService.cs
Expand Up @@ -26,7 +26,7 @@ public void Load()
try
{
_infoService.Query();
Task.WaitAll(_telemetry.SendAppStart(DateTime.Now, Resources.AppName, _infoService.DeviceId),
Task.WaitAll(_telemetry.SendAppStart(Resources.AppName, _infoService.DeviceId),
_telemetry.SendIdentification(_infoService.DeviceId, _infoService.CPU, _infoService.RAM,
_infoService.OS, _infoService.Architecture));
}
Expand All @@ -41,7 +41,7 @@ public void Save()
try
{
_infoService.Query();
Task.WaitAll(_telemetry.SendAppExit(DateTime.Now, Resources.AppName, _infoService.DeviceId));
Task.WaitAll(_telemetry.SendAppExit(Resources.AppName, _infoService.DeviceId));
}
catch (Exception)
{
Expand Down
2 changes: 1 addition & 1 deletion src/KFmaintenance/Views/StartupForm.cs
Expand Up @@ -52,7 +52,7 @@ protected override void OnLoad(EventArgs e)
lblOS.Text = _infoService.OS;
lblOSVersion.Text = _infoService.OSVersion;
lblOSArch.Text = _infoService.Architecture;
lblRam.Text = _infoService.RAM;
lblRam.Text = _infoService.RAM.ToString();
lblCpu.Text = _infoService.CPU;

// system registry
Expand Down

0 comments on commit 6fd6abb

Please sign in to comment.