config

package
v2.4.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2016 License: AGPL-3.0, AGPL-3.0-or-later Imports: 4 Imported by: 0

Documentation

Overview

Package config stores and exports the configuration for server-side use and the public availability JSON struct, which includes a small subset of the server configuration.

Index

Constants

This section is empty.

Variables

View Source
var (

	// AllBoardConfigs stores board-specific configurations for the /all/
	// metaboard. Constant.
	AllBoardConfigs []byte

	// AllowedOrigin stores the accepted client origin for websocket and file
	// upload requests. Set only on server start.
	AllowedOrigin string

	// Defaults contains the default server configuration values
	Defaults = Configs{
		MaxThreads:    100,
		MaxBump:       1000,
		JPEGQuality:   80,
		PNGQuality:    20,
		MaxSize:       5,
		MaxHeight:     6000,
		MaxWidth:      6000,
		SessionExpiry: 30,
		Salt:          "LALALALALALALALALALALALALALALALALALALALA",
		FeedbackEmail: "admin@email.com",
		Public: Public{
			DefaultCSS:  "moe",
			FAQ:         defaultFAQ,
			DefaultLang: "en_GB",
			Links:       map[string]string{"4chan": "http://www.4chan.org/"},
		},
	}

	// EightballDefaults contains the default eightball answer set
	EightballDefaults = []string{
		"Yes",
		"No",
		"Maybe",
		"It can't be helped",
		"Hell yeah, motherfucker!",
		"Anta baka?",
	}
)

Functions

func GetBoards

func GetBoards() []string

GetBoards returns the slice of currently existing boards

func GetClient

func GetClient() ([]byte, string)

GetClient returns punlic availability configuration JSON and a truncated configuration MD5 hash

func RemoveBoard

func RemoveBoard(b string)

RemoveBoard removes a board from the exiting board list and deletes its configurations. To be called, when a board is deleted.

func Set

func Set(c Configs) error

Set sets the internal configuration struct. To be used only in tests.

func SetBoardConfigs

func SetBoardConfigs(conf BoardConfigs) (err error)

SetBoardConfigs sets configurations for a specific board as well as pregenerates their public JSON and hash

func SetBoards

func SetBoards(b []string)

SetBoards sets the slice of currently existing boards

func SetClient

func SetClient(json []byte, cHash string)

SetClient sets the client configuration JSON and hash. To be used only in tests.

Types

type BoardConfContainer

type BoardConfContainer struct {
	BoardConfigs
	JSON []byte
	Hash string
}

BoardConfContainer contains configurations for an individual board as well as pregenerated public JSON and it's hash

func GetBoardConfigs

func GetBoardConfigs(b string) BoardConfContainer

GetBoardConfigs returns board-specific configurations for a board combined with pregenerated public JSON of these configurations and their hash

type BoardConfigs

type BoardConfigs struct {
	BoardPublic
	ID        string              `json:"id" gorethink:"id"`
	Eightball []string            `json:"eightball" gorethink:"eightball"`
	Staff     map[string][]string `json:"staff" gorethink:"staff"`
}

BoardConfigs stores board-specific configuration

type BoardPublic

type BoardPublic struct {
	PostParseConfigs
	Spoilers bool     `json:"spoilers" gorethink:"spoilers"`
	CodeTags bool     `json:"codeTags" gorethink:"codeTags"`
	Spoiler  string   `json:"spoiler" gorethink:"spoiler"`
	Title    string   `json:"title" gorethink:"title"`
	Notice   string   `json:"notice" gorethink:"notice"`
	Rules    string   `json:"rules" gorethink:"rules"`
	Banners  []string `json:"banners" gorethink:"banners"`
}

BoardPublic contains publically accessable board-specific configurations

type Configs

type Configs struct {
	Public
	Prune             bool   `json:"prune" gorethink:"prune"`
	Pyu               bool   `json:"pyu" gorethink:"pyu"`
	MaxWidth          uint16 `json:"maxWidth" gorethink:"maxWidth"`
	MaxHeight         uint16 `json:"maxHeight" gorethink:"maxHeight"`
	MaxThreads        int    `json:"maxThreads" gorethink:"maxThreads"`
	MaxBump           int    `json:"maxBump" gorethink:"maxBump"`
	JPEGQuality       int
	PNGQuality        int
	MaxSize           int64         `json:"maxSize" gorethink:"maxSize"`
	Salt              string        `json:"salt" gorethink:"salt"`
	FeedbackEmail     string        `json:"feedbackEmail" gorethink:"feedbackEmail"`
	CaptchaPrivateKey string        `json:"captchaPrivateKey" gorethink:"captchaPrivateKey"`
	SessionExpiry     time.Duration `json:"sessionExpiry" gorethink:"sessionExpiry"`
}

Configs stores the global server configuration

func Get

func Get() *Configs

Get returns a pointer to the current server configuration struct. Callers should not modify this struct.

type DatabaseBoardConfigs

type DatabaseBoardConfigs struct {
	BoardConfigs
	Created time.Time `gorethink:"created"`
}

DatabaseBoardConfigs contains extra fields not exposed on database reads

type PostParseConfigs

type PostParseConfigs struct {
	ReadOnly     bool `json:"readOnly" gorethink:"readOnly"`
	TextOnly     bool `json:"textOnly" gorethink:"textOnly"`
	ForcedAnon   bool `json:"forcedAnon" gorethink:"forcedAnon"`
	HashCommands bool `json:"hashCommands" gorethink:"hashCommands"`
}

PostParseConfigs contains board-specific flags for post text parsing

type Public

type Public struct {
	Radio            bool   `json:"radio" gorethink:"radio"`
	Hats             bool   `json:"hats" gorethink:"hats"`
	IllyaDance       bool   `json:"illyaDance" gorethink:"illyaDance"`
	Captcha          bool   `json:"captcha" gorethink:"captcha"`
	Mature           bool   `json:"mature" gorethink:"mature"`
	DefaultLang      string `json:"defaultLang" gorethink:"defaultLang"`
	DefaultCSS       string `json:"defaultCSS" gorethink:"defaultCSS"`
	CaptchaPublicKey string `json:"captchaPublicKey" gorethink:"captchaPublicKey"`
	FAQ              string
	Links            map[string]string `json:"links" gorethink:"links"`
}

Public contains configurations exposable through public availability APIs

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL