Fixed string reading issues.

This commit is contained in:
Andrey Parhomenko 2023-10-02 21:45:21 +03:00
parent 37cd1d37fd
commit 0471ea91c7
3 changed files with 21 additions and 2 deletions

View file

@ -170,6 +170,9 @@ func (af ActionFunc) Act(c *Context) {
// Changes screen of user to the Id one. // Changes screen of user to the Id one.
func (c *Context) Go(pth Path, args ...any) error { func (c *Context) Go(pth Path, args ...any) error {
if pth == "-" {
pth = c.PrevPath()
}
// Getting the screen and changing to // Getting the screen and changing to
// then executing its widget. // then executing its widget.
if !pth.IsAbs() { if !pth.IsAbs() {
@ -244,7 +247,7 @@ func (c *Context) RunWidget(widget Widget, args ...any) *UpdateChan {
} }
chns := make([]*UpdateChan, len(compos)) chns := make([]*UpdateChan, len(compos))
for i, compo := range compos { for i, compo := range compos {
chns[i] = c.RunCompo(compo) chns[i] = c.RunCompo(compo, args...)
} }
ret := NewUpdateChan() ret := NewUpdateChan()
@ -283,8 +286,13 @@ func (c *Context) RunWidget(widget Widget, args ...any) *UpdateChan {
// Simple way to read strings for widgets. // Simple way to read strings for widgets.
func (c *Context) ReadString(pref string, args ...any) string { func (c *Context) ReadString(pref string, args ...any) string {
var text string var text string
if pref != "" {
c.Sendf(pref, args...) c.Sendf(pref, args...)
}
for u := range c.Input() { for u := range c.Input() {
if u == nil {
break
}
if u.Message == nil { if u.Message == nil {
continue continue
} }

View file

@ -30,6 +30,14 @@ func (kbd *Keyboard) Row(btns ...*Button) *Keyboard {
return kbd return kbd
} }
// Adds buttons as one column list.
func (kbd *Keyboard) List(btns ...*Button) *Keyboard {
for _, btn := range btns {
kbd.Rows = append(kbd.Rows, ButtonRow{btn})
}
return kbd
}
// Set the default action when no button provides // Set the default action when no button provides
// key to the data we got. // key to the data we got.
func (kbd *Keyboard) WithAction(a Action) *Keyboard { func (kbd *Keyboard) WithAction(a Action) *Keyboard {

View file

@ -2,6 +2,7 @@ package tg
import ( import (
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
//"strings"
) )
type Message = tgbotapi.Message type Message = tgbotapi.Message
@ -75,6 +76,8 @@ func (config *MessageCompo) SendConfig(
text = config.Text text = config.Text
} }
//text = strings.ReplaceAll(text, "-", "\\-")
msg := tgbotapi.NewMessage(c.Session.Id.ToApi(), text) msg := tgbotapi.NewMessage(c.Session.Id.ToApi(), text)
ret.Message = &msg ret.Message = &msg
ret.Message.ParseMode = config.ParseMode ret.Message.ParseMode = config.ParseMode