mirror of
https://github.com/idanoo/go-mastodon-stats
synced 2025-07-01 22:02:20 +00:00
Test?
This commit is contained in:
parent
97caf4bc37
commit
d927f1c5a1
5 changed files with 46 additions and 20 deletions
|
@ -15,5 +15,7 @@ MATRIX_WEBHOOK_API_KEY=""
|
||||||
MATRIX_WEBHOOK_CHANNEL=""
|
MATRIX_WEBHOOK_CHANNEL=""
|
||||||
|
|
||||||
MASTODON_INSTANCE_URL=""
|
MASTODON_INSTANCE_URL=""
|
||||||
MASTODON_USERNAME=""
|
MASTODON_CLIENT_ID=""
|
||||||
MASTODON_PASSWORD=""
|
MASTODON_CLIENT_SECRET=""
|
||||||
|
MASTODON_CLIENT_USERNAME=""
|
||||||
|
MASTODON_CLIENT_PASSWORD=""
|
|
@ -34,4 +34,4 @@ CREATE UNIQUE INDEX service_lookup ON statsdb USING btree (service,metric_name,
|
||||||
|
|
||||||
GRANT ALL ON ALL TABLES IN SCHEMA public TO gomastodonstats;
|
GRANT ALL ON ALL TABLES IN SCHEMA public TO gomastodonstats;
|
||||||
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO gomastodonstats;
|
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO gomastodonstats;
|
||||||
```
|
```
|
||||||
|
|
|
@ -51,12 +51,16 @@ func main() {
|
||||||
|
|
||||||
// Load mastodon data if exists
|
// Load mastodon data if exists
|
||||||
gms.MASTODON_INSTANCE_URL = os.Getenv("MASTODON_INSTANCE_URL")
|
gms.MASTODON_INSTANCE_URL = os.Getenv("MASTODON_INSTANCE_URL")
|
||||||
gms.MASTODON_USERNAME = os.Getenv("MASTODON_USERNAME")
|
gms.MASTODON_CLIENT_ID = os.Getenv("MASTODON_CLIENT_ID")
|
||||||
gms.MASTODON_PASSWORD = os.Getenv("MASTODON_PASSWORD")
|
gms.MASTODON_CLIENT_SECRET = os.Getenv("MASTODON_CLIENT_SECRET")
|
||||||
|
gms.MASTODON_CLIENT_USERNAME = os.Getenv("MASTODON_CLIENT_USERNAME")
|
||||||
|
gms.MASTODON_CLIENT_PASSWORD = os.Getenv("MASTODON_CLIENT_PASSWORD")
|
||||||
if gms.MASTODON_INSTANCE_URL == "" ||
|
if gms.MASTODON_INSTANCE_URL == "" ||
|
||||||
gms.MASTODON_USERNAME == "" ||
|
gms.MASTODON_CLIENT_ID == "" ||
|
||||||
gms.MASTODON_PASSWORD == "" {
|
gms.MASTODON_CLIENT_SECRET == "" ||
|
||||||
log.Println("MASTODON_INSTANCE_URL info incompelete. Skipping")
|
gms.MASTODON_CLIENT_USERNAME == "" ||
|
||||||
|
gms.MASTODON_CLIENT_PASSWORD == "" {
|
||||||
|
log.Println("MASTODON_INSTANCE info incompelete. Skipping")
|
||||||
|
|
||||||
// Set URL empty so we can check this later on
|
// Set URL empty so we can check this later on
|
||||||
gms.MASTODON_INSTANCE_URL = ""
|
gms.MASTODON_INSTANCE_URL = ""
|
||||||
|
|
|
@ -14,10 +14,13 @@ var (
|
||||||
MATRIX_WEBHOOK_API_KEY string
|
MATRIX_WEBHOOK_API_KEY string
|
||||||
MATRIX_WEBHOOK_CHANNEL string
|
MATRIX_WEBHOOK_CHANNEL string
|
||||||
|
|
||||||
MASTODON_INSTANCE_URL string
|
MASTODON_CLIENT_NAME = "go-mastodon-stats"
|
||||||
MASTODON_USERNAME string
|
MASTODON_INSTANCE_URL string
|
||||||
MASTODON_PASSWORD string
|
MASTODON_CLIENT_ID string
|
||||||
MASTODON_CLIENT_NAME = "go-mastodon-stats"
|
MASTODON_CLIENT_SECRET string
|
||||||
|
MASTODON_CLIENT_USERNAME string
|
||||||
|
MASTODON_CLIENT_PASSWORD string
|
||||||
|
|
||||||
// UserCount metric name
|
// UserCount metric name
|
||||||
METRICNAME_USERCOUNT = "userCount"
|
METRICNAME_USERCOUNT = "userCount"
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,29 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/mattn/go-mastodon"
|
"github.com/mattn/go-mastodon"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func doTheRegisterThing() {
|
||||||
|
srv, err := mastodon.RegisterApp(context.Background(), &mastodon.AppConfig{
|
||||||
|
Server: fmt.Sprintf("https://%s", MASTODON_INSTANCE_URL),
|
||||||
|
ClientName: MASTODON_CLIENT_NAME,
|
||||||
|
Scopes: "read write follow",
|
||||||
|
RedirectURIs: "urn:ietf:wg:oauth:2.0:oob",
|
||||||
|
Website: "https://github.com/mattn/go-mastodon",
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("Couldn't register the app. Error: %v\n\nExiting...\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Println(
|
||||||
|
"Pls open this link: %s\n\n" + srv.AuthURI +
|
||||||
|
"When completeAdd this to your config under MASTODON_TOKEN and rerun the app")
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
|
||||||
func postToMastodon(metrics []metric) {
|
func postToMastodon(metrics []metric) {
|
||||||
if MASTODON_INSTANCE_URL == "" {
|
if MASTODON_INSTANCE_URL == "" {
|
||||||
log.Printf("Skipping posting to mastodon. Missing configuration")
|
log.Printf("Skipping posting to mastodon. Missing configuration")
|
||||||
|
@ -16,24 +35,22 @@ func postToMastodon(metrics []metric) {
|
||||||
|
|
||||||
c := mastodon.NewClient(&mastodon.Config{
|
c := mastodon.NewClient(&mastodon.Config{
|
||||||
Server: fmt.Sprintf("https://%s", MASTODON_INSTANCE_URL),
|
Server: fmt.Sprintf("https://%s", MASTODON_INSTANCE_URL),
|
||||||
ClientID: MASTODON_CLIENT_NAME,
|
ClientID: MASTODON_CLIENT_ID,
|
||||||
ClientSecret: "random-secret-that-doesnt-really-matter-lol",
|
ClientSecret: MASTODON_CLIENT_SECRET,
|
||||||
})
|
})
|
||||||
|
|
||||||
err := c.Authenticate(context.Background(), MASTODON_USERNAME, MASTODON_PASSWORD)
|
err := c.Authenticate(context.Background(), MASTODON_CLIENT_USERNAME, MASTODON_CLIENT_PASSWORD)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("Invalid mastodon credentials?")
|
log.Fatal(err)
|
||||||
log.Print(err)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build status
|
// Build status
|
||||||
startOfDay := getStartofDay()
|
startOfDay := getStartofDay()
|
||||||
msg := fmt.Sprintf("Stats for %s\n\n", startOfDay.String())
|
msg := fmt.Sprintf("User counts for %s :laserkiwi:\n\n", startOfDay.String())
|
||||||
for _, m := range metrics {
|
for _, m := range metrics {
|
||||||
msg = msg + getPrintableString(m) + "\n"
|
msg = msg + getPrintableString(m) + "\n"
|
||||||
}
|
}
|
||||||
msg = msg + "\n\n" + "#Stats"
|
msg = msg + "\n\n" + "#DailyStats"
|
||||||
|
|
||||||
toot := &mastodon.Toot{
|
toot := &mastodon.Toot{
|
||||||
Status: msg,
|
Status: msg,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue