def commandAdd(self, command): """ Add a new agent display the address and balance add the agent to the profiles """ if len(command) < 2: self.writeConsole('You need to supply a seed value') return self.agentSeed = command[1] util.getAgent(self) util.getAddress(self) util.initialTip(self) util.getBalance(self) self.agentNick = util.getNick(self, self.agentAddress) conn = sqlite3.connect('coinflow.db') c = conn.cursor() c.execute('select id from profiles where seed=?;', (command[1],)) id = c.fetchone() if id is None: c.execute('insert into profiles (nick, seed) values (?,?);', (str(self.agentNick), str(self.agentSeed))) else: c.execute('update profiles set nick=? where seed=?;', (str(self.agentNick), str(self.agentSeed))) conn.commit() conn.close() self.writeConsole('Agent created.\nAddress is ' + str(self.agentAddress) + '\nBalance is ' + str(self.agentBalance)) #check for new nicknames if util.pollAllPosts(self): util.checkNewNicks(self) #self.poll() return
def commandAdd(self, command): """ Add a new agent display the address and balance add the agent to the profiles """ if len(command) < 2: self.writeConsole('You need to supply a seed value') return self.agentSeed = command[1] util.getAgent(self) util.getAddress(self) util.initialTip(self) util.getBalance(self) self.agentNick = util.getNick(self, self.agentAddress) conn = sqlite3.connect('coinflow.db') c = conn.cursor() c.execute('select id from profiles where seed=?;', (command[1], )) id = c.fetchone() if id is None: c.execute('insert into profiles (nick, seed) values (?,?);', (str(self.agentNick), str(self.agentSeed))) else: c.execute('update profiles set nick=? where seed=?;', (str(self.agentNick), str(self.agentSeed))) conn.commit() conn.close() self.writeConsole('Agent created.\nAddress is ' + str(self.agentAddress) + '\nBalance is ' + str(self.agentBalance)) #check for new nicknames if util.pollAllPosts(self): util.checkNewNicks(self) #self.poll() return
def commandFollow(self, command): """ Follow the specified agent can specify address or nick update the list of nicks first """ if self.agent is None: self.writeConsole( 'You don\'t have an active agent.\n/add an agent or /login in order to follow agents.' ) return if len(command) < 2: self.writeConsole('You need to specify an agent to follow') return #update nicknames if util.pollAllPosts(self): util.checkNewNicks(self) conn = sqlite3.connect('coinflow.db') c = conn.cursor() if util.isAddress(command[1]): query = "select address from accounts where address = '" + command[ 1] + "';" rows = util.putQuery(self, query) if rows is False: self.writeConsole('Couldn\'t find agent ' + command[1]) return address = command[1] nick = util.getNick(self, address) else: c.execute('select address from nicks where nick=?;', (command[1], )) address = c.fetchone() if address is None: self.writeConsole('Couldn\'t find agent ' + command[1]) return address = address[0] nick = command[1] c.execute("select id from follows where address = ?;", (str(address), )) id = c.fetchone() if id is None: c.execute( "insert into follows (nick, address, account) values (?,?,?);", (str(nick), str(address), str(self.agentAddress))) else: c.execute("update follows set nick=? where address=? and account=?;", (str(nick), str(address), str(self.agentAddress))) conn.commit() conn.close() self.writeConsole('You are now following ' + nick) return
def commandLogin(self, command): """ Login as an existing agent can login using nick, address or seed. display the nickname (if present), address and balance check profiles and update or insert """ if len(command) < 2: self.writeConsole( 'You need to supply some detail for the agent you want to login as.\nCould be the agents nickname, address or seed' ) return seed = util.getSeedFromNick(command[1]) if seed is False: self.agentSeed = command[1] else: self.agentSeed = seed util.getAgent(self) util.getAddress(self) util.getBalance(self) self.agentNick = util.getNick(self, self.agentAddress) conn = sqlite3.connect('coinflow.db') c = conn.cursor() c.execute('select id from profiles where seed=?;', (str(self.agentSeed), )) id = c.fetchone() if id is None: c.execute('insert into profiles (nick, seed) values (?,?);', (str(self.agentNick), str(self.agentSeed))) else: c.execute('update profiles set nick=? where seed=?;', (str(self.agentNick), str(self.agentSeed))) conn.commit() conn.close() self.writeConsole(( ('Logged in as ' + str(self.agentNick)) if len(self.agentNick) > 0 else ('Logged in')) + '.\nAddress is ' + str(self.agentAddress) + '\nBalance is ' + str(self.agentBalance)) #check for new nicknames if util.pollAllPosts(self): util.checkNewNicks(self) #check for new posts from follows if util.pollFollowsPosts(self): util.displayFollowsPosts(self) #self.poll() return
def commandFollow(self, command): """ Follow the specified agent can specify address or nick update the list of nicks first """ if self.agent is None: self.writeConsole('You don\'t have an active agent.\n/add an agent or /login in order to follow agents.') return if len(command) < 2: self.writeConsole('You need to specify an agent to follow') return #update nicknames if util.pollAllPosts(self): util.checkNewNicks(self) conn = sqlite3.connect('coinflow.db') c = conn.cursor() if util.isAddress(command[1]): query = "select address from accounts where address = '" + command[1] + "';" rows = util.putQuery(self, query) if rows is False: self.writeConsole('Couldn\'t find agent ' + command[1]) return address = command[1] nick = util.getNick(self, address) else: c.execute('select address from nicks where nick=?;', (command[1],)) address = c.fetchone() if address is None: self.writeConsole('Couldn\'t find agent ' + command[1]) return address = address[0] nick = command[1] c.execute("select id from follows where address = ?;", (str(address),)) id = c.fetchone() if id is None: c.execute("insert into follows (nick, address, account) values (?,?,?);", (str(nick), str(address), str(self.agentAddress))) else: c.execute("update follows set nick=? where address=? and account=?;", (str(nick), str(address), str(self.agentAddress))) conn.commit() conn.close() self.writeConsole('You are now following ' + nick) return
def commandLogin(self, command): """ Login as an existing agent can login using nick, address or seed. display the nickname (if present), address and balance check profiles and update or insert """ if len(command) < 2: self.writeConsole('You need to supply some detail for the agent you want to login as.\nCould be the agents nickname, address or seed') return seed = util.getSeedFromNick(command[1]) if seed is False: self.agentSeed = command[1] else: self.agentSeed = seed util.getAgent(self) util.getAddress(self) util.getBalance(self) self.agentNick = util.getNick(self, self.agentAddress) conn = sqlite3.connect('coinflow.db') c = conn.cursor() c.execute('select id from profiles where seed=?;', (str(self.agentSeed),)) id = c.fetchone() if id is None: c.execute('insert into profiles (nick, seed) values (?,?);', (str(self.agentNick), str(self.agentSeed))) else: c.execute('update profiles set nick=? where seed=?;', (str(self.agentNick), str(self.agentSeed))) conn.commit() conn.close() self.writeConsole((('Logged in as ' + str(self.agentNick)) if len(self.agentNick) > 0 else ('Logged in')) + '.\nAddress is ' + str(self.agentAddress) + '\nBalance is ' + str(self.agentBalance)) #check for new nicknames if util.pollAllPosts(self): util.checkNewNicks(self) #check for new posts from follows if util.pollFollowsPosts(self): util.displayFollowsPosts(self) #self.poll() return