Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1 +1,33 @@

document.addEventListener('load', function () {
setTimeout(() => {
setSettings();
}, 100);
});

document.addEventListener('websocketCreate', function () {
setTimeout(() => {
ResourceTypeChanged();
}, 10);
});

function ResourceTypeChanged(){
let Selected = $("#resource").find("option:selected");

switch(Selected.val()){
case "Payments":
$("#dvDateRange").hide();
$("#dvMetrics").hide();
$("#dvDimensions").hide();
break;
case "Reports":
$("#dvDateRange").show();
$("#dvMetrics").show();
$("#dvDimensions").hide();
break;
case "Dimensions":
$("#dvDateRange").show();
$("#dvMetrics").show();
$("#dvDimensions").show();
break;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/barraider/streamdeck-easypi@master/src/rangeTooltip.css">
<script src="https://cdn.jsdelivr.net/gh/barraider/streamdeck-easypi@latest/src/sdtools.common.js"></script>
<script src="https://cdn.jsdelivr.net/gh/barraider/streamdeck-easypi@latest/src/rangeTooltip.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script>
<script src="PluginActionPI.js"></script>
</head>

Expand All @@ -17,13 +18,13 @@
<div class="sdpi-item-group">
<div class="sdpi-item">
<div class="sdpi-item-label">Resource Type</div>
<select class="sdpi-item-value select sdProperty" id="resource" oninput="setSettings()">
<option value="Payments" selected>Payments</option>
<select class="sdpi-item-value select sdProperty" id="resource" oninput="setSettings()" onchange="ResourceTypeChanged()">
<option value="Payments">Payments</option>
<option value="Reports">Reports</option>
<option value="Dimensions">Dimensions</option>
</select>
</div>
<div class="sdpi-item">
<div class="sdpi-item" id="dvDateRange">
<div class="sdpi-item-label">Date Range</div>
<select class="sdpi-item-value select sdProperty" id="dateRange" oninput="setSettings()">
<option value="TODAY">Today</option>
Expand All @@ -34,7 +35,7 @@
<option value="LAST30DAYS">Last 30 Days</option>
</select>
</div>
<div class="sdpi-item">
<div class="sdpi-item" id="dvMetrics">
<div class="sdpi-item-label">Metrics</div>
<select class="sdpi-item-value select sdProperty" id="metrics" oninput="setSettings()">
<option value="PAGEVIEWS">Page Views</option>
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@

window.addEventListener('load', function () {
setTimeout(() => { setSettings(); }, 100);
})
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@

window.addEventListener('load', function () {
setTimeout(() => { setSettings(); }, 100);
})
35 changes: 17 additions & 18 deletions src/GoogleAPIs/AdSenseManagement/PluginAction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ private async void Connection_OnTitleParametersDidChange(object sender, SDEventR
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnTitleParametersDidChange Event Handled");
if (!pluginService.HasExecuteOnce)
{
if (!GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName))
if (!dataBinder.ExistsUserCredential)
{
await DisplayInitialAsync();
}
Expand Down Expand Up @@ -86,7 +86,6 @@ private void Connection_OnSendToPlugin(object sender, SDEventReceivedEventArgs<B
private void Connection_OnPropertyInspectorDidAppear(object sender, SDEventReceivedEventArgs<BarRaider.SdTools.Events.PropertyInspectorDidAppear> e)
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnPropertyInspectorDidAppear Event Handled");

}

/// <summary>
Expand Down Expand Up @@ -188,7 +187,7 @@ public async override void KeyReleased(KeyPayload payload)
public async override void OnTick()
{
try
{
{
if (pluginService.IsRefreshable(dataBinder.pluginSettings.RefreshIntervalMin))
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row}, {initialPayload.Coordinates.Column}] Refresh...");
Expand All @@ -207,25 +206,25 @@ public async override void OnTick()
/// <param name="payload"></param>
public async override void ReceivedSettings(ReceivedSettingsPayload payload)
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] ReceivedSettings called");
try
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] ReceivedSettings called");

Tools.AutoPopulateSettings(dataBinder.pluginSettings, payload.Settings);
await SaveSettingsAsync(); // 스트림독으로 설정 업로드
Tools.AutoPopulateSettings(dataBinder.pluginSettings, payload.Settings);
//await SaveSettingsAsync(); // 스트림독으로 설정 업로드

if (!GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName))
{
dataBinder.item.Init();
dataBinder = null;
await DisplayInitialAsync();
if (dataBinder.ExistsUserCredential)
{
await DisplayBusyAsync();
await UpdateApiDataAsync();
}
}
else if (dataBinder.CheckExistData())
{
await DisplayBusyAsync();
await UpdateApiDataAsync();
}
else
catch (Exception ex)
{
await DisplayInitialAsync();
await Connection.ShowAlert();
Logger.Instance.LogMessage(TracingLevel.ERROR, ex.Message);
Logger.Instance.LogMessage(TracingLevel.ERROR, ex.StackTrace);
}
}

