Skip to content

Commit 6281491

Browse files
author
Jhonathan Espinosa
committed
SQL Insert error for some region [FIXED]
1 parent 4035b51 commit 6281491

File tree

3 files changed

+54
-36
lines changed

3 files changed

+54
-36
lines changed

Diff for: core/db.py

+48-31
Original file line numberDiff line numberDiff line change
@@ -28,74 +28,91 @@ def loadDatabase(self):
2828
return True
2929

3030
def sql_execute(self, sentence):
31-
self.cursor.execute(sentence)
31+
if type(sentence) is str:
32+
self.cursor.execute(sentence)
33+
else:
34+
self.cursor.execute(sentence[0], sentence[1])
3235
return self.cursor.fetchall()
3336

3437
def sql_one_row(self, sentence, column):
35-
self.cursor.execute(sentence)
38+
if type(sentence) is str:
39+
self.cursor.execute(sentence)
40+
else:
41+
self.cursor.execute(sentence[0], sentence[1])
3642
return self.cursor.fetchone()[column]
3743

3844
def sql_insert(self, sentence):
39-
self.cursor.execute(sentence)
45+
if type(sentence) is str:
46+
self.cursor.execute(sentence)
47+
else:
48+
self.cursor.execute(sentence[0], sentence[1])
4049
self.conn.commit()
4150
return True
4251

4352
def prop_sentences_stats(self, type, vId = None):
4453
return {
45-
'get_data' : "SELECT victims.*, geo.*, victims.ip AS ip_local, COUNT(clicks.id) FROM victims INNER JOIN geo ON victims.id = geo.id LEFT JOIN clicks ON clicks.id = victims.id GROUP BY victims.id ORDER BY victims.time DESC",
46-
'all_networks' : "SELECT networks.* FROM networks ORDER BY id",
47-
'get_preview' : "SELECT victims.*, geo.*, victims.ip AS ip_local FROM victims INNER JOIN geo ON victims.id = geo.id WHERE victims.id = '%s'" % (vId),
48-
'id_networks' : "SELECT networks.* FROM networks WHERE id = '%s'" % (vId),
49-
'get_requests' : "SELECT requests.*, geo.ip FROM requests INNER JOIN geo on geo.id = requests.user_id ORDER BY requests.date DESC, requests.id ",
50-
'get_sessions' : "SELECT COUNT(*) AS Total FROM networks",
51-
'get_clicks' : "SELECT COUNT(*) AS Total FROM clicks",
52-
'get_online' : "SELECT COUNT(*) AS Total FROM victims WHERE status = '%s'" % ('online')
54+
'get_data' : "SELECT victims.*, geo.*, victims.ip AS ip_local, COUNT(clicks.id) FROM victims INNER JOIN geo ON victims.id = geo.id LEFT JOIN clicks ON clicks.id = victims.id GROUP BY victims.id ORDER BY victims.time DESC",
55+
'all_networks' : "SELECT networks.* FROM networks ORDER BY id",
56+
'get_preview' : ("SELECT victims.*, geo.*, victims.ip AS ip_local FROM victims INNER JOIN geo ON victims.id = geo.id WHERE victims.id = ?" , vId),
57+
'id_networks' : ("SELECT networks.* FROM networks WHERE id = ?", vId),
58+
'get_requests' : "SELECT requests.*, geo.ip FROM requests INNER JOIN geo on geo.id = requests.user_id ORDER BY requests.date DESC, requests.id ",
59+
'get_sessions' : "SELECT COUNT(*) AS Total FROM networks",
60+
'get_clicks' : "SELECT COUNT(*) AS Total FROM clicks",
61+
'get_online' : ("SELECT COUNT(*) AS Total FROM victims WHERE status = ?", vId)
5362
}.get(type, False)
5463

5564
def sentences_stats(self, type, vId = None):
56-
return self.sql_execute(self.prop_sentences_stats(type, vId))
65+
return self.sql_execute(self.prop_sentences_stats(type, vId))
5766

5867
def prop_sentences_victim(self, type, data = None):
5968
if type == 'count_victim':
60-
return "SELECT COUNT(*) AS C FROM victims WHERE id = '%s'" % (data)
69+
t = (data,)
70+
return ("SELECT COUNT(*) AS C FROM victims WHERE id = ?" , t)
6171
elif type == 'count_times':
62-
return "SELECT COUNT(*) AS C FROM clicks WHERE id = '%s'" % (data)
72+
t = (data,)
73+
return ("SELECT COUNT(*) AS C FROM clicks WHERE id = ?" , t)
6374
elif type == 'update_victim':
64-
return "UPDATE victims SET ip = '%s', date = '%s', bVersion = '%s', browser = '%s', device = '%s', ports = '%s', time = '%s', cpu = '%s', status = '%s' WHERE id = '%s'" % (data[0].ip, data[0].date, data[0].version, data[0].browser, data[0].device, data[0].ports, data[2], data[0].cpu, 'online', data[1])
75+
t = (data[0].ip, data[0].date, data[0].version, data[0].browser, data[0].device, data[0].ports, data[2], data[0].cpu, 'online', data[1],)
76+
return ("UPDATE victims SET ip = ?, date = ?, bVersion = ?, browser = ?, device = ?, ports = ?, time = ?, cpu = ?, status = ? WHERE id = ?", t)
6577
elif type == 'update_victim_geo':
66-
return "UPDATE geo SET city = '%s', country_code = '%s', country_name = '%s', ip = '%s', latitude = '%s', longitude = '%s', metro_code = '%s', region_code = '%s', region_name = '%s', time_zone = '%s', zip_code = '%s', isp = '%s', ua='%s' WHERE id = '%s'" % (data[0].city, data[0].country_code, data[0].country_name, data[0].ip, data[0].latitude, data[0].longitude, data[0].metro_code, data[0].region_code, data[0].region_name, data[0].time_zone, data[0].zip_code, data[0].isp, data[0].ua, data[1])
78+
t = (data[0].city, data[0].country_code, data[0].country_name, data[0].ip, data[0].latitude, data[0].longitude, data[0].metro_code, data[0].region_code, data[0].region_name, data[0].time_zone, data[0].zip_code, data[0].isp, data[0].ua, data[1],)
79+
return ("UPDATE geo SET city = ?, country_code = ?, country_name = ?, ip = ?, latitude = ?, longitude = ?, metro_code = ?, region_code = ?, region_name = ?, time_zone = ?, zip_code = ?, isp = ?, ua=? WHERE id = ?", t)
6780
elif type == 'insert_victim':
68-
return "INSERT INTO victims(id, ip, date, bVersion, browser, device, ports, time, cpu, status) VALUES('%s','%s', '%s','%s', '%s','%s', '%s', '%s', '%s', '%s')" % (data[1], data[0].ip, data[0].date, data[0].version, data[0].browser, data[0].device, data[0].ports, data[2], data[0].cpu, 'online')
81+
t = (data[1], data[0].ip, data[0].date, data[0].version, data[0].browser, data[0].device, data[0].ports, data[2], data[0].cpu, 'online',)
82+
return ("INSERT INTO victims(id, ip, date, bVersion, browser, device, ports, time, cpu, status) VALUES(?,?, ?,?, ?,?, ?, ?, ?, ?)", t)
6983
elif type == 'insert_victim_geo':
70-
return "INSERT INTO geo(id, city, country_code, country_name, ip, latitude, longitude, metro_code, region_code, region_name, time_zone, zip_code, isp, ua) VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')" % (data[1], data[0].city, data[0].country_code, data[0].country_name, data[0].ip, data[0].latitude, data[0].longitude, data[0].metro_code, data[0].region_code, data[0].region_name, data[0].time_zone, data[0].zip_code, data[0].isp, data[0].ua)
84+
t = (data[1], data[0].city, data[0].country_code, data[0].country_name, data[0].ip, data[0].latitude, data[0].longitude, data[0].metro_code, data[0].region_code, data[0].region_name, data[0].time_zone, data[0].zip_code, data[0].isp, data[0].ua,)
85+
return ("INSERT INTO geo(id, city, country_code, country_name, ip, latitude, longitude, metro_code, region_code, region_name, time_zone, zip_code, isp, ua) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" , t)
7186
elif type == 'count_victim_network':
72-
return "SELECT COUNT(*) AS C FROM networks WHERE id = '%s' AND network = '%s'" % (data[0], data[1])
87+
return ("SELECT COUNT(*) AS C FROM networks WHERE id = ? AND network = ?", (data[0], data[1],))
7388
elif type == 'delete_networks':
74-
return "DELETE FROM networks WHERE id = '%s'" % (data[0])
89+
return ("DELETE FROM networks WHERE id = ?", (data[0],))
7590
elif type == 'update_network':
76-
return "UPDATE networks SET date = '%s' WHERE id = '%s' AND network = '%s'" % (data[2], data[0], data[1])
91+
return ("UPDATE networks SET date = ? WHERE id = ? AND network = ?" , (data[2], data[0], data[1],))
7792
elif type == 'insert_networks':
78-
return "INSERT INTO networks(id, public_ip, ip, network, date) VALUES('%s','%s', '%s', '%s','%s')" % (data[0], data[1], data[2], data[3], data[4])
93+
t = (data[0], data[1], data[2], data[3], data[4],)
94+
return ("INSERT INTO networks(id, public_ip, ip, network, date) VALUES(?,?, ?, ?,?)" , t)
7995
elif type == 'insert_requests':
80-
return "INSERT INTO requests(id, user_id, site, fid, name, value, date) VALUES('%s', '%s','%s', '%s', '%s','%s', '%s')" % (data[0].sId, data[0].id, data[0].site, data[0].fid, data[0].name, data[0].value, data[1])
96+
t = (data[0].sId, data[0].id, data[0].site, data[0].fid, data[0].name, data[0].value, data[1],)
97+
return ("INSERT INTO requests(id, user_id, site, fid, name, value, date) VALUES(?, ?,?, ?, ?,?, ?)" , t)
8198
elif type == 'insert_click':
82-
return "INSERT INTO clicks(id, site, date) VALUES('%s', '%s','%s')" % (data[0], data[1], data[2])
99+
return ("INSERT INTO clicks(id, site, date) VALUES(?, ?,?)", (data[0], data[1], data[2],))
83100
elif type == 'report_online':
84-
return "UPDATE victims SET status = '%s' WHERE id = '%s'" % ('online', data[0])
101+
return ("UPDATE victims SET status = ? WHERE id = ?" , ('online', data[0],))
85102
elif type == 'clean_online':
86-
return "UPDATE victims SET status = '%s' " % ('offline')
103+
return ("UPDATE victims SET status = ? ", ('offline',))
87104
elif type == 'disconnect_victim':
88-
return "UPDATE victims SET status = '%s' WHERE id = '%s'" % ('offline', data)
105+
return ("UPDATE victims SET status = ? WHERE id = ?" , ('offline', data,))
89106
else:
90-
return False
107+
return False
91108

92109
def sentences_victim(self, type, data = None, sRun = 1, column = 0):
93110
if sRun == 2:
94-
return self.sql_insert(self.prop_sentences_victim(type, data))
111+
return self.sql_insert(self.prop_sentences_victim(type, data))
95112
elif sRun == 3:
96-
return self.sql_one_row(self.prop_sentences_victim(type, data), column)
113+
return self.sql_one_row(self.prop_sentences_victim(type, data), column)
97114
else:
98-
return self.sql_execute(self.prop_sentences_victim(type, data))
115+
return self.sql_execute(self.prop_sentences_victim(type, data))
99116

100117
def __del__(self):
101118
self.conn.close()

Diff for: core/stats.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,22 @@ def home_get_dat():
4747
d = db.sentences_stats('get_data')
4848
n = db.sentences_stats('all_networks')
4949

50-
('clean_online')
5150
rows = db.sentences_stats('get_clicks')
5251
c = rows[0][0]
5352
rows = db.sentences_stats('get_sessions')
5453
s = rows[0][0]
55-
rows = db.sentences_stats('get_online')
54+
vId = ('online', )
55+
rows = db.sentences_stats('get_online', vId)
5656
o = rows[0][0]
5757

5858
return json.dumps({'status' : 'OK', 'd' : d, 'n' : n, 'c' : c, 's' : s, 'o' : o});
5959

6060
@app.route("/get_preview", methods=["POST"])
6161
def home_get_preview():
6262
vId = request.form['vId']
63-
d = db.sentences_stats('get_preview', vId)
64-
n = db.sentences_stats('id_networks', vId)
63+
t = (vId,)
64+
d = db.sentences_stats('get_preview', t)
65+
n = db.sentences_stats('id_networks', t)
6566
return json.dumps({'status' : 'OK', 'vId' : vId, 'd' : d, 'n' : n});
6667

6768
@app.route("/get_title", methods=["POST"])

Diff for: core/victim.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,5 +97,5 @@ def registerRequest():
9797
@app.route("/tping", methods=["POST"])
9898
def receivePing():
9999
vrequest = request.form['id']
100-
db.sentences_victim('report_online', [vrequest])
100+
db.sentences_victim('report_online', [vrequest], 2)
101101
return json.dumps({'status' : 'OK', 'vId' : vrequest});

0 commit comments

Comments
 (0)