Implement users command to see the mutual users of one or more channels and squash some bugs
This commit is contained in:
parent
a98ed4e4d0
commit
44aa0f1727
|
@ -7,6 +7,9 @@ class Chans:
|
||||||
|
|
||||||
def chans(self, addr, authed, data, obj, spl, success, failure, info, incUsage, length):
|
def chans(self, addr, authed, data, obj, spl, success, failure, info, incUsage, length):
|
||||||
if authed:
|
if authed:
|
||||||
|
if len(spl) < 2:
|
||||||
|
incUsage("chans")
|
||||||
|
return
|
||||||
result = userinfo.getChans(spl[1:])
|
result = userinfo.getChans(spl[1:])
|
||||||
rtrn = ""
|
rtrn = ""
|
||||||
for i in result.keys():
|
for i in result.keys():
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
import main
|
||||||
|
import modules.userinfo as userinfo
|
||||||
|
|
||||||
|
class Users:
|
||||||
|
def __init__(self, register):
|
||||||
|
register("users", self.users)
|
||||||
|
|
||||||
|
def users(self, addr, authed, data, obj, spl, success, failure, info, incUsage, length):
|
||||||
|
if authed:
|
||||||
|
if len(spl) < 2:
|
||||||
|
incUsage("users")
|
||||||
|
return
|
||||||
|
result = userinfo.getUsers(spl[1:])
|
||||||
|
rtrn = ""
|
||||||
|
for i in result.keys():
|
||||||
|
rtrn += "Matches from: %s" % i
|
||||||
|
rtrn += "\n"
|
||||||
|
for x in result[i]:
|
||||||
|
rtrn += (x)
|
||||||
|
rtrn += "\n"
|
||||||
|
rtrn += "\n"
|
||||||
|
info(rtrn)
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
incUsage(None)
|
|
@ -20,5 +20,6 @@
|
||||||
"loadmod": "loadmod <module>",
|
"loadmod": "loadmod <module>",
|
||||||
"msg": "msg <name> <target> <message...>",
|
"msg": "msg <name> <target> <message...>",
|
||||||
"mon": "mon -h",
|
"mon": "mon -h",
|
||||||
"chans": "chans <nick>"
|
"chans": "chans <nick>",
|
||||||
|
"users": "users <channel>"
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,17 +16,32 @@ def getWho(query):
|
||||||
result[i] = f
|
result[i] = f
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def getChansSingle(name, query):
|
def getChansSingle(name, nick):
|
||||||
query = ["live.chan."+name+"."+i for i in query]
|
nick = ["live.chan."+name+"."+i for i in nick]
|
||||||
result = main.r.sinter(*query)
|
result = main.r.sinter(*nick)
|
||||||
if len(result) == 0:
|
if len(result) == 0:
|
||||||
return None
|
return None
|
||||||
return [i.decode() for i in result]
|
return [i.decode() for i in result]
|
||||||
|
|
||||||
def getChans(query):
|
def getChans(nick):
|
||||||
result = {}
|
result = {}
|
||||||
for i in main.pool.keys():
|
for i in main.pool.keys():
|
||||||
f = getChansSingle(i, query)
|
f = getChansSingle(i, nick)
|
||||||
|
if f:
|
||||||
|
result[i] = f
|
||||||
|
return result
|
||||||
|
|
||||||
|
def getUsersSingle(name, nick):
|
||||||
|
nick = ["live.who."+name+"."+i for i in nick]
|
||||||
|
result = main.r.sinter(*nick)
|
||||||
|
if len(result) == 0:
|
||||||
|
return None
|
||||||
|
return [i.decode() for i in result]
|
||||||
|
|
||||||
|
def getUsers(nick):
|
||||||
|
result = {}
|
||||||
|
for i in main.pool.keys():
|
||||||
|
f = getUsersSingle(i, nick)
|
||||||
if f:
|
if f:
|
||||||
result[i] = f
|
result[i] = f
|
||||||
return result
|
return result
|
||||||
|
|
Loading…
Reference in New Issue