예제 #1
0
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
}
예제 #2
0
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
}
예제 #3
0
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
}