Skip to content

Commit 6d806f1

Browse files
author
Martin Nielsen
committed
Patch 1.2.3 - Merged Login and Logout buttons
Logging out also logs out on the website Games that hasn't been uploaded will do so when Overwatch is no longer running BattleTag verification before uploading in case user switched account when GameData object was created
1 parent 34f24af commit 6d806f1

6 files changed

Lines changed: 41 additions & 28 deletions

File tree

OverwatchTracker/GameData.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public Game(string currentRating = "")
5454
[JsonProperty("heroes")]
5555
private List<HeroPlayed> heroes = new List<HeroPlayed>();
5656
[JsonProperty("battleTag")]
57-
public readonly string battleTag = Functions.FetchBattleTag();
57+
public string battleTag = Functions.FetchBattleTag();
5858
[JsonProperty("privateToken")]
5959
private readonly string privateToken = Vars.settings.privateToken;
6060

OverwatchTracker/Program.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class Program
2222
static void Main()
2323
{
2424
Vars.initalize = new Initalize(
25-
version: "1.2.2",
25+
version: "1.2.3",
2626
host: "betteroverwatch.com",
2727
gitHubHost: "https://api.github.com/repos/MartinNielsenDev/OverwatchTracker/releases/latest"
2828
);
@@ -131,7 +131,6 @@ public static void CaptureDesktop()
131131
{
132132
if (captureDesktop)
133133
{
134-
Console.WriteLine("CaptureDesktop() RUN");
135134
if (!Functions.ActiveWindowTitle().Equals("Overwatch"))
136135
{
137136
if (!Vars.overwatchRunning)
@@ -152,6 +151,13 @@ public static void CaptureDesktop()
152151
{
153152
trayMenu.ChangeTray("Waiting for Overwatch, idle...", Properties.Resources.Idle);
154153
Vars.overwatchRunning = false;
154+
if (Vars.gameData.state == State.Recording ||
155+
Vars.gameData.state == State.Finished ||
156+
Vars.gameData.state == State.WaitForUpload
157+
)
158+
{
159+
Protocols.CheckGameUpload();
160+
}
155161
}
156162
}
157163
Thread.Sleep(500);

OverwatchTracker/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,5 @@
3232
// You can specify all the values or you can default the Build and Revision Numbers
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
35-
[assembly: AssemblyVersion("1.2.2.0")]
36-
[assembly: AssemblyFileVersion("1.2.2.0")]
35+
[assembly: AssemblyVersion("1.2.3.0")]
36+
[assembly: AssemblyFileVersion("1.2.3.0")]

OverwatchTracker/Protocols.cs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,7 @@ public static void CheckPlayMenu(Bitmap frame)
4242
)
4343
{
4444
if (!IsValidGame()) return;
45-
string game = Vars.gameData.GetData();
46-
Vars.lastGameJSON = JsonConvert.SerializeObject(JsonConvert.DeserializeObject<CleanedGame>(game), Formatting.Indented);
47-
Server.UploadGame(game);
48-
ResetGame();
45+
CheckGameUpload();
4946
}
5047
Program.trayMenu.ChangeTray("Ready to record, enter a competitive game to begin", Properties.Resources.IconActive);
5148
}
@@ -128,11 +125,7 @@ public static void CheckCompetitiveGameEntered(Bitmap frame)
128125
{
129126
if (Vars.gameData.state == State.Finished || Vars.gameData.state == State.WaitForUpload) // a game finished
130127
{
131-
string game = Vars.gameData.GetData();
132-
Vars.lastGameJSON = JsonConvert.SerializeObject(JsonConvert.DeserializeObject<CleanedGame>(game), Formatting.Indented);
133-
Server.UploadGame(game);
134-
Vars.gameData = new Game(Vars.gameData.currentRating);
135-
ResetGame();
128+
CheckGameUpload();
136129
}
137130
Vars.getInfoTimeout.Restart();
138131
Vars.gameData.state = State.Ingame;
@@ -427,6 +420,15 @@ public static void CheckPlayerNamesAndRank(Bitmap frame)
427420
playerRankX += 422;
428421
}
429422
}
423+
public static void CheckGameUpload()
424+
{
425+
string game = Vars.gameData.GetData();
426+
Vars.lastGameJSON = JsonConvert.SerializeObject(JsonConvert.DeserializeObject<CleanedGame>(game), Formatting.Indented);
427+
string battleTag = Functions.FetchBattleTag();
428+
if (!battleTag.Equals(Vars.gameData.battleTag)) Vars.gameData.battleTag = battleTag;
429+
Server.UploadGame(game);
430+
ResetGame();
431+
}
430432
private static bool IsValidGame()
431433
{
432434
if (Vars.gameTimer.ElapsedMilliseconds / 1000 < 300)

OverwatchTracker/Server.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ public static async Task StartLocalAuthServer()
195195
Settings.Save();
196196
Program.captureDesktop = true;
197197
buffer = Encoding.UTF8.GetBytes($"<html><meta http-equiv=\"refresh\" content=\"0; url = http://betteroverwatch.com/user/{publicToken}?auth_success=1\" /></html>");
198+
Program.trayMenu.trayMenu.MenuItems[1].Text = "Logout";
198199
}
199200
else
200201
{

OverwatchTracker/TrayMenu.cs

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,12 @@ public TrayMenu()
3636
debugTools.MenuItems.Add(currentGame);
3737

3838
trayMenu.MenuItems.Add("Better Overwatch v" + Vars.initalize.Version);
39-
trayMenu.MenuItems.Add("Login", Login);
39+
trayMenu.MenuItems.Add("Logout", LoginLogout);
4040
trayMenu.MenuItems.Add("-");
4141
trayMenu.MenuItems.Add("Upload screenshot of player list", ToggleUpload);
4242
trayMenu.MenuItems.Add("Start with Windows", ToggleWindows);
4343
trayMenu.MenuItems.Add("-");
4444
trayMenu.MenuItems.Add(debugTools);
45-
trayMenu.MenuItems.Add("Logout", Logout);
4645
trayMenu.MenuItems.Add("Exit", OnExit);
4746
trayMenu.MenuItems[0].Enabled = false;
4847

@@ -156,19 +155,24 @@ private void OpenMatchHistory(object sender, EventArgs e)
156155
Process.Start("http://" + Vars.initalize.Host + "/user/" + Vars.settings.publicToken);
157156
}
158157
}
159-
private async void Login(object sender, EventArgs e)
158+
private async void LoginLogout(object sender, EventArgs e)
160159
{
161-
Process.Start("https://eu.battle.net/oauth/authorize?response_type=code&client_id=20d78829a4e641e694d8ec7f1198dc8b&redirect_uri=http://betteroverwatch.com/api/authorize/");
162-
await Server.StartLocalAuthServer();
163-
}
164-
private void Logout(object sender, EventArgs e)
165-
{
166-
File.Delete(Path.Combine(Vars.configPath, "settings.json"));
167-
Vars.settings = new Settings();
168-
Program.captureDesktop = false;
169-
Program.authorizeForm = new AuthorizeForm();
170-
Program.authorizeForm.textLabel.Text = "Logout successful and settings cleared\r\n\r\nYou must authorize to continue using Better Overwatch";
171-
Program.authorizeForm.Show();
160+
if (trayMenu.MenuItems[1].Text.Equals("Login"))
161+
{
162+
Process.Start("https://eu.battle.net/oauth/authorize?response_type=code&client_id=20d78829a4e641e694d8ec7f1198dc8b&redirect_uri=http://betteroverwatch.com/api/authorize/");
163+
await Server.StartLocalAuthServer();
164+
}
165+
else
166+
{
167+
trayMenu.MenuItems[1].Text = "Login";
168+
Process.Start("http://betteroverwatch.com/logout.php");
169+
File.Delete(Path.Combine(Vars.configPath, "settings.json"));
170+
Vars.settings = new Settings();
171+
Program.captureDesktop = false;
172+
Program.authorizeForm = new AuthorizeForm();
173+
Program.authorizeForm.textLabel.Text = "Logout successful and settings cleared\r\n\r\nYou must authorize to continue using Better Overwatch";
174+
Program.authorizeForm.Show();
175+
}
172176
}
173177
public void ChangeTray(string text, Icon icon)
174178
{

0 commit comments

Comments
 (0)