-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBonusTools.cs
141 lines (127 loc) · 5.73 KB
/
BonusTools.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
using BonusTools.ImportFromFiles;
using BonusTools.JP;
using Playnite.SDK;
using Playnite.SDK.Plugins;
using System;
using System.Collections.Generic;
namespace BonusTools
{
public class BonusTools : GenericPlugin
{
private string steamApiLanguage;
private BonusSettingsViewModel settings { get; set; }
public override Guid Id { get; } = Guid.Parse("ca24e37a-76d9-49bf-89ab-d3cba4a54bd2");
public BonusTools(IPlayniteAPI api) : base(api)
{
settings = new BonusSettingsViewModel(this);
Properties = new GenericPluginProperties
{
HasSettings = true
};
AddSettingsSupport(new AddSettingsSupportArgs
{
SourceName = "BonusTools",
SettingsRoot = $"{nameof(settings)}.{nameof(settings.Settings)}"
});
// TODO :
// var steamApiLanguage = Steam.GetSteamApiMatchingLanguage(PlayniteApi.ApplicationSettings.Language);
steamApiLanguage = "english";
}
private static readonly string _menuSection = "BonusTools";
public override IEnumerable<GameMenuItem> GetGameMenuItems(GetGameMenuItemsArgs args)
{
return new List<GameMenuItem>
{
new GameMenuItem
{
Description = "Update PlayCount based on the numbers of reviews on Steam/SensCritique/IGDB",
MenuSection = $"{_menuSection}",
Icon = "BonusToolsUpdateIcon",
Action = a => {
Popularity.UpdatePlayCount(args.Games, PlayniteApi, steamApiLanguage, GetPluginUserDataPath(), settings.Settings);
}
},
new GameMenuItem
{
Description = "Import SensCritique.com data (OVERWRITE UserScore and PlayCount, unless disabled via settings)",
MenuSection = $"{_menuSection}",
Icon = "BonusToolsUpdateIcon",
Action = a => {
new SensCritiqueV2(settings.Settings).UpdateAll(PlayniteApi, args.Games);
}
},
new GameMenuItem
{
Description = "Count # of games selected",
MenuSection = $"{_menuSection}",
Icon = "BonusToolsUpdateIcon",
Action = a => {
new SensCritiqueV2(settings.Settings).Count(PlayniteApi, args.Games);
}
},
new GameMenuItem
{
Description = "Import Playtime from Nintendo json file",
MenuSection = $"{_menuSection}",
Icon = "BonusToolsUpdateIcon",
Action = a => {
new Nintendo(settings.Settings).ImportPlaytime(PlayniteApi);
}
},
new GameMenuItem
{
Description = "Import PS Price Paid (in Version field) from Sony export",
MenuSection = $"{_menuSection}",
Icon = "BonusToolsUpdateIcon",
Action = a => {
new PsPrices(settings.Settings).ImportPricePaid(PlayniteApi);
}
},
new GameMenuItem
{
Description = "Import PS Price Paid (in Version field) from Custom spreadsheet",
MenuSection = $"{_menuSection}",
Icon = "BonusToolsUpdateIcon",
Action = a => {
new CustomSpreadsheet(settings.Settings).ImportOwned(PlayniteApi);
}
},
new GameMenuItem
{
Description = "Import PS Plus status from PS Plus Master List as categories",
MenuSection = $"{_menuSection}",
Icon = "BonusToolsUpdateIcon",
Action = a => {
new PsMasterList(settings.Settings).ImportStatus(PlayniteApi);
}
},
new GameMenuItem
{
Description = "Import Yuzu Compatibility as categories",
MenuSection = $"{_menuSection}",
Icon = "BonusToolsUpdateIcon",
Action = a => {
Yuzu.ImportCompatibility(PlayniteApi);
}
},
new GameMenuItem
{
Description = "Import Ryujinx Compatibility as categories",
MenuSection = $"{_menuSection}",
Icon = "BonusToolsUpdateIcon",
Action = a => {
Ryujinx.ImportCompatibility(PlayniteApi);
}
}
};
}
public override ISettings GetSettings(bool firstRunSettings)
{
return settings;
}
public override System.Windows.Controls.UserControl GetSettingsView(bool firstRunSettings)
{
return new BonusSettingsView();
}
}
}