Files
nadekobot/docs/jsons-explained.md
2021-09-11 22:48:48 +02:00

9.5 KiB

Setting up your API keys

This part is completely optional, however it's necessary for music and a few other features to work properly.

  • GoogleAPIKey
    • Required for Youtube Song Search, Playlist queuing, and a few more things.
    • Follow these steps on how to setup Google API keys:
      • Go to Google Console and log in.
      • Create a new project (name does not matter).
      • Once the project is created, go into Library
      • Under the YouTube APIs section, enable YouTube Data API
      • On the left tab, access Credentials,
        • Click Create Credentials button,
        • Click on API Key
        • A new window will appear with your Google API key
          NOTE: You don't really need to click on RESTRICT KEY, just click on CLOSE when you are done.
        • Copy the key.
      • Open up creds.yml and look for GoogleAPIKey, paste your API key after the :.
      • It should look like this:
      GoogleApiKey: "AIzaSyDSci1sdlWQOWNVj1vlXxxxxxbk0oWMEzM"
      
  • MashapeKey
    • Required for Hearthstone cards.
    • Api key obtained on https://rapidapi.com (register -> go to MyApps -> Add New App -> Enter Name -> Application key)
    • Copy the key and paste it into creds.yml
  • OsuApiKey
    • Required for Osu commands
    • You can get this key here.
  • CleverbotApiKey
    • Required if you want to use Cleverbot. It's currently a paid service.
    • You can get this key here.
  • PatreonAccessToken
    • For Patreon creators only.
  • PatreonCampaignId
    • For Patreon creators only. Id of your campaign.
  • TwitchClientId
    • Mandatory for following twitch streams with .twitch (or .stadd with twitch link)
    • Go to apps page on twitch and register your application.
    • You need 2FA enabled on twitch in order to create an application
    • You can set http://localhost as the OAuth Redirect URL (and press Add button)
    • Select Chat Bot from the Category dropdown
    • Once created, clicking on your application will show a new Client ID field
    • Copy it to your creds.yml as shown below
        TwitchClientId: "516tr61tr1qweqwe86trg3g"
    
  • LocationIqApiKey
    • Optional. Used only for the .time command. https://locationiq.com api key (register and you will receive the token in the email).
  • TimezoneDbApiKey
    • Optional. Used only for the .time command. https://timezonedb.com api key (register and you will receive the token in the email YOU HAVE TO ACTIVEATE IT AFTER YOU GET IT).
  • CoinmarketcapApiKey
    • Optional. Used only for the .crypto command. You can use crypto command without it, but you might get ratelimited from time to time, as all self-hosters share the default api key. https://pro.coinmarketcap.com/
Additional Settings
  • TotalShards
    • Required if the bot will be connected to more than 2500 servers.
    • Most likely unnecessary to change until your bot is added to more than 2500 servers.
  • RedisOptions
    • Required if the Redis instance is not on localhost or on non-default port.
    • You can find all available options here.
  • RestartCommand
    • Required if you want to be able to use the .restart command
    • If you're using the CLI installer or Linux/OSX, it's easier and more reliable setup Nadeko with auto-restart and just use .die

For Windows (Updater), add this to your creds.yml

RestartCommand:
    Cmd: "NadekoBot.exe"

For Windows (Source), Linux or OSX, add this to your creds.yml

RestartCommand:
    Cmd: dotnet
    Args: "NadekoBot.dll -- {0}"

End Result

This is an example of how the creds.yml looks like with multiple owners, the restart command (optional) and some of the API keys (also optional):

# DO NOT CHANGE
version: 1
# Bot token. Do not share with anyone ever -> https://discordapp.com/developers/applications/
token: 'MTE5Nzc3MDIxMzE5NTc3NjEw.VlhNCw.BuqJFyzdIUAK1PRf1eK1Cu89Jew'
# List of Ids of the users who have bot owner permissions
# **DO NOT ADD PEOPLE YOU DON'T TRUST**
ownerIds: [
    105635123466156544,
    145521851676884992,
    341420590009417729
]
# The number of shards that the bot will running on.
# Leave at 1 if you don't know what you're doing.
totalShards: 1
# Login to https://console.cloud.google.com, create a new project, go to APIs & Services -> Library -> YouTube Data API and enable it.
# Then, go to APIs and Services -> Credentials and click Create credentials -> API key.
# Used only for Youtube Data Api (at the moment).
googleApiKey: 'AIzaSyDScfdfdfi1sdlWQOWxxxxxbk0oWMEzM'
# Settings for voting system for discordbots. Meant for use on global Nadeko.
votes:
  url: ''
  key: ''
