mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04:00
Re-added old creds -> creds.yml migration to avoid massive complications in the windows updater and general update process
This commit is contained in:
45
src/NadekoBot/Common/OldCreds.cs
Normal file
45
src/NadekoBot/Common/OldCreds.cs
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
namespace NadekoBot.Common;
|
||||||
|
|
||||||
|
public class OldCreds
|
||||||
|
{
|
||||||
|
public string Token { get; set; } = string.Empty;
|
||||||
|
public ulong[] OwnerIds { get; set; } = new ulong[1];
|
||||||
|
public string LoLApiKey { get; set; } = string.Empty;
|
||||||
|
public string GoogleApiKey { get; set; } = string.Empty;
|
||||||
|
public string MashapeKey { get; set; } = string.Empty;
|
||||||
|
public string OsuApiKey { get; set; } = string.Empty;
|
||||||
|
public string SoundCloudClientId { get; set; } = string.Empty;
|
||||||
|
public string CleverbotApiKey { get; set; } = string.Empty;
|
||||||
|
public string CarbonKey { get; set; } = string.Empty;
|
||||||
|
public int TotalShards { get; set; } = 1;
|
||||||
|
public string PatreonAccessToken { get; set; } = string.Empty;
|
||||||
|
public string PatreonCampaignId { get; set; } = "334038";
|
||||||
|
public RestartConfig RestartCommand { get; set; }
|
||||||
|
|
||||||
|
public string ShardRunCommand { get; set; } = string.Empty;
|
||||||
|
public string ShardRunArguments { get; set; } = string.Empty;
|
||||||
|
public int? ShardRunPort { get; set; }
|
||||||
|
public string MiningProxyUrl { get; set; } = string.Empty;
|
||||||
|
public string MiningProxyCreds { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string BotListToken { get; set; } = string.Empty;
|
||||||
|
public string TwitchClientId { get; set; } = string.Empty;
|
||||||
|
public string VotesToken { get; set; } = string.Empty;
|
||||||
|
public string VotesUrl { get; set; } = string.Empty;
|
||||||
|
public string RedisOptions { get; set; } = string.Empty;
|
||||||
|
public string LocationIqApiKey { get; set; } = string.Empty;
|
||||||
|
public string TimezoneDbApiKey { get; set; } = string.Empty;
|
||||||
|
public string CoinmarketcapApiKey { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public class RestartConfig
|
||||||
|
{
|
||||||
|
public string Cmd { get; set; }
|
||||||
|
public string Args { get; set; }
|
||||||
|
|
||||||
|
public RestartConfig(string cmd, string args)
|
||||||
|
{
|
||||||
|
Cmd = cmd;
|
||||||
|
Args = args;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@@ -116,8 +116,52 @@ public sealed class BotCredsProvider : IBotCredsProvider
|
|||||||
Reload();
|
Reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string OldCredsJsonPath
|
||||||
|
=> Path.Combine(Directory.GetCurrentDirectory(), "credentials.json");
|
||||||
|
|
||||||
|
private string OldCredsJsonBackupPath
|
||||||
|
=> Path.Combine(Directory.GetCurrentDirectory(), "credentials.json.bak");
|
||||||
|
|
||||||
private void MigrateCredentials()
|
private void MigrateCredentials()
|
||||||
{
|
{
|
||||||
|
if (File.Exists(OldCredsJsonPath))
|
||||||
|
{
|
||||||
|
Log.Information("Migrating old creds...");
|
||||||
|
var jsonCredentialsFileText = File.ReadAllText(OldCredsJsonPath);
|
||||||
|
var oldCreds = JsonConvert.DeserializeObject<OldCreds>(jsonCredentialsFileText);
|
||||||
|
|
||||||
|
if (oldCreds is null)
|
||||||
|
{
|
||||||
|
Log.Error("Error while reading old credentials file. Make sure that the file is formatted correctly");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var creds = new Creds
|
||||||
|
{
|
||||||
|
Version = 1,
|
||||||
|
Token = oldCreds.Token,
|
||||||
|
OwnerIds = oldCreds.OwnerIds.Distinct().ToHashSet(),
|
||||||
|
GoogleApiKey = oldCreds.GoogleApiKey,
|
||||||
|
RapidApiKey = oldCreds.MashapeKey,
|
||||||
|
OsuApiKey = oldCreds.OsuApiKey,
|
||||||
|
CleverbotApiKey = oldCreds.CleverbotApiKey,
|
||||||
|
TotalShards = oldCreds.TotalShards <= 1 ? 1 : oldCreds.TotalShards,
|
||||||
|
Patreon = new(oldCreds.PatreonAccessToken, null, null, oldCreds.PatreonCampaignId),
|
||||||
|
Votes = new(oldCreds.VotesUrl, oldCreds.VotesToken, string.Empty, string.Empty),
|
||||||
|
BotListToken = oldCreds.BotListToken,
|
||||||
|
RedisOptions = oldCreds.RedisOptions,
|
||||||
|
LocationIqApiKey = oldCreds.LocationIqApiKey,
|
||||||
|
TimezoneDbApiKey = oldCreds.TimezoneDbApiKey,
|
||||||
|
CoinmarketcapApiKey = oldCreds.CoinmarketcapApiKey
|
||||||
|
};
|
||||||
|
|
||||||
|
File.Move(OldCredsJsonPath, OldCredsJsonBackupPath, true);
|
||||||
|
File.WriteAllText(CredsPath, Yaml.Serializer.Serialize(creds));
|
||||||
|
|
||||||
|
Log.Warning(
|
||||||
|
"Data from credentials.json has been moved to creds.yml\nPlease inspect your creds.yml for correctness");
|
||||||
|
}
|
||||||
|
|
||||||
if (File.Exists(CREDS_FILE_NAME))
|
if (File.Exists(CREDS_FILE_NAME))
|
||||||
{
|
{
|
||||||
var creds = Yaml.Deserializer.Deserialize<Creds>(File.ReadAllText(CREDS_FILE_NAME));
|
var creds = Yaml.Deserializer.Deserialize<Creds>(File.ReadAllText(CREDS_FILE_NAME));
|
||||||
|
Reference in New Issue
Block a user