go-tg-screenshot-bot

Форк
0
1
package tgbotapi
2

3
import (
4
	"encoding/json"
5
	"reflect"
6
	"strconv"
7
)
8

9
// Params represents a set of parameters that gets passed to a request.
10
type Params map[string]string
11

12
// AddNonEmpty adds a value if it not an empty string.
13
func (p Params) AddNonEmpty(key, value string) {
14
	if value != "" {
15
		p[key] = value
16
	}
17
}
18

19
// AddNonZero adds a value if it is not zero.
20
func (p Params) AddNonZero(key string, value int) {
21
	if value != 0 {
22
		p[key] = strconv.Itoa(value)
23
	}
24
}
25

26
// AddNonZero64 is the same as AddNonZero except uses an int64.
27
func (p Params) AddNonZero64(key string, value int64) {
28
	if value != 0 {
29
		p[key] = strconv.FormatInt(value, 10)
30
	}
31
}
32

33
// AddBool adds a value of a bool if it is true.
34
func (p Params) AddBool(key string, value bool) {
35
	if value {
36
		p[key] = strconv.FormatBool(value)
37
	}
38
}
39

40
// AddNonZeroFloat adds a floating point value that is not zero.
41
func (p Params) AddNonZeroFloat(key string, value float64) {
42
	if value != 0 {
43
		p[key] = strconv.FormatFloat(value, 'f', 6, 64)
44
	}
45
}
46

47
// AddInterface adds an interface if it is not nil and can be JSON marshalled.
48
func (p Params) AddInterface(key string, value interface{}) error {
49
	if value == nil || (reflect.ValueOf(value).Kind() == reflect.Ptr && reflect.ValueOf(value).IsNil()) {
50
		return nil
51
	}
52

53
	b, err := json.Marshal(value)
54
	if err != nil {
55
		return err
56
	}
57

58
	p[key] = string(b)
59

60
	return nil
61
}
62

63
// AddFirstValid attempts to add the first item that is not a default value.
64
//
65
// For example, AddFirstValid(0, "", "test") would add "test".
66
func (p Params) AddFirstValid(key string, args ...interface{}) error {
67
	for _, arg := range args {
68
		switch v := arg.(type) {
69
		case int:
70
			if v != 0 {
71
				p[key] = strconv.Itoa(v)
72
				return nil
73
			}
74
		case int64:
75
			if v != 0 {
76
				p[key] = strconv.FormatInt(v, 10)
77
				return nil
78
			}
79
		case string:
80
			if v != "" {
81
				p[key] = v
82
				return nil
83
			}
84
		case nil:
85
		default:
86
			b, err := json.Marshal(arg)
87
			if err != nil {
88
				return err
89
			}
90

91
			p[key] = string(b)
92
			return nil
93
		}
94
	}
95

96
	return nil
97
}
98

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.