Skip to content
This repository was archived by the owner on Apr 13, 2025. It is now read-only.

Commit 91ec993

Browse files
committed
misc
1 parent f373912 commit 91ec993

File tree

3 files changed

+73
-7
lines changed

3 files changed

+73
-7
lines changed

ASFOAuth/ASFOAuth.cs

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11
using ArchiSteamFarm.Core;
22
using ArchiSteamFarm.Plugins.Interfaces;
33
using ArchiSteamFarm.Steam;
4+
using ArchiSteamFarm.Web.GitHub;
45
using ASFOAuth.Data;
56
using System.ComponentModel;
67
using System.Composition;
78
using System.Reflection;
89
using System.Text;
910
using System.Text.Json;
11+
using static ArchiSteamFarm.Storage.GlobalConfig;
1012

1113
namespace ASFOAuth;
1214

1315
[Export(typeof(IPlugin))]
14-
internal sealed class ASFOAuth : IASF, IBotCommand2
16+
internal sealed class ASFOAuth : IASF, IBotCommand2, IGitHubPluginUpdates
1517
{
1618
public string Name => "ASF OAuth";
1719
public Version Version => MyVersion;
1820

21+
public bool CanUpdate => true;
22+
public string RepositoryName => "chr233/ASFOAuth";
23+
24+
1925
private bool ASFEBridge;
2026

2127
public static PluginConfig Config => Utils.Config;
@@ -226,4 +232,60 @@ public Task OnLoaded()
226232
return ex.StackTrace;
227233
}
228234
}
235+
236+
/// <inheritdoc/>
237+
public async Task<Uri?> GetTargetReleaseURL(Version asfVersion, string asfVariant, bool asfUpdate, EUpdateChannel updateChannel, bool forced)
238+
{
239+
var releaseResponse = await GitHubService.GetLatestRelease(RepositoryName, updateChannel == EUpdateChannel.Stable, default).ConfigureAwait(false);
240+
if (releaseResponse == null)
241+
{
242+
return null;
243+
}
244+
245+
//Version newVersion = new(releaseResponse.Tag);
246+
//if (!forced && (Version >= newVersion))
247+
//{
248+
// ASFLogger.LogGenericInfo(string.Format(Langs.UpdatePluginListItemName, Name, Langs.AlreadyLatest));
249+
// return null;
250+
//}
251+
252+
//if (releaseResponse.Assets.Count == 0)
253+
//{
254+
// ASFLogger.LogGenericWarning(Langs.NoAssetFoundInReleaseInfo);
255+
// return null;
256+
//}
257+
258+
//ASFLogger.LogGenericInfo(string.Format(Langs.UpdatePluginListItemName, Name, Langs.CanUpdate));
259+
//ASFLogger.LogGenericInfo(string.Format(Langs.UpdatePluginListItemVersion, Version, newVersion));
260+
//if (!string.IsNullOrEmpty(releaseResponse.MarkdownBody))
261+
//{
262+
// ASFLogger.LogGenericInfo(string.Format(Langs.UpdatePluginListItemReleaseNote, releaseResponse.MarkdownBody));
263+
//}
264+
265+
if (releaseResponse.Assets.Count == 0)
266+
{
267+
return null;
268+
}
269+
270+
//优先下载当前语言的版本
271+
foreach (var asset in releaseResponse.Assets)
272+
{
273+
if (asset.Name.Contains(Langs.CurrentLanguage))
274+
{
275+
return asset.DownloadURL;
276+
}
277+
}
278+
279+
//优先下载英文版本
280+
foreach (var asset in releaseResponse.Assets)
281+
{
282+
if (asset.Name.Contains("en-US"))
283+
{
284+
return asset.DownloadURL;
285+
}
286+
}
287+
288+
//如果没有找到当前语言的版本, 则下载第一个
289+
return releaseResponse.Assets.FirstOrDefault()?.DownloadURL;
290+
}
229291
}

ASFOAuth/Core/WebRequest.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ namespace ASFOAuth.Core;
66

77
internal static partial class WebRequest
88
{
9-
[GeneratedRegex(@"(?:(openid\.[a-z_.]+)=([^&]+))")]
10-
private static partial Regex OpenIdMatchQueries();
11-
129
[GeneratedRegex(@"(?:([a-z_.]+)=([^&]+))")]
1310
private static partial Regex OAuthMatchQueries();
1411

@@ -20,8 +17,14 @@ internal static partial class WebRequest
2017
/// <returns></returns>
2118
internal static async Task<string> LoginViaSteamOpenId(Bot bot, string url)
2219
{
20+
url = url.Replace("%26", "&");
21+
22+
if (!url.Contains("openid"))
23+
{
24+
return "OpenId链接无效";
25+
}
2326

24-
var regex = OpenIdMatchQueries();
27+
var regex = OAuthMatchQueries();
2528
var matches = regex.Matches(url);
2629

2730
var queries = new List<string>();
@@ -35,7 +38,7 @@ internal static async Task<string> LoginViaSteamOpenId(Bot bot, string url)
3538
return "OpenId链接无效";
3639
}
3740

38-
var request = new Uri(SteamCommunityURL, "/openid/login?" + string.Join('&', queries));
41+
var request = new Uri(SteamCommunityURL, "/openid/login?" + string.Join("%26", queries));
3942
var response = await bot.ArchiWebHandler.UrlGetToHtmlDocumentWithSession(request).ConfigureAwait(false);
4043

4144
var eles = response?.Content?.QuerySelectorAll("#openidForm>input[name][value]");
@@ -69,6 +72,7 @@ internal static async Task<string> LoginViaSteamOpenId(Bot bot, string url)
6972
/// <returns></returns>
7073
internal static async Task<string> LoginViaSteamOAuth(Bot bot, string url)
7174
{
75+
//url = url.Replace("%26", "&");
7276

7377
var regex = OAuthMatchQueries();
7478
var matches = regex.Matches(url);

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
3-
<Version>1.4.0.0</Version>
3+
<Version>1.4.1.0</Version>
44
</PropertyGroup>
55

66
<PropertyGroup>

0 commit comments

Comments
 (0)