config.go 1.35 KB
Newer Older
Ghost User's avatar
Ghost User committed
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
package federation
//
// GangGo Federation Library
// Copyright (C) 2017-2018 Lukas Matt <lukas@zauberstuhl.de>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

import "strings"

type Config struct {
  Host, ApiVersion string
  GuidURLFormat, ApURLFormat string

  guidURLRegExp string
}

var config Config

func init() {
  config.Host = "http://localhost:9000"
  config.ApiVersion = "v0"
  config.GuidURLFormat = config.Host + "/posts/%s"
  config.ApURLFormat = config.Host + "/api/" + config.ApiVersion + "/ap/%s"
  config.Configure()
}

func SetConfig(userConfig Config) {
  config = userConfig
  config.Configure()
}

func (c *Config) Configure() {
  c.guidURLRegExp = strings.Replace(config.GuidURLFormat, "%s", "(.*)", 1)
}

func (c *Config) GuidURLRegExp() string {
  return c.guidURLRegExp
}