Implement a command to get the channels common to one or more users

This commit is contained in:
Mark Veidemanis 2018-10-07 20:48:39 +01:00
parent eaebab0cf4
commit cfefa1d627
2 changed files with 37 additions and 0 deletions

22
commands/chans.py Normal file
View File

@ -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)

View File

@ -16,6 +16,21 @@ def getWho(query):
result[i] = f result[i] = f
return result 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): def getNumWhoEntries(name):
return main.r.scard("live.who."+name) return main.r.scard("live.who."+name)