func viewMemo(command *bot.Cmd) (msg string, err error) { msgs := strings.SplitN(command.FullArg, " ", 2) if len(msgs) == 0 { return "", formatUsageError(viewMemoUsage) } offset := 0 if len(msgs) == 2 { offset, err = strconv.Atoi(msgs[1]) if err != nil { return "", formatUsageError(viewMemoUsage) } } db, err := store.Instance() if err != nil { return "", err } var n int err = db.QueryRow("SELECT count(*) FROM `memo` WHERE `key`=?", msgs[0]).Scan(&n) if err != nil { return "", err } rows, err := db.Query("SELECT `value` FROM `memo` WHERE `key`=? LIMIT ?, 10", msgs[0], offset) if err != nil { return "", err } defer rows.Close() var buffer bytes.Buffer buffer.WriteString(fmt.Sprintf("> %s - %d개 찾음\n", msgs[0], n)) for rows.Next() { var value string if err := rows.Scan(&value); err != nil { return "", err } buffer.WriteString(fmt.Sprintf("> * %s\n", value)) } return buffer.String(), nil }
func insertMemo(command *bot.Cmd) (msg string, err error) { msgs := strings.SplitN(command.FullArg, " ", 2) if len(msgs) < 2 { return "", formatUsageError(insertMemoUsage) } db, err := store.Instance() if err != nil { return "", err } _, err = db.Exec("INSERT INTO `memo` (`key`, `value`, `creator`) VALUES (?, ?, ?)", msgs[0], msgs[1], command.Nick) if err != nil { return "", err } return fmt.Sprintf("> 메모가 추가되었습니다 [%s]", msgs[0]), nil }
func clearMemo(command *bot.Cmd) (msg string, err error) { msgs := strings.SplitN(command.FullArg, " ", 1) if len(msgs) < 1 { return "", formatUsageError(deleteMemoUsage) } db, err := store.Instance() if err != nil { return "", err } _, err = db.Exec("DELETE FROM `memo` where `key`=?", msgs[0]) if err != nil { return "", err } return fmt.Sprintf("> 메모가 모두 삭제되었습니다 [%s]", msgs[0]), nil }