Implement a command to get the channels common to one or more users
This commit is contained in:
parent
eaebab0cf4
commit
cfefa1d627
|
@ -0,0 +1,22 @@
|
|||
import main
|
||||
import modules.userinfo as userinfo
|
||||
|
||||
class Chans:
|
||||
def __init__(self, register):
|
||||
register("chans", self.chans)
|
||||
|
||||
def chans(self, addr, authed, data, obj, spl, success, failure, info, incUsage, length):
|
||||
if authed:
|
||||
result = userinfo.getChans(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)
|
|
@ -16,6 +16,21 @@ def getWho(query):
|
|||
result[i] = f
|
||||
return result
|
||||
|
||||
def getChansSingle(name, query):
|
||||
query = ["live.chan."+name+"."+i for i in query]
|
||||
result = main.r.sinter(*query)
|
||||
if len(result) == 0:
|
||||
return None
|
||||
return [i.decode() for i in result]
|
||||
|
||||
def getChans(query):
|
||||
result = {}
|
||||
for i in main.pool.keys():
|
||||
f = getChansSingle(i, query)
|
||||
if f:
|
||||
result[i] = f
|
||||
return result
|
||||
|
||||
def getNumWhoEntries(name):
|
||||
return main.r.scard("live.who."+name)
|
||||
|
||||
|
|
Loading…
Reference in New Issue