diff --git a/lib/fetcher.gitea.go b/lib/fetcher.gitea.go index 9e1db65..7f2406b 100644 --- a/lib/fetcher.gitea.go +++ b/lib/fetcher.gitea.go @@ -48,7 +48,7 @@ func (f GiteaFetcher) Fetch() []string { commit := r[0] if f.Cache.TryUpdate("gitea_"+url.QueryEscape(giteaURL), commit.Sha) { - messages = append(messages, fmt.Sprintf("Gitea: %s <%s>", commit.Commit.Message, commit.HTMLURL)) + messages = append(messages, fmt.Sprintf("📝 [Gitea] - (%s) %s - %s", repo, commit.Commit.Message, commit.HTMLURL)) } } return messages diff --git a/lib/fetcher.redmine.go b/lib/fetcher.redmine.go index e1e97ea..ccee024 100644 --- a/lib/fetcher.redmine.go +++ b/lib/fetcher.redmine.go @@ -14,14 +14,15 @@ type RedmineResponse struct { } type RedmineFetcher struct { - Config Config - Cache *Cache + BaseURL string + Key string + Cache *Cache } func (f RedmineFetcher) Fetch() []string { - redmineURL := fmt.Sprintf("%s/issues.json", f.Config.RedmineBaseURL) + redmineURL := fmt.Sprintf("%s/issues.json", f.BaseURL) req, _ := http.NewRequest("GET", redmineURL, nil) - req.Header.Set("X-Redmine-API-Key", f.Config.RedmineKey) + req.Header.Set("X-Redmine-API-Key", f.Key) var r RedmineResponse @@ -35,8 +36,8 @@ func (f RedmineFetcher) Fetch() []string { i := r.Issues[0] if f.Cache.TryUpdate("redmine", i.UpdatedOn) { - url := fmt.Sprintf("%s/issues/%d", f.Config.RedmineBaseURL, i.ID) - return []string{fmt.Sprintf("Redmine: #%d %s <%s>", i.ID, i.Subject, url)} + url := fmt.Sprintf("%s/issues/%d", f.BaseURL, i.ID) + return []string{fmt.Sprintf("🎫 [Redmine] - #%d %s - %s", i.ID, i.Subject, url)} } return []string{} } diff --git a/lib/fetcher.wikijs.go b/lib/fetcher.wikijs.go index bca27e1..6e8684c 100644 --- a/lib/fetcher.wikijs.go +++ b/lib/fetcher.wikijs.go @@ -19,15 +19,16 @@ type WikiResponse struct { } type WikiFetcher struct { - Config Config - Cache *Cache + BaseURL string + Token string + Cache *Cache } func (f WikiFetcher) Fetch() []string { q := `{"query":"{ pages { list(orderBy: UPDATED, orderByDirection: DESC, limit: 1){ path, updatedAt, title }}}"}` - wikiURL := fmt.Sprintf("%s/graphql", f.Config.WikiBaseURL) + wikiURL := fmt.Sprintf("%s/graphql", f.BaseURL) req, _ := http.NewRequest("POST", wikiURL, bytes.NewBuffer([]byte(q))) - req.Header.Set("Authorization", "Bearer "+f.Config.WikiToken) + req.Header.Set("Authorization", "Bearer "+f.Token) req.Header.Set("Content-Type", "application/json") var r WikiResponse @@ -41,8 +42,8 @@ func (f WikiFetcher) Fetch() []string { } u := r.Data.Pages.List[0] if f.Cache.TryUpdate("wiki", u.UpdatedAt) { - url := fmt.Sprintf("%s/%s", f.Config.WikiBaseURL, u.Path) - return []string{fmt.Sprintf("Wiki: %s <%s>", u.Title, url)} + url := fmt.Sprintf("%s/%s", f.BaseURL, u.Path) + return []string{fmt.Sprintf("📖 [WikiJS] - %s - %s", u.Title, url)} } return []string{} } diff --git a/lib/runner.go b/lib/runner.go index 7f76acb..12937b4 100644 --- a/lib/runner.go +++ b/lib/runner.go @@ -30,7 +30,7 @@ func getConfig() Config { } } -func getFetchers(config Config, cache *Cache) []Fetcher { +func getFetchers(config *Config, cache *Cache) []Fetcher { var fetchers []Fetcher fetchers = append(fetchers, &GiteaFetcher{ @@ -40,8 +40,16 @@ func getFetchers(config Config, cache *Cache) []Fetcher { Cache: cache, }) - fetchers = append(fetchers, &WikiFetcher{Config: config, Cache: cache}) - fetchers = append(fetchers, &RedmineFetcher{Config: config, Cache: cache}) + fetchers = append(fetchers, &WikiFetcher{ + BaseURL: config.WikiBaseURL, + Token: config.WikiToken, + Cache: cache, + }) + fetchers = append(fetchers, &RedmineFetcher{ + BaseURL: config.RedmineBaseURL, + Key: config.RedmineKey, + Cache: cache, + }) return fetchers } @@ -53,7 +61,10 @@ func getCache() Cache { } func getDiscordSender(config Config) DiscordSender { - return DiscordSender{Config: config} + return DiscordSender{ + Webhook: config.DiscordWebhook, + Fake: config.DiscordFake, + } } func getMessages(fetchers []Fetcher) []string { @@ -76,7 +87,7 @@ func Runner() { config := getConfig() cache := getCache() discord_sender := getDiscordSender(config) - fetchers := getFetchers(config, &cache) + fetchers := getFetchers(&config, &cache) for { log.Println("Run updater...") messages := getMessages(fetchers) diff --git a/lib/sender.discord.go b/lib/sender.discord.go index 0b8ec89..9984743 100644 --- a/lib/sender.discord.go +++ b/lib/sender.discord.go @@ -7,15 +7,16 @@ import ( ) type DiscordSender struct { - Config Config + Webhook string + Fake bool } func (d DiscordSender) Send(msg string) { b, _ := json.Marshal(map[string]string{"content": msg}) - if d.Config.DiscordFake { + if d.Fake { return } - http.Post(d.Config.DiscordWebhook, "application/json", bytes.NewBuffer(b)) + http.Post(d.Webhook, "application/json", bytes.NewBuffer(b)) } func (d DiscordSender) SendBatch(msgs []string) {