summaryrefslogtreecommitdiff
path: root/lib/commands.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/commands.py')
-rw-r--r--lib/commands.py56
1 files changed, 56 insertions, 0 deletions
diff --git a/lib/commands.py b/lib/commands.py
new file mode 100644
index 0000000..c9525db
--- /dev/null
+++ b/lib/commands.py
@@ -0,0 +1,56 @@
+from classes import userexist, PersonalError, r, host, clear, Colors
+from listcommands import ListCommands
+
+class Commands(object):
+
+ def command(self, what, cmd):
+ if what == 'clear':
+ clear()
+ elif what == 'set':
+ try:
+ if cmd[1] == 'user' and cmd[2] is not None:
+ if len(cmd[2]) > 10: raise PersonalError('lunghezza maggiore del consetito. Max 10')
+
+ if userexist(cmd[2]) == True: raise PersonalError('questo nome utente esiste giĆ ')
+
+ if len(cmd) > ListCommands.info['set'][1]: raise PersonalError(Colors.grey + 'set user' + Colors.red + ' accetta 1 parametro')
+
+ if self.user != '': r.zrem('usersname', self.user)
+
+ self.user = cmd[2]
+ r.hset('user:'+host, 'name', self.user)
+ r.zadd('usersname', self.user, 0)
+
+ print('Ok')
+ elif cmd[1] is not ListCommands.commands['set']:
+ raise IndexError
+ except IndexError:
+ ListCommands.err('wrong')
+ except PersonalError as e:
+ ListCommands.err('personal', e.value)
+ elif what == 'get':
+ try:
+ if len(cmd) > 2 and cmd[1] != 'user?': raise PersonalError(Colors.grey + 'get ' + Colors.red + 'accetta 1 parametro')
+
+ if cmd[1] == 'user':
+ if self.user != '':
+ print(r.hget('user:'+host, 'name').decode('utf-8'))
+ else:
+ print('nil')
+ elif cmd[1] == 'host':
+ print('localhost')
+ elif cmd[1] == 'port':
+ print('6379')
+ elif cmd[1] == 'user?':
+ if len(cmd) > 3: raise PersonalError(Colors.grey + 'get user?' + Colors.red + ' accetta 1 parametro')
+ print(userexist(cmd[2]))
+ elif cmd[1] not in ListCommands.commands:
+ raise KeyError
+ else:
+ raise IndexError
+ except IndexError:
+ ListCommands.err('wrong')
+ except KeyError:
+ ListCommands.err('keyword')
+ except PersonalError as e:
+ ListCommands.err('personal', e.value)