This commit is contained in:
parent
309b034180
commit
7aa6471696
|
@ -70,12 +70,12 @@ func (handler *subscriptionHandler) handlePublish(w http.ResponseWriter, r *http
|
|||
return err
|
||||
}
|
||||
|
||||
// handler.incStat(fmt.Sprintf("publish.%s", topic))
|
||||
handler.incStat("published")
|
||||
|
||||
if subs, e := handler.Subscribers[topic]; e {
|
||||
for _, sub := range subs {
|
||||
|
||||
// handler.incStat(fmt.Sprintf("publish.post.%s.%s", topic, sub.Callback))
|
||||
handler.incStat("publish.post")
|
||||
log.Printf("publish: creating post to %s\n", sub.Callback)
|
||||
postReq, err := http.NewRequest("POST", sub.Callback, strings.NewReader(string(feedContent)))
|
||||
if err != nil {
|
||||
|
@ -257,23 +257,27 @@ func (handler *subscriptionHandler) addSubscriberCallback(topic string, subscrib
|
|||
}
|
||||
|
||||
func (handler *subscriptionHandler) incStat(name string) {
|
||||
// if v, e := handler.Stats[name]; e {
|
||||
// handler.Stats[name] = Stat{LastUpdate: time.Now(), Updates: v.Updates + 1}
|
||||
// } else {
|
||||
// handler.Stats[name] = Stat{LastUpdate: time.Now(), Updates: 1}
|
||||
// }
|
||||
// handler.saveStats()
|
||||
handler.LockStats.Lock()
|
||||
defer handler.LockStats.Unlock()
|
||||
|
||||
if v, e := handler.Stats[name]; e {
|
||||
handler.Stats[name] = Stat{LastUpdate: time.Now(), Updates: v.Updates + 1}
|
||||
} else {
|
||||
handler.Stats[name] = Stat{LastUpdate: time.Now(), Updates: 1}
|
||||
}
|
||||
|
||||
handler.saveStats()
|
||||
}
|
||||
|
||||
func (handler *subscriptionHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method == http.MethodGet {
|
||||
fmt.Fprintln(w, "WebSub hub")
|
||||
_, _ = fmt.Fprintln(w, "WebSub hub")
|
||||
if r.URL.Query().Get("debug") == "1" {
|
||||
// handler.incStat("http.index.debug")
|
||||
handler.incStat("http.index.debug")
|
||||
enc := json.NewEncoder(w)
|
||||
enc.SetIndent("", " ")
|
||||
enc.Encode(handler.Subscribers)
|
||||
//enc.Encode(handler.Stats)
|
||||
_ = enc.Encode(handler.Subscribers)
|
||||
_ = enc.Encode(handler.Stats)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -292,14 +296,14 @@ func (handler *subscriptionHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
|
|||
mode := r.Form.Get("hub.mode")
|
||||
|
||||
if mode == "subscribe" {
|
||||
handler.handleSubscription(w, r)
|
||||
err = handler.handleSubscription(w, r)
|
||||
return
|
||||
} else if mode == "unsubscribe" {
|
||||
handler.handleUnsubscription(w, r)
|
||||
err = handler.handleUnsubscription(w, r)
|
||||
return
|
||||
} else if mode == "publish" {
|
||||
log.Println("hub.mode=publish received")
|
||||
handler.handlePublish(w, r)
|
||||
err = handler.handlePublish(w, r)
|
||||
return
|
||||
} else {
|
||||
http.Error(w, "Unknown hub.mode", 400)
|
||||
|
@ -308,6 +312,9 @@ func (handler *subscriptionHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
|
|||
}
|
||||
|
||||
func (handler *subscriptionHandler) loadStats() error {
|
||||
handler.LockStats.Lock()
|
||||
defer handler.LockStats.Unlock()
|
||||
|
||||
file, err := os.Open("./stats.json")
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
|
@ -321,10 +328,25 @@ func (handler *subscriptionHandler) loadStats() error {
|
|||
return err
|
||||
}
|
||||
|
||||
func (handler *subscriptionHandler) loadSubscriptions() error {
|
||||
func (handler *subscriptionHandler) saveStats() error {
|
||||
handler.LockStats.Lock()
|
||||
defer handler.LockStats.Unlock()
|
||||
|
||||
file, err := os.Create("./stats.json")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
dec := json.NewEncoder(file)
|
||||
dec.SetIndent("", " ")
|
||||
err = dec.Encode(&handler.Stats)
|
||||
return err
|
||||
}
|
||||
|
||||
func (handler *subscriptionHandler) loadSubscriptions() error {
|
||||
handler.LockSubs.Lock()
|
||||
defer handler.LockSubs.Unlock()
|
||||
|
||||
file, err := os.Open("./subscription.json")
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
|
@ -338,27 +360,6 @@ func (handler *subscriptionHandler) loadSubscriptions() error {
|
|||
return err
|
||||
}
|
||||
|
||||
func (handler *subscriptionHandler) load() error {
|
||||
err := handler.loadSubscriptions()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil //handler.loadStats()
|
||||
}
|
||||
|
||||
func (handler *subscriptionHandler) saveStats() error {
|
||||
handler.LockStats.Lock()
|
||||
defer handler.LockStats.Unlock()
|
||||
file, err := os.Create("./stats.json")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
dec := json.NewEncoder(file)
|
||||
dec.SetIndent("", " ")
|
||||
err = dec.Encode(&handler.Stats)
|
||||
return err
|
||||
}
|
||||
|
||||
func (handler *subscriptionHandler) saveSubscriptions() error {
|
||||
handler.LockSubs.Lock()
|
||||
|
@ -375,6 +376,14 @@ func (handler *subscriptionHandler) saveSubscriptions() error {
|
|||
return err
|
||||
}
|
||||
|
||||
func (handler *subscriptionHandler) load() error {
|
||||
err := handler.loadSubscriptions()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return handler.loadStats()
|
||||
}
|
||||
|
||||
func (handler *subscriptionHandler) save() error {
|
||||
handler.saveSubscriptions()
|
||||
return handler.saveStats()
|
||||
|
|
Loading…
Reference in New Issue
Block a user