- Timestamp:
- Oct 5, 2021, 5:31:06 PM (4 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/db.go
r568 r607 10 10 type Database interface { 11 11 Close() error 12 Stats() (*DatabaseStats, error) 12 13 13 14 ListUsers() ([]User, error) … … 25 26 ListDeliveryReceipts(networkID int64) ([]DeliveryReceipt, error) 26 27 StoreClientDeliveryReceipts(networkID int64, client string, receipts []DeliveryReceipt) error 28 } 29 30 type DatabaseStats struct { 31 Users int64 32 Networks int64 33 Channels int64 27 34 } 28 35 -
trunk/db_sqlite.go
r598 r607 206 206 } 207 207 208 func (db *SqliteDB) Stats() (*DatabaseStats, error) { 209 db.lock.RLock() 210 defer db.lock.RUnlock() 211 212 var stats DatabaseStats 213 row := db.db.QueryRow(`SELECT 214 (SELECT COUNT(*) FROM User) AS users, 215 (SELECT COUNT(*) FROM Network) AS networks, 216 (SELECT COUNT(*) FROM Channel) AS channels`) 217 if err := row.Scan(&stats.Users, &stats.Networks, &stats.Channels); err != nil { 218 return nil, err 219 } 220 221 return &stats, nil 222 } 223 208 224 func toNullString(s string) sql.NullString { 209 225 return sql.NullString{ -
trunk/service.go
r606 r607 1027 1027 1028 1028 func handleServiceServerStatus(dc *downstreamConn, params []string) error { 1029 stats := dc.user.srv.Stats() 1030 sendServicePRIVMSG(dc, fmt.Sprintf("%v users, %v downstreams", stats.Users, stats.Downstreams)) 1031 return nil 1032 } 1029 dbStats, err := dc.user.srv.db.Stats() 1030 if err != nil { 1031 return err 1032 } 1033 serverStats := dc.user.srv.Stats() 1034 sendServicePRIVMSG(dc, fmt.Sprintf("%v/%v users, %v downstreams, %v networks, %v channels", serverStats.Users, dbStats.Users, serverStats.Downstreams, dbStats.Networks, dbStats.Channels)) 1035 return nil 1036 }
Note:
See TracChangeset
for help on using the changeset viewer.