mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 09:18:27 -04:00
Removed credentials.json -> creds.yml migration
This commit is contained in:
@@ -12,7 +12,7 @@ Open Terminal (if you don't know how to, click on the magnifying glass on the to
|
|||||||
- `brew install wget`
|
- `brew install wget`
|
||||||
|
|
||||||
###### Dotnet
|
###### Dotnet
|
||||||
- Download [.net5 SDK](https://dotnet.microsoft.com/download/dotnet/5.0)
|
- Download [.net6 SDK](https://dotnet.microsoft.com/download/dotnet/6.0)
|
||||||
- Open the `.pkg` file you've downloaded and install it.
|
- Open the `.pkg` file you've downloaded and install it.
|
||||||
- Run this command in Terminal. There might be output. If there is, disregard it. (copy-paste the entire block)
|
- Run this command in Terminal. There might be output. If there is, disregard it. (copy-paste the entire block)
|
||||||
```bash
|
```bash
|
||||||
|
@@ -70,7 +70,7 @@ You can still install them manually:
|
|||||||
##### Prerequisites
|
##### Prerequisites
|
||||||
|
|
||||||
**Install these before proceeding or your bot will not work!**
|
**Install these before proceeding or your bot will not work!**
|
||||||
- [.net 5](https://dotnet.microsoft.com/download/dotnet/5.0) - needed to compile and run the bot
|
- [.net 6](https://dotnet.microsoft.com/download/dotnet/6.0) - needed to compile and run the bot
|
||||||
- [git](https://git-scm.com/downloads) - needed to clone the repository (you can also download the zip manually and extract it, but this guide assumes you're using git)
|
- [git](https://git-scm.com/downloads) - needed to clone the repository (you can also download the zip manually and extract it, but this guide assumes you're using git)
|
||||||
- [redis](https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi) - to cache things needed by some features and persist through restarts
|
- [redis](https://github.com/MicrosoftArchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.msi) - to cache things needed by some features and persist through restarts
|
||||||
|
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
#define sysfolder "system"
|
#define sysfolder "system"
|
||||||
#define version GetEnv("NADEKOBOT_INSTALL_VERSION")
|
#define version GetEnv("NADEKOBOT_INSTALL_VERSION")
|
||||||
#define target "win7-x64"
|
#define target "win7-x64"
|
||||||
#define platform "net5.0"
|
#define platform "net6.0"
|
||||||
|
|
||||||
[Setup]
|
[Setup]
|
||||||
AppName = {param:botname|NadekoBot}
|
AppName = {param:botname|NadekoBot}
|
||||||
|
@@ -181,48 +181,4 @@ This should be equivalent to the DiscordsKey in your NadekoBot.Votes api appsett
|
|||||||
DiscordsKey = discordsKey;
|
DiscordsKey = discordsKey;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Old
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
@@ -24,12 +24,6 @@ public sealed class BotCredsProvider : IBotCredsProvider
|
|||||||
private string CredsExamplePath
|
private string CredsExamplePath
|
||||||
=> Path.Combine(Directory.GetCurrentDirectory(), CREDS_EXAMPLE_FILE_NAME);
|
=> Path.Combine(Directory.GetCurrentDirectory(), CREDS_EXAMPLE_FILE_NAME);
|
||||||
|
|
||||||
private string OldCredsJsonPath
|
|
||||||
=> Path.Combine(Directory.GetCurrentDirectory(), "credentials.json");
|
|
||||||
|
|
||||||
private string OldCredsJsonBackupPath
|
|
||||||
=> Path.Combine(Directory.GetCurrentDirectory(), "credentials.json.bak");
|
|
||||||
|
|
||||||
private readonly int? _totalShards;
|
private readonly int? _totalShards;
|
||||||
|
|
||||||
|
|
||||||
@@ -121,51 +115,9 @@ public sealed class BotCredsProvider : IBotCredsProvider
|
|||||||
|
|
||||||
Reload();
|
Reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Checks if there's a V2 credentials file present, loads it if it exists,
|
|
||||||
/// converts it to new model, and saves it to YAML. Also backs up old credentials to credentials.json.bak
|
|
||||||
/// </summary>
|
|
||||||
private void MigrateCredentials()
|
private void MigrateCredentials()
|
||||||
{
|
{
|
||||||
if (File.Exists(OldCredsJsonPath))
|
|
||||||
{
|
|
||||||
Log.Information("Migrating old creds...");
|
|
||||||
var jsonCredentialsFileText = File.ReadAllText(OldCredsJsonPath);
|
|
||||||
var oldCreds = JsonConvert.DeserializeObject<Creds.Old>(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