Server Stats: remove port, room_index, and play_status

This commit is contained in:
albertosottile 2018-07-26 10:03:09 +02:00
parent bd766b4dfa
commit d1e0c974da

View File

@ -4,7 +4,6 @@ import codecs
import hashlib import hashlib
import os import os
import random import random
import re
import sqlite3 import sqlite3
import time import time
from string import Template from string import Template
@ -45,7 +44,7 @@ class SyncFactory(Factory):
if statsDbFile is not None: if statsDbFile is not None:
self.statsDbHandle = self._connectToStatsDb(statsDbFile) self.statsDbHandle = self._connectToStatsDb(statsDbFile)
logDelay = 5*(int(self.port)%10 + 1) logDelay = 5*(int(self.port)%10 + 1)
reactor.callLater(logDelay, self._scheduleClientSnapshot, self.statsDbHandle, self.port) reactor.callLater(logDelay, self._scheduleClientSnapshot, self.statsDbHandle)
else: else:
self.statsDbHandle = None self.statsDbHandle = None
@ -197,12 +196,12 @@ class SyncFactory(Factory):
def _connectToStatsDb(self, dbPath): def _connectToStatsDb(self, dbPath):
conn = sqlite3.connect(dbPath) conn = sqlite3.connect(dbPath)
c = conn.cursor() c = conn.cursor()
c.execute('create table if not exists clients_snapshots (snapshot_time integer, port integer, version string, room_index integer, play_status integer)') c.execute('create table if not exists clients_snapshots (snapshot_time integer, version string)')
conn.commit() conn.commit()
return conn return conn
def _scheduleClientSnapshot(self, dbHandler, portNumber): def _scheduleClientSnapshot(self, dbHandler):
self._clientSnapshotTimer = task.LoopingCall(self._roomManager.runClientSnapshot, dbHandler, portNumber) self._clientSnapshotTimer = task.LoopingCall(self._roomManager.runClientSnapshot, dbHandler)
self._clientSnapshotTimer.start(constants.SERVER_STATS_SNAPSHOT_INTERVAL) self._clientSnapshotTimer.start(constants.SERVER_STATS_SNAPSHOT_INTERVAL)
@ -280,14 +279,14 @@ class PublicRoomManager(RoomManager):
RoomManager.moveWatcher(self, watcher, room) RoomManager.moveWatcher(self, watcher, room)
watcher.setFile(watcher.getFile()) watcher.setFile(watcher.getFile())
def runClientSnapshot(self, dbHandler, portNumber): def runClientSnapshot(self, dbHandler):
snapshotTime = int(time.time()) snapshotTime = int(time.time())
c = dbHandler.cursor() c = dbHandler.cursor()
for idx, room in enumerate(self._rooms.values()): for idx, room in enumerate(self._rooms.values()):
playStatus = room.isPlaying() playStatus = room.isPlaying()
for watcher in room.getWatchers(): for watcher in room.getWatchers():
content = (snapshotTime, int(portNumber), watcher.getVersion(), idx, playStatus, ) content = (snapshotTime, watcher.getVersion(), )
c.execute("INSERT INTO clients_snapshots VALUES (?, ?, ?, ?, ?)", content) c.execute("INSERT INTO clients_snapshots VALUES (?, ?)", content)
dbHandler.commit() dbHandler.commit()
@ -475,12 +474,7 @@ class Watcher(object):
return self._name return self._name
def getVersion(self): def getVersion(self):
pattern = r'\A[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}\Z' return self._connector.getVersion()
versionString = self._connector.getVersion()
if re.match(pattern, versionString) is not None:
return versionString
else:
return None
def getFile(self): def getFile(self):
return self._file return self._file