• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang middleware.Context类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/Unknwon/gowalker/modules/middleware.Context的典型用法代码示例。如果您正苦于以下问题:Golang Context类的具体用法?Golang Context怎么用?Golang Context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Context类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: Home

func Home(ctx *middleware.Context) {
	ctx.Data["PageIsHome"] = true
	ctx.Data["NumOfPackages"] = base.FormatNumString(models.NumOfPackages())
	ctx.Data["SearchContent"] = doc.SearchContent
	ctx.Data["BrowseHistory"] = getHistory(ctx)
	ctx.HTML(200, HOME)
}
开发者ID:hexiaochun,项目名称:gowalker,代码行数:7,代码来源:home.go


示例2: getHistory

// getHistory returns browse history.
func getHistory(ctx *middleware.Context) []*models.PkgInfo {
	pairs := strings.Split(ctx.GetCookie("user_history"), "|")
	pkgs := make([]*models.PkgInfo, 0, len(pairs))

	for _, pair := range pairs {
		infos := strings.Split(pair, ":")
		if len(infos) != 2 {
			continue
		}

		pid := com.StrTo(infos[0]).MustInt64()
		if pid == 0 {
			continue
		}

		pinfo, _ := models.GetPkgInfoById(pid)
		if pinfo == nil {
			continue
		}

		pinfo.LastView = com.StrTo(infos[1]).MustInt64()
		pkgs = append(pkgs, pinfo)
	}
	return pkgs
}
开发者ID:qiancy,项目名称:gowalker,代码行数:26,代码来源:home.go


示例3: updateHistory

// updateHistory updates browser history.
func updateHistory(ctx *middleware.Context, id int64) {
	pairs := make([]string, 1, 10)
	pairs[0] = com.ToStr(id) + ":" + com.ToStr(time.Now().UTC().Unix())

	count := 0
	for _, pair := range strings.Split(ctx.GetCookie("user_history"), "|") {
		infos := strings.Split(pair, ":")
		if len(infos) != 2 {
			continue
		}

		pid := com.StrTo(infos[0]).MustInt64()
		if pid == 0 || pid == id {
			continue
		}

		pairs = append(pairs, pair)

		count++
		if count == 9 {
			break
		}
	}
	ctx.SetCookie("user_history", strings.Join(pairs, "|"), 9999999)
}
开发者ID:qiancy,项目名称:gowalker,代码行数:26,代码来源:docs.go


示例4: specialHandles

func specialHandles(ctx *middleware.Context, pinfo *models.PkgInfo) bool {
	// Only show imports.
	if strings.HasSuffix(ctx.Req.RequestURI, "?imports") {
		ctx.Data["PageIsImports"] = true
		ctx.Data["Packages"] = models.GetPkgInfosByPaths(strings.Split(pinfo.ImportPaths, "|"))
		ctx.HTML(200, DOCS_IMPORTS)
		return true
	}

	// Only show references.
	if strings.HasSuffix(ctx.Req.RequestURI, "?refs") {
		ctx.Data["PageIsRefs"] = true
		ctx.Data["Packages"] = pinfo.GetRefs()
		ctx.HTML(200, DOCS_IMPORTS)
		return true
	}

	// Refresh documentation.
	if strings.HasSuffix(ctx.Req.RequestURI, "?refresh") {
		if !pinfo.CanRefresh() {
			ctx.Flash.Info(ctx.Tr("docs.refresh.too_often"))
		} else {
			importPath := ctx.Params("*")
			_, err := doc.CheckPackage(importPath, ctx.Render, doc.REQUEST_TYPE_REFRESH)
			if err != nil {
				handleError(ctx, err)
				return true
			}
		}
		ctx.Redirect(ctx.Data["Link"].(string))
		return true
	}

	return false
}
开发者ID:ewindfall,项目名称:gowalker,代码行数:35,代码来源:docs.go


示例5: SearchJSON

func SearchJSON(ctx *middleware.Context) {
	q := ctx.Query("q")

	// Clean up keyword.
	q = strings.TrimFunc(q, func(c rune) bool {
		return unicode.IsSpace(c) || c == '"'
	})
	fmt.Println(q)

	pinfos, err := models.SearchPkgInfo(7, q)
	if err != nil {
		log.ErrorD(4, "SearchPkgInfo '%s': %v", q, err)
		return
	}

	results := make([]*searchResult, len(pinfos))
	for i := range pinfos {
		results[i] = &searchResult{
			Title:       pinfos[i].ImportPath,
			Description: pinfos[i].Synopsis,
		}
	}

	ctx.JSON(200, map[string]interface{}{
		"results": results,
	})
}
开发者ID:hexiaochun,项目名称:gowalker,代码行数:27,代码来源:search.go


示例6: Search

func Search(ctx *middleware.Context) {
	q := ctx.Query("q")

	if ctx.Query("auto_redirect") == "true" &&
		(base.IsGoRepoPath(q) || base.IsGAERepoPath(q) ||
			base.IsValidRemotePath(q)) {
		ctx.Redirect("/" + q)
		return
	}

	var (
		results []*models.PkgInfo
		err     error
	)
	switch q {
	case "gorepos":
		results, err = models.GetGoRepos()
	case "gosubrepos":
		results, err = models.GetGoSubepos()
	case "gaesdk":
		results, err = models.GetGAERepos()
	default:
		results, err = models.SearchPkgInfo(100, q)
	}
	if err != nil {
		ctx.Flash.Error(err.Error(), true)
	} else {
		ctx.Data["Results"] = results
	}

	ctx.Data["Keyword"] = q
	ctx.HTML(200, SEARCH)
}
开发者ID:jmptrader,项目名称:gowalker,代码行数:33,代码来源:search.go


示例7: SearchJSON

func SearchJSON(ctx *middleware.Context) {
	q := ctx.QueryEscape("q")
	pinfos, err := models.SearchPkgInfo(7, q)
	if err != nil {
		log.ErrorD(4, "SearchPkgInfo '%s': %v", q, err)
		return
	}

	results := make([]*searchResult, len(pinfos))
	for i := range pinfos {
		results[i] = &searchResult{
			Title:       pinfos[i].ImportPath,
			Description: pinfos[i].Synopsis,
		}
	}

	ctx.JSON(200, map[string]interface{}{
		"results": results,
	})
}
开发者ID:xushiwei,项目名称:gowalker,代码行数:20,代码来源:search.go


示例8: handleError

func handleError(ctx *middleware.Context, err error) {
	importPath := ctx.Params("*")
	if err == doc.ErrInvalidRemotePath {
		ctx.Redirect("/search?q=" + importPath)
		return
	}
	ctx.Flash.Error(importPath+": "+err.Error(), true)
	ctx.Flash.Info(ctx.Tr("form.click_to_search", importPath), true)
	Home(ctx)
}
开发者ID:qiancy,项目名称:gowalker,代码行数:10,代码来源:docs.go


示例9: handleError

func handleError(ctx *middleware.Context, err error) {
	importPath := ctx.Params("*")
	if err == doc.ErrInvalidRemotePath {
		ctx.Redirect("/search?q=" + importPath)
		return
	}
	ctx.Flash.Error(importPath+": "+strings.Replace(err.Error(), setting.GitHubCredentials, "<GitHubCredentials>", -1), true)
	ctx.Flash.Info(ctx.Tr("form.click_to_search", importPath), true)
	Home(ctx)
}
开发者ID:ewindfall,项目名称:gowalker,代码行数:10,代码来源:docs.go


示例10: Search

func Search(ctx *middleware.Context) {
	q := ctx.Query("q")

	if ctx.Query("auto_redirect") == "true" &&
		(base.IsGoRepoPath(q) || base.IsValidRemotePath(q)) {
		ctx.Redirect("/" + q)
		return
	}

	results, err := models.SearchPkgInfo(100, q)
	if err != nil {
		ctx.Flash.Error(err.Error(), true)
	} else {
		ctx.Data["Results"] = results
	}

	ctx.Data["Keyword"] = q
	ctx.HTML(200, SEARCH)
}
开发者ID:xushiwei,项目名称:gowalker,代码行数:19,代码来源:search.go


示例11: handleError

func handleError(ctx *middleware.Context, err error) {
	importPath := ctx.Params("*")
	if err == doc.ErrInvalidRemotePath {
		ctx.Redirect("/search?q=" + importPath)
		return
	}

	if strings.Contains(err.Error(), "<meta> not found") ||
		strings.Contains(err.Error(), "resource not found") {
		models.DeletePackageByPath(importPath)
	}

	ctx.Flash.Error(importPath+": "+strings.Replace(err.Error(), setting.GitHubCredentials, "<GitHubCredentials>", -1), true)
	ctx.Flash.Info(ctx.Tr("form.click_to_search", importPath), true)
	Home(ctx)
}
开发者ID:imjerrybao,项目名称:gowalker,代码行数:16,代码来源:docs.go


示例12: Home

func Home(ctx *middleware.Context) {
	ctx.Data["PageIsHome"] = true
	ctx.Data["SearchContent"] = doc.SearchContent
	ctx.Data["BrowseHistory"] = getHistory(ctx)
	ctx.HTML(200, HOME)
}
开发者ID:qiancy,项目名称:gowalker,代码行数:6,代码来源:home.go


示例13: Docs

func Docs(ctx *middleware.Context) {
	importPath := ctx.Params("*")
	pinfo, err := doc.CheckPackage(importPath, ctx.Render, doc.REQUEST_TYPE_HUMAN)
	if err != nil {
		handleError(ctx, err)
		return
	}

	ctx.Data["PageIsDocs"] = true
	ctx.Data["Title"] = pinfo.ImportPath
	ctx.Data["ParentPath"] = path.Dir(pinfo.ImportPath)
	ctx.Data["ProjectName"] = path.Base(pinfo.ImportPath)
	ctx.Data["ProjectPath"] = pinfo.ProjectPath

	if specialHandles(ctx, pinfo) {
		return
	}

	if pinfo.IsGoRepo {
		ctx.Flash.Info(ctx.Tr("docs.turn_into_search", importPath), true)
	}

	ctx.Data["PkgDesc"] = pinfo.Synopsis

	// README.
	lang := ctx.Data["Lang"].(string)[:2]
	readmePath := setting.DocsJsPath + pinfo.ImportPath + "_RM_" + lang + ".js"
	if com.IsFile(readmePath) {
		ctx.Data["IsHasReadme"] = true
		ctx.Data["ReadmePath"] = readmePath
	} else {
		readmePath := setting.DocsJsPath + pinfo.ImportPath + "_RM_en.js"
		if com.IsFile(readmePath) {
			ctx.Data["IsHasReadme"] = true
			ctx.Data["ReadmePath"] = readmePath
		}
	}

	// Documentation.
	docJS := make([]string, 0, pinfo.JsNum+1)
	docJS = append(docJS, setting.DocsJsPath+importPath+".js")
	for i := 1; i <= pinfo.JsNum; i++ {
		docJS = append(docJS, fmt.Sprintf("%s%s-%d.js", setting.DocsJsPath, importPath, i))
	}
	ctx.Data["DocJS"] = docJS
	ctx.Data["Timestamp"] = pinfo.Created
	if time.Now().UTC().Add(-5*time.Second).Unix() < pinfo.Created {
		ctx.Flash.Success(ctx.Tr("docs.generate_success"), true)
	}

	// Notes.
	if len(pinfo.Subdirs) > 0 {
		ctx.Data["IsHasSubdirs"] = true
		ctx.Data["ViewDirPath"] = pinfo.ViewDirPath
		ctx.Data["Subdirs"] = models.GetSubPkgs(pinfo.ImportPath, strings.Split(pinfo.Subdirs, "|"))
	}

	ctx.Data["ImportNum"] = len(strings.Split(pinfo.ImportPaths, "|"))

	// Tools.
	ctx.Data["CanRefresh"] = pinfo.CanRefresh()

	updateHistory(ctx, pinfo.Id)

	ctx.HTML(200, DOCS)
}
开发者ID:qiancy,项目名称:gowalker,代码行数:66,代码来源:docs.go


示例14: Badge

func Badge(ctx *middleware.Context) {
	ctx.Redirect("https://img.shields.io/badge/Go%20Walker-API%20Documentation-green.svg?style=flat-square")
}
开发者ID:qiancy,项目名称:gowalker,代码行数:3,代码来源:api.go



注:本文中的github.com/Unknwon/gowalker/modules/middleware.Context类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang utils.GetProjectPath函数代码示例发布时间:2022-05-28
下一篇:
Golang hv.Package类代码示例发布时间:2022-05-28
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap