mirror of
https://github.com/lyx0/nourybot.git
synced 2024-11-13 19:49:55 +01:00
47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
|
package decapi
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io"
|
||
|
"net/http"
|
||
|
|
||
|
"go.uber.org/zap"
|
||
|
)
|
||
|
|
||
|
func Followage(channel, username string) (string, error) {
|
||
|
var basePath = "https://decapi.me/twitch/followage/"
|
||
|
|
||
|
sugar := zap.NewExample().Sugar()
|
||
|
defer sugar.Sync()
|
||
|
|
||
|
// ?precision is how precise the timestamp should be.
|
||
|
// precision 4 means: 1 2 3 4
|
||
|
// pajlada has been following forsen for 7 years, 4 months, 4 weeks, 1 day
|
||
|
resp, err := http.Get(fmt.Sprint(basePath + channel + "/" + username + "?precision=4"))
|
||
|
if err != nil {
|
||
|
sugar.Error(err)
|
||
|
return "Something went wrong FeelsBadMan", err
|
||
|
}
|
||
|
|
||
|
defer resp.Body.Close()
|
||
|
|
||
|
body, err := io.ReadAll(resp.Body)
|
||
|
if err != nil {
|
||
|
sugar.Error(err)
|
||
|
return "Something went wrong FeelsBadMan", err
|
||
|
}
|
||
|
|
||
|
// User tries to look up how long he follows himself.
|
||
|
if string(body) == followageUserCannotFollowOwn {
|
||
|
return "You cannot follow yourself.", nil
|
||
|
|
||
|
// Username is not following the requested channel.
|
||
|
} else if string(body) == fmt.Sprintf("%s does not follow %s", username, channel) {
|
||
|
return string(body), nil
|
||
|
} else {
|
||
|
reply := fmt.Sprintf("%s has been following %s for %s", username, channel, string(body))
|
||
|
return reply, nil
|
||
|
}
|
||
|
|
||
|
}
|