model

package
v0.0.0-...-b102549 Latest Latest
Warning

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

Go to latest
Published: May 6, 2022 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DateID

func DateID(offset string) (string, error)

DateID 返回一个便于通过前缀筛选时间范围的字符串 id, 由于精确到秒,为了避免重复,每次生成新 id 前会先暂停一秒。 offset 的格式是 "+8" 表示东八区(北京时间), "-5" 表示西五区(纽约时间), 依此类推。 返回的 id 格式是 "2006-01-02_150405", 由于有可能用于 html 元素的 id, 因此不含空格与冒号。

Types

type Alias

type Alias struct {
	ID    string // TxtMsg.Alias
	MsgID string
}

Alias 指向一条 TxtMsg, 要注意与 TxtMsg 联动(同时添加/修改/删除)。

type Category

type Category string
const (
	CatTemp Category = "Temporary"
	CatPerm Category = "Permanent"
)

type Config

type Config struct {
	Password       string // 主密码,唯一作用是生成 Key
	Key            string // 日常使用的密钥
	KeyStarts      int64  // Key 的生效时间 (timestamp), 因涉及时间戳而采用 int64
	KeyMaxAge      int64  // Key 的有效期(秒)
	MsgSizeLimit   int    // 每条消息的长度上限
	TempLimit      int    // 暂存消息条数上限(永久消息不设上限)
	EveryPageLimit int    // 每页最多列出多少条消息
	TimeOffset     string // "+8" 表示北京时间, "-5" 表示纽约时间, 依此类推。
}

func (*Config) ToConfigForm

func (config *Config) ToConfigForm() ConfigForm

type ConfigForm

type ConfigForm struct {
	KeyMaxAge      int64  `form:"KeyMaxAge"` // Key 的有效期(天)
	MsgSizeLimit   int    `form:"MsgSizeLimit"`
	TempLimit      int    `form:"TempLimit"`
	EveryPageLimit int    `form:"EveryPageLimit"`
	TimeOffset     string `form:"TimeOffset"`
}

ConfigForm 注意 KeyMaxAge 的单位与 Config.KeyMaxAge 不同。

type EditForm

type EditForm struct {
	ID    string `form:"id" binding:"required"`
	Alias string `form:"alias"`
	Msg   string `form:"msg" binding:"required"`
}

type TxtMsg

type TxtMsg struct {
	ID     string   // DateID, 既是 id 也是创建日期
	UserID string   // 暂时不使用,以后升级为多用户系统时使用
	Alias  string   // 别名,要注意与 Alias bucket 联动。
	Msg    string   // 消息内容
	Cat    Category // 类型(比如暂存、永久)
	Index  int      // 流水号,每当插入或删除条目时,需要更新全部条目的流水号
}

func NewTxtMsg

func NewTxtMsg(msg, offset string) (tm TxtMsg, err error)

func UnmarshalTxtMsg

func UnmarshalTxtMsg(data []byte) (tm TxtMsg, err error)

Jump to

Keyboard shortcuts

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