User:Yapperbot/FRS/Documentation/godoc/rfc

package rfc // import "yapperbot-frs/src/rfc"

CONSTANTS

const noRfCIDYetErrorText string = "An identified RfC does not yet have an assigned RfC ID from Legobot." const requestType string = "request for comment"

VARIABLES

var doneRfcs map[string]bool = map[string]bool{} doneRfcs maps found this session and completed/already-completed RfCs IDs to   true (again, only used for o(n) lookups)

var loadedRfcs map[string]bool = map[string]bool{} loadedRfcs maps *already-completed* RfC IDs to true. It only contains RfCs that were in the JSON at the start. We need this to be separate so we can keep ones out of doneRfcs that aren't in the category anymore

var rfcPrefixRegex *regexp.Regexp rfcPrefixRegex is a regex that matches the comments at the start of each RfC line; these are in the form, and mean the bot can match it.

FUNCTIONS

func AlreadyDone(rfcID string) bool AlreadyDone takes an RfC ID and returns whether it's already included in   either loadedRfcs or doneRfcs.

func LoadRfcsDone(w *mwclient.Client) LoadRfcsDone loads the RFCs that have already been marked as done into loadedRfcs. It needs to be called before the start of each session that includes an RfC lookup.

func MarkRfcsDone(rfcsDone []RfC) MarkRfcsDone takes a series of RfC objects, and adds the RfCs to the list of   completed RfCs.

func SaveRfcsDone(w *mwclient.Client) SaveRfcsDone takes an mwclient, and serializes the doneRfcs map, before saving it on-wiki.

func init

TYPES

type NoRfCIDYetError struct{} NoRfCIDYetError is an error used when an RfC detected does not yet have an   ID assigned.

func (e NoRfCIDYetError) Error string

type RfC struct { ID          string Categories  map[string]bool FeedbackDone bool PageHolding string }   An RfC has an id, a categories map and a setting for whether feedback has been given for it. The map should be map[string]bool, with bool as true for every element This is so membership verification is o(1) rather than o(n)

func (r RfC) IncludeHeader(header string) (bool, bool) IncludeHeader determines if a given FRS header corresponds to this item correctly Takes a string of the entire header (minus the === bits) and returns a bool for if the header is included, and separately a bool indicating whether the header is the all header or not

func (r RfC) PageTitle string PageTitle is a simple getter for the HoldingPage in order to make the interface work

func (r RfC) RequestType string RequestType returns the type this is - an RfC - so that it can be used in a   template