Compare commits

...

17 Commits

Author SHA1 Message Date
JustArchi
d1ca1e9b2c Add a pre-container assembly verification for detecting failing plugins 2020-11-25 12:26:46 +01:00
JustArchi
178509eb21 Avoid loading assemblies in IPC when no plugins are active
Apart from small optimization, this avoids the problem of starting IPC server if one of the assemblies fail to load (as ASF will abort the rest of the plugins loading routine, and therefore no plugins will be loaded at all).
2020-11-25 11:52:02 +01:00
GitHub Action
2d6e8ed673 Automatic translations update 2020-11-25 02:09:37 +00:00
dependabot-preview[bot]
95eeba8e53 Bump ASF-ui from 7acc033 to 0586542
Bumps [ASF-ui](https://github.com/JustArchiNET/ASF-ui) from `7acc033` to `0586542`.
- [Release notes](https://github.com/JustArchiNET/ASF-ui/releases)
- [Commits](7acc033156...0586542cb0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-25 01:33:02 +00:00
JustArchi
f0fbf318f4 Bump 2020-11-24 17:40:34 +01:00
GitHub Action
4cb822cbf2 Automatic translations update 2020-11-24 02:09:33 +00:00
dependabot-preview[bot]
e1ad30ebe8 Bump wiki from f8ce64c to fb005a3
Bumps [wiki](https://github.com/JustArchiNET/ArchiSteamFarm.wiki) from `f8ce64c` to `fb005a3`.
- [Release notes](https://github.com/JustArchiNET/ArchiSteamFarm.wiki/releases)
- [Commits](f8ce64c006...fb005a3444)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-24 01:47:13 +00:00
dependabot-preview[bot]
63b92bd4a9 Bump ASF-ui from e5b334b to 7acc033
Bumps [ASF-ui](https://github.com/JustArchiNET/ASF-ui) from `e5b334b` to `7acc033`.
- [Release notes](https://github.com/JustArchiNET/ASF-ui/releases)
- [Commits](e5b334bc74...7acc033156)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-24 01:46:46 +00:00
GitHub Action
c5de5cb1af Automatic translations update 2020-11-23 02:09:42 +00:00
dependabot-preview[bot]
71cf55be3f Bump ASF-ui from 1f52d6a to e5b334b
Bumps [ASF-ui](https://github.com/JustArchiNET/ASF-ui) from `1f52d6a` to `e5b334b`.
- [Release notes](https://github.com/JustArchiNET/ASF-ui/releases)
- [Commits](1f52d6a635...e5b334bc74)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-23 01:37:43 +00:00
JustArchi
74a30a8215 Make GetOwnedGames display also profile-limited games 2020-11-22 18:16:32 +01:00
GitHub Action
db452a2da0 Automatic translations update 2020-11-22 02:09:24 +00:00
JustArchi
0b5d1211fa Bump 2020-11-21 19:07:08 +01:00
JustArchi
084388087e Revert "Make --ignore-unsupported-environment emit a warning instead of nothing"
This reverts commit dd1bb75b8a.
2020-11-21 18:30:49 +01:00
JustArchi
cbbd6fab2d Work around OS X limitations 2020-11-21 18:14:15 +01:00
JustArchi
d9e3496e5e Optimize csprojs and STD plugin publishing
thanks to @Vital7 for the idea
2020-11-21 18:09:05 +01:00
JustArchi
d896f16cbf Bump 2020-11-21 17:12:13 +01:00
16 changed files with 68 additions and 49 deletions

View File

@@ -133,9 +133,9 @@ jobs:
fi
# If we're including SteamTokenDumper plugin for this framework, copy it to output directory
if [ -f "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/${STEAM_TOKEN_DUMPER_NAME}.dll" ]; then
if [ -d "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}" ]; then
mkdir -p "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
cp "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/${STEAM_TOKEN_DUMPER_NAME}.dll" "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
cp -pR "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/"* "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
fi
# Include .ico file for all platforms, since only Windows script can bundle it inside the exe
@@ -208,12 +208,12 @@ jobs:
}
# If we're including SteamTokenDumper plugin for this framework, copy it to output directory
if (Test-Path "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\$env:STEAM_TOKEN_DUMPER_NAME.dll" -PathType Leaf) {
if (Test-Path "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework" -PathType Container) {
if (!(Test-Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" -PathType Container)) {
New-Item -ItemType Directory -Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" > $null
}
Copy-Item "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\$env:STEAM_TOKEN_DUMPER_NAME.dll" "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME"
Copy-Item "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\*" "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME"
}
# Icon is available only in .NET Framework and .NET Core Windows build, we'll bundle the .ico file for other flavours

View File

@@ -66,9 +66,9 @@ script:
fi
# If we're including SteamTokenDumper plugin for this framework, copy it to output directory
if [ -f "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/${STEAM_TOKEN_DUMPER_NAME}.dll" ]; then
if [ -d "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}" ]; then
mkdir -p "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
cp "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/${STEAM_TOKEN_DUMPER_NAME}.dll" "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
cp -pR "out/${STEAM_TOKEN_DUMPER_NAME}/${NET_CORE_VERSION}/"* "out/${1}/plugins/${STEAM_TOKEN_DUMPER_NAME}"
fi
# Include .ico file for all platforms, since only Windows script can bundle it inside the exe

2
ASF-ui

Submodule ASF-ui updated: 1f52d6a635...0586542cb0

View File

@@ -4,12 +4,17 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PackageReference Include="Newtonsoft.Json" IncludeAssets="compile" Version="*" />
<PackageReference Include="SteamKit2" IncludeAssets="compile" Version="*" />
<PackageReference Include="System.Composition.AttributedModel" IncludeAssets="compile" Version="*" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" IncludeAssets="compile" Version="*" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" />
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" ExcludeAssets="all" Private="false" />
</ItemGroup>
</Project>

View File

@@ -4,12 +4,11 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PackageReference Include="System.Composition.AttributedModel" IncludeAssets="compile" Version="*" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" />
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" ExcludeAssets="all" Private="false" />
</ItemGroup>
</Project>

View File

@@ -4,12 +4,18 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PackageReference Include="Newtonsoft.Json" IncludeAssets="compile" Version="*" />
<PackageReference Include="SteamKit2" IncludeAssets="compile" Version="*" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" IncludeAssets="compile" Version="*" />
<PackageReference Include="System.Composition.AttributedModel" IncludeAssets="compile" Version="*" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net48'">
<PackageReference Include="System.Collections.Immutable" IncludeAssets="compile" Version="*" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" />
<ProjectReference Include="..\ArchiSteamFarm\ArchiSteamFarm.csproj" ExcludeAssets="all" Private="false" />
</ItemGroup>
</Project>

View File

@@ -4,9 +4,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.0" />
<PackageReference Include="MSTest.TestAdapter" Version="2.1.2" />
<PackageReference Include="MSTest.TestFramework" Version="2.1.2" />

View File

@@ -8,9 +8,7 @@
<ItemGroup>
<PackageReference Include="AngleSharp.XPath" Version="1.1.7" />
<PackageReference Include="ConfigureAwaitChecker.Analyzer" Version="4.0.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
<PackageReference Include="ConfigureAwaitChecker.Analyzer" PrivateAssets="all" Version="4.0.0" />
<PackageReference Include="CryptSharpStandard" Version="1.0.0" />
<PackageReference Include="Humanizer" Version="2.8.26" />
<PackageReference Include="JetBrains.Annotations" Version="2020.1.0" />
@@ -42,12 +40,8 @@
<PackageReference Include="Microsoft.AspNetCore.WebSockets" Version="2.2.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="5.0.0" />
<Reference Include="System.Net.Http">
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Net.Http.dll</HintPath>
</Reference>
<Reference Include="System.Security">
<HintPath>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Security.dll</HintPath>
</Reference>
<Reference Include="System.Net.Http" HintPath="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Net.Http.dll" />
<Reference Include="System.Security" HintPath="C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8\System.Security.dll" />
</ItemGroup>
<ItemGroup>

View File

@@ -311,9 +311,10 @@ namespace ArchiSteamFarm {
// ReSharper disable once AccessToDisposedClosure
async () => await iPlayerService.CallAsync(
HttpMethod.Get, "GetOwnedGames", args: new Dictionary<string, object>(3, StringComparer.Ordinal) {
HttpMethod.Get, "GetOwnedGames", args: new Dictionary<string, object>(4, StringComparer.Ordinal) {
{ "include_appinfo", 1 },
{ "key", steamApiKey! },
{ "skip_unvetted_apps", "0" },
{ "steamid", steamID }
}
).ConfigureAwait(false)

View File

@@ -248,11 +248,13 @@ namespace ArchiSteamFarm.IPC {
#endif
// Add support for controllers declared in custom plugins
HashSet<Assembly>? assemblies = PluginsCore.LoadAssemblies();
if (PluginsCore.ActivePlugins?.Count > 0) {
HashSet<Assembly>? assemblies = PluginsCore.LoadAssemblies();
if (assemblies != null) {
foreach (Assembly assembly in assemblies) {
mvc.AddApplicationPart(assembly);
if (assemblies != null) {
foreach (Assembly assembly in assemblies) {
mvc.AddApplicationPart(assembly);
}
}
}

View File

@@ -736,6 +736,10 @@ Tempo de execução: {1}</value>
<value>Resultado: {0}</value>
<comment>{0} will be replaced by generic result of various functions that use this string</comment>
</data>
<data name="WarningUnsupportedEnvironment" xml:space="preserve">
<value>Você está tentando executar a variante {0} do ASF em um ambiente não suportado: {1}. Forneça o arguimento --ignore-unsupported-environment se você realmente sabe o que está fazendo.</value>
</data>
<data name="WarningUnknownCommandLineArgument" xml:space="preserve">
<value>Argumento de linha de comando desconhecido: {0}</value>
</data>
</root>

View File

@@ -101,6 +101,20 @@ namespace ArchiSteamFarm.Plugins {
ASF.ArchiLogger.LogGenericInfo(string.Format(CultureInfo.CurrentCulture, Strings.Initializing, nameof(Plugins)));
foreach (Assembly assembly in assemblies) {
ASF.ArchiLogger.LogGenericDebug(string.Format(CultureInfo.CurrentCulture, Strings.Initializing, assembly.FullName));
try {
// This call is bare minimum to verify if the assembly can load itself
assembly.GetTypes();
} catch (Exception e) {
ASF.ArchiLogger.LogGenericError(string.Format(CultureInfo.CurrentCulture, Strings.WarningFailedWithError, assembly.FullName));
ASF.ArchiLogger.LogGenericException(e);
return false;
}
}
ConventionBuilder conventions = new();
conventions.ForTypesDerivedFrom<IPlugin>().Export<IPlugin>();

View File

@@ -185,17 +185,13 @@ namespace ArchiSteamFarm {
Console.Title = SharedInfo.ProgramIdentifier;
ASF.ArchiLogger.LogGenericInfo(SharedInfo.ProgramIdentifier);
if (!OS.VerifyEnvironment()) {
string errorMessage = string.Format(CultureInfo.CurrentCulture, Strings.WarningUnsupportedEnvironment, SharedInfo.BuildInfo.Variant, OS.Variant);
if (!IgnoreUnsupportedEnvironment) {
ASF.ArchiLogger.LogGenericError(errorMessage);
if (!IgnoreUnsupportedEnvironment) {
if (!OS.VerifyEnvironment()) {
ASF.ArchiLogger.LogGenericError(string.Format(CultureInfo.CurrentCulture, Strings.WarningUnsupportedEnvironment, SharedInfo.BuildInfo.Variant, OS.Variant));
await Task.Delay(10000).ConfigureAwait(false);
return false;
}
ASF.ArchiLogger.LogGenericWarning(errorMessage);
}
return true;

View File

@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>5.0.0.4</Version>
<Version>5.0.1.0</Version>
</PropertyGroup>
<PropertyGroup>

View File

@@ -239,12 +239,12 @@ after_test:
}
# If we're including SteamTokenDumper plugin for this framework, copy it to output directory
if (Test-Path "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\$env:STEAM_TOKEN_DUMPER_NAME.dll" -PathType Leaf) {
if (Test-Path "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework" -PathType Container) {
if (!(Test-Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" -PathType Container)) {
New-Item -ItemType Directory -Path "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME" > $null
}
Copy-Item "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\$env:STEAM_TOKEN_DUMPER_NAME.dll" "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME"
Copy-Item "out\$env:STEAM_TOKEN_DUMPER_NAME\$targetFramework\*" "out\$variant\plugins\$env:STEAM_TOKEN_DUMPER_NAME"
}
# Icon is available only in .NET Framework and .NET Core Windows build, we'll bundle the .ico file for other flavours

2
wiki

Submodule wiki updated: c9702b50e3...0f102a097b