Skip to content

Commit 252593c

Browse files
authored
Merge pull request #16 from DevAnyKR/v0.3.3
V0.3.3
2 parents 0416321 + f3e743d commit 252593c

14 files changed

Lines changed: 172 additions & 112 deletions

File tree

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,33 @@
1-

1+
document.addEventListener('load', function () {
2+
setTimeout(() => {
3+
setSettings();
4+
}, 100);
5+
});
6+
7+
document.addEventListener('websocketCreate', function () {
8+
setTimeout(() => {
9+
ResourceTypeChanged();
10+
}, 10);
11+
});
12+
13+
function ResourceTypeChanged(){
14+
let Selected = $("#resource").find("option:selected");
15+
16+
switch(Selected.val()){
17+
case "Payments":
18+
$("#dvDateRange").hide();
19+
$("#dvMetrics").hide();
20+
$("#dvDimensions").hide();
21+
break;
22+
case "Reports":
23+
$("#dvDateRange").show();
24+
$("#dvMetrics").show();
25+
$("#dvDimensions").hide();
26+
break;
27+
case "Dimensions":
28+
$("#dvDateRange").show();
29+
$("#dvMetrics").show();
30+
$("#dvDimensions").show();
31+
break;
32+
}
33+
}

kr.devany.googleapi.sdPlugin/propertyInspector/adsensemanagement/index.html

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/barraider/streamdeck-easypi@master/src/rangeTooltip.css">
88
<script src="https://cdn.jsdelivr.net/gh/barraider/streamdeck-easypi@latest/src/sdtools.common.js"></script>
99
<script src="https://cdn.jsdelivr.net/gh/barraider/streamdeck-easypi@latest/src/rangeTooltip.js"></script>
10+
<script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"></script>
1011
<script src="PluginActionPI.js"></script>
1112
</head>
1213

@@ -17,13 +18,13 @@
1718
<div class="sdpi-item-group">
1819
<div class="sdpi-item">
1920
<div class="sdpi-item-label">Resource Type</div>
20-
<select class="sdpi-item-value select sdProperty" id="resource" oninput="setSettings()">
21-
<option value="Payments" selected>Payments</option>
21+
<select class="sdpi-item-value select sdProperty" id="resource" oninput="setSettings()" onchange="ResourceTypeChanged()">
22+
<option value="Payments">Payments</option>
2223
<option value="Reports">Reports</option>
2324
<option value="Dimensions">Dimensions</option>
2425
</select>
2526
</div>
26-
<div class="sdpi-item">
27+
<div class="sdpi-item" id="dvDateRange">
2728
<div class="sdpi-item-label">Date Range</div>
2829
<select class="sdpi-item-value select sdProperty" id="dateRange" oninput="setSettings()">
2930
<option value="TODAY">Today</option>
@@ -34,7 +35,7 @@
3435
<option value="LAST30DAYS">Last 30 Days</option>
3536
</select>
3637
</div>
37-
<div class="sdpi-item">
38+
<div class="sdpi-item" id="dvMetrics">
3839
<div class="sdpi-item-label">Metrics</div>
3940
<select class="sdpi-item-value select sdProperty" id="metrics" oninput="setSettings()">
4041
<option value="PAGEVIEWS">Page Views</option>
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-

1+
window.addEventListener('load', function () {
2+
setTimeout(() => { setSettings(); }, 100);
3+
})
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,3 @@
1-

1+
window.addEventListener('load', function () {
2+
setTimeout(() => { setSettings(); }, 100);
3+
})

src/GoogleAPIs/AdSenseManagement/PluginAction.cs

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ private async void Connection_OnTitleParametersDidChange(object sender, SDEventR
4848
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnTitleParametersDidChange Event Handled");
4949
if (!pluginService.HasExecuteOnce)
5050
{
51-
if (!GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName))
51+
if (!dataBinder.ExistsUserCredential)
5252
{
5353
await DisplayInitialAsync();
5454
}
@@ -86,7 +86,6 @@ private void Connection_OnSendToPlugin(object sender, SDEventReceivedEventArgs<B
8686
private void Connection_OnPropertyInspectorDidAppear(object sender, SDEventReceivedEventArgs<BarRaider.SdTools.Events.PropertyInspectorDidAppear> e)
8787
{
8888
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnPropertyInspectorDidAppear Event Handled");
89-
9089
}
9190

9291
/// <summary>
@@ -188,7 +187,7 @@ public async override void KeyReleased(KeyPayload payload)
188187
public async override void OnTick()
189188
{
190189
try
191-
{
190+
{
192191
if (pluginService.IsRefreshable(dataBinder.pluginSettings.RefreshIntervalMin))
193192
{
194193
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row}, {initialPayload.Coordinates.Column}] Refresh...");
@@ -207,25 +206,25 @@ public async override void OnTick()
207206
/// <param name="payload"></param>
208207
public async override void ReceivedSettings(ReceivedSettingsPayload payload)
209208
{
210-
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] ReceivedSettings called");
209+
try
210+
{
211+
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] ReceivedSettings called");
211212

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

215-
if (!GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName))
216-
{
217-
dataBinder.item.Init();
218-
dataBinder = null;
219216
await DisplayInitialAsync();
217+
if (dataBinder.ExistsUserCredential)
218+
{
219+
await DisplayBusyAsync();
220+
await UpdateApiDataAsync();
221+
}
220222
}
221-
else if (dataBinder.CheckExistData())
222-
{
223-
await DisplayBusyAsync();
224-
await UpdateApiDataAsync();
225-
}
226-
else
223+
catch (Exception ex)
227224
{
228-
await DisplayInitialAsync();
225+
await Connection.ShowAlert();
226+
Logger.Instance.LogMessage(TracingLevel.ERROR, ex.Message);
227+
Logger.Instance.LogMessage(TracingLevel.ERROR, ex.StackTrace);
229228
}
230229
}
231230

@@ -272,7 +271,7 @@ private async Task UpdateApiDataAsync()
272271
await dataBinder.ServiceExecuteAsync();
273272
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] UpdateApiDataAsync: Sending Image to Stream Dock...");
274273
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage());
275-
pluginService.SetFirstRun();
274+
pluginService.SetExecuted();
276275
pluginService.UpdateRefreshTime();
277276
}
278277
/// <summary>

src/GoogleAPIs/Gmail/ApiService.cs

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,29 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Threading.Tasks;
5-
6-
using BarRaider.SdTools;
7-
8-
using Google.Apis.Auth.OAuth2;
1+
using Google.Apis.Auth.OAuth2;
92
using Google.Apis.Gmail.v1;
10-
using Google.Apis.Gmail.v1.Data;
3+
using Google.Apis.Oauth2.v2;
114

125
namespace StreamDock.Plugins.GoogleAPIs.Gmail
136
{
14-
/// <summary>
15-
/// 구글 API 서비스 대리자
16-
/// </summary>
177
internal class ApiService : GoogleAuth
188
{
19-
readonly GmailService service;
9+
readonly GmailService gmailService;
10+
readonly Oauth2Service oauth2Service;
2011

21-
/// <summary>
22-
/// <see cref="ApiService"/> 클래스의 새 인스턴스를 초기화합니다.
23-
/// </summary>
24-
/// <param name="service">요청을 실행할 애드센스 서비스 개체입니다.</param>
25-
/// <param name="maxListPageSize">검색할 최대 페이지 크기입니다.</param>
26-
internal ApiService(UserCredential userCredential, GmailService service)
12+
internal ApiService(UserCredential userCredential, string user)
2713
{
28-
this.service = service;
2914
base.userCredential = userCredential;
15+
oauth2Service = new(GetServiceInitializerAsync(user).Result);
16+
gmailService = new GmailService(GetServiceInitializerAsync(user).Result);
3017
}
31-
internal UsersResource.MessagesResource.ListRequest GetMessagesListAsync(string userId)
18+
internal string GetUserId()
3219
{
33-
return service.Users.Messages.List(userId);
20+
return oauth2Service.Userinfo.Get().Execute().Email;
3421
}
35-
internal async Task<ListMessagesResponse> GetMessagesListAsync(string userId, string labelIds)
22+
internal long? GetResultSizeEstimate(string userId)
3623
{
37-
var listRequest = GetMessagesListAsync(userId);
38-
listRequest.LabelIds = labelIds;
39-
return await listRequest.ExecuteAsync();
24+
var request = gmailService.Users.Messages.List(userId);
25+
request.LabelIds = "UNREAD";
26+
return request.Execute().ResultSizeEstimate;
4027
}
4128
}
4229
}

src/GoogleAPIs/Gmail/DataBinder.cs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using Google.Apis.Gmail.v1;
77
using Google.Apis.Oauth2.v2;
88
using System.Collections.Generic;
9+
using BarRaider.SdTools;
910

