Documentation ¶
Index ¶
- Constants
- Variables
- func AddFavoriteBoard(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func AddFavoriteBoardWrapper(c *gin.Context)
- func AddFavoriteFolder(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func AddFavoriteFolderWrapper(c *gin.Context)
- func AddFavoriteLine(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func AddFavoriteLineWrapper(c *gin.Context)
- func AllHTMLWrapper(c *gin.Context)
- func ArticleLockKey(boardID bbs.BBoardID, articleID bbs.ArticleID) (key string)
- func AttemptChangeEmail(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func AttemptChangeEmailWrapper(c *gin.Context)
- func AttemptRegisterUser(remoteAddr string, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func AttemptRegisterUserWrapper(c *gin.Context)
- func AttemptSetIDEmail(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func AttemptSetIDEmailWrapper(c *gin.Context)
- func ChangeEmail(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func ChangeEmailWrapper(c *gin.Context)
- func ChangePasswd(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func ChangePasswdWrapper(c *gin.Context)
- func CheckExistsUser(remoteAddr string, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func CheckExistsUserWrapper(c *gin.Context)
- func CreateArticle(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func CreateArticleWrapper(c *gin.Context)
- func CreateBoard(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func CreateBoardWrapper(c *gin.Context)
- func CreateComment(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func CreateCommentWrapper(c *gin.Context)
- func CreateRank(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func CreateRankWrapper(c *gin.Context)
- func CrossPost(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func CrossPostWrapper(c *gin.Context)
- func DeleteArticles(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func DeleteArticlesWrapper(c *gin.Context)
- func DeleteComments(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func DeleteCommentsWrapper(c *gin.Context)
- func DeleteFavorite(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func DeleteFavoriteWrapper(c *gin.Context)
- func DeserializeArticlesAndUpdateDB(articleSummaries_b []*bbs.ArticleSummary, updateNanoTS types.NanoTS) (articleSummaries []*schema.ArticleSummaryWithRegex, err error)
- func DeserializeBoardDetailsAndUpdateDB(boardDetails_b []*bbs.BoardDetail, updateNanoTS types.NanoTS) (boardDetails []*schema.BoardDetail, err error)
- func DeserializeBoardsAndUpdateDB(boardSummaries_b []*bbs.BoardSummary, updateNanoTS types.NanoTS) (boardSummaries []*schema.BoardSummary, err error)
- func DeserializePBArticlesAndUpdateDB(boardID bbs.BBoardID, articleSummaries_b []*boardd.Post, ...) (articleSummaries []*schema.ArticleSummaryWithRegex, err error)
- func DeserializePBBoardsAndUpdateDB(boardSummaries_b []*boardd.Board, updateNanoTS types.NanoTS) (boardSummaries []*schema.BoardSummary, err error)
- func DeserializePBManArticlesAndUpdateDB(boardID bbs.BBoardID, levelIdx types.ManArticleID, entries []*mand.Entry, ...) (articleSummaries []*schema.ManArticleSummary, err error)
- func EditArticleDetail(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func EditArticleDetailWrapper(c *gin.Context)
- func Form(theFunc APIFunc, params interface{}, c *gin.Context)
- func FormJSON(theFunc APIFunc, params interface{}, c *gin.Context)
- func FormLogout(theFunc APIFunc, params interface{}, c *gin.Context)
- func GetArticleBlocks(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func GetArticleBlocksWrapper(c *gin.Context)
- func GetArticleDetail(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func GetArticleDetailWrapper(c *gin.Context)
- func GetBoardDetail(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func GetBoardDetailWrapper(c *gin.Context)
- func GetBoardSummary(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func GetBoardSummaryWrapper(c *gin.Context)
- func GetManArticleBlocks(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func GetManArticleBlocksWrapper(c *gin.Context)
- func GetManArticleDetail(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func GetManArticleDetailWrapper(c *gin.Context)
- func GetUserID(remoteAddr string, userID bbs.UUserID, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func GetUserIDWrapper(c *gin.Context)
- func GetUserInfo(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func GetUserInfoWrapper(c *gin.Context)
- func GetUserVisitCount(remoteAddr string, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func GetUserVisitCountWrapper(c *gin.Context)
- func GetVersion(remoteAddr string, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func GetVersionWrapper(c *gin.Context)
- func Index(remoteAddr string, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func IndexHTMLWrapper(c *gin.Context)
- func IndexWrapper(c *gin.Context)
- func JSON(theFunc APIFunc, params interface{}, c *gin.Context)
- func LoadArticleComments(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func LoadArticleCommentsWrapper(c *gin.Context)
- func LoadAutoCompleteBoards(remoteAddr string, userID bbs.UUserID, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func LoadAutoCompleteBoardsWrapper(c *gin.Context)
- func LoadBottomArticles(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func LoadBottomArticlesWrapper(c *gin.Context)
- func LoadClassBoards(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func LoadClassBoardsWrapper(c *gin.Context)
- func LoadFavoriteBoards(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func LoadFavoriteBoardsWrapper(c *gin.Context)
- func LoadGeneralArticles(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func LoadGeneralArticlesByKeyword(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func LoadGeneralArticlesWrapper(c *gin.Context)
- func LoadGeneralBoards(remoteAddr string, userID bbs.UUserID, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func LoadGeneralBoardsByClass(remoteAddr string, userID bbs.UUserID, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func LoadGeneralBoardsByClassWrapper(c *gin.Context)
- func LoadGeneralBoardsWrapper(c *gin.Context)
- func LoadManArticles(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func LoadManArticlesWrapper(c *gin.Context)
- func LoadPopularArticles(remoteAddr string, userID bbs.UUserID, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func LoadPopularArticlesWrapper(c *gin.Context)
- func LoadPopularBoards(remoteAddr string, userID bbs.UUserID, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func LoadPopularBoardsWrapper(c *gin.Context)
- func LoadUserArticles(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func LoadUserArticlesWrapper(c *gin.Context)
- func LoadUserComments(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func LoadUserCommentsWrapper(c *gin.Context)
- func Login(remoteAddr string, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func LoginHTMLWrapper(c *gin.Context)
- func LoginRequiredJSON(theFunc LoginRequiredAPIFunc, params interface{}, c *gin.Context)
- func LoginRequiredPathJSON(theFunc LoginRequiredPathAPIFunc, params interface{}, path interface{}, ...)
- func LoginRequiredPathQuery(theFunc LoginRequiredPathAPIFunc, params interface{}, path interface{}, ...)
- func LoginRequiredQuery(theFunc LoginRequiredAPIFunc, params interface{}, c *gin.Context)
- func LoginWrapper(c *gin.Context)
- func Logout(remoteAddr string, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func LogoutWrapper(c *gin.Context)
- func ManArticleLockKey(boardID bbs.BBoardID, articleID types.ManArticleID) (key string)
- func OptionsWrapper(c *gin.Context)
- func Query(theFunc APIFunc, params interface{}, c *gin.Context)
- func RedirectPathQuery(theFunc RedirectPathAPIFunc, params interface{}, path interface{}, ...)
- func Refresh(remoteAddr string, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func RefreshWrapper(c *gin.Context)
- func RegisterClient(remoteAddr string, userID bbs.UUserID, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func RegisterClientWrapper(c *gin.Context)
- func RegisterHTMLWrapper(c *gin.Context)
- func RegisterUser(remoteAddr string, params interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
- func RegisterUserWrapper(c *gin.Context)
- func ReplyComments(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func ReplyCommentsWrapper(c *gin.Context)
- func SetIDEmail(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, ...) (result interface{}, statusCode int, err error)
- func SetIDEmailWrapper(c *gin.Context)
- func SetIsTest()
- func TryGetArticleContentInfo(userID bbs.UUserID, bboardID bbs.BBoardID, articleID bbs.ArticleID, ...) (content [][]*types.Rune, contentPrefix [][]*types.Rune, contentMD5 string, ...)
- func TryGetManArticleContentInfo(userID bbs.UUserID, bboardID bbs.BBoardID, articleID types.ManArticleID, ...) (content [][]*types.Rune, contentMD5 string, ...)
- func UnsetIsTest()
- func UpdateArticleContentInfo(boardID bbs.BBoardID, articleID bbs.ArticleID, content [][]*types.Rune, ...) (err error)
- func UpdateManArticleContentInfo(boardID bbs.BBoardID, articleID types.ManArticleID, content [][]*types.Rune, ...) (err error)
- func UserAttemptChangeEmailHTMLWrapper(c *gin.Context)
- func UserAttemptSetIDEmailHTMLWrapper(c *gin.Context)
- func UserChangeEmailHTMLWrapper(c *gin.Context)
- func UserChangePasswdHTMLWrapper(c *gin.Context)
- func UserHTMLWrapper(c *gin.Context)
- func UserSetIDEmailHTMLWrapper(c *gin.Context)
- type APIFunc
- type AddFavoriteBoardParams
- type AddFavoriteBoardPath
- type AddFavoriteFolderParams
- type AddFavoriteFolderPath
- type AddFavoriteLineParams
- type AddFavoriteLinePath
- type AddFavoriteResult
- type AttemptChangeEmailParams
- type AttemptChangeEmailPath
- type AttemptChangeEmailResult
- type AttemptRegisterUserParams
- type AttemptRegisterUserResult
- type AttemptSetIDEmailParams
- type AttemptSetIDEmailPath
- type AttemptSetIDEmailResult
- type ChangeEmailParams
- type ChangeEmailPath
- type ChangeEmailResult
- type ChangePasswdParams
- type ChangePasswdPath
- type ChangePasswdResult
- type CheckExistsUserParams
- type CheckExistsUserResult
- type ClientInfo
- type CreateArticleParams
- type CreateArticlePath
- type CreateArticleResult
- type CreateBoardParams
- type CreateBoardPath
- type CreateBoardResult
- type CreateCommentParams
- type CreateCommentPath
- type CreateCommentResult
- type CreateRankParams
- type CreateRankPath
- type CreateRankResult
- type CrossPostParams
- type CrossPostPath
- type CrossPostResult
- type DeleteArticlesParams
- type DeleteArticlesPath
- type DeleteArticlesResult
- type DeleteCommentsParams
- type DeleteCommentsPath
- type DeleteCommentsResult
- type DeleteFavoriteParams
- type DeleteFavoritePath
- type DeleteFavoriteResult
- type EditArticleParams
- type EditArticlePath
- type EditArticleResult
- type GetArticleBlocksParams
- type GetArticleBlocksPath
- type GetArticleBlocksResult
- type GetArticleDetailParams
- type GetArticleDetailPath
- type GetArticleDetailResult
- type GetBoardDetailParams
- type GetBoardDetailPath
- type GetBoardDetailResult
- type GetBoardSummaryParams
- type GetBoardSummaryPath
- type GetBoardSummaryResult
- type GetManArticleBlocksParams
- type GetManArticleBlocksPath
- type GetManArticleBlocksResult
- type GetManArticleDetailPath
- type GetManArticleDetailResult
- type GetUserIDResult
- type GetUserInfoParams
- type GetUserInfoPath
- type GetUserInfoResult
- type GetUserVisitCountResult
- type GetVersionResult
- type HTMLPath
- type IndexParams
- type IndexResult
- type LoadArticleCommentsParams
- type LoadArticleCommentsPath
- type LoadArticleCommentsResult
- type LoadAutoCompleteBoardsParams
- type LoadBottomArticlesPath
- type LoadBottomArticlesResult
- type LoadClassBoardsParams
- type LoadClassBoardsPath
- type LoadClassBoardsResult
- type LoadFavoriteBoardsParams
- type LoadFavoriteBoardsPath
- type LoadFavoriteBoardsResult
- type LoadGeneralArticlesParams
- type LoadGeneralArticlesPath
- type LoadGeneralArticlesResult
- type LoadGeneralBoardsParams
- type LoadGeneralBoardsResult
- type LoadManArticlesParams
- type LoadManArticlesPath
- type LoadManArticlesResult
- type LoadPopularArticlesParams
- type LoadPopularArticlesResult
- type LoadPopularBoardsResult
- type LoadUserArticlesParams
- type LoadUserArticlesPath
- type LoadUserArticlesResult
- type LoadUserCommentsParams
- type LoadUserCommentsPath
- type LoadUserCommentsResult
- type LoginLog
- type LoginParams
- type LoginRequiredAPIFunc
- type LoginRequiredPathAPIFunc
- type LoginResult
- type RedirectPathAPIFunc
- type RefreshParams
- type RefreshResult
- type RegisterClientParams
- type RegisterClientResult
- type RegisterUserParams
- type RegisterUserResult
- type ReplyCommentsParams
- type ReplyCommentsPath
- type ReplyCommentsResult
- type SetIDEmailParams
- type SetIDEmailPath
- type SetIDEmailResult
Constants ¶
View Source
const ( DEFAULT_MAX_ARTICLE_BLOCK_LIST = 1 DEFAULT_MAX_LIST = 200 DEFAULT_DESCENDING = true DEFAULT_ASCENDING = true ARTICLE_LOCK_TS = 10 ARTICLE_LOCK_TS_DURATION = time.Duration(ARTICLE_LOCK_TS) * time.Second ARTICLE_LOCK_NANO_TS = types.NanoTS(ARTICLE_LOCK_TS) * types.TS_TO_NANO_TS HTML_CACHE_CONTROL_TS = 3600 JS_CACHE_CONTROL_TS = 86400 * 365 OFFSET_MTIME_NANO_TS = 1000000000 // 1 second )
View Source
const ( ROOT_HTML_R = "/" INDEX_HTML_R = "/index.html" )
View Source
const ADD_FAVORITE_BOARD_R = "/user/:user_id/favorites/addboard"
View Source
const ADD_FAVORITE_FOLDER_R = "/user/:user_id/favorites/addfolder"
View Source
const ADD_FAVORITE_LINE_R = "/user/:user_id/favorites/addline"
View Source
const ARTICLES_HTML_R = "/board/:bid/articles"
View Source
const ARTICLE_HTML_R = "/board/:bid/article/:aid"
View Source
const ATTEMPT_CHANGE_EMAIL_R = "/user/:user_id/attemptchangeemail"
View Source
const ATTEMPT_REGISTER_USER_R = "/account/attemptregister"
View Source
const ATTEMPT_SET_ID_EMAIL_R = "/user/:user_id/attemptsetidemail"
View Source
const BOARDS_FAVORITES_HTML_R = "/user/:user_id/favorites"
View Source
const BOARDS_HTML_R = "/boards"
View Source
const BOARDS_POPULAR_HTML_R = "/boards/popular"
View Source
const CHANGE_EMAIL_R = "/user/:user_id/changeemail"
View Source
const CHANGE_PASSWD_R = "/user/:user_id/updatepasswd" //nolint // passwd as route
View Source
const CHECK_EXISTS_USER_R = "/account/existsuser"
View Source
const CLS_BOARDS_HTML_R = "/cls/:cls_id"
View Source
const CREATE_ARTICLE_HTML_R = "/board/:bid/post"
View Source
const CREATE_ARTICLE_R = "/board/:bid/article"
View Source
const CREATE_BOARD_R = "/class/:cls/board"
View Source
const CREATE_COMMENT_R = "/board/:bid/article/:aid/comment"
View Source
const CREATE_RANK_R = "/board/:bid/article/:aid/rank"
View Source
const CROSS_POST_R = "/board/:bid/article/:aid/crosspost"
View Source
const (
DEFAULT_FAV_TITLE = "新的目錄"
)
View Source
const DELETE_ARTICLES_R = "/board/:bid/deletearticles"
View Source
const DELETE_COMMENTS_R = "/board/:bid/article/:aid/deletecomments"
View Source
const DELETE_FAVORITE_R = "/user/:user_id/favorites/delete"
View Source
const EDIT_ARTICLE_R = "/board/:bid/article/:aid/edit"
View Source
const GET_ARTICLE_BLOCKS_R = "/board/:bid/articleblocks/:aid"
View Source
const GET_ARTICLE_R = "/board/:bid/article/:aid"
View Source
const GET_BOARD_DETAIL_R = "/board/:bid"
View Source
const GET_BOARD_SUMMARY_R = "/board/:bid/summary"
View Source
const GET_MAN_ARTICLE_BLOCKS_R = "/board/:bid/manualblocks/*aid"
View Source
const GET_MAN_ARTICLE_R = "/board/:bid/manual/*aid"
View Source
const GET_USER_ID_R = "/userid"
View Source
const GET_USER_INFO_R = "/user/:user_id"
View Source
const GET_USER_VISIT_COUNT_R = "/uservisitcount"
View Source
const GET_VERSION_R = "/version"
View Source
const INDEX_R = "/"
View Source
const LOAD_ARTICLE_COMMENTS_R = "/board/:bid/article/:aid/comments"
View Source
const LOAD_AUTO_COMPLETE_BOARDS_R = "/boards/autocomplete"
View Source
const LOAD_BOTTOM_ARTICLES_R = "/board/:bid/articles/bottom"
View Source
const LOAD_CLASS_BOARDS_R = "/cls/:clsid"
View Source
const LOAD_FAVORITE_BOARDS_R = "/user/:user_id/favorites"
View Source
const LOAD_GENERAL_ARTICLES_R = "/board/:bid/articles"
View Source
const LOAD_GENERAL_BOARDS_BY_CLASS_R = "/boards/byclass"
View Source
const LOAD_GENERAL_BOARDS_R = "/boards"
View Source
const LOAD_MAN_ARTICLES_R = "/board/:bid/manuals"
View Source
const LOAD_POPULAR_ARTICLES_R = "/articles/popular"
View Source
const LOAD_POPULAR_BOARDS_R = "/boards/popular"
View Source
const LOAD_USER_ARTICLES_R = "/user/:user_id/articles"
View Source
const LOAD_USER_COMMENTS_R = "/user/:user_id/comments"
View Source
const LOGIN_HTML_R = "/login"
View Source
const LOGIN_R = "/account/login"
View Source
const LOGOUT_R = "/account/logout"
View Source
const (
MAX_USER_FAVORITES_BUF_SIZE = 65535
)
View Source
const REFRESH_R = "/account/refresh"
View Source
const REGISTER_CLIENT_R = "/client/register"
View Source
const REGISTER_HTML_R = "/register"
View Source
const REGISTER_USER_R = "/account/register"
View Source
const REPLY_COMMENTS_R = "/board/:bid/article/:aid/replycomments"
View Source
const SET_ID_EMAIL_R = "/user/:user_id/setidemail"
View Source
const USER_ATTEMPT_CHANGE_EMAIL_HTML_R = "/user/:user_id/attemptchangeemail"
View Source
const USER_ATTEMPT_SET_ID_EMAIL_HTML_R = "/user/:user_id/attemptsetidemail"
View Source
const USER_CHANGE_EMAIL_HTML_R = "/user/:user_id/changeemail"
View Source
const USER_CHANGE_PASSWD_HTML_R = "/user/:user_id/resetpassword" //nolint // passwd as route
View Source
const USER_HTML_R = "/user/:user_id"
View Source
const USER_SET_ID_EMAIL_HTML_R = "/user/:user_id/setidemail"
Variables ¶
View Source
var ( GET_ARTICLE_CONTENT_INFO_TOO_SOON_NANO_TS = ARTICLE_LOCK_NANO_TS + types.NanoTS(1)*types.TS_TO_NANO_TS // 10 + 1 seconds. MIME_TYPE_MAP = map[string]string{ ".js": "text/javascript", ".html": "text/html", ".map": "application/json", } )
View Source
var ( ErrInvalidRemoteAddr = errors.New("invalid remote addr") ErrInvalidParams = errors.New("invalid params") ErrLoginFailed = errors.New("login failed") ErrNotImplemented = errors.New("not implemented") ErrInvalidPath = errors.New("invalid path") ErrInvalidToken = errors.New("invalid token") ErrInvalidOrigin = errors.New("invalid origin") ErrInvalidBackendStatusCode = errors.New("invalid backend status code") ErrNoBoard = errors.New("no board") ErrNoArticle = errors.New("no article") ErrAlreadyDeleted = errors.New("already deleted") ErrFileNotFound = errors.New("file not found") ErrInvalidUser = errors.New("invalid user") ErrInvalidClient = errors.New("invalid client") ErrAlreadyExists = errors.New("already exists") ErrInvalidFav = errors.New("invalid fav") )
View Source
var (
IsTest = false
)
Functions ¶
func AddFavoriteBoard ¶ added in v0.30.1
func AddFavoriteBoardWrapper ¶ added in v0.30.1
func AddFavoriteFolder ¶ added in v0.31.0
func AddFavoriteFolderWrapper ¶ added in v0.31.0
func AddFavoriteLine ¶ added in v0.31.0
func AddFavoriteLineWrapper ¶ added in v0.31.0
func AllHTMLWrapper ¶ added in v0.18.0
func ArticleLockKey ¶ added in v0.19.4
func AttemptChangeEmail ¶ added in v0.8.0
func AttemptChangeEmailWrapper ¶ added in v0.8.0
func AttemptRegisterUser ¶ added in v0.9.3
func AttemptRegisterUserWrapper ¶ added in v0.9.3
func AttemptSetIDEmail ¶ added in v0.8.0
func AttemptSetIDEmailWrapper ¶ added in v0.8.0
func ChangeEmail ¶ added in v0.8.0
func ChangeEmailWrapper ¶ added in v0.8.0
func ChangePasswd ¶ added in v0.7.0
func ChangePasswdWrapper ¶ added in v0.7.0
func CheckExistsUser ¶ added in v0.13.6
func CheckExistsUserWrapper ¶ added in v0.13.6
func CreateArticle ¶ added in v0.13.0
func CreateArticleWrapper ¶ added in v0.13.0
func CreateBoard ¶ added in v0.12.0
func CreateBoardWrapper ¶ added in v0.12.0
func CreateComment ¶ added in v0.16.0
func CreateCommentWrapper ¶ added in v0.16.0
func CreateRank ¶ added in v0.14.0
func CreateRankWrapper ¶ added in v0.14.0
func CrossPostWrapper ¶ added in v0.20.0
func DeleteArticles ¶ added in v0.23.0
func DeleteArticles(remoteAddr string, userID bbs.UUserID, params interface{}, path interface{}, c *gin.Context) (result interface{}, statusCode int, err error)
DeleteArticles provides function from api /board/:bid/deletearticles it will call backend api (go-pttbbs) and deleting all components like: comments, ranks, user_read_records about this articles
func DeleteArticlesWrapper ¶ added in v0.23.0
func DeleteComments ¶ added in v0.22.0
func DeleteCommentsWrapper ¶ added in v0.22.0
func DeleteFavorite ¶ added in v0.31.1
func DeleteFavoriteWrapper ¶ added in v0.31.1
func DeserializeArticlesAndUpdateDB ¶ added in v0.19.4
func DeserializeArticlesAndUpdateDB(articleSummaries_b []*bbs.ArticleSummary, updateNanoTS types.NanoTS) (articleSummaries []*schema.ArticleSummaryWithRegex, err error)
func DeserializeBoardDetailsAndUpdateDB ¶ added in v0.29.0
func DeserializeBoardDetailsAndUpdateDB(boardDetails_b []*bbs.BoardDetail, updateNanoTS types.NanoTS) (boardDetails []*schema.BoardDetail, err error)
DeserializeBoards
each_b.Reason happens only with invalid permission.
func DeserializeBoardsAndUpdateDB ¶ added in v0.19.4
func DeserializeBoardsAndUpdateDB(boardSummaries_b []*bbs.BoardSummary, updateNanoTS types.NanoTS) (boardSummaries []*schema.BoardSummary, err error)
DeserializeBoards
each_b.Reason happens only with invalid permission.
func DeserializePBArticlesAndUpdateDB ¶ added in v0.26.0
func DeserializePBBoardsAndUpdateDB ¶ added in v0.25.0
func DeserializePBBoardsAndUpdateDB(boardSummaries_b []*boardd.Board, updateNanoTS types.NanoTS) (boardSummaries []*schema.BoardSummary, err error)
DeserializePBBoardsAndUpdateDB
func DeserializePBManArticlesAndUpdateDB ¶ added in v0.28.0
func EditArticleDetail ¶ added in v0.22.0
func EditArticleDetailWrapper ¶ added in v0.22.0
func FormLogout ¶ added in v0.24.1
func GetArticleBlocks ¶ added in v0.24.0
func GetArticleBlocksWrapper ¶ added in v0.24.0
func GetArticleDetail ¶ added in v0.3.0
func GetArticleDetailWrapper ¶ added in v0.4.0
func GetBoardDetail ¶ added in v0.2.1
func GetBoardDetailWrapper ¶ added in v0.4.0
func GetBoardSummary ¶ added in v0.3.0
func GetBoardSummaryWrapper ¶ added in v0.4.0
func GetManArticleBlocks ¶ added in v0.28.0
func GetManArticleBlocksWrapper ¶ added in v0.28.0
func GetManArticleDetail ¶ added in v0.28.0
func GetManArticleDetailWrapper ¶ added in v0.28.0
func GetUserIDWrapper ¶ added in v0.13.1
func GetUserInfo ¶ added in v0.3.0
func GetUserInfoWrapper ¶ added in v0.4.0
func GetUserVisitCount ¶ added in v0.24.0
func GetUserVisitCountWrapper ¶ added in v0.24.0
func GetVersion ¶ added in v0.13.6
func GetVersionWrapper ¶ added in v0.13.6
func IndexHTMLWrapper ¶ added in v0.18.0
func IndexWrapper ¶ added in v0.4.0
func LoadArticleComments ¶ added in v0.3.0
func LoadArticleCommentsWrapper ¶ added in v0.4.0
func LoadAutoCompleteBoards ¶ added in v0.11.0
func LoadAutoCompleteBoardsWrapper ¶ added in v0.11.0
func LoadBottomArticles ¶ added in v0.3.0
func LoadBottomArticlesWrapper ¶ added in v0.4.0
func LoadClassBoards ¶ added in v0.21.0
func LoadClassBoardsWrapper ¶ added in v0.21.0
func LoadFavoriteBoards ¶ added in v0.3.0
func LoadFavoriteBoardsWrapper ¶ added in v0.4.0
func LoadGeneralArticles ¶ added in v0.3.0
func LoadGeneralArticlesByKeyword ¶ added in v0.19.4
func LoadGeneralArticlesWrapper ¶ added in v0.4.0
func LoadGeneralBoards ¶ added in v0.2.1
func LoadGeneralBoardsByClass ¶ added in v0.9.0
func LoadGeneralBoardsByClassWrapper ¶ added in v0.9.0
func LoadGeneralBoardsWrapper ¶ added in v0.4.0
func LoadManArticles ¶ added in v0.28.0
func LoadManArticlesWrapper ¶ added in v0.28.0
func LoadPopularArticles ¶ added in v0.3.0
func LoadPopularArticlesWrapper ¶ added in v0.4.0
func LoadPopularBoards ¶ added in v0.3.0
func LoadPopularBoardsWrapper ¶ added in v0.4.0
func LoadUserArticles ¶ added in v0.3.0
func LoadUserArticlesWrapper ¶ added in v0.4.0
func LoadUserComments ¶ added in v0.3.0
func LoadUserCommentsWrapper ¶ added in v0.4.0
func LoginHTMLWrapper ¶ added in v0.18.0
func LoginRequiredJSON ¶ added in v0.4.0
func LoginRequiredJSON(theFunc LoginRequiredAPIFunc, params interface{}, c *gin.Context)
func LoginRequiredPathJSON ¶ added in v0.4.0
func LoginRequiredPathJSON(theFunc LoginRequiredPathAPIFunc, params interface{}, path interface{}, c *gin.Context)
func LoginRequiredPathQuery ¶ added in v0.4.0
func LoginRequiredPathQuery(theFunc LoginRequiredPathAPIFunc, params interface{}, path interface{}, c *gin.Context)
func LoginRequiredQuery ¶ added in v0.4.0
func LoginRequiredQuery(theFunc LoginRequiredAPIFunc, params interface{}, c *gin.Context)
func LoginWrapper ¶ added in v0.4.0
func LogoutWrapper ¶ added in v0.24.1
func ManArticleLockKey ¶ added in v0.28.0
func ManArticleLockKey(boardID bbs.BBoardID, articleID types.ManArticleID) (key string)
func OptionsWrapper ¶ added in v0.5.0
func RedirectPathQuery ¶ added in v0.8.0
func RedirectPathQuery(theFunc RedirectPathAPIFunc, params interface{}, path interface{}, c *gin.Context)
func RefreshWrapper ¶ added in v0.32.0
func RegisterClient ¶ added in v0.1.0
func RegisterClientWrapper ¶ added in v0.4.0
func RegisterHTMLWrapper ¶ added in v0.18.0
func RegisterUser ¶ added in v0.1.0
func RegisterUserWrapper ¶ added in v0.4.0
func ReplyComments ¶ added in v0.22.0
func ReplyCommentsWrapper ¶ added in v0.22.0
func SetIDEmail ¶ added in v0.8.0
func SetIDEmailWrapper ¶ added in v0.8.0
func TryGetArticleContentInfo ¶ added in v0.22.0
func TryGetArticleContentInfo(userID bbs.UUserID, bboardID bbs.BBoardID, articleID bbs.ArticleID, c *gin.Context, isSystem bool, isHash bool, isContent bool) (content [][]*types.Rune, contentPrefix [][]*types.Rune, contentMD5 string, ip string, host string, bbs string, signatureMD5 string, signatureDBCS []byte, articleDetailSummary *schema.ArticleDetailSummary, fileSize int, hash cmsys.Fnv64_t, statusCode int, err error)
TryGetArticleContentInfo
嘗試拿到 article-content
- 根據 article-id 得到相對應的 filename, ownerid, create-time.
- 嘗試從 schema 拿到 db summary 資訊. (create-time)
- 如果可以從 schema 拿到 db 資訊: 3.1. 如果已經 deleted: return deleted. 3.2. 如果距離上次跟 pttbbs 拿的時間太近: 從 schema 拿到 content, return schema-content.
- 嘗試做 lock. 4.1. 如果 lock 失敗: 從 schema 拿到 content, return schema-content.
- 從 pttbbs 拿到 article
- 如果從 pttbbs 拿到的時間比 schema 裡拿到的時間舊的話: return schema-content.
- parse article 為 content / comments.
- 將 comments parse 為 firstComments / theRestComments.
- 將 theRestComments 丟進 queue 裡.
func TryGetManArticleContentInfo ¶ added in v0.28.0
func UnsetIsTest ¶ added in v0.5.0
func UnsetIsTest()
func UpdateArticleContentInfo ¶ added in v0.19.4
func UpdateManArticleContentInfo ¶ added in v0.28.0
func UserAttemptChangeEmailHTMLWrapper ¶ added in v0.18.0
func UserAttemptSetIDEmailHTMLWrapper ¶ added in v0.18.0
func UserChangeEmailHTMLWrapper ¶ added in v0.18.0
func UserChangePasswdHTMLWrapper ¶ added in v0.18.0
func UserHTMLWrapper ¶ added in v0.18.0
func UserSetIDEmailHTMLWrapper ¶ added in v0.18.0
Types ¶
type AddFavoriteBoardParams ¶ added in v0.30.1
type AddFavoriteBoardPath ¶ added in v0.30.1
type AddFavoriteFolderParams ¶ added in v0.31.0
type AddFavoriteFolderPath ¶ added in v0.31.0
type AddFavoriteLineParams ¶ added in v0.31.0
type AddFavoriteLinePath ¶ added in v0.31.0
type AddFavoriteResult ¶ added in v0.31.0
type AddFavoriteResult *apitypes.BoardSummary
type AttemptChangeEmailParams ¶ added in v0.8.0
type AttemptChangeEmailPath ¶ added in v0.8.0
type AttemptChangeEmailResult ¶ added in v0.8.0
type AttemptRegisterUserParams ¶ added in v0.9.3
type AttemptRegisterUserResult ¶ added in v0.9.3
type AttemptRegisterUserResult struct {
Username string `json:"user_id"`
}
type AttemptSetIDEmailParams ¶ added in v0.8.0
type AttemptSetIDEmailPath ¶ added in v0.8.0
type AttemptSetIDEmailResult ¶ added in v0.8.0
type ChangeEmailParams ¶ added in v0.8.0
type ChangeEmailPath ¶ added in v0.8.0
type ChangeEmailResult ¶ added in v0.8.0
type ChangePasswdParams ¶ added in v0.7.0
type ChangePasswdParams struct { ClientID string `json:"client_id" form:"client_id"` ClientSecret string `json:"client_secret" form:"client_secret"` OrigPassword string `json:"orig_password" form:"orig_password"` Password string `json:"password" form:"password"` PasswordConfirm string `json:"password_confirm" form:"password_confirm"` }
type ChangePasswdPath ¶ added in v0.7.0
type ChangePasswdResult ¶ added in v0.7.0
type ChangePasswdResult LoginResult
func NewChangePasswdResult ¶ added in v0.7.0
func NewChangePasswdResult(result_b *pttbbsapi.ChangePasswdResult) *ChangePasswdResult
type CheckExistsUserParams ¶ added in v0.13.6
type CheckExistsUserResult ¶ added in v0.13.6
type CheckExistsUserResult struct {
IsExists bool `json:"is_exists"`
}
type ClientInfo ¶ added in v0.5.0
type ClientInfo struct { ClientID string `json:"c"` ClientType types.ClientType `json:"t"` }
type CreateArticleParams ¶ added in v0.13.0
type CreateArticlePath ¶ added in v0.13.0
type CreateArticleResult ¶ added in v0.13.0
type CreateArticleResult *apitypes.ArticleSummary
type CreateBoardParams ¶ added in v0.12.0
type CreateBoardParams struct { Brdname string `json:"brdname" form:"brdname" url:"brdname"` BrdClass string `json:"class" form:"class" url:"class"` BrdTitle string `json:"title" form:"title" url:"title"` BMs []bbs.UUserID `json:"bms,omitempty" form:"bms,omitempty" url:"bms,omitempty"` BrdAttr ptttype.BrdAttr `json:"brdattr,omitempty" form:"brdattr,omitempty" url:"brdattr,omitempty"` Level ptttype.PERM `json:"level,omitempty" form:"level,omitempty" url:"level,omitempty"` ChessCountry ptttype.ChessCode `json:"chess_country,omitempty" form:"chess_country,omitempty" url:"chess_country,omitempty"` IsGroup bool `json:"is_group,omitempty" form:"is_group,omitempty" url:"is_group,omitempty"` }
type CreateBoardPath ¶ added in v0.12.0
type CreateBoardResult ¶ added in v0.12.0
type CreateBoardResult *apitypes.BoardSummary
type CreateCommentParams ¶ added in v0.16.0
type CreateCommentParams struct { CommentType ptttype.CommentType `json:"type" form:"type" url:"type"` Content string `json:"content" form:"content" url:"content"` }
type CreateCommentPath ¶ added in v0.16.0
type CreateCommentPath struct { FBoardID apitypes.FBoardID `uri:"bid" binding:"required"` FArticleID apitypes.FArticleID `uri:"aid" binding:"required"` }
type CreateCommentResult ¶ added in v0.16.0
type CreateRankParams ¶ added in v0.14.0
type CreateRankParams struct {
Rank int `json:"rank" form:"rank" url:"rank"`
}
type CreateRankPath ¶ added in v0.14.0
type CreateRankPath struct { FBoardID apitypes.FBoardID `uri:"bid" binding:"required"` FArticleID apitypes.FArticleID `uri:"aid" binding:"required"` }
type CreateRankResult ¶ added in v0.14.0
type CrossPostParams ¶ added in v0.20.0
type CrossPostPath ¶ added in v0.20.0
type CrossPostPath struct { FBoardID apitypes.FBoardID `uri:"bid" binding:"required"` FArticleID apitypes.FArticleID `uri:"aid" binding:"required"` }
type CrossPostResult ¶ added in v0.20.0
type DeleteArticlesParams ¶ added in v0.23.0
type DeleteArticlesParams struct {
ArticleIDs []apitypes.FArticleID `json:"aids" form:"aids" url:"aids" binding:"required"`
}
type DeleteArticlesPath ¶ added in v0.23.0
type DeleteArticlesResult ¶ added in v0.23.0
type DeleteCommentsParams ¶ added in v0.22.0
type DeleteCommentsParams struct {
TheList []*apitypes.DeleteCommentParams `json:"list" form:"list" url:"list"`
}
type DeleteCommentsPath ¶ added in v0.22.0
type DeleteCommentsPath struct { FBoardID apitypes.FBoardID `uri:"bid"` FArticleID apitypes.FArticleID `uri:"aid"` }
type DeleteCommentsResult ¶ added in v0.22.0
type DeleteFavoriteParams ¶ added in v0.31.1
type DeleteFavoritePath ¶ added in v0.31.1
type DeleteFavoriteResult ¶ added in v0.31.1
type EditArticleParams ¶ added in v0.22.0
type EditArticlePath ¶ added in v0.22.0
type EditArticlePath struct { FBoardID apitypes.FBoardID `uri:"bid"` FArticleID apitypes.FArticleID `uri:"aid"` }
type EditArticleResult ¶ added in v0.22.0
type GetArticleBlocksParams ¶ added in v0.24.0
type GetArticleBlocksParams struct { StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` }
func NewGetArticleBlocksParams ¶ added in v0.24.0
func NewGetArticleBlocksParams() *GetArticleBlocksParams
type GetArticleBlocksPath ¶ added in v0.24.0
type GetArticleBlocksPath struct { FBoardID apitypes.FBoardID `uri:"bid"` FArticleID apitypes.FArticleID `uri:"aid"` }
type GetArticleBlocksResult ¶ added in v0.24.0
type GetArticleBlocksResult struct { Content [][]*types.Rune `json:"content,omitempty"` IsDeleted bool `json:"deleted,omitempty"` // CreateTime types.Time8 `json:"create_time,omitempty"` // MTime types.Time8 `json:"modified,omitempty"` // Recommend int `json:"recommend,omitempty"` // NComments int `json:"n_comments,omitempty"` // Owner bbs.UUserID `json:"owner,omitempty"` // Nickname string `json:"nickname,omitempty"` Title string `json:"title,omitempty"` // Money int `json:"money,omitempty"` // Class string `json:"class,omitempty"` // can be: R: 轉, [class] Filemode ptttype.FileMode `json:"mode,omitempty"` // IP string `json:"ip,omitempty"` Host string `json:"host,omitempty"` // ip 的中文呈現, 外國則為國家. BBS string `json:"bbs,omitempty"` Rank int `json:"rank,omitempty"` // 評價 NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser"` }
type GetArticleDetailParams ¶ added in v0.3.0
type GetArticleDetailParams struct{}
type GetArticleDetailPath ¶ added in v0.3.0
type GetArticleDetailPath struct { FBoardID apitypes.FBoardID `uri:"bid"` FArticleID apitypes.FArticleID `uri:"aid"` }
type GetArticleDetailResult ¶ added in v0.3.0
type GetArticleDetailResult struct { BBoardID apitypes.FBoardID `json:"bid"` // ArticleID apitypes.FArticleID `json:"aid"` // IsDeleted bool `json:"deleted"` // CreateTime types.Time8 `json:"create_time"` // MTime types.Time8 `json:"modified"` // Recommend int `json:"recommend"` // NComments int `json:"n_comments"` // Owner bbs.UUserID `json:"owner"` // Nickname string `json:"nickname"` Title string `json:"title"` // Money int `json:"money"` // Class string `json:"class"` // can be: R: 轉, [class] Filemode ptttype.FileMode `json:"mode"` // URL string `json:"url"` // Read bool `json:"read"` // Brdname string `json:"brdname"` Content [][]*types.Rune `json:"content"` ContentPrefix [][]*types.Rune `json:"prefix"` IP string `json:"ip"` Host string `json:"host"` // ip 的中文呈現, 外國則為國家. BBS string `json:"bbs"` Rank int `json:"rank"` // 評價 TokenUser bbs.UUserID `json:"tokenuser"` }
type GetBoardDetailParams ¶ added in v0.2.1
type GetBoardDetailParams struct {
Fields string `json:"fields,omitempty" form:"fields,omitempty" uri:"fields,omitempty"`
}
type GetBoardDetailPath ¶ added in v0.2.1
type GetBoardDetailResult ¶ added in v0.2.1
type GetBoardDetailResult *apitypes.BoardDetail
type GetBoardSummaryParams ¶ added in v0.3.0
type GetBoardSummaryParams struct{}
type GetBoardSummaryPath ¶ added in v0.3.0
type GetBoardSummaryResult ¶ added in v0.3.0
type GetBoardSummaryResult *apitypes.BoardSummary
type GetManArticleBlocksParams ¶ added in v0.28.0
type GetManArticleBlocksParams struct { StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` }
func NewGetManArticleBlocksParams ¶ added in v0.28.0
func NewGetManArticleBlocksParams() *GetManArticleBlocksParams
type GetManArticleBlocksPath ¶ added in v0.28.0
type GetManArticleBlocksPath struct { FBoardID apitypes.FBoardID `uri:"bid"` FArticleID apitypes.FArticleID `uri:"aid"` }
type GetManArticleBlocksResult ¶ added in v0.28.0
type GetManArticleBlocksResult struct { Content [][]*types.Rune `json:"content,omitempty"` IsDeleted bool `json:"deleted,omitempty"` // CreateTime types.Time8 `json:"create_time,omitempty"` // MTime types.Time8 `json:"modified,omitempty"` // Title string `json:"title,omitempty"` // NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser"` }
type GetManArticleDetailPath ¶ added in v0.28.0
type GetManArticleDetailPath struct { FBoardID apitypes.FBoardID `uri:"bid"` FArticleID apitypes.FArticleID `uri:"aid"` }
type GetManArticleDetailResult ¶ added in v0.28.0
type GetManArticleDetailResult struct { BBoardID apitypes.FBoardID `json:"bid"` // ArticleID apitypes.FArticleID `json:"aid"` // LevelIdx apitypes.FArticleID `json:"level_idx"` IsDeleted bool `json:"deleted"` // CreateTime types.Time8 `json:"create_time"` // MTime types.Time8 `json:"modified"` // Title string `json:"title"` // IsDir bool `json:"is_dir"` Content [][]*types.Rune `json:"content"` TokenUser bbs.UUserID `json:"tokenuser"` }
type GetUserIDResult ¶ added in v0.13.1
type GetUserInfoParams ¶ added in v0.3.0
type GetUserInfoParams struct {
Fields string `json:"fields,omitempty" form:"fields,omitempty" url:"fields,omitempty"`
}
type GetUserInfoPath ¶ added in v0.3.0
type GetUserInfoResult ¶ added in v0.3.0
type GetUserInfoResult struct { UserID bbs.UUserID `json:"user_id"` Username string `json:"username"` Realname string `json:"realtime"` Nickname string `json:"nickname"` Uflag ptttype.UFlag `json:"flag"` Userlevel ptttype.PERM `json:"perm"` Numlogindays int `json:"login_days"` Numposts int `json:"posts"` Firstlogin types.Time8 `json:"first_login"` Lastlogin types.Time8 `json:"last_login"` LastIP string `json:"last_ip"` LastHost string `json:"last_host"` // ip 的中文呈現, 外國則為國家. Money int `json:"money"` PttEmail string `json:"pttemail"` Justify string `json:"justify"` Over18 bool `json:"over18"` PagerUIType uint8 `json:"pager_ui"` /* 呼叫器界面類別 (was: WATER_*) */ Pager ptttype.PagerMode `json:"pager"` /* 呼叫器狀態 */ Invisible bool `json:"invisible"` Exmailbox uint32 `json:"exmail"` Career string `json:"career"` Role uint32 `json:"role"` LastSeen types.Time8 `json:"last_seen"` TimeSetAngel types.Time8 `json:"time_set_angel"` TimePlayAngel types.Time8 `json:"time_play_angel"` LastSong types.Time8 `json:"last_song"` LoginView uint32 `json:"login_view"` Vlcount int `json:"violation"` FiveWin int `json:"five_win"` FiveLose int `json:"five_lose"` FiveTie int `json:"five_tie"` ChcWin int `json:"chc_win"` ChcLose int `json:"chc_lose"` ChcTie int `json:"chc_tie"` Conn6Win int `json:"conn6_win"` Conn6Lose int `json:"conn6_lose"` Conn6Tie int `json:"conn6_tie"` GoWin int `json:"go_win"` GoLose int `json:"go_lose"` GoTie int `json:"go_tie"` DarkWin int `json:"dark_win"` DarkLose int `json:"dark_lose"` DarkTie int `json:"dark_tie"` /* 暗棋戰績 和 */ ChessEloRating int `json:"chess_rank"` /* 象棋等級 */ UaVersion uint8 `json:"ua_version"` Signature uint8 `json:"signaure"` /* 慣用簽名檔 */ BadPost int `json:"bad_post"` /* 評價為壞文章數 */ MyAngel bbs.UUserID `json:"angel"` /* 我的小天使 */ TimeRemoveBadPost types.Time8 `json:"time_remove_bad_post"` TimeViolateLaw types.Time8 `json:"time_violate_law"` IsDeleted bool `json:"deleted"` UpdateTS types.Time8 `json:"update_ts"` UserLevel2 ptttype.PERM2 `bson:"perm2"` UpdateTS2 types.Time8 `bson:"update_ts2"` Avatar []byte `json:"avatar"` AvatarTS types.Time8 `json:"avatar_ts"` Email string `json:"email"` EmailSet bool `json:"email_set"` EmailTS types.Time8 `json:"email_ts"` TwoFactorEnabled bool `json:"twofactor_enabled"` TwoFactorEnabledTS types.Time8 `json:"twofactor_enabled_ts"` IDEmail string `json:"idemail"` IDEmailSet bool `json:"idemail_set"` IDEmailTS types.Time8 `json:"idemail_ts"` TokenUser bbs.UUserID `json:"tokenuser"` }
func NewUserInfoResult ¶ added in v0.6.0
func NewUserInfoResult(userDetail_db *schema.UserDetail, userNewInfo_db *schema.UserNewInfo, userIDEmail_db *schema.UserIDEmail, userEmail_db *schema.UserEmail, userID bbs.UUserID) (result *GetUserInfoResult)
type GetUserVisitCountResult ¶ added in v0.24.0
type GetVersionResult ¶ added in v0.13.6
type IndexParams ¶
type IndexParams struct {
In int `form:"in,omitempty"`
}
func NewIndexParams ¶ added in v0.2.1
func NewIndexParams() *IndexParams
type IndexResult ¶
type IndexResult struct {
Data interface{}
}
type LoadArticleCommentsParams ¶ added in v0.3.0
type LoadArticleCommentsParams struct { StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Descending bool `json:"desc,omitempty" form:"desc,omitempty" url:"desc,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` }
func NewLoadArticleCommentsParams ¶ added in v0.4.0
func NewLoadArticleCommentsParams() *LoadArticleCommentsParams
type LoadArticleCommentsPath ¶ added in v0.3.0
type LoadArticleCommentsPath struct { FBoardID apitypes.FBoardID `uri:"bid"` FArticleID apitypes.FArticleID `uri:"aid"` }
type LoadArticleCommentsResult ¶ added in v0.3.0
type LoadArticleCommentsResult struct { List []*apitypes.Comment `json:"list"` NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadArticleCommentsResult ¶ added in v0.10.0
type LoadAutoCompleteBoardsParams ¶ added in v0.11.0
type LoadAutoCompleteBoardsParams struct { Keyword string `json:"brdname,omitempty" form:"brdname,omitempty" url:"brdname,omitempty"` StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Ascending bool `json:"asc,omitempty" form:"asc,omitempty" url:"asc,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` }
func NewLoadAutoCompleteBoardsParams ¶ added in v0.11.0
func NewLoadAutoCompleteBoardsParams() *LoadAutoCompleteBoardsParams
type LoadBottomArticlesPath ¶ added in v0.3.0
type LoadBottomArticlesResult ¶ added in v0.3.0
type LoadBottomArticlesResult struct { List []*apitypes.ArticleSummary `json:"list"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadBottomArticlesResult ¶ added in v0.18.0
func NewLoadBottomArticlesResult(a_db []*schema.ArticleSummary, userReadArticleMap map[bbs.ArticleID]bool, userID bbs.UUserID) *LoadBottomArticlesResult
type LoadClassBoardsParams ¶ added in v0.21.0
type LoadClassBoardsParams struct { StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` SortBy ptttype.BSortBy `json:"sortby,omitempty" form:"sortby,omitempty" url:"sortby,omitempty"` Ascending bool `json:"asc,omitempty" form:"asc,omitempty" url:"asc,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` }
func NewLoadClassBoardsParams ¶ added in v0.21.0
func NewLoadClassBoardsParams() *LoadClassBoardsParams
type LoadClassBoardsPath ¶ added in v0.21.0
type LoadClassBoardsResult ¶ added in v0.21.0
type LoadClassBoardsResult struct { List []*apitypes.BoardSummary `json:"list"` NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadClassBoardsResult ¶ added in v0.21.0
func NewLoadClassBoardsResult(boardSummaries_db []*schema.BoardSummary, userBoardInfoMap map[bbs.BBoardID]*apitypes.UserBoardInfo, nextIdx string, sortBy ptttype.BSortBy, userID bbs.UUserID) (ret *LoadClassBoardsResult)
type LoadFavoriteBoardsParams ¶ added in v0.3.0
type LoadFavoriteBoardsParams struct { LevelIdx schema.LevelIdx `json:"level_idx,omitempty" form:"level_idx,omitempty" url:"level_idx,omitempty"` StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Ascending bool `json:"asc,omitempty" form:"asc,omitempty" url:"asc,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` }
func NewLoadFavoriteBoardsParams ¶ added in v0.4.0
func NewLoadFavoriteBoardsParams() *LoadFavoriteBoardsParams
type LoadFavoriteBoardsPath ¶ added in v0.3.0
type LoadFavoriteBoardsResult ¶ added in v0.3.0
type LoadFavoriteBoardsResult struct { List []*apitypes.BoardSummary `json:"list"` NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadFavoriteBoardsResult ¶ added in v0.9.0
func NewLoadFavoriteBoardsResult(userID bbs.UUserID, userFavorites_db []*schema.UserFavorites, boardSummaryMap_db map[ptttype.Bid]*schema.BoardSummary, userBoardInfoMap map[bbs.BBoardID]*apitypes.UserBoardInfo, nextIdx string) (result *LoadFavoriteBoardsResult)
type LoadGeneralArticlesParams ¶ added in v0.3.0
type LoadGeneralArticlesParams struct { Keyword string `json:"title,omitempty" form:"title,omitempty" url:"title,omitempty"` StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` Descending bool `json:"desc,omitempty" form:"desc,omitempty" url:"desc,omitempty"` }
func NewLoadGeneralArticlesParams ¶ added in v0.3.0
func NewLoadGeneralArticlesParams() *LoadGeneralArticlesParams
type LoadGeneralArticlesPath ¶ added in v0.3.0
type LoadGeneralArticlesResult ¶ added in v0.3.0
type LoadGeneralArticlesResult struct { List []*apitypes.ArticleSummary `json:"list"` NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadGeneralArticlesResult ¶ added in v0.4.0
func NewLoadGeneralArticlesResult(a_db []*schema.ArticleSummary, userReadArticleMap map[bbs.ArticleID]bool, nextIdx string, userID bbs.UUserID) *LoadGeneralArticlesResult
func NewLoadGeneralArticlesResultByKeyword ¶ added in v0.19.4
func NewLoadGeneralArticlesResultByKeyword(a_db []*schema.ArticleSummary, userReadArticleMap map[bbs.ArticleID]types.NanoTS, nextIdx string, userID bbs.UUserID) (result *LoadGeneralArticlesResult)
type LoadGeneralBoardsParams ¶ added in v0.2.1
type LoadGeneralBoardsParams struct { Title string `json:"title,omitempty" form:"title,omitempty" url:"title,omitempty"` Keyword string `json:"keyword,omitempty" form:"keyword,omitempty" url:"keyword,omitempty"` StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Ascending bool `json:"asc,omitempty" form:"asc,omitempty" url:"asc,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` }
func NewLoadGeneralBoardsParams ¶ added in v0.2.1
func NewLoadGeneralBoardsParams() *LoadGeneralBoardsParams
type LoadGeneralBoardsResult ¶ added in v0.2.1
type LoadGeneralBoardsResult struct { List []*apitypes.BoardSummary `json:"list"` NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadGeneralBoardsResult ¶ added in v0.4.0
func NewLoadGeneralBoardsResult(boardSummaries_db []*schema.BoardSummary, userBoardInfoMap map[bbs.BBoardID]*apitypes.UserBoardInfo, nextIdx string, url string, userID bbs.UUserID) *LoadGeneralBoardsResult
type LoadManArticlesParams ¶ added in v0.28.0
type LoadManArticlesParams struct {
LevelIdx apitypes.FArticleID `json:"level_idx,omitempty" form:"level_idx,omitempty" url:"level_idx,omitempty"`
}
type LoadManArticlesPath ¶ added in v0.28.0
type LoadManArticlesResult ¶ added in v0.28.0
type LoadManArticlesResult struct { List []*apitypes.ManArticleSummary `json:"list"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadManArticlesResult ¶ added in v0.28.0
func NewLoadManArticlesResult(articleSummaries_db []*schema.ManArticleSummary, userID bbs.UUserID) (r *LoadManArticlesResult)
type LoadPopularArticlesParams ¶ added in v0.3.0
type LoadPopularArticlesParams struct { StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` Descending bool `json:"desc,omitempty" form:"desc,omitempty" url:"desc,omitempty"` }
func NewLoadPopularArticlesParams ¶ added in v0.4.0
func NewLoadPopularArticlesParams() *LoadPopularArticlesParams
type LoadPopularArticlesResult ¶ added in v0.3.0
type LoadPopularArticlesResult struct { List []*apitypes.ArticleSummary `json:"list"` NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
type LoadPopularBoardsResult ¶ added in v0.3.0
type LoadPopularBoardsResult struct { List []*apitypes.BoardSummary `json:"list"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadPopularBoardsResult ¶ added in v0.9.0
func NewLoadPopularBoardsResult(boardSummaries_db []*schema.BoardSummary, userBoardInfoMap map[bbs.BBoardID]*apitypes.UserBoardInfo, userID bbs.UUserID) *LoadPopularBoardsResult
type LoadUserArticlesParams ¶ added in v0.3.0
type LoadUserArticlesParams struct { StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Descending bool `json:"desc,omitempty" form:"desc,omitempty" url:"desc,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` }
func NewUserArticlesParams ¶ added in v0.4.0
func NewUserArticlesParams() *LoadUserArticlesParams
type LoadUserArticlesPath ¶ added in v0.3.0
type LoadUserArticlesResult ¶ added in v0.3.0
type LoadUserArticlesResult struct { List []*apitypes.ArticleSummary `json:"list"` NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadUserArticlesResult ¶ added in v0.19.0
func NewLoadUserArticlesResult(a_db []*schema.ArticleSummary, userReadArticleMap map[bbs.ArticleID]bool, nextIdx string, userID bbs.UUserID) *LoadUserArticlesResult
type LoadUserCommentsParams ¶ added in v0.3.0
type LoadUserCommentsParams struct { StartIdx string `json:"start_idx,omitempty" form:"start_idx,omitempty" url:"start_idx,omitempty"` Descending bool `json:"desc,omitempty" form:"desc,omitempty" url:"desc,omitempty"` Max int `json:"limit,omitempty" form:"limit,omitempty" url:"limit,omitempty"` }
func NewLoadUserCommentsParams ¶ added in v0.4.0
func NewLoadUserCommentsParams() *LoadUserCommentsParams
type LoadUserCommentsPath ¶ added in v0.3.0
type LoadUserCommentsResult ¶ added in v0.3.0
type LoadUserCommentsResult struct { List []*apitypes.ArticleComment `json:"list"` NextIdx string `json:"next_idx"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewLoadUserCommentsResult ¶ added in v0.19.0
func NewLoadUserCommentsResult( commentSummaries_db []*schema.CommentSummary, articleSummaryMap map[bbs.ArticleID]*schema.ArticleSummary, userReadArticleMap map[bbs.ArticleID]types.NanoTS, nextIdx string, userID bbs.UUserID, ) (result *LoadUserCommentsResult)
type LoginLog ¶ added in v0.21.0
type LoginLog struct { ClientInfo LoginID string LoginTime types.NanoTS LoginIP string IsSuccess bool }
LoginLog record user login info, no matter success or not
type LoginParams ¶ added in v0.1.0
type LoginParams struct { ClientID string `json:"client_id" form:"client_id"` ClientSecret string `json:"client_secret" form:"client_secret"` Username string `json:"username" form:"username"` Password string `json:"password" form:"password"` }
func NewLoginParams ¶ added in v0.2.1
func NewLoginParams() *LoginParams
type LoginRequiredAPIFunc ¶ added in v0.18.0
type LoginRequiredPathAPIFunc ¶ added in v0.18.0
type LoginResult ¶ added in v0.1.0
type LoginResult struct { UserID bbs.UUserID `json:"user_id"` AccessToken string `json:"access_token"` TokenType string `json:"token_type"` RefreshToken string `json:"refresh_token"` AccessExpire types.Time8 `json:"access_expire"` RefreshExpire types.Time8 `json:"refresh_expire"` TokenUser bbs.UUserID `json:"tokenuser"` }
func NewLoginResult ¶ added in v0.4.0
func NewLoginResult(result_b *pttbbsapi.LoginResult) *LoginResult
type RedirectPathAPIFunc ¶ added in v0.18.0
type RefreshParams ¶ added in v0.32.0
type RefreshResult ¶ added in v0.32.0
type RefreshResult LoginResult
type RegisterClientParams ¶ added in v0.1.0
type RegisterClientParams struct { ClientID string `json:"client_id"` ClientType types.ClientType `json:"client_type"` }
func NewRegisterClientParams ¶ added in v0.2.1
func NewRegisterClientParams() *RegisterClientParams
type RegisterClientResult ¶ added in v0.1.0
type RegisterClientResult struct { ClientSecret string `json:"client_secret"` TokenUser bbs.UUserID `json:"tokenuser,omitempty"` }
func NewRegisterClientResult ¶ added in v0.4.0
func NewRegisterClientResult(client *schema.Client, userID bbs.UUserID) *RegisterClientResult
type RegisterUserParams ¶ added in v0.1.0
type RegisterUserParams struct { ClientID string `json:"client_id" form:"client_id"` ClientSecret string `json:"client_secret" form:"client_secret"` Username string `json:"username" form:"username"` Password string `json:"password" form:"password"` PasswordConfirm string `json:"password_confirm" form:"password_confirm"` TwoFactorToken string `json:"token" form:"token"` Over18 bool `json:"over18,omitempty" form:"over18,omitempty"` Email string `json:"email" form:"email"` Nickname string `json:"nickname,omitempty" form:"nickname,omitempty"` Realname string `json:"realname,omitempty" form:"realname,omitempty"` Career string `json:"career,omitempty" form:"career,omitempty"` }
func NewRegisterUserParams ¶ added in v0.2.1
func NewRegisterUserParams() *RegisterUserParams
type RegisterUserResult ¶ added in v0.1.0
type RegisterUserResult LoginResult
func NewRegisterUserResult ¶ added in v0.4.0
func NewRegisterUserResult(result_b *pttbbsapi.RegisterResult) *RegisterUserResult
type ReplyCommentsParams ¶ added in v0.22.0
type ReplyCommentsParams struct {
TheList []*apitypes.ReplyCommentParams `json:"list" form:"list" url:"list"`
}
type ReplyCommentsPath ¶ added in v0.22.0
type ReplyCommentsPath struct { FBoardID apitypes.FBoardID `uri:"bid"` FArticleID apitypes.FArticleID `uri:"aid"` }
type ReplyCommentsResult ¶ added in v0.22.0
type SetIDEmailParams ¶ added in v0.8.0
type SetIDEmailPath ¶ added in v0.8.0
type SetIDEmailResult ¶ added in v0.8.0
Source Files ¶
- add_favorite_board.go
- add_favorite_folder.go
- add_favorite_line.go
- api.go
- api_login_required.go
- api_login_required_path.go
- api_login_required_redirect_path.go
- api_result.go
- api_utils.go
- article_utils.go
- attempt_change_email.go
- attempt_register_user.go
- attempt_set_id_email.go
- board_utils.go
- change_email.go
- change_passwd.go
- check_exists_user.go
- client_utils.go
- comment_utils.go
- const.go
- create_article.go
- create_board.go
- create_comment.go
- create_rank.go
- cross_post.go
- delete_articles.go
- delete_comments.go
- delete_favorite.go
- edit_article.go
- errors.go
- get_article_blocks.go
- get_article_detail.go
- get_board_detail.go
- get_board_summary.go
- get_man_article_blocks.go
- get_man_article_detail.go
- get_user_id.go
- get_user_info.go
- get_user_visit_count.go
- get_version.go
- html.go
- index.go
- load_article_comments.go
- load_auto_complete_boards.go
- load_bottom_articles.go
- load_class_boards.go
- load_favorite_boards.go
- load_general_articles.go
- load_general_articles_by_keyword.go
- load_general_boards.go
- load_general_boards_by_class.go
- load_man_articles.go
- load_popular_articles.go
- load_popular_boards.go
- load_user_articles.go
- load_user_comments.go
- login.go
- login_register_utils.go
- logout.go
- man_article_utils.go
- options.go
- refresh.go
- register_client.go
- register_user.go
- reply_comments.go
- set_id_email.go
- testinit.go
- types.go
- user_favorites_utils.go
- user_utils.go
- validate_origin.go
- validate_remote_addr.go
Click to show internal directories.
Click to hide internal directories.