from DatabaseAccess import DatabaseAccess
+import sqlite3
class Swarm:
- def __init__(self, dbname, id):
+ def __init__(self, dbname, id, row=None):
dba=DatabaseAccess(dbname);
dba.connect();
curs = dba.select_swarms(False, id);
- row = curs.fetchone();
- self.id = id;
+ row = curs.fetchone();
+ dba.disconnect();
+
+ self.id = row[0];
self.torrent = row[1];
self.filesize = row[2];
self.purpose = row[3];
def __str__(self):
return '[%s, %s, %s, %s, %s]' \
%(self.id, self.torrent, self.filesize, self.purpose, self.source);
-
+
class BtClient:
def __init__(self, dbname, id, name=None):
dba=DatabaseAccess(dbname);
else:
curs = dba.select_btclients(False, id);
row = curs.fetchone();
+ dba.disconnect();
+
self.id = id;
self.name = row[1];
self.language = row[2];
dba.connect();
curs = dba.select_client_sessions_by_id(False, id);
row = curs.fetchone();
+ dba.disconnect();
self.id = row[0];
self.swarm_id = row[1];
self.public_ip, self.public_port, self.ds_limit, self.us_limit, self.start_time);
class ClientSessionCollection:
- css = [];
-
def __init__(self, dbname, swarm_id, client_id=None):
dba=DatabaseAccess(dbname);
dba.connect();
curs = dba.select_client_sessions_by_swarm(False, swarm_id, client_id);
+ self.css = [];
for row in curs:
self.css.append(ClientSession(None, None, row));
+ dba.disconnect();
def getIter(self):
return iter(self.css);
self.download_speed, self.upload_speed, self.download_size, self.upload_size, self.eta);
class StatusMessageCollection:
- stms = [];
-
def __init__(self, dbname, cs_id, restrictions=None):
dba=DatabaseAccess(dbname);
dba.connect();
curs = dba.select_status_messages(False, cs_id, restrictions);
- for row in curs:
+ self.stms = []
+ for row in curs.fetchall():
#self.stms.append(StatusMessage(client_session, row))
self.stms.append(StatusMessage(row));
-
+ dba.disconnect();
+
def getIter(self):
return iter(self.stms);
self.message_type, self.index, self.begin, sself.length, self.listen_port);
class VerboseMessageCollection:
- vbms = [];
-
def __init__(self, dbname, cs_id, restrictions=None):
dba=DatabaseAccess(dbname);
dba.connect();
curs = dba.select_verbose_messages(False, cs_id, restrictions);
+ self.vbms = [];
for row in curs:
#self.vbms.append(VerboseMessage(client_session, row))
self.vbms.append(VerboseMessage(row));
-
+ dba.disconnect();
+
def getIter(self):
return iter(self.vbms);
def main():
dbname = sys.argv[1];
- sw = Swarm(dbname, 1);
- #print sw
-
-# cs = ClientSession(dbname, 8);
-# x=[];
-# y=[];
-# stmc = StatusMessageCollection(dbname, cs.id);
-# stmit = stmc.getIter();
-# while True:
-# try:
-# stm = next(stmit)
-# except StopIteration:
-# break
- #print(stm)
-# difftime = julian.julianToDatetime(stm.timestamp) - julian.julianToDatetime(cs.start_time)
-# x.append(difftime.seconds)
-# y.append(stm.download_speed)
+ csc = ClientSessionCollection(dbname, 1);
+ #cscit = csc.getIter();
-
-# plt.plot(x, y, 'm');
-# plt.grid(linestyle='dashed');
-# plt.show();
-
- csc = ClientSessionCollection(dbname, sw.id);
- cscit = csc.getIter();
-
- for i in range(1,3):
- try:
- cs = next(cscit)
- except StopIteration:
+ i=1
+ for cs in csc.css:
+ if i == 3:
break
- #print(cs)
+
+ #try:
+ #cs = next(cscit)
+ #except StopIteration:
+ #break
+ ##print(cs)
stmc = StatusMessageCollection(dbname, cs.id);
- stmit = stmc.getIter();
+ #stmit = stmc.getIter();
x_local = []
y_local = []
- while True:
- try:
- stm = next(stmit)
- except StopIteration:
- break
+ for stm in stmc.stms:
+ #while True:
+ #try:
+ #stm = next(stmit)
+ #except StopIteration:
+ #break
#print(stm)
difftime = julian.julianToDatetime(stm.timestamp) - julian.julianToDatetime(cs.start_time)
x_local.append(difftime.seconds)
plt.subplot(2, 1, i)
plt.plot(x_local, y_local)
plt.grid(True)
-
+ i = i+1
# plt.subplot(2,1,1)
# plt.plot([1,2,3], [2,3,4])