summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/matterbridge/telegram-bot-api/v6/params.go
diff options
context:
space:
mode:
authorThom Dickson <td3of4@gmail.com>2023-03-14 18:03:04 -0400
committerGitHub <noreply@github.com>2023-03-14 23:03:04 +0100
commit601f48a50ea31a9631011766c680ecef931ddafc (patch)
treeaa88bff487f12a05d70c7677ddc2a3e14bbd9fbf /vendor/github.com/matterbridge/telegram-bot-api/v6/params.go
parentc2b8e298d8c0a15a0e6489b658efe58030a18164 (diff)
downloadmatterbridge-msglm-601f48a50ea31a9631011766c680ecef931ddafc.tar.gz
matterbridge-msglm-601f48a50ea31a9631011766c680ecef931ddafc.tar.bz2
matterbridge-msglm-601f48a50ea31a9631011766c680ecef931ddafc.zip
Add support for Telegram topics (telegram) (#1942)
Topics are surfaced by appending /<topic-id> to the channel setting for the gateway. An example for the topic with ID of 16 would be: ``` [[gateway.inout]] account="telegram.mytelegram" channel="-100xxxxxxxxxx/16" ```
Diffstat (limited to 'vendor/github.com/matterbridge/telegram-bot-api/v6/params.go')
-rw-r--r--vendor/github.com/matterbridge/telegram-bot-api/v6/params.go104
1 files changed, 104 insertions, 0 deletions
diff --git a/vendor/github.com/matterbridge/telegram-bot-api/v6/params.go b/vendor/github.com/matterbridge/telegram-bot-api/v6/params.go
new file mode 100644
index 00000000..118af364
--- /dev/null
+++ b/vendor/github.com/matterbridge/telegram-bot-api/v6/params.go
@@ -0,0 +1,104 @@
+package tgbotapi
+
+import (
+ "encoding/json"
+ "reflect"
+ "strconv"
+)
+
+// Params represents a set of parameters that gets passed to a request.
+type Params map[string]string
+
+// AddNonEmpty adds a value if it not an empty string.
+func (p Params) AddNonEmpty(key, value string) {
+ if value != "" {
+ p[key] = value
+ }
+}
+
+// AddNonZero adds a value if it is not zero.
+func (p Params) AddNonZero(key string, value int) {
+ if value != 0 {
+ p[key] = strconv.Itoa(value)
+ }
+}
+
+// AddNonZero64 is the same as AddNonZero except uses an int64.
+func (p Params) AddNonZero64(key string, value int64) {
+ if value != 0 {
+ p[key] = strconv.FormatInt(value, 10)
+ }
+}
+
+// AddBool adds a value of a bool if it is true.
+func (p Params) AddBool(key string, value bool) {
+ if value {
+ p[key] = strconv.FormatBool(value)
+ }
+}
+
+// AddNonZeroFloat adds a floating point value that is not zero.
+func (p Params) AddNonZeroFloat(key string, value float64) {
+ if value != 0 {
+ p[key] = strconv.FormatFloat(value, 'f', 6, 64)
+ }
+}
+
+// AddInterface adds an interface if it is not nil and can be JSON marshalled.
+func (p Params) AddInterface(key string, value interface{}) error {
+ if value == nil || (reflect.ValueOf(value).Kind() == reflect.Ptr && reflect.ValueOf(value).IsNil()) {
+ return nil
+ }
+
+ b, err := json.Marshal(value)
+ if err != nil {
+ return err
+ }
+
+ p[key] = string(b)
+
+ return nil
+}
+
+// AddFirstValid attempts to add the first item that is not a default value.
+//
+// For example, AddFirstValid(0, "", "test") would add "test".
+func (p Params) AddFirstValid(key string, args ...interface{}) error {
+ for _, arg := range args {
+ switch v := arg.(type) {
+ case int:
+ if v != 0 {
+ p[key] = strconv.Itoa(v)
+ return nil
+ }
+ case int64:
+ if v != 0 {
+ p[key] = strconv.FormatInt(v, 10)
+ return nil
+ }
+ case string:
+ if v != "" {
+ p[key] = v
+ return nil
+ }
+ case nil:
+ default:
+ b, err := json.Marshal(arg)
+ if err != nil {
+ return err
+ }
+
+ p[key] = string(b)
+ return nil
+ }
+ }
+
+ return nil
+}
+
+// Merge merges two sets of parameters. Overwrites old fields if present
+func (p *Params) Merge(p1 Params) {
+ for k, v := range p1 {
+ (*p)[k] = v
+ }
+} \ No newline at end of file