本文整理汇总了Golang中github.com/gistia/slackbot/utils.Command.StrFrom方法的典型用法代码示例。如果您正苦于以下问题:Golang Command.StrFrom方法的具体用法?Golang Command.StrFrom怎么用?Golang Command.StrFrom使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/gistia/slackbot/utils.Command
的用法示例。
在下文中一共展示了Command.StrFrom方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: startStory
func (r bot) startStory(p *robots.Payload, cmd utils.Command) error {
title := cmd.StrFrom(0)
session, err := db.GetCurrentSession(p.ChannelName)
if err != nil {
return err
}
if session == nil {
r.handler.Send(p, "No active poker session on *"+p.ChannelName+"*. Use `/poker session` to start a new session.")
return nil
}
story, err := session.GetCurrentStory()
if err != nil {
return err
}
if story != nil {
r.handler.Send(p, "Cannot start a new story until you estimate *"+story.Title+"*")
return nil
}
err = session.StartPokerStory(title)
if err != nil {
return err
}
r.handler.Send(p, "We can now vote for *"+title+"*")
return nil
}
示例2: create
func (r bot) create(p *robots.Payload, cmd utils.Command) error {
alias := cmd.Arg(0)
if alias == "" {
r.handler.Send(p, "Missing project alias. Usage: `!project createproject <alias> <long-name>`")
return nil
}
name := cmd.StrFrom(1)
if name == "" {
r.handler.Send(p, "Missing project name. Usage: `!project createproject <alias> <long-name>`")
return nil
}
mvn, err := mavenlink.NewFor(p.UserName)
if err != nil {
return err
}
pvt, err := pivotal.NewFor(p.UserName)
if err != nil {
return err
}
pvtProject := pivotal.Project{
Name: name,
// PointScale: "1,2,3,4,5,6,7,8,9,10,16,20",
}
pvtNewProject, err := pvt.CreateProject(pvtProject)
if err != nil {
return err
}
mvnProject := mavenlink.Project{
Title: name,
Description: fmt.Sprintf("[pvt:%s]", pvtNewProject.Id),
CreatorRole: "maven",
}
mvnNewProject, err := mvn.CreateProject(mvnProject)
if err != nil {
return err
}
if mvnNewProject == nil {
return errors.New("Mavenlink returned a nil project")
}
pvtNewProject.Description = "[mvn:" + mvnNewProject.Id + "]"
pvtNewProject, err = pvt.UpdateProject(*pvtNewProject)
if err != nil {
return err
}
err = r.makeLink(p, alias, mvnNewProject.Id, strconv.FormatInt(pvtNewProject.Id, 10))
if err != nil {
return err
}
r.handler.Send(p, "Project *"+name+"* created on Pivotal and Mavenlink.")
return nil
}
示例3: startSession
func (r bot) startSession(p *robots.Payload, cmd utils.Command) error {
title := cmd.StrFrom(0)
users := cmd.Param("users")
err := db.StartPokerSession(p.ChannelName, title, users)
if err != nil {
return err
}
r.handler.Send(p, "Started poker session for *"+title+"*")
return nil
}
示例4: set
func (r bot) set(p *robots.Payload, cmd utils.Command) error {
args, err := cmd.ParseArgs("start-date", "end-date")
if err != nil {
return err
}
start, end := args[0], args[1]
desc := cmd.StrFrom(2)
startDate, err := time.Parse("2006-01-02", start)
if err != nil {
return err
}
endDate, err := time.Parse("2006-01-02", end)
if err != nil {
return err
}
_, err = db.CreateVacation(p.UserName, desc, &startDate, &endDate)
r.handler.Send(p, "Vacation created")
return nil
}
示例5: addSprint
func (r bot) addSprint(p *robots.Payload, cmd utils.Command) error {
name := cmd.Arg(0)
if name == "" {
r.handler.Send(p, "Missing project name")
return nil
}
ps, err := db.GetProjectByName(name)
if err != nil {
return err
}
mvn, err := mavenlink.NewFor(p.UserName)
if err != nil {
return err
}
sprintName := cmd.StrFrom(1)
if sprintName == "" {
sprintName = "Sprint 1"
if ps.MvnSprintStoryId != "" {
s, err := mvn.GetStory(ps.MvnSprintStoryId)
if err != nil {
return err
}
matched, err := regexp.MatchString(`Sprint [\d]+`, s.Title)
if err != nil {
return err
}
if matched {
num, err := strconv.ParseInt(strings.Split(s.Title, " ")[1], 10, 64)
if err != nil {
return err
}
sprintName = fmt.Sprintf("Sprint %d", (num + 1))
}
}
}
s := mavenlink.Story{
Title: sprintName,
WorkspaceId: strconv.FormatInt(ps.MavenlinkId, 10),
StoryType: "milestone",
}
ns, err := mvn.CreateStory(s)
if err != nil {
return err
}
fmt.Printf("%+v\n", ns)
ps.MvnSprintStoryId = ns.Id
err = db.UpdateProject(*ps)
if err != nil {
return err
}
s = *ns
r.handler.Send(p, "Added new sprint to *"+ps.Name+"*: "+s.Id+" - "+s.Title)
return nil
}