diff --git a/App.axaml.cs b/App.axaml.cs
index 9f2bbbe..ec95bf8 100644
--- a/App.axaml.cs
+++ b/App.axaml.cs
@@ -15,12 +15,18 @@ public partial class App : Application
{
internal static TwitchAPI? TwitchApi = null;
internal static int AutoUpdateDelay = 10_000;
+ internal static bool HasUserZnSubbed = false;
+ internal static string BetterRaidDataPath = "";
+ internal static string TwitchBroadcasterId = "";
internal static string TwitchOAuthAccessToken = "";
internal static string TwitchOAuthAccessTokenFilePath = "";
internal static string TokenClientId = "kkxu4jorjrrc5jch1ito5i61hbev2o";
internal static readonly string TwitchOAuthRedirectUrl = "http://localhost:9900";
internal static readonly string TwitchOAuthResponseType = "token";
- internal static readonly string[] TwitchOAuthScopes = [ "channel:manage:raids", "user:read:chat" ];
+ internal static readonly string[] TwitchOAuthScopes = [
+ "channel:manage:raids",
+ "user:read:subscriptions"
+ ];
internal static readonly string TwitchOAuthUrl = $"https://id.twitch.tv/oauth2/authorize"
+ $"?client_id={TokenClientId}"
+ "&redirect_uri=http://localhost:9900"
@@ -30,25 +36,24 @@ public partial class App : Application
public override void Initialize()
{
var userHomeDir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
- var betterRaidDir = "";
switch (Environment.OSVersion.Platform)
{
case PlatformID.Win32NT:
- betterRaidDir = Path.Combine(userHomeDir, "AppData", "Roaming", "BetterRaid");
+ BetterRaidDataPath = Path.Combine(userHomeDir, "AppData", "Roaming", "BetterRaid");
break;
case PlatformID.Unix:
- betterRaidDir = Path.Combine(userHomeDir, ".config", "BetterRaid");
+ BetterRaidDataPath = Path.Combine(userHomeDir, ".config", "BetterRaid");
break;
case PlatformID.MacOSX:
- betterRaidDir = Path.Combine(userHomeDir, "Library", "Application Support", "BetterRaid");
+ BetterRaidDataPath = Path.Combine(userHomeDir, "Library", "Application Support", "BetterRaid");
break;
}
- if (!Directory.Exists(betterRaidDir))
- Directory.CreateDirectory(betterRaidDir);
+ if (!Directory.Exists(BetterRaidDataPath))
+ Directory.CreateDirectory(BetterRaidDataPath);
- TwitchOAuthAccessTokenFilePath = Path.Combine(betterRaidDir, ".access_token");
+ TwitchOAuthAccessTokenFilePath = Path.Combine(BetterRaidDataPath, ".access_token");
if (File.Exists(TwitchOAuthAccessTokenFilePath))
{
@@ -56,7 +61,6 @@ public partial class App : Application
InitTwitchClient();
}
-
AvaloniaXamlLoader.Load(this);
}
@@ -78,6 +82,29 @@ public partial class App : Application
return;
}
+ var channel = TwitchApi.Helix.Search
+ .SearchChannelsAsync(user.Login).Result.Channels
+ .FirstOrDefault(c => c.BroadcasterLogin == user.Login);
+
+ var userSubs = TwitchApi.Helix.Subscriptions.CheckUserSubscriptionAsync(
+ userId: user.Id,
+ broadcasterId: "1120558409"
+ ).Result.Data;
+
+ if (userSubs.Length > 0 && userSubs.Any(s => s.BroadcasterId == "1120558409"))
+ {
+ HasUserZnSubbed = true;
+ }
+
+ if (channel == null)
+ {
+ Console.WriteLine("[ERROR] User channel could not be found!");
+ return;
+ }
+
+ TwitchBroadcasterId = channel.Id;
+ System.Console.WriteLine(TwitchBroadcasterId);
+
Console.WriteLine("[INFO] Connected to Twitch API as '{0}'!", user.DisplayName);
if (overrideToken)
diff --git a/Assets/logo.ico b/Assets/logo.ico
new file mode 100644
index 0000000..30a7f06
Binary files /dev/null and b/Assets/logo.ico differ
diff --git a/Assets/logo.png b/Assets/logo.png
new file mode 100644
index 0000000..08577b0
Binary files /dev/null and b/Assets/logo.png differ
diff --git a/BetterRaid.csproj b/BetterRaid.csproj
index ef46a50..2ba6c9b 100644
--- a/BetterRaid.csproj
+++ b/BetterRaid.csproj
@@ -5,7 +5,12 @@
enable
true
app.manifest
+ embedded
+ true
+ true
+ true
true
+ Assets/logo.ico
diff --git a/BetterRaid.generated.sln b/BetterRaid.generated.sln
index e4ffe1e..499205a 100644
--- a/BetterRaid.generated.sln
+++ b/BetterRaid.generated.sln
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.002.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BetterRaid", "BetterRaid.csproj", "{EDFD12AB-9E05-4D87-9139-C220A703CFDB}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BetterRaid", "BetterRaid.csproj", "{260E29DE-709B-4860-8A06-F6C4F33B6659}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +11,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {EDFD12AB-9E05-4D87-9139-C220A703CFDB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EDFD12AB-9E05-4D87-9139-C220A703CFDB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EDFD12AB-9E05-4D87-9139-C220A703CFDB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EDFD12AB-9E05-4D87-9139-C220A703CFDB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {260E29DE-709B-4860-8A06-F6C4F33B6659}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {260E29DE-709B-4860-8A06-F6C4F33B6659}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {260E29DE-709B-4860-8A06-F6C4F33B6659}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {260E29DE-709B-4860-8A06-F6C4F33B6659}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Build/BetterRaid-0.0.1-alpha.exe b/Build/BetterRaid-0.0.1-alpha.exe
new file mode 100755
index 0000000..3ab96ae
Binary files /dev/null and b/Build/BetterRaid-0.0.1-alpha.exe differ
diff --git a/Build/BetterRaid-0.0.1-alpha.x86_64 b/Build/BetterRaid-0.0.1-alpha.x86_64
new file mode 100755
index 0000000..25d6cc8
Binary files /dev/null and b/Build/BetterRaid-0.0.1-alpha.x86_64 differ
diff --git a/Controls/RaidButton.axaml b/Controls/RaidButton.axaml
index 06e1ba1..106dfa0 100644
--- a/Controls/RaidButton.axaml
+++ b/Controls/RaidButton.axaml
@@ -35,6 +35,25 @@
Grid.Row="0"
Source="{Binding Channel.ThumbnailUrl}" />
+
+
+
+
+