config

package
v4.4.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2017 License: AGPL-3.0, AGPL-3.0-or-later Imports: 5 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{
				Title: "Aggregator metaboard",
			},
		},
		Hash: "0",
	}

	// Defaults contains the default server configuration values
	Defaults = Configs{
		BoardExpiry:   7,
		JPEGQuality:   90,
		MaxSize:       5,
		MaxHeight:     6000,
		MaxWidth:      6000,
		SessionExpiry: 30,
		Salt:          "LALALALALALALALALALALALALALALALALALALALA",
		FeedbackEmail: "admin@email.com",
		RootURL:       "http://localhost",
		FAQ:           defaultFAQ,
		Public: Public{
			DefaultCSS:      "moe",
			DefaultLang:     "en_GB",
			ThreadExpiryMin: 7,
			ThreadExpiryMax: 14,
			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

func Clear()

Clear resets package state. Only use in tests.

func ClearBoards

func ClearBoards()

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

func GetAllBoardConfigs

func GetAllBoardConfigs() map[string]BoardConfContainer

GetAllBoardConfigs returns board-specific configurations for all boards. Do not modify the retrieved structs.

func GetBoards

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

func IsBoard(b string) bool

IsBoard returns whether the passed string is a currently existing board

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

func SetBoardConfigs

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

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. Do not modify the retrieved struct.

type BoardConfigs

type BoardConfigs struct {
	BoardPublic
	DisableRobots bool     `json:"disableRobots"`
	ID            string   `json:"id"`
	Eightball     []string `json:"eightball"`
}

BoardConfigs stores board-specific configuration

type BoardPublic

type BoardPublic struct {
	ReadOnly   bool `json:"readOnly"`
	TextOnly   bool `json:"textOnly"`
	ForcedAnon bool `json:"forcedAnon"`
	Flags      bool `json:"flags"`
	NonLive    bool `json:"nonLive"`
	NSFW       bool
	DefaultCSS string `json:"defaultCSS"`
	Title      string `json:"title"`
	Notice     string `json:"notice"`
	Rules      string `json:"rules"`
}

BoardPublic contains publically accessible board-specific configurations

type BoardTitle

type BoardTitle struct {
	ID    string `json:"id"`
	Title string `json:"title"`
}

BoardTitle contains a board's ID and title

type BoardTitles

type BoardTitles []BoardTitle

BoardTitles implements sort.Interface

func GetBoardTitles

func GetBoardTitles() BoardTitles

GetBoardTitles returns a slice of all existing boards and their titles

func (BoardTitles) Len

func (b BoardTitles) Len() int

func (BoardTitles) Less

func (b BoardTitles) Less(i, j int) bool

func (BoardTitles) Swap

func (b BoardTitles) Swap(i, j int)

type Configs

type Configs struct {
	Public
	PruneBoards   bool `json:"pruneBoards"`
	Pyu           bool `json:"pyu"`
	HideNSFW      bool `json:"hideNSFW"`
	JPEGQuality   uint8
	MaxWidth      uint16 `json:"maxWidth"`
	MaxHeight     uint16 `json:"maxHeight"`
	BoardExpiry   uint   `json:"boardExpiry"`
	MaxSize       uint   `json:"maxSize"`
	SessionExpiry uint   `json:"sessionExpiry"`
	RootURL       string `json:"rootURL"`
	Salt          string `json:"salt"`
	FeedbackEmail string `json:"feedbackEmail"`
	FAQ           string
}

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 Public

type Public struct {
	Captcha           bool              `json:"captcha"`
	Mature            bool              `json:"mature"`
	DisableUserBoards bool              `json:"disableUserBoards"`
	PruneThreads      bool              `json:"pruneThreads"`
	ThreadExpiryMin   uint              `json:"threadExpiryMin"`
	ThreadExpiryMax   uint              `json:"threadExpiryMax"`
	DefaultLang       string            `json:"defaultLang"`
	DefaultCSS        string            `json:"defaultCSS"`
	ImageRootOverride string            `json:"imageRootOverride"`
	Links             map[string]string `json:"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