more tweaks
This commit is contained in:
@@ -48,7 +48,7 @@ func (f GiteaFetcher) Fetch() []string {
|
|||||||
commit := r[0]
|
commit := r[0]
|
||||||
|
|
||||||
if f.Cache.TryUpdate("gitea_"+url.QueryEscape(giteaURL), commit.Sha) {
|
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
|
return messages
|
||||||
|
|||||||
@@ -14,14 +14,15 @@ type RedmineResponse struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type RedmineFetcher struct {
|
type RedmineFetcher struct {
|
||||||
Config Config
|
BaseURL string
|
||||||
Cache *Cache
|
Key string
|
||||||
|
Cache *Cache
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f RedmineFetcher) Fetch() []string {
|
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, _ := 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
|
var r RedmineResponse
|
||||||
|
|
||||||
@@ -35,8 +36,8 @@ func (f RedmineFetcher) Fetch() []string {
|
|||||||
|
|
||||||
i := r.Issues[0]
|
i := r.Issues[0]
|
||||||
if f.Cache.TryUpdate("redmine", i.UpdatedOn) {
|
if f.Cache.TryUpdate("redmine", i.UpdatedOn) {
|
||||||
url := fmt.Sprintf("%s/issues/%d", f.Config.RedmineBaseURL, i.ID)
|
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{fmt.Sprintf("🎫 [Redmine] - #%d %s - %s", i.ID, i.Subject, url)}
|
||||||
}
|
}
|
||||||
return []string{}
|
return []string{}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,15 +19,16 @@ type WikiResponse struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type WikiFetcher struct {
|
type WikiFetcher struct {
|
||||||
Config Config
|
BaseURL string
|
||||||
Cache *Cache
|
Token string
|
||||||
|
Cache *Cache
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f WikiFetcher) Fetch() []string {
|
func (f WikiFetcher) Fetch() []string {
|
||||||
q := `{"query":"{ pages { list(orderBy: UPDATED, orderByDirection: DESC, limit: 1){ path, updatedAt, title }}}"}`
|
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, _ := 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")
|
req.Header.Set("Content-Type", "application/json")
|
||||||
|
|
||||||
var r WikiResponse
|
var r WikiResponse
|
||||||
@@ -41,8 +42,8 @@ func (f WikiFetcher) Fetch() []string {
|
|||||||
}
|
}
|
||||||
u := r.Data.Pages.List[0]
|
u := r.Data.Pages.List[0]
|
||||||
if f.Cache.TryUpdate("wiki", u.UpdatedAt) {
|
if f.Cache.TryUpdate("wiki", u.UpdatedAt) {
|
||||||
url := fmt.Sprintf("%s/%s", f.Config.WikiBaseURL, u.Path)
|
url := fmt.Sprintf("%s/%s", f.BaseURL, u.Path)
|
||||||
return []string{fmt.Sprintf("Wiki: %s <%s>", u.Title, url)}
|
return []string{fmt.Sprintf("📖 [WikiJS] - %s - %s", u.Title, url)}
|
||||||
}
|
}
|
||||||
return []string{}
|
return []string{}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ func getConfig() Config {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getFetchers(config Config, cache *Cache) []Fetcher {
|
func getFetchers(config *Config, cache *Cache) []Fetcher {
|
||||||
var fetchers []Fetcher
|
var fetchers []Fetcher
|
||||||
|
|
||||||
fetchers = append(fetchers, &GiteaFetcher{
|
fetchers = append(fetchers, &GiteaFetcher{
|
||||||
@@ -40,8 +40,16 @@ func getFetchers(config Config, cache *Cache) []Fetcher {
|
|||||||
Cache: cache,
|
Cache: cache,
|
||||||
})
|
})
|
||||||
|
|
||||||
fetchers = append(fetchers, &WikiFetcher{Config: config, Cache: cache})
|
fetchers = append(fetchers, &WikiFetcher{
|
||||||
fetchers = append(fetchers, &RedmineFetcher{Config: config, Cache: cache})
|
BaseURL: config.WikiBaseURL,
|
||||||
|
Token: config.WikiToken,
|
||||||
|
Cache: cache,
|
||||||
|
})
|
||||||
|
fetchers = append(fetchers, &RedmineFetcher{
|
||||||
|
BaseURL: config.RedmineBaseURL,
|
||||||
|
Key: config.RedmineKey,
|
||||||
|
Cache: cache,
|
||||||
|
})
|
||||||
|
|
||||||
return fetchers
|
return fetchers
|
||||||
}
|
}
|
||||||
@@ -53,7 +61,10 @@ func getCache() Cache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func getDiscordSender(config Config) DiscordSender {
|
func getDiscordSender(config Config) DiscordSender {
|
||||||
return DiscordSender{Config: config}
|
return DiscordSender{
|
||||||
|
Webhook: config.DiscordWebhook,
|
||||||
|
Fake: config.DiscordFake,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getMessages(fetchers []Fetcher) []string {
|
func getMessages(fetchers []Fetcher) []string {
|
||||||
@@ -76,7 +87,7 @@ func Runner() {
|
|||||||
config := getConfig()
|
config := getConfig()
|
||||||
cache := getCache()
|
cache := getCache()
|
||||||
discord_sender := getDiscordSender(config)
|
discord_sender := getDiscordSender(config)
|
||||||
fetchers := getFetchers(config, &cache)
|
fetchers := getFetchers(&config, &cache)
|
||||||
for {
|
for {
|
||||||
log.Println("Run updater...")
|
log.Println("Run updater...")
|
||||||
messages := getMessages(fetchers)
|
messages := getMessages(fetchers)
|
||||||
|
|||||||
@@ -7,15 +7,16 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type DiscordSender struct {
|
type DiscordSender struct {
|
||||||
Config Config
|
Webhook string
|
||||||
|
Fake bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d DiscordSender) Send(msg string) {
|
func (d DiscordSender) Send(msg string) {
|
||||||
b, _ := json.Marshal(map[string]string{"content": msg})
|
b, _ := json.Marshal(map[string]string{"content": msg})
|
||||||
if d.Config.DiscordFake {
|
if d.Fake {
|
||||||
return
|
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) {
|
func (d DiscordSender) SendBatch(msgs []string) {
|
||||||
|
|||||||
Reference in New Issue
Block a user