archive
This commit is contained in:
85
MovieNight/scrapedagain/stats.go
Executable file
85
MovieNight/scrapedagain/stats.go
Executable file
@@ -0,0 +1,85 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/zorchenhimer/MovieNight/common"
|
||||
)
|
||||
|
||||
type streamStats struct {
|
||||
messageIn int
|
||||
messageOut int
|
||||
maxUsers int
|
||||
start time.Time
|
||||
mutex sync.Mutex
|
||||
|
||||
streamStart time.Time
|
||||
streamLive bool // True if live
|
||||
}
|
||||
|
||||
func newStreamStats() streamStats {
|
||||
return streamStats{start: time.Now(), streamLive: false}
|
||||
}
|
||||
|
||||
func (s *streamStats) msgInInc() {
|
||||
s.mutex.Lock()
|
||||
s.messageIn++
|
||||
s.mutex.Unlock()
|
||||
}
|
||||
|
||||
func (s *streamStats) msgOutInc() {
|
||||
s.mutex.Lock()
|
||||
s.messageOut++
|
||||
s.mutex.Unlock()
|
||||
}
|
||||
|
||||
func (s *streamStats) updateMaxUsers(count int) {
|
||||
s.mutex.Lock()
|
||||
if count > s.maxUsers {
|
||||
s.maxUsers = count
|
||||
}
|
||||
s.mutex.Unlock()
|
||||
}
|
||||
|
||||
func (s *streamStats) getMaxUsers() int {
|
||||
s.mutex.Lock()
|
||||
defer s.mutex.Unlock()
|
||||
|
||||
return s.maxUsers
|
||||
}
|
||||
|
||||
func (s *streamStats) Print() {
|
||||
s.mutex.Lock()
|
||||
defer s.mutex.Unlock()
|
||||
|
||||
common.LogInfof("Messages In: %d\n", s.messageIn)
|
||||
common.LogInfof("Messages Out: %d\n", s.messageOut)
|
||||
common.LogInfof("Max users in chat: %d\n", s.maxUsers)
|
||||
common.LogInfof("Total Time: %s\n", time.Since(s.start))
|
||||
}
|
||||
|
||||
func (s *streamStats) startStream() {
|
||||
s.mutex.Lock()
|
||||
defer s.mutex.Unlock()
|
||||
|
||||
s.streamLive = true
|
||||
s.streamStart = time.Now()
|
||||
}
|
||||
|
||||
func (s *streamStats) endStream() {
|
||||
s.mutex.Lock()
|
||||
defer s.mutex.Unlock()
|
||||
|
||||
s.streamLive = false
|
||||
}
|
||||
|
||||
func (s *streamStats) getStreamLength() time.Duration {
|
||||
s.mutex.Lock()
|
||||
defer s.mutex.Unlock()
|
||||
|
||||
if !s.streamLive {
|
||||
return 0
|
||||
}
|
||||
return time.Since(s.streamStart)
|
||||
}
|
||||
Reference in New Issue
Block a user