config

package
v2.7.1 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 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 = BoardConfContainer{
		BoardConfigs: BoardConfigs{
			ID: "all",
			BoardPublic: BoardPublic{
				PostParseConfigs: PostParseConfigs{
					HashCommands: true,
				},
				Spoilers: true,
				CodeTags: true,
				Spoiler:  "default.jpg",
				Title:    "Aggregator metaboard",
				Banners:  []string{},
			},
		},
		Hash: "0",
	}

	// Defaults contains the default server configuration values
	Defaults = Configs{
		ThreadExpiry:  14,
		BoardExpiry:   7,
		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 Clear added in v2.5.1

func Clear()

Clear resets package state. Only use in tests.

func ClearBoards added in v2.5.1

func ClearBoards()

ClearBoards clears any existing board configuration entries. Only use in tests.

func GetBoards added in v2.4.0

func GetBoards() []string

GetBoards returns an array of currently existing boards

func GetClient

func GetClient() ([]byte, string)

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

func IsBoard added in v2.5.1

func IsBoard(b string) bool

IsBoard returns whether the passed string is a currently existing board

func RemoveBoard added in v2.4.0

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

func SetBoardConfigs added in v2.4.0

func SetBoardConfigs(conf BoardConfigs) (bool, error)

SetBoardConfigs sets configurations for a specific board as well as pregenerates their public JSON and hash. Returns if any changes were made to the configs in result.

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 added in v2.4.0

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 added in v2.4.0

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 added in v2.4.0

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 accessible board-specific configurations

type Configs

type Configs struct {
	Public
	PruneThreads      bool   `json:"pruneThreads" gorethink:"pruneThreads"`
	PruneBoards       bool   `json:"pruneBoards" gorethink:"pruneBoards"`
	Pyu               bool   `json:"pyu" gorethink:"pyu"`
	MaxWidth          uint16 `json:"maxWidth" gorethink:"maxWidth"`
	MaxHeight         uint16 `json:"maxHeight" gorethink:"maxHeight"`
	JPEGQuality       int
	PNGQuality        int
	ThreadExpiry      uint          `json:"threadExpiry" gorethink:"threadExpiry"`
	BoardExpiry       uint          `json:"boardExpiry" gorethink:"boardExpiry"`
	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 added in v2.4.0

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 exposeable through public availability APIs

Jump to

Keyboard shortcuts

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