Expand Down Expand Up @@ -272,7 +271,7 @@ private async Task UpdateApiDataAsync()
await dataBinder.ServiceExecuteAsync();
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] UpdateApiDataAsync: Sending Image to Stream Dock...");
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage());
pluginService.SetFirstRun();
pluginService.SetExecuted();
pluginService.UpdateRefreshTime();
}
/// <summary>
Expand Down
39 changes: 13 additions & 26 deletions src/GoogleAPIs/Gmail/ApiService.cs
Original file line number Diff line number Diff line change
@@ -1,42 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

using BarRaider.SdTools;

using Google.Apis.Auth.OAuth2;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Gmail.v1;
using Google.Apis.Gmail.v1.Data;
using Google.Apis.Oauth2.v2;

namespace StreamDock.Plugins.GoogleAPIs.Gmail
{
/// <summary>
/// 구글 API 서비스 대리자
/// </summary>
internal class ApiService : GoogleAuth
{
readonly GmailService service;
readonly GmailService gmailService;
readonly Oauth2Service oauth2Service;

/// <summary>
/// <see cref="ApiService"/> 클래스의 새 인스턴스를 초기화합니다.
/// </summary>
/// <param name="service">요청을 실행할 애드센스 서비스 개체입니다.</param>
/// <param name="maxListPageSize">검색할 최대 페이지 크기입니다.</param>
internal ApiService(UserCredential userCredential, GmailService service)
internal ApiService(UserCredential userCredential, string user)
{
this.service = service;
base.userCredential = userCredential;
oauth2Service = new(GetServiceInitializerAsync(user).Result);
gmailService = new GmailService(GetServiceInitializerAsync(user).Result);
}
internal UsersResource.MessagesResource.ListRequest GetMessagesListAsync(string userId)
internal string GetUserId()
{
return service.Users.Messages.List(userId);
return oauth2Service.Userinfo.Get().Execute().Email;
}
internal async Task<ListMessagesResponse> GetMessagesListAsync(string userId, string labelIds)
internal long? GetResultSizeEstimate(string userId)
{
var listRequest = GetMessagesListAsync(userId);
listRequest.LabelIds = labelIds;
return await listRequest.ExecuteAsync();
var request = gmailService.Users.Messages.List(userId);
request.LabelIds = "UNREAD";
return request.Execute().ResultSizeEstimate;
}
}
}
24 changes: 9 additions & 15 deletions src/GoogleAPIs/Gmail/DataBinder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using Google.Apis.Gmail.v1;
using Google.Apis.Oauth2.v2;
using System.Collections.Generic;
using BarRaider.SdTools;

namespace StreamDock.Plugins.GoogleAPIs.Gmail
{
Expand All @@ -18,31 +19,24 @@ internal DataBinder(PluginSettings pluginSettings)
this.item = new();
this.googleAuth = new();
}
internal async Task<Item> ServiceExecuteAsync()
internal async Task ServiceExecuteAsync()
{
Oauth2Service oauth2Service = new Oauth2Service(googleAuth.GetServiceInitializerAsync(pluginSettings.UserTokenName).Result);
item.UserId = oauth2Service.Userinfo.Get().Execute().Email;
ApiService apiSevice = new ApiService(googleAuth.userCredential, pluginSettings.UserTokenName);

ApiService apiSevice = new ApiService(googleAuth.userCredential, new GmailService(await googleAuth.GetServiceInitializerAsync(pluginSettings.UserTokenName)));
item.UserId = apiSevice.GetUserId();
item.MessageUnReadCount = apiSevice.GetResultSizeEstimate(item.UserId);

var request = await apiSevice.GetMessagesListAsync(item.UserId, "UNREAD");

item.MessageUnReadCount = request.ResultSizeEstimate;

item = SetDisplayValue();

return item;
SetDisplayValue();
}
internal void SetInitialValue()
{
item.DisplayValues.OnlyOne(WaitingMessage);
item.Init();
item.DisplayValues.OnlyOne("0");
}
internal Item SetDisplayValue()
internal void SetDisplayValue()
{
item.DisplayValues.Clear();
item.DisplayValues.Add(item.MessageUnReadCount.ToString());

return item;
}
internal string GetDisplayTitle()
{
Expand Down
46 changes: 19 additions & 27 deletions src/GoogleAPIs/Gmail/PluginAction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ private async void Connection_OnTitleParametersDidChange(object sender, SDEventR
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnTitleParametersDidChange Event Handled");
if (!pluginService.HasExecuteOnce)
{
if (!GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName))
if (!dataBinder.ExistsUserCredential)
{
await DisplayInitialAsync();
}
Expand Down Expand Up @@ -87,7 +87,6 @@ private void Connection_OnSendToPlugin(object sender, SDEventReceivedEventArgs<B
private void Connection_OnPropertyInspectorDidAppear(object sender, SDEventReceivedEventArgs<BarRaider.SdTools.Events.PropertyInspectorDidAppear> e)
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnPropertyInspectorDidAppear Event Handled");

}

/// <summary>
Expand Down Expand Up @@ -140,7 +139,7 @@ private void Connection_OnApplicationDidLaunch(object sender, SDEventReceivedEve
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnApplicationDidLaunch Event Handled");
}
private void PropertyChanged(object sender, PropertyChangedEventArgs e)
private async void PropertyChanged(object sender, PropertyChangedEventArgs e)
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] {e.PropertyName} Property Changed");
}
Expand Down Expand Up @@ -171,9 +170,17 @@ public async override void KeyReleased(KeyPayload payload)
try
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] KeyReleased called");
if (GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName) && dataBinder.CheckExistData())
if (dataBinder.ExistsUserCredential)
{
await Connection.OpenUrlAsync("https://mail.google.com/");
if (dataBinder.CheckExistData())
{
await Connection.OpenUrlAsync("https://mail.google.com/");
}
else
{
await DisplayBusyAsync();
await UpdateApiDataAsync();
}
}
else
{
Expand Down Expand Up @@ -218,22 +225,14 @@ public async override void ReceivedSettings(ReceivedSettingsPayload payload)
{
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] ReceivedSettings called");
Tools.AutoPopulateSettings(dataBinder.pluginSettings, payload.Settings);
await SaveSettingsAsync();
//await SaveSettingsAsync();

if (!GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName))
{
dataBinder.item.Init();
await DisplayInitialAsync();
}
else if (dataBinder.CheckExistData())
await DisplayInitialAsync();
if (dataBinder.ExistsUserCredential)
{
await DisplayBusyAsync();
await UpdateApiDataAsync();
}
else
{
await DisplayInitialAsync();
}
}
catch (Exception ex)
{
Expand Down Expand Up @@ -263,20 +262,13 @@ private async Task SaveSettingsAsync()
/// </summary>
private async Task DisplayInitialAsync()
{
dataBinder.SetInitialValue();
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage()); // 초기 이미지 출력
}
private async Task DisplayPreValueAsync()
{
try
{
UpdateValues();
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage()); // 초기 이미지 출력
}
catch (Exception ex)
{
Logger.Instance.LogMessage(TracingLevel.ERROR, ex.Message);
Logger.Instance.LogMessage(TracingLevel.ERROR, ex.StackTrace);
}
UpdateValues();
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage()); // 초기 이미지 출력
}
/// <summary>
/// 작업 중임을 알리는 이미지를 표시합니다.
Expand All @@ -294,7 +286,7 @@ private async Task UpdateApiDataAsync()
await Connection.SetTitleAsync(dataBinder.GetDisplayTitle());
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] UpdateApiDataAsync: Sending Image to Stream Dock...");
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage());
pluginService.SetFirstRun();
pluginService.SetExecuted();
pluginService.UpdateRefreshTime();
}
/// <summary>
Expand Down
Loading