func handleAidc(c *Context, w http.ResponseWriter) error { vars := mux.Vars(c.R) brdname := vars["brdname"] aid, err := pttbbs.ParseAid(vars["aidc"]) if err != nil { return NewNotFoundError(fmt.Errorf("board %v, invalid aid: %v", brdname, err)) } return handleArticleCommon(c, w, brdname, aid.Filename()) }
func aidAndBrdnameToArticle(brdname, aidString string) (string, error) { aid, err := pttbbs.ParseAid(aidString) if err != nil { return "", nil // Silently fail } u, err := router.Get("bbsarticle").URLPath("brdname", brdname, "filename", aid.Filename()) if err != nil { return "", err } return u.String(), nil }