本文整理汇总了Golang中github.com/denisbr/filebin/app/model.Tag.List方法的典型用法代码示例。如果您正苦于以下问题:Golang Tag.List方法的具体用法?Golang Tag.List怎么用?Golang Tag.List使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/denisbr/filebin/app/model.Tag
的用法示例。
在下文中一共展示了Tag.List方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: FetchArchive
func FetchArchive(w http.ResponseWriter, r *http.Request, cfg config.Configuration, ctx model.Context) {
params := mux.Vars(r)
t := model.Tag{}
err := t.SetTag(params["tag"])
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Invalid tag", 400)
return
}
t.SetTagDir(cfg.Filedir)
t.CalculateExpiration(cfg.Expiration)
if t.TagDirExists() {
expired, err := t.IsExpired(cfg.Expiration)
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Internal server error", 500)
return
}
if expired {
ctx.Log.Println("Expired: " + t.ExpirationReadable)
http.Error(w, "This tag has expired.", 410)
return
}
err = t.StatInfo()
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Internal Server Error", 500)
return
}
err = t.List(cfg.Baseurl)
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Error reading the tag contents.", 404)
return
}
} else {
// The tag does not exist
http.Error(w, "Not found", 404)
return
}
w.Header().Set("Cache-Control", "s-maxage=3600")
var status = 200
w.Header().Set("Content-Type", "application/zip")
// Generate a map of paths to add to the zip response
var paths []string
for _, f := range t.Files {
path := filepath.Join(f.TagDir, f.Filename)
paths = append(paths, path)
}
output.ZIPresponse(w, status, t.Tag, paths, ctx)
return
}
示例2: FetchTag
func FetchTag(w http.ResponseWriter, r *http.Request, cfg config.Configuration, ctx model.Context) {
params := mux.Vars(r)
t := model.Tag{}
err := t.SetTag(params["tag"])
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Invalid tag", 400)
return
}
t.SetTagDir(cfg.Filedir)
t.CalculateExpiration(cfg.Expiration)
if t.TagDirExists() {
expired, err := t.IsExpired(cfg.Expiration)
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Internal server error", 500)
return
}
if expired {
ctx.Log.Println("Expired: " + t.ExpirationReadable)
http.Error(w, "This tag has expired.", 410)
return
}
err = t.StatInfo()
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Internal Server Error", 500)
return
}
err = t.List(cfg.Baseurl)
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Error reading the tag contents.", 404)
return
}
}
w.Header().Set("Vary", "Content-Type")
w.Header().Set("Cache-Control", "s-maxage=3600")
var status = 200
if r.Header.Get("Content-Type") == "application/json" {
w.Header().Set("Content-Type", "application/json")
output.JSONresponse(w, status, t, ctx)
return
} else {
if len(t.Files) == 0 {
output.HTMLresponse(w, "newtag", status, t, ctx)
} else {
output.HTMLresponse(w, "viewtag", status, t, ctx)
}
return
}
}
示例3: FetchAlbum
func FetchAlbum(w http.ResponseWriter, r *http.Request, cfg config.Configuration, ctx model.Context) {
t := model.Tag{}
params := mux.Vars(r)
err := t.SetTag(params["tag"])
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Invalid tag", 400)
return
}
t.SetTagDir(cfg.Filedir)
t.CalculateExpiration(cfg.Expiration)
if t.TagDirExists() {
expired, err := t.IsExpired(cfg.Expiration)
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Internal server error", 500)
return
}
if expired {
ctx.Log.Println("Expired: " + t.ExpirationReadable)
http.Error(w, "This tag has expired.", 410)
return
}
err = t.StatInfo()
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Internal Server Error", 500)
return
}
err = t.List(cfg.Baseurl)
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Error reading the tag contents.", 404)
return
}
} else {
// The tag does not exist
http.Error(w, "Not found", 404)
return
}
w.Header().Set("Cache-Control", "s-maxage=3600")
var status = 200
output.HTMLresponse(w, "viewalbum", status, t, ctx)
return
}
示例4: DeleteTag
func DeleteTag(w http.ResponseWriter, r *http.Request, cfg config.Configuration, ctx model.Context) {
var err error
params := mux.Vars(r)
t := model.Tag{}
err = t.SetTag(params["tag"])
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Invalid tag", 400)
return
}
t.SetTagDir(cfg.Filedir)
// Tag does not exist
if t.TagDirExists() == false {
http.Error(w, "Tag Not Found", 404)
return
}
t.List(cfg.Baseurl)
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Internal Server Error", 500)
return
}
if cfg.TriggerDeleteTag != "" {
ctx.Log.Println("Executing trigger: Delete tag")
triggerDeleteTagHandler(cfg.TriggerDeleteTag, t.Tag)
}
// Tag exists, so let's remove it.
err = t.Remove()
if err != nil {
ctx.Log.Println(err)
http.Error(w, "Internal Server Error", 500)
return
}
// Verify that the tag directory is removed before sending the response.
if t.TagDirExists() == true {
// Failsafe. This should not happen.
ctx.Log.Println("Failed to delete the tag. The tag dir still exists.")
http.Error(w, "Internal Server Error", 500)
return
}
// Purging any old content
if cfg.CacheInvalidation {
for _, f := range t.Files {
if err := f.Purge(); err != nil {
ctx.Log.Println(err)
}
}
}
ctx.Log.Println("Tag deleted successfully.")
http.Error(w, "Tag Deleted Successfully", 200)
return
}