# Patreon auto reward system settings.
# go to https://www.patreon.com/portal -> my clients -> create client
patreon:
# Access token. You have to manually update this 1st of each month by refreshing the token on https://patreon.com/portal
  accessToken: ''
  # Unused atm
  refreshToken: ''
  # Unused atm
  clientSecret: ''
  # Campaign ID of your patreon page. Go to your patreon page (make sure you're logged in) and type "prompt('Campaign ID', window.patreon.bootstrap.creator.data.id);" in the console. (ctrl + shift + i)
  campaignId: ''
# Api key for sending stats to DiscordBotList.
botListToken: ''
# Official cleverbot api key.
cleverbotApiKey: ''
# Redis connection string. Don't change if you don't know what you're doing.
redisOptions: localhost:6379,syncTimeout=30000,responseTimeout=30000,allowAdmin=true,password=
# Database options. Don't change if you don't know what you're doing. Leave null for default values
db:
# Database type. Only sqlite supported atm
  type: sqlite
  # Connection string. Will default to "Data Source=data/NadekoBot.db"
  connectionString: Data Source=data/NadekoBot.db
# Address and port of the coordinator endpoint. Leave empty for default.
# Change only if you've changed the coordinator address or port.
coordinatorUrl: http://localhost:3442
# Api key obtained on https://rapidapi.com (go to MyApps -> Add New App -> Enter Name -> Application key)
rapidApiKey: 4UrKpcWXcxxxxxxxxxxxxxxp1Q8kI6jsn32xxxoVWiY7
# https://locationiq.com api key (register and you will receive the token in the email).
# Used only for .time command.
locationIqApiKey: 
# https://timezonedb.com api key (register and you will receive the token in the email).
# Used only for .time command
timezoneDbApiKey: 
# https://pro.coinmarketcap.com/account/ api key. There is a free plan for personal use.
# Used for cryptocurrency related commands.
coinmarketcapApiKey: 
# Api key used for Osu related commands. Obtain this key at https://osu.ppy.sh/p/api
osuApiKey: 4c8c8fdffdsfdsfsdfsfa33f3f3140a7d93320d6
# Command and args which will be used to restart the bot.
# Only used if bot is executed directly (NOT through the coordinator)
# placeholders: 
#     {0} -> shard id 
#     {1} -> total shards
# Linux default
#     cmd: dotnet
#     args: "NadekoBot.dll -- {0}"
# Windows default
#     cmd: NadekoBot.exe
#     args: {0}
restartCommand:
  cmd: 
  args: 

Database

Nadeko saves all settings and data in the database file NadekoBot.db, located in:

  • Windows (Updater): system/data (can be easily accessed through the Data button on the updater)
  • Windows (Source), Linux and OSX: NadekoBot/src/NadekoBot/bin/Release/netcoreapp2.1/data/NadekoBot.db

In order to open it you will need SQLite Browser.

NOTE: You don't have to worry if you don't have the NadekoBot.db file, it gets automatically created once you successfully run the bot for the first time.

To make changes:

  • Shut your bot down.
  • Copy the NadekoBot.db file to someplace safe. (Back up)
  • Open it with SQLite Browser.
  • Go to the Browse Data tab.
  • Click on the Table drop-down list.
  • Choose the table you want to edit.
  • Click on the cell you want to edit.
  • Edit it on the right-hand side.
  • Click on Apply.
  • Click on Write Changes.

nadekodb


Sharding your bot

  • ShardRunCommand
    • Command with which to run shards 1+
    • Required if you're sharding your bot on windows using .exe, or in a custom way.
    • This internally defaults to dotnet
    • For example, if you want to shard your NadekoBot which you installed using windows installer, you would want to set it to something like this: C:\Program Files\NadekoBot\system\NadekoBot.exe
  • ShardRunArguments
    • Arguments to the shard run command
    • Required if you're sharding your bot on windows using .exe, or in a custom way.
    • This internally defaults to run -c Release --no-build -- {0} {1} {2} which will be enough to run linux and other 'from source' setups
    • {0} will be replaced by the shard ID of the shard being ran, {1} by the shard 0's process id, and {2} by the port shard communication is happening on
    • If shard0 (main window) is closed, all other shards will close too
    • For example, if you want to shard your NadekoBot which you installed using windows installer, you would want to set it to {0} {1} {2}
  • ShardRunPort
    • Bot uses a random UDP port in [5000, 6000] range for communication between shards