1011
namespace StreamDock.Plugins.GoogleAPIs.Gmail
1112
{
@@ -18,31 +19,24 @@ internal DataBinder(PluginSettings pluginSettings)
1819
this.item = new();
1920
this.googleAuth = new();
2021
}
21-
internal async Task<Item> ServiceExecuteAsync()
22+
internal async Task ServiceExecuteAsync()
2223
{
23-
Oauth2Service oauth2Service = new Oauth2Service(googleAuth.GetServiceInitializerAsync(pluginSettings.UserTokenName).Result);
24-
item.UserId = oauth2Service.Userinfo.Get().Execute().Email;
24+
ApiService apiSevice = new ApiService(googleAuth.userCredential, pluginSettings.UserTokenName);
2525

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

28-
var request = await apiSevice.GetMessagesListAsync(item.UserId, "UNREAD");
29-
30-
item.MessageUnReadCount = request.ResultSizeEstimate;
31-
32-
item = SetDisplayValue();
33-
34-
return item;
29+
SetDisplayValue();
3530
}
3631
internal void SetInitialValue()
3732
{
38-
item.DisplayValues.OnlyOne(WaitingMessage);
33+
item.Init();
34+
item.DisplayValues.OnlyOne("0");
3935
}
40-
internal Item SetDisplayValue()
36+
internal void SetDisplayValue()
4137
{
4238
item.DisplayValues.Clear();
4339
item.DisplayValues.Add(item.MessageUnReadCount.ToString());
44-
45-
return item;
4640
}
4741
internal string GetDisplayTitle()
4842
{

src/GoogleAPIs/Gmail/PluginAction.cs

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ private async void Connection_OnTitleParametersDidChange(object sender, SDEventR
4949
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnTitleParametersDidChange Event Handled");
5050
if (!pluginService.HasExecuteOnce)
5151
{
52-
if (!GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName))
52+
if (!dataBinder.ExistsUserCredential)
5353
{
5454
await DisplayInitialAsync();
5555
}
@@ -87,7 +87,6 @@ private void Connection_OnSendToPlugin(object sender, SDEventReceivedEventArgs<B
8787
private void Connection_OnPropertyInspectorDidAppear(object sender, SDEventReceivedEventArgs<BarRaider.SdTools.Events.PropertyInspectorDidAppear> e)
8888
{
8989
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnPropertyInspectorDidAppear Event Handled");
90-
9190
}
9291

9392
/// <summary>
@@ -140,7 +139,7 @@ private void Connection_OnApplicationDidLaunch(object sender, SDEventReceivedEve
140139
{
141140
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] OnApplicationDidLaunch Event Handled");
142141
}
143-
private void PropertyChanged(object sender, PropertyChangedEventArgs e)
142+
private async void PropertyChanged(object sender, PropertyChangedEventArgs e)
144143
{
145144
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] {e.PropertyName} Property Changed");
146145
}
@@ -171,9 +170,17 @@ public async override void KeyReleased(KeyPayload payload)
171170
try
172171
{
173172
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] KeyReleased called");
174-
if (GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName) && dataBinder.CheckExistData())
173+
if (dataBinder.ExistsUserCredential)
175174
{
176-
await Connection.OpenUrlAsync("https://mail.google.com/");
175+
if (dataBinder.CheckExistData())
176+
{
177+
await Connection.OpenUrlAsync("https://mail.google.com/");
178+
}
179+
else
180+
{
181+
await DisplayBusyAsync();
182+
await UpdateApiDataAsync();
183+
}
177184
}
178185
else
179186
{
@@ -218,22 +225,14 @@ public async override void ReceivedSettings(ReceivedSettingsPayload payload)
218225
{
219226
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] ReceivedSettings called");
220227
Tools.AutoPopulateSettings(dataBinder.pluginSettings, payload.Settings);
221-
await SaveSettingsAsync();
228+
//await SaveSettingsAsync();
222229

223-
if (!GoogleAuth.CredentialExist(dataBinder.pluginSettings.UserTokenName))
224-
{
225-
dataBinder.item.Init();
226-
await DisplayInitialAsync();
227-
}
228-
else if (dataBinder.CheckExistData())
230+
await DisplayInitialAsync();
231+
if (dataBinder.ExistsUserCredential)
229232
{
230233
await DisplayBusyAsync();
231234
await UpdateApiDataAsync();
232235
}
233-
else
234-
{
235-
await DisplayInitialAsync();
236-
}
237236
}
238237
catch (Exception ex)
239238
{
@@ -263,20 +262,13 @@ private async Task SaveSettingsAsync()
263262
/// </summary>
264263
private async Task DisplayInitialAsync()
265264
{
265+
dataBinder.SetInitialValue();
266266
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage()); // 초기 이미지 출력
267267
}
268268
private async Task DisplayPreValueAsync()
269269
{
270-
try
271-
{
272-
UpdateValues();
273-
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage()); // 초기 이미지 출력
274-
}
275-
catch (Exception ex)
276-
{
277-
Logger.Instance.LogMessage(TracingLevel.ERROR, ex.Message);
278-
Logger.Instance.LogMessage(TracingLevel.ERROR, ex.StackTrace);
279-
}
270+
UpdateValues();
271+
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage()); // 초기 이미지 출력
280272
}
281273
/// <summary>
282274
/// 작업 중임을 알리는 이미지를 표시합니다.
@@ -294,7 +286,7 @@ private async Task UpdateApiDataAsync()
294286
await Connection.SetTitleAsync(dataBinder.GetDisplayTitle());
295287
Logger.Instance.LogMessage(TracingLevel.INFO, $"[{initialPayload.Coordinates.Row},{initialPayload.Coordinates.Column}] UpdateApiDataAsync: Sending Image to Stream Dock...");
296288
await Connection.SetImageAsync(dataBinder.GetUpdateKeyImage());
297-
pluginService.SetFirstRun();
289+
pluginService.SetExecuted();
298290
pluginService.UpdateRefreshTime();
299291
}
300292
/// <summary>

0 commit comments

Comments
 (0)