Add config.toml, parseconfig.go
This commit is contained in:
parent
1e29473e86
commit
d9014ccf65
103
config.toml
Normal file
103
config.toml
Normal file
|
@ -0,0 +1,103 @@
|
||||||
|
# MumbleDJ
|
||||||
|
# By Matthieu Grieger
|
||||||
|
# config.toml
|
||||||
|
# Copyright (c) 2014 Matthieu Grieger (MIT License)
|
||||||
|
|
||||||
|
title = "MumbleDJ Configuration"
|
||||||
|
|
||||||
|
[general]
|
||||||
|
|
||||||
|
# Default channel
|
||||||
|
# DEFAULT VALUE: "Music"
|
||||||
|
default_channel = "Bot Testing"
|
||||||
|
|
||||||
|
# Command prefix
|
||||||
|
# DEFAULT VALUE: "!"
|
||||||
|
command_prefix = "!"
|
||||||
|
|
||||||
|
# Ratio that must be met or exceeded to trigger a song skip
|
||||||
|
# DEFAULT VALUE: 0.5
|
||||||
|
skip_ratio = 0.5
|
||||||
|
|
||||||
|
|
||||||
|
[volume]
|
||||||
|
|
||||||
|
# Default volume
|
||||||
|
# DEFAULT VALUE: 0.2
|
||||||
|
default_volume = 0.2
|
||||||
|
|
||||||
|
# Lowest volume allowed
|
||||||
|
# DEFAULT VALUE: 0.01
|
||||||
|
lowest_volume = 0.01
|
||||||
|
|
||||||
|
# Highest volume allowed
|
||||||
|
# DEFAULT VALUE: 0.8
|
||||||
|
highest_volume = 0.8
|
||||||
|
|
||||||
|
|
||||||
|
[command-aliases]
|
||||||
|
|
||||||
|
# Alias used for add command
|
||||||
|
# DEFAULT VALUE: "add"
|
||||||
|
add_alias = "add"
|
||||||
|
|
||||||
|
# Alias used for skip command
|
||||||
|
# DEFAULT VALUE: "skip"
|
||||||
|
skip_alias = "skip"
|
||||||
|
|
||||||
|
# Alias used for admin skip command
|
||||||
|
# DEFAULT VALUE: "forceskip"
|
||||||
|
admin_skip_alias = "forceskip"
|
||||||
|
|
||||||
|
# Alias used for volume command
|
||||||
|
# DEFAULT VALUE: "volume"
|
||||||
|
volume_alias = "volume"
|
||||||
|
|
||||||
|
# Alias used for move command
|
||||||
|
# DEFAULT VALUE: "move"
|
||||||
|
move_alias = "move"
|
||||||
|
|
||||||
|
# Alias used for reload command
|
||||||
|
# DEFAULT VALUE: "reload"
|
||||||
|
reload_alias = "reload"
|
||||||
|
|
||||||
|
# Alias used for kill command
|
||||||
|
# DEFAULT VALUE: "kill"
|
||||||
|
kill_alias = "kill"
|
||||||
|
|
||||||
|
|
||||||
|
[permissions]
|
||||||
|
|
||||||
|
# Enable admins
|
||||||
|
# DEFAULT VALUE: true
|
||||||
|
enable_admins = true
|
||||||
|
|
||||||
|
# List of admins
|
||||||
|
# NOTE: I recommend only giving users admin privileges if they are registered
|
||||||
|
# on the server. Otherwise people can just take their username and issue admin
|
||||||
|
# commands.
|
||||||
|
admins = ["Matt"]
|
||||||
|
|
||||||
|
# Make add an admin command?
|
||||||
|
# DEFAULT VALUE: false
|
||||||
|
admin_add = false
|
||||||
|
|
||||||
|
# Make skip an admin command?
|
||||||
|
# DEFAULT VALUE: false
|
||||||
|
admin_skip = false
|
||||||
|
|
||||||
|
# Make volume an admin command?
|
||||||
|
# DEFAULT VALUE: false
|
||||||
|
admin_volume = false
|
||||||
|
|
||||||
|
# Make move an admin command?
|
||||||
|
# DEFAULT VALUE: true
|
||||||
|
admin_move = true
|
||||||
|
|
||||||
|
# Make reload an admin command?
|
||||||
|
# DEFAULT VALUE: true
|
||||||
|
admin_reload = true
|
||||||
|
|
||||||
|
# Make kill an admin command?
|
||||||
|
# DEFAULT VALUE: true (I recommend never changing this to false)
|
||||||
|
admin_kill = true
|
62
parseconfig.go
Normal file
62
parseconfig.go
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
* MumbleDJ
|
||||||
|
* By Matthieu Grieger
|
||||||
|
* parseconfig.go
|
||||||
|
* Copyright (c) 2014 Matthieu Grieger (MIT License)
|
||||||
|
*/
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"github.com/BurntSushi/toml"
|
||||||
|
)
|
||||||
|
|
||||||
|
type config struct {
|
||||||
|
title string
|
||||||
|
general generalConfig
|
||||||
|
volume volumeConfig
|
||||||
|
aliases aliasConfig `toml:"command-aliases"`
|
||||||
|
permissions permissionsConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
type generalConfig struct {
|
||||||
|
defaultChannel string `toml:"default_channel"`
|
||||||
|
commandPrefix string `toml:"command_prefix"`
|
||||||
|
skipRatio float32 `toml:"skip_ratio"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type volumeConfig struct {
|
||||||
|
defaultVolume float32 `toml:"default_volume"`
|
||||||
|
lowestVolume float32 `toml:"lowest_volume"`
|
||||||
|
highestVolume float32 `toml:"highest_volume"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type aliasConfig struct {
|
||||||
|
addAlias string `toml:"add_alias"`
|
||||||
|
skipAlias string `toml:"skip_alias"`
|
||||||
|
adminSkipAlias string `toml:"admin_skip_alias"`
|
||||||
|
volumeAlias string `toml:"volume_alias"`
|
||||||
|
moveAlias string `toml:"move_alias"`
|
||||||
|
reloadAlias string `toml:"reload_alias"`
|
||||||
|
killAlias string `toml:"kill_alias"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type permissionsConfig struct {
|
||||||
|
adminsEnabled bool `toml:"enable_admins"`
|
||||||
|
adminList []string `toml:"admins"`
|
||||||
|
adminAdd bool `toml:"admin_add"`
|
||||||
|
adminSkip bool `toml:"admin_skip"`
|
||||||
|
adminVolume bool `toml:"admin_volume"`
|
||||||
|
adminMove bool `toml:"admin_move"`
|
||||||
|
adminReload bool `toml:"admin_reload"`
|
||||||
|
adminKill bool `toml:"admin_kill"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func loadConfiguration() (config, error) {
|
||||||
|
var conf config
|
||||||
|
if _, err := toml.Decode("config.toml", &conf); err != nil {
|
||||||
|
return conf, errors.New("Configuration load failed.")
|
||||||
|
}
|
||||||
|
return conf, nil
|
||||||
|
}
|
Reference in a new issue