def __listen(self): print("Listening...") cursor = Connection().getInstance() while True: data, clientInfo = self.incoming.receive() clientIP, clientPort = clientInfo print("DEBUG: Received from " + clientIP + ":" + str(clientPort)) print("DEBUG: ", data) packet = Packet(raw_data=data) type = packet.get_type() print("DEBUG: Type ->", type) if type == PacketType.MESSAGE: print("message: ", packet.get()) if type == PacketType.PING: outgoing_packet = Packet(PacketType.PING) outgoing_packet.add("pong") self.outgoing.send(outgoing_packet, clientIP, clientPort) if type == PacketType.LOGIN: outgoing_packet = Packet(PacketType.LOGIN) login = packet.get() password = packet.get() print("DEBUG: Login ->", login) print("DEBUG: Password ->", password) querry = "SELECT * FROM `users` WHERE `username`=? AND `password`=?" cursor.execute(querry, (login, password)) users = cursor.fetchall() if len(users) == 1: user = users[0] print("DEBUG: Login success") outgoing_packet.add(1) self.users.append([user[0], user[1], clientIP, clientPort]) else: print("DEBUG: Login failed") outgoing_packet.add(0) self.outgoing.send(outgoing_packet, clientIP, clientPort)
def main(): print "Connecting" db = Connection() db.connect() print "Compressing thumbnails" db.execute("""SELECT id FROM thumbnail""") for (id,) in db.cursor.fetchall(): db.execute("""SELECT thumbnail FROM thumbnail WHERE id = %d""" % id) thumbnail, = db.cursor.fetchone() new_thumbnail = compress(id, thumbnail) if new_thumbnail: db.execute( """UPDATE thumbnail SET thumbnail = %(tn)s WHERE id = %(id)s""", {"tn": db.make_binary(new_thumbnail), "id": id}, ) db.commit() print "Compressed thumbnail %d from %d bytes to %d bytes" % (id, len(thumbnail), len(new_thumbnail))
def process_item(self, item, spider): """For each item, check if uname exists. Write tweet to database """ db = Connection(host = HOST_NAME, database = MYSQL_DB_NAME, user = MYSQL_USER_NAME, password = MYSQL_PASSWORD) tweet = item["tweet"] user = db.get("SELECT id FROM users WHERE username=%s", item["username"]) twt = db.get("SELECT * FROM tweets WHERE tweet=%s", tweet) if not twt: if user: db.execute("INSERT into tweets (user, tweet) VALUES (%s, %s)", user["id"], tweet) else: db.execute("INSERT into users (username) VALUES (%s)", item["username"]) user = db.get("SELECT id FROM users WHERE username=%s", item["username"]) db.execute("INSERT into tweets (user, tweet) VALUES (%s, %s)", user["id"], tweet) db.close() return item
class Filesys(object): def __init__(self): self.db = None def connect(self, connstr = None): self.db = Connection(connstr) self.db.connect() self.prepare_queries() def prepare_queries(self): self.db.prepare("""PREPARE get_latest_rev AS SELECT MAX(rev_id) AS rev_id FROM revision""") self.db.prepare("""PREPARE get_root(INTEGER) AS SELECT rev_id, time, id, name, size, modified FROM revision JOIN file ON root_id = id WHERE rev_id = $1""") self.db.prepare("""PREPARE get_all_roots AS SELECT rev_id,time, id, name, size, modified FROM revision JOIN file ON root_id = id""") self.db.prepare("""PREPARE get_subdirs(INTEGER) AS SELECT id, name, size, modified, md5, children, descendants, free_space, total_space FROM file_in_dir JOIN file ON file_id = id NATURAL JOIN directory NATURAL LEFT JOIN drive WHERE dir_id = $1 ORDER BY LOWER(name)""") self.db.prepare("""PREPARE get_children(INTEGER) AS SELECT id, name, size, modified, md5, children, descendants, free_space, total_space FROM file_in_dir JOIN file ON file_id = id NATURAL LEFT JOIN directory NATURAL LEFT JOIN drive WHERE dir_id = $1 ORDER BY LOWER(name)""") def get_latest_rev(self): self.db.execute("""EXECUTE get_latest_rev""") return self.db.fetchone()['rev_id'] def get_root(self, rev_id): params = {'rev_id': rev_id} self.db.execute("""EXECUTE get_root(%(rev_id)s)""", params) row = self.db.fetchone() return Item(row) def get_all_roots(self): params = {} self.db.execute("""EXECUTE get_all_roots""", params) rv = [] for row in self.db.fetchall(): rv.append(Item(row)) return rv def get_subdirs(self, id): params = {'id': id} self.db.execute("""EXECUTE get_subdirs(%(id)s)""", params) rv = [] for row in self.db.fetchall(): rv.append(Item(row)) return rv def get_children(self, id): params = {'id': id} self.db.execute("""EXECUTE get_children(%(id)s)""", params) rv = [] for row in self.db.fetchall(): rv.append(Item(row)) return rv