本文整理汇总了Golang中github.com/Unknwon/com.StrTo函数的典型用法代码示例。如果您正苦于以下问题:Golang StrTo函数的具体用法?Golang StrTo怎么用?Golang StrTo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了StrTo函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: checkRefs
// checkRefs checks if given packages are still referencing this one.
func checkRefs(pinfo *PkgInfo) {
var buf bytes.Buffer
pinfo.RefNum = 0
refIDs := strings.Split(pinfo.RefIDs, "|")
for i := range refIDs {
if len(refIDs[i]) == 0 {
continue
}
fmt.Println(com.StrTo(refIDs[i][1:]).MustInt64())
pkg, _ := GetPkgInfoById(com.StrTo(refIDs[i][1:]).MustInt64())
if pkg == nil {
continue
}
if strings.Index(pkg.ImportIDs, "$"+com.ToStr(pinfo.ID)+"|") == -1 {
continue
}
buf.WriteString("$")
buf.WriteString(com.ToStr(pkg.ID))
buf.WriteString("|")
pinfo.RefNum++
}
pinfo.RefIDs = buf.String()
}
开发者ID:imjerrybao,项目名称:gowalker,代码行数:27,代码来源:package.go
示例2: CheckRepoStats
func CheckRepoStats() {
if isCheckingRepos {
return
}
isCheckingRepos = true
defer func() { isCheckingRepos = false }()
// Check count watchers
results_watch, err := x.Query("SELECT r.id FROM `repository` r WHERE r.num_watches!=(SELECT count(*) FROM `watch` WHERE repo_id=r.id)")
if err != nil {
log.Error(4, "select repository check 'watch': %v", err)
}
for _, repo_id := range results_watch {
log.Info("updating repository count 'watch'")
repoID := com.StrTo(repo_id["id"]).MustInt64()
_, err := x.Exec("UPDATE `repository` SET num_watches=(SELECT count(*) FROM `watch` WHERE repo_id=?) WHERE id=?", repoID, repoID)
if err != nil {
log.Error(4, "update repository check 'watch', repo %v: %v", repo_id, err)
}
}
// Check count stars
results_star, err := x.Query("SELECT s.id FROM `repository` s WHERE s.num_stars!=(SELECT count(*) FROM `star` WHERE repo_id=s.id)")
if err != nil {
log.Error(4, "select repository check 'star': %v", err)
}
for _, repo_id := range results_star {
log.Info("updating repository count 'star'")
repoID := com.StrTo(repo_id["id"]).MustInt64()
_, err := x.Exec("UPDATE `repository` SET .num_stars=(SELECT count(*) FROM `star` WHERE repo_id=?) WHERE id=?", repoID, repoID)
if err != nil {
log.Error(4, "update repository check 'star', repo %v: %v", repo_id, err)
}
}
}
开发者ID:w3-golang,项目名称:gogs,代码行数:35,代码来源:repo.go
示例3: 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
示例4: RouteApiV1CodetainerUpdateCurrentTTY
// UpdateCurrentTTY swagger:route POST /codetainer/{id}/tty codetainer updateCurrentTTY
//
// Update the codetainer TTY height and width.
//
// Responses:
// default: APIErrorResponse
// 200: TTYBody
//
func RouteApiV1CodetainerUpdateCurrentTTY(ctx *Context) error {
vars := mux.Vars(ctx.R)
id := vars["id"]
if id == "" {
return jsonError(errors.New("id is required"), ctx.W)
}
client, err := GlobalConfig.GetDockerClient()
if err != nil {
return jsonError(err, ctx.W)
}
height := com.StrTo(ctx.R.FormValue("height")).MustInt()
if height == 0 {
return jsonError(errors.New("height is required"), ctx.W)
}
width := com.StrTo(ctx.R.FormValue("width")).MustInt()
if width == 0 {
return jsonError(errors.New("width is required"), ctx.W)
}
err = client.ResizeContainerTTY(id, height, width)
if err != nil {
return jsonError(err, ctx.W)
}
tty := TTY{Height: height, Width: width}
return renderJson(map[string]interface{}{
"tty": tty,
}, ctx.W)
}
开发者ID:mslsoftware,项目名称:codetainer,代码行数:43,代码来源:http-handlers.go
示例5: SearchRepos
func SearchRepos(ctx *middleware.Context) {
opt := models.SearchOption{
Keyword: path.Base(ctx.Query("q")),
Uid: com.StrTo(ctx.Query("uid")).MustInt64(),
Limit: com.StrTo(ctx.Query("limit")).MustInt(),
}
if opt.Limit == 0 {
opt.Limit = 10
}
// Check visibility.
if ctx.IsSigned && opt.Uid > 0 {
if ctx.User.Id == opt.Uid {
opt.Private = true
} else {
u, err := models.GetUserById(opt.Uid)
if err != nil {
ctx.JSON(500, map[string]interface{}{
"ok": false,
"error": err.Error(),
})
return
}
if u.IsOrganization() && u.IsOwnedBy(ctx.User.Id) {
opt.Private = true
}
// FIXME: how about collaborators?
}
}
repos, err := models.SearchRepositoryByName(opt)
if err != nil {
ctx.JSON(500, map[string]interface{}{
"ok": false,
"error": err.Error(),
})
return
}
results := make([]*sdk.Repository, len(repos))
for i := range repos {
if err = repos[i].GetOwner(); err != nil {
ctx.JSON(500, map[string]interface{}{
"ok": false,
"error": err.Error(),
})
return
}
results[i] = &sdk.Repository{
Id: repos[i].Id,
FullName: path.Join(repos[i].Owner.Name, repos[i].Name),
}
}
ctx.JSON(200, map[string]interface{}{
"ok": true,
"data": results,
})
}
开发者ID:noikiy,项目名称:gitea,代码行数:60,代码来源:repo.go
示例6: Search
// https://github.com/gigforks/go-gogs-client/wiki/Repositories#search-repositories
func Search(ctx *context.APIContext) {
opts := &models.SearchRepoOptions{
Keyword: path.Base(ctx.Query("q")),
OwnerID: com.StrTo(ctx.Query("uid")).MustInt64(),
PageSize: com.StrTo(ctx.Query("limit")).MustInt(),
}
if opts.PageSize == 0 {
opts.PageSize = 10
}
// Check visibility.
if ctx.IsSigned && opts.OwnerID > 0 {
if ctx.User.Id == opts.OwnerID {
opts.Private = true
} else {
u, err := models.GetUserByID(opts.OwnerID)
if err != nil {
ctx.JSON(500, map[string]interface{}{
"ok": false,
"error": err.Error(),
})
return
}
if u.IsOrganization() && u.IsOwnedBy(ctx.User.Id) {
opts.Private = true
}
// FIXME: how about collaborators?
}
}
repos, _, err := models.SearchRepositoryByName(opts)
if err != nil {
ctx.JSON(500, map[string]interface{}{
"ok": false,
"error": err.Error(),
})
return
}
results := make([]*api.Repository, len(repos))
for i := range repos {
if err = repos[i].GetOwner(); err != nil {
ctx.JSON(500, map[string]interface{}{
"ok": false,
"error": err.Error(),
})
return
}
results[i] = &api.Repository{
ID: repos[i].ID,
FullName: path.Join(repos[i].Owner.Name, repos[i].Name),
}
}
ctx.JSON(200, map[string]interface{}{
"ok": true,
"data": results,
})
}
开发者ID:gigforks,项目名称:gogs,代码行数:60,代码来源:repo.go
示例7: EditUserPost
func EditUserPost(ctx *context.Context, form auth.AdminEditUserForm) {
ctx.Data["Title"] = ctx.Tr("admin.users.edit_account")
ctx.Data["PageIsAdmin"] = true
ctx.Data["PageIsAdminUsers"] = true
u := prepareUserInfo(ctx)
if ctx.Written() {
return
}
if ctx.HasError() {
ctx.HTML(200, USER_EDIT)
return
}
fields := strings.Split(form.LoginType, "-")
if len(fields) == 2 {
loginType := models.LoginType(com.StrTo(fields[0]).MustInt())
loginSource := com.StrTo(fields[1]).MustInt64()
if u.LoginSource != loginSource {
u.LoginSource = loginSource
u.LoginType = loginType
}
}
if len(form.Password) > 0 {
u.Passwd = form.Password
u.Salt = models.GetUserSalt()
u.EncodePasswd()
}
u.LoginName = form.LoginName
u.FullName = form.FullName
u.Email = form.Email
u.Website = form.Website
u.Location = form.Location
u.MaxRepoCreation = form.MaxRepoCreation
u.IsActive = form.Active
u.IsAdmin = form.Admin
u.AllowGitHook = form.AllowGitHook
u.AllowImportLocal = form.AllowImportLocal
u.ProhibitLogin = form.ProhibitLogin
if err := models.UpdateUser(u); err != nil {
if models.IsErrEmailAlreadyUsed(err) {
ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_EDIT, &form)
} else {
ctx.Handle(500, "UpdateUser", err)
}
return
}
log.Trace("Account profile updated by admin (%s): %s", ctx.User.Name, u.Name)
ctx.Flash.Success(ctx.Tr("admin.users.update_profile_success"))
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + ctx.Params(":userid"))
}
开发者ID:ChamberJin,项目名称:gogs,代码行数:58,代码来源:users.go
示例8: NewUserPost
func NewUserPost(ctx *middleware.Context, form auth.AdminCrateUserForm) {
ctx.Data["Title"] = ctx.Tr("admin.users.new_account")
ctx.Data["PageIsAdmin"] = true
ctx.Data["PageIsAdminUsers"] = true
sources, err := models.LoginSources()
if err != nil {
ctx.Handle(500, "LoginSources", err)
return
}
ctx.Data["Sources"] = sources
if ctx.HasError() {
ctx.HTML(200, USER_NEW)
return
}
u := &models.User{
Name: form.UserName,
Email: form.Email,
Passwd: form.Password,
IsActive: true,
LoginType: models.PLAIN,
}
if len(form.LoginType) > 0 {
fields := strings.Split(form.LoginType, "-")
if len(fields) == 2 {
u.LoginType = models.LoginType(com.StrTo(fields[0]).MustInt())
u.LoginSource = com.StrTo(fields[1]).MustInt64()
u.LoginName = form.LoginName
}
}
if err := models.CreateUser(u); err != nil {
switch {
case models.IsErrUserAlreadyExist(err):
ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), USER_NEW, &form)
case models.IsErrEmailAlreadyUsed(err):
ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_NEW, &form)
case models.IsErrNameReserved(err):
ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("user.form.name_reserved", err.(models.ErrNameReserved).Name), USER_NEW, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("user.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), USER_NEW, &form)
default:
ctx.Handle(500, "CreateUser", err)
}
return
}
log.Trace("Account created by admin(%s): %s", ctx.User.Name, u.Name)
ctx.Flash.Success(ctx.Tr("admin.users.new_success", u.Name))
ctx.Redirect(setting.AppSubUrl + "/admin/users/" + com.ToStr(u.Id))
}
开发者ID:850030700,项目名称:gogs,代码行数:58,代码来源:users.go
示例9: CheckRepoStats
func CheckRepoStats() {
if isCheckingRepos {
return
}
isCheckingRepos = true
defer func() { isCheckingRepos = false }()
log.Trace("Doing: CheckRepoStats")
// ***** START: Watch *****
results, err := x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_watches!=(SELECT COUNT(*) FROM `watch` WHERE repo_id=repo.id)")
if err != nil {
log.Error(4, "Select repository check 'watch': %v", err)
return
}
for _, watch := range results {
repoID := com.StrTo(watch["id"]).MustInt64()
log.Trace("Updating repository count 'watch': %d", repoID)
_, err = x.Exec("UPDATE `repository` SET num_watches=(SELECT COUNT(*) FROM `watch` WHERE repo_id=?) WHERE id=?", repoID, repoID)
if err != nil {
log.Error(4, "Update repository check 'watch'[%d]: %v", repoID, err)
}
}
// ***** END: Watch *****
// ***** START: Star *****
results, err = x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_stars!=(SELECT COUNT(*) FROM `star` WHERE repo_id=repo.id)")
if err != nil {
log.Error(4, "Select repository check 'star': %v", err)
return
}
for _, star := range results {
repoID := com.StrTo(star["id"]).MustInt64()
log.Trace("Updating repository count 'star': %d", repoID)
_, err = x.Exec("UPDATE `repository` SET num_stars=(SELECT COUNT(*) FROM `star` WHERE repo_id=?) WHERE id=?", repoID, repoID)
if err != nil {
log.Error(4, "Update repository check 'star'[%d]: %v", repoID, err)
}
}
// ***** END: Star *****
// ***** START: Label *****
results, err = x.Query("SELECT label.id FROM `label` WHERE label.num_issues!=(SELECT COUNT(*) FROM `issue_label` WHERE label_id=label.id)")
if err != nil {
log.Error(4, "Select label check 'num_issues': %v", err)
return
}
for _, label := range results {
labelID := com.StrTo(label["id"]).MustInt64()
log.Trace("Updating label count 'num_issues': %d", labelID)
_, err = x.Exec("UPDATE `label` SET num_issues=(SELECT COUNT(*) FROM `issue_label` WHERE label_id=?) WHERE id=?", labelID, labelID)
if err != nil {
log.Error(4, "Update label check 'num_issues'[%d]: %v", labelID, err)
}
}
// ***** END: Label *****
}
开发者ID:uileyar,项目名称:gogs,代码行数:57,代码来源:repo.go
示例10: NewUserPost
func NewUserPost(ctx *middleware.Context, form auth.RegisterForm) {
ctx.Data["Title"] = ctx.Tr("admin.users.new_account")
ctx.Data["PageIsAdmin"] = true
ctx.Data["PageIsAdminUsers"] = true
if ctx.HasError() {
ctx.HTML(200, USER_NEW)
return
}
if form.Password != form.Retype {
ctx.Data["Err_Password"] = true
ctx.RenderWithErr(ctx.Tr("form.password_not_match"), USER_NEW, &form)
return
}
u := &models.User{
Name: form.UserName,
Email: form.Email,
Passwd: form.Password,
IsActive: true,
LoginType: models.PLAIN,
}
if len(form.LoginType) > 0 {
// NOTE: need rewrite.
fields := strings.Split(form.LoginType, "-")
tp, _ := com.StrTo(fields[0]).Int()
u.LoginType = models.LoginType(tp)
u.LoginSource, _ = com.StrTo(fields[1]).Int64()
u.LoginName = form.LoginName
}
if err := models.CreateUser(u); err != nil {
switch {
case models.IsErrUserAlreadyExist(err):
ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("form.username_been_taken"), USER_NEW, &form)
case models.IsErrEmailAlreadyUsed(err):
ctx.Data["Err_Email"] = true
ctx.RenderWithErr(ctx.Tr("form.email_been_used"), USER_NEW, &form)
case models.IsErrNameReserved(err):
ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("user.form.name_reserved", err.(models.ErrNameReserved).Name), USER_NEW, &form)
case models.IsErrNamePatternNotAllowed(err):
ctx.Data["Err_UserName"] = true
ctx.RenderWithErr(ctx.Tr("user.form.name_pattern_not_allowed", err.(models.ErrNamePatternNotAllowed).Pattern), USER_NEW, &form)
default:
ctx.Handle(500, "CreateUser", err)
}
return
}
log.Trace("Account created by admin(%s): %s", ctx.User.Name, u.Name)
ctx.Redirect(setting.AppSubUrl + "/admin/users")
}
开发者ID:Keleir,项目名称:gogs,代码行数:55,代码来源:users.go
示例11: teamToTeamRepo
func teamToTeamRepo(x *xorm.Engine) error {
type TeamRepo struct {
ID int64 `xorm:"pk autoincr"`
OrgID int64 `xorm:"INDEX"`
TeamID int64 `xorm:"UNIQUE(s)"`
RepoID int64 `xorm:"UNIQUE(s)"`
}
teamRepos := make([]*TeamRepo, 0, 50)
results, err := x.Query("SELECT `id`,`org_id`,`repo_ids` FROM `team`")
if err != nil {
if strings.Contains(err.Error(), "no such column") {
return nil
}
return fmt.Errorf("select teams: %v", err)
}
for _, team := range results {
orgID := com.StrTo(team["org_id"]).MustInt64()
teamID := com.StrTo(team["id"]).MustInt64()
// #1032: legacy code can have duplicated IDs for same repository.
mark := make(map[int64]bool)
for _, idStr := range strings.Split(string(team["repo_ids"]), "|") {
repoID := com.StrTo(strings.TrimPrefix(idStr, "$")).MustInt64()
if repoID == 0 || mark[repoID] {
continue
}
mark[repoID] = true
teamRepos = append(teamRepos, &TeamRepo{
OrgID: orgID,
TeamID: teamID,
RepoID: repoID,
})
}
}
sess := x.NewSession()
defer sessionRelease(sess)
if err = sess.Begin(); err != nil {
return err
}
if err = sess.Sync2(new(TeamRepo)); err != nil {
return fmt.Errorf("sync2: %v", err)
} else if _, err = sess.Insert(teamRepos); err != nil {
return fmt.Errorf("insert team-repos: %v", err)
}
return sess.Commit()
}
开发者ID:kx2015,项目名称:gogs,代码行数:52,代码来源:migrations.go
示例12: trimSpace
func trimSpace(x *xorm.Engine) error {
results, e := x.Query("select id,body from site_feed")
if e != nil {
return e
}
for _, v := range results {
body := strings.TrimSpace(com.StrTo(v["body"]).String())
_, e := x.Exec("update site_feed set body = ? where id = ?", body, com.StrTo(v["id"]).MustInt64())
if e != nil {
return e
}
}
return nil
}
开发者ID:zhuharev,项目名称:smoljanin.ru,代码行数:14,代码来源:migrations.go
示例13: issueToIssueLabel
func issueToIssueLabel(x *xorm.Engine) error {
type IssueLabel struct {
ID int64 `xorm:"pk autoincr"`
IssueID int64 `xorm:"UNIQUE(s)"`
LabelID int64 `xorm:"UNIQUE(s)"`
}
issueLabels := make([]*IssueLabel, 0, 50)
results, err := x.Query("SELECT `id`,`label_ids` FROM `issue`")
if err != nil {
if strings.Contains(err.Error(), "no such column") ||
strings.Contains(err.Error(), "Unknown column") {
return nil
}
return fmt.Errorf("select issues: %v", err)
}
for _, issue := range results {
issueID := com.StrTo(issue["id"]).MustInt64()
// Just in case legacy code can have duplicated IDs for same label.
mark := make(map[int64]bool)
for _, idStr := range strings.Split(string(issue["label_ids"]), "|") {
labelID := com.StrTo(strings.TrimPrefix(idStr, "$")).MustInt64()
if labelID == 0 || mark[labelID] {
continue
}
mark[labelID] = true
issueLabels = append(issueLabels, &IssueLabel{
IssueID: issueID,
LabelID: labelID,
})
}
}
sess := x.NewSession()
defer sessionRelease(sess)
if err = sess.Begin(); err != nil {
return err
}
if err = sess.Sync2(new(IssueLabel)); err != nil {
return fmt.Errorf("sync2: %v", err)
} else if _, err = sess.Insert(issueLabels); err != nil {
return fmt.Errorf("insert issue-labels: %v", err)
}
return sess.Commit()
}
开发者ID:jessezwd,项目名称:gogs,代码行数:49,代码来源:migrations.go
示例14: renamePullRequestFields
func renamePullRequestFields(x *xorm.Engine) (err error) {
type PullRequest struct {
ID int64 `xorm:"pk autoincr"`
PullID int64 `xorm:"INDEX"`
PullIndex int64
HeadBarcnh string
IssueID int64 `xorm:"INDEX"`
Index int64
HeadBranch string
}
if err = x.Sync(new(PullRequest)); err != nil {
return fmt.Errorf("sync: %v", err)
}
results, err := x.Query("SELECT `id`,`pull_id`,`pull_index`,`head_barcnh` FROM `pull_request`")
if err != nil {
if strings.Contains(err.Error(), "no such column") {
return nil
}
return fmt.Errorf("select pull requests: %v", err)
}
sess := x.NewSession()
defer sessionRelease(sess)
if err = sess.Begin(); err != nil {
return err
}
var pull *PullRequest
for _, pr := range results {
pull = &PullRequest{
ID: com.StrTo(pr["id"]).MustInt64(),
IssueID: com.StrTo(pr["pull_id"]).MustInt64(),
Index: com.StrTo(pr["pull_index"]).MustInt64(),
HeadBranch: string(pr["head_barcnh"]),
}
if pull.Index == 0 {
continue
}
if _, err = sess.Id(pull.ID).Update(pull); err != nil {
return err
}
}
return sess.Commit()
}
开发者ID:jessezwd,项目名称:gogs,代码行数:48,代码来源:migrations.go
示例15: DeleteLabel
// DeleteLabel delete a label of given repository.
func DeleteLabel(repoId int64, strId string) error {
id, _ := com.StrTo(strId).Int64()
l, err := GetLabelById(id)
if err != nil {
if err == ErrLabelNotExist {
return nil
}
return err
}
issues, err := GetIssuesByLabel(repoId, strId)
if err != nil {
return err
}
sess := x.NewSession()
defer sess.Close()
if err = sess.Begin(); err != nil {
return err
}
for _, issue := range issues {
issue.LabelIds = strings.Replace(issue.LabelIds, "$"+strId+"|", "", -1)
if _, err = sess.Id(issue.Id).AllCols().Update(issue); err != nil {
sess.Rollback()
return err
}
}
if _, err = sess.Delete(l); err != nil {
sess.Rollback()
return err
}
return sess.Commit()
}
开发者ID:felipelovato,项目名称:gogs,代码行数:36,代码来源:issue.go
示例16: FromFile
func FromFile(fpath string) (Menus, error) {
var (
res Menus
)
lines, e := dry.FileGetNonEmptyLines(fpath)
if e != nil {
return nil, e
}
for _, line := range lines {
var m Menu
arr := lineRe.FindStringSubmatch(line)
if len(arr) != 4 {
continue
}
m.Order = com.StrTo(arr[1]).MustInt()
m.Title = arr[2]
m.Link = arr[3]
if line[0] == ' ' && line[1] == ' ' {
parent := res[len(res)-1]
m.Link = parent.Link + m.Link
res[len(res)-1].Items = append(res[len(res)-1].Items, m)
} else {
res = append(res, m)
}
}
return res, nil
}
开发者ID:zhuharev,项目名称:smoljanin.ru,代码行数:27,代码来源:menu.go
示例17: SlackHooksEditPost
func SlackHooksEditPost(ctx *middleware.Context, form auth.NewSlackHookForm) {
ctx.Data["Title"] = ctx.Tr("repo.settings")
ctx.Data["PageIsSettingsHooks"] = true
ctx.Data["PageIsSettingsHooksEdit"] = true
hookId := com.StrTo(ctx.Params(":id")).MustInt64()
if hookId == 0 {
ctx.Handle(404, "SlackHooksEditPost(hookId)", nil)
return
}
orCtx, err := getOrgRepoCtx(ctx)
if err != nil {
ctx.Handle(500, "SlackHooksEditPost(getOrgRepoCtx)", err)
return
}
w, err := models.GetWebhookById(hookId)
if err != nil {
if err == models.ErrWebhookNotExist {
ctx.Handle(404, "GetWebhookById", nil)
} else {
ctx.Handle(500, "GetWebhookById", err)
}
return
}
w.GetEvent()
ctx.Data["Webhook"] = w
if ctx.HasError() {
ctx.HTML(200, orCtx.NewTemplate)
return
}
meta, err := json.Marshal(&models.Slack{
Domain: form.Domain,
Channel: form.Channel,
Token: form.Token,
})
if err != nil {
ctx.Handle(500, "SlackHooksNewPost: JSON marshal failed: ", err)
return
}
w.Url = models.GetSlackURL(form.Domain, form.Token)
w.Meta = string(meta)
w.HookEvent = &models.HookEvent{
PushOnly: form.PushOnly,
}
w.IsActive = form.Active
if err := w.UpdateEvent(); err != nil {
ctx.Handle(500, "UpdateEvent", err)
return
} else if err := models.UpdateWebhook(w); err != nil {
ctx.Handle(500, "SlackHooksEditPost", err)
return
}
ctx.Flash.Success(ctx.Tr("repo.settings.update_hook_success"))
ctx.Redirect(fmt.Sprintf("%s/settings/hooks/%d", orCtx.Link, hookId))
}
开发者ID:last1here,项目名称:gogs,代码行数:60,代码来源:setting.go
示例18: 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
示例19: NewId
func NewId(id string) (SteamId, error) {
valid, err := regexp.MatchString(`STEAM_[0-5]:[01]:\d+`, id)
if err != nil {
return SteamId(0), err
}
if len(fmt.Sprint(id)) != 17 && !valid {
id = fmt.Sprint(Convert32to64(uint32(com.StrTo(id).MustInt())))
}
if valid {
id = strings.Replace(id, "STEAM_", "", -1) // remove STEAM_
splitid := strings.Split(id, ":") // split 0:1:00000000 into 0 1 00000000
universe, _ := strconv.ParseInt(splitid[0], 10, 32)
if universe == 0 { //EUniverse_Invalid
universe = 1 //EUniverse_Public
}
authServer, _ := strconv.ParseUint(splitid[1], 10, 32)
accId, _ := strconv.ParseUint(splitid[2], 10, 32)
accountType := int32(1) //EAccountType_Individual
accountId := (uint32(accId) << 1) | uint32(authServer)
return NewIdAdv(uint32(accountId), 1, int32(universe), accountType), nil
} else {
newid, err := strconv.ParseUint(id, 10, 64)
if err != nil {
return SteamId(0), err
}
return SteamId(newid), nil
}
return SteamId(0), errors.New(fmt.Sprintf("Invalid SteamId: %s\n", id))
}
开发者ID:zhuharev,项目名称:go-steam,代码行数:29,代码来源:steamid.go
示例20: startGC
func (c *LedisCacher) startGC() {
if c.interval < 1 {
return
}
kvs, err := c.c.HGetAll(defaultHSetName)
if err != nil {
log.Printf("cache/redis: error garbage collecting(get): %v", err)
return
}
now := time.Now().Unix()
for _, v := range kvs {
expire := com.StrTo(v.Value).MustInt64()
if expire == 0 || now < expire {
continue
}
if err = c.Delete(string(v.Field)); err != nil {
log.Printf("cache/redis: error garbage collecting(delete): %v", err)
continue
}
}
time.AfterFunc(time.Duration(c.interval)*time.Second, func() { c.startGC() })
}
开发者ID:kenno,项目名称:cache,代码行数:26,代码来源:ledis.go
注:本文中的github.com/Unknwon/com.StrTo函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论