Beispiel #1
0
 def commandToggleRecord(self, schid, targetMode, toID, fromID, params=""):
     (error, clid) = ts3lib.getClientID(schid)
     (error, recording) = ts3lib.getClientVariableAsInt(schid, clid, ts3defines.ClientProperties.CLIENT_IS_RECORDING)
     if not recording:
         ts3lib.startVoiceRecording(schid)
     elif recording:
         ts3lib.stopVoiceRecording(schid)
Beispiel #2
0
 def onUpdateClientEvent(self, schid, clientID, invokerID, invokerName, invokerUniqueIdentifier):
     return
     if self.check and self.toggle:
         (error, _clid) = ts3lib.getClientID(schid)
         if not clientID == _clid:
             (error, _tcid) = ts3lib.getChannelOfClient(schid, clientID)
             if _tcid in self.ownchannels:
                 (error, _cgid) = ts3lib.getClientVariableAsInt(schid, _clid, ts3defines.ClientPropertiesRare.CLIENT_CHANNEL_GROUP_ID)
                 if _cgid in [self.smgroup, self.sagroup]:
                     if self.checkRecording:
                         (error, clientRecStatus) = ts3lib.getClientVariableAsInt(schid, clientID, ts3defines.ClientProperties.CLIENT_IS_RECORDING)
                         if clientRecStatus == 1:
                             self.reason == "Recording"
                             _schid = ts3lib.getCurrentschid()
                             self.requestedC.extend([1])
                             _dbid = ts3lib.requestClientDBIDfromUID(_schid, invokerUniqueIdentifier)
Beispiel #3
0
 def onClientChannelGroupChangedEvent(self, schid, channelGroupID, channelID, clientID, invokerClientID, invokerName, invokerUniqueIdentity):
     if not self.check: return False
     if self.toggle:
         (error, _clid) = ts3lib.getClientID(schid)
         (error, _cid) = ts3lib.getChannelOfClient(schid, _clid)
         if clientID == _clid:
             if channelGroupID == self.sagroup:
                 if self.ownchannels.__contains__(channelID):
                     _t = False
                 else:
                     self.ownchannels.append(channelID)
             elif channelGroupID == self.smgroup:
                 (error, neededTP) = ts3lib.getChannelVariableAsInt(schid, _cid, ts3defines.ChannelPropertiesRare.CHANNEL_NEEDED_TALK_POWER)
                 if neededTP > 0:
                     (error, clients) = ts3lib.getChannelClientList(schid, _cid)
                     for client in clients:
                         if client == _clid: continue
                         (error, _cgid) = ts3lib.getClientVariableAsInt(schid, client, ts3defines.ClientPropertiesRare.CLIENT_CHANNEL_GROUP_ID)
                         if _cgid == self.sagroup: continue
                         (error, uid) = ts3lib.getClientVariableAsString(schid, client, ts3defines.ClientProperties.CLIENT_UNIQUE_IDENTIFIER)
                         if self.InContacts(uid) == 0:
                             ts3lib.requestClientSetIsTalker(schid, client, True)
         elif channelID == _cid and channelGroupID == self.sbgroup:
             #(error, uid) = ts3lib.getClientVariableAsString(schid, clientID, ts3defines.ClientProperties.CLIENT_UNIQUE_IDENTIFIER)
             (error, _cid) = ts3lib.getChannelOfClient(schid, clientID)
             if _cid in self.ownchannels:
                 ts3lib.requestClientKickFromChannel(schid, clientID, "You were banned by \"%s\""%invokerName + (" for \"%s\""%invokerName) if self.reason != "" else "")
Beispiel #4
0
 def dbInsert(self,
              schid,
              cid,
              clid,
              cgid,
              dbid=None,
              invokerName="",
              invokerUID=""):
     if PluginHost.cfg.getboolean("general", "verbose"):
         print("got clid:", clid)
     for v in [schid, cid, clid, cgid]:
         if v is None: return
     (err, suid) = ts3lib.getServerVariable(
         schid,
         ts3defines.VirtualServerProperties.VIRTUALSERVER_UNIQUE_IDENTIFIER)
     uuid = "{}|{}".format(suid, cid)
     self.execSQL(
         "CREATE TABLE IF NOT EXISTS `{}` (`TIMESTAMP` NUMERIC, `NAME` TEXT, `UID` TEXT, `DBID` NUMERIC UNIQUE, `CGID` NUMERIC, `INVOKERNAME` TEXT, `INVOKERUID` TEXT);"
         .format(uuid))
     (err, name) = ts3lib.getClientVariableAsString(
         schid, clid, ts3defines.ClientProperties.CLIENT_NICKNAME)
     (err, uid) = ts3lib.getClientVariableAsString(
         schid, clid, ts3defines.ClientProperties.CLIENT_UNIQUE_IDENTIFIER)
     if dbid is None:
         (err, dbid) = ts3lib.getClientVariableAsInt(
             schid, clid,
             ts3defines.ClientPropertiesRare.CLIENT_DATABASE_ID)
     q = "INSERT OR REPLACE INTO '{}' (TIMESTAMP, NAME, UID, DBID, CGID, INVOKERNAME, INVOKERUID) VALUES ({}, '{}', '{}', {}, {}, '{}', '{}')".format(
         uuid, int(time.time()), name, uid, dbid, cgid, invokerName,
         invokerUID)
     self.execSQL(q)
Beispiel #5
0
 def isAway(self):
     (err, iawa) = ts3lib.getClientVariableAsInt(
         self.schid, self.clientID, ts3defines.ClientProperties.CLIENT_AWAY)
     if err != ts3defines.ERROR_ok:
         raise ts3Error("Error getting client away status: (%s, %s)" %
                        (err, ts3lib.getErrorMessage(err)[1]))
     return iawa
Beispiel #6
0
 def onClientMoveEvent(self, schid, clientID, oldChannelID,
                       newChannelID, visibility, moveMessage):
     if not self.check: return False
     if self.toggle:
         (error, _clid) = ts3lib.getClientID(schid)
         (error, _cid) = ts3lib.getChannelOfClient(schid, _clid)
         (error, _cgid) = ts3lib.getClientVariableAsInt(
             schid, _clid,
             ts3defines.ClientPropertiesRare.CLIENT_CHANNEL_GROUP_ID)
         if not clientID == _clid:
             (error, uid) = ts3lib.getClientVariableAsString(
                 schid, clientID,
                 ts3defines.ClientProperties.CLIENT_UNIQUE_IDENTIFIER)
             if oldChannelID == 0:
                 self.checkUser(
                     uid
                 )  # and _cgid == self.smgroup or _cgid == self.sagroup
             if newChannelID == _cid and _cgid == self.smgroup:
                 (error, neededTP) = ts3lib.getChannelVariableAsInt(
                     schid, _cid, ts3defines.ChannelPropertiesRare.
                     CHANNEL_NEEDED_TALK_POWER)
                 if neededTP > 0:
                     if self.InContacts(uid) == 0:
                         ts3lib.requestClientSetIsTalker(
                             schid, clientID, True)
Beispiel #7
0
 def onClientMoveEvent(self, schid, clientID, oldChannelID, newChannelID,
                       visibility, moveMessage):
     if not self.toggle: return
     try:
         (error, ownid) = ts3lib.getClientID(schid)
         if ownid == clientID:
             (error, ntp) = ts3lib.getChannelVariableAsInt(
                 schid, newChannelID,
                 ts3defines.ChannelPropertiesRare.CHANNEL_NEEDED_TALK_POWER)
             if self.debug:
                 ts3lib.printMessageToCurrentTab(
                     'error: {0} | ntp: {1}'.format(error, ntp))
             if ntp < 1: return
             (error, tp) = ts3lib.getClientVariableAsInt(
                 schid, ownid,
                 ts3defines.ClientPropertiesRare.CLIENT_IS_TALKER)
             if self.debug:
                 ts3lib.printMessageToCurrentTab(
                     'error: {0} | tp: {1}'.format(error, tp))
             if tp: return
             self.nwmc = QNetworkAccessManager()
             self.nwmc.connect("finished(QNetworkReply*)", self.jokeReply)
             self.schid = schid
             self.nwmc.get(
                 QNetworkRequest(
                     QUrl("http://tambal.azurewebsites.net/joke/random")))
     except:
         from traceback import format_exc
         ts3lib.logMessage(format_exc(), ts3defines.LogLevel.LogLevel_ERROR,
                           "pyTSon", 0)
Beispiel #8
0
 def isTalker(self):
     (err, italk) = ts3lib.getClientVariableAsInt(
         self.schid, self.clientID,
         ts3defines.ClientPropertiesRare.CLIENT_IS_TALKER)
     if err != ts3defines.ERROR_ok:
         raise ts3Error("Error getting client talker status: (%s, %s)" %
                        (err, ts3lib.getErrorMessage(err)[1]))
     return italk
Beispiel #9
0
 def isRecording(self):
     (err, irec) = ts3lib.getClientVariableAsInt(
         self.schid, self.clientID,
         ts3defines.ClientProperties.CLIENT_IS_RECORDING)
     if err != ts3defines.ERROR_ok:
         raise ts3Error("Error getting client recording status: (%s, %s)" %
                        (err, ts3lib.getErrorMessage(err)[1]))
     return irec
Beispiel #10
0
 def isInputMuted(self):
     (err, imute) = ts3lib.getClientVariableAsInt(
         self.schid, self.clientID,
         ts3defines.ClientProperties.CLIENT_INPUT_MUTED)
     if err != ts3defines.ERROR_ok:
         raise ts3Error("Error getting client input mute status: (%s, %s)" %
                        (err, ts3lib.getErrorMessage(err)[1]))
     return imute
Beispiel #11
0
 def talkPower(self):
     (err, tpow) = ts3lib.getClientVariableAsInt(
         self.schid, self.clientID,
         ts3defines.ClientPropertiesRare.CLIENT_TALK_POWER)
     if err != ts3defines.ERROR_ok:
         self.printLogMessage("Error getting client talkPower: (%s, %s)" %
                              (err, ts3lib.getErrorMessage(err)[1]))
     return tpow
Beispiel #12
0
 def commandOP(self, schid, targetMode, toID, fromID, params=""):
     target = int(params)
     (error, dbid) = ts3lib.getClientVariableAsInt(schid, target, ts3defines.ClientPropertiesRare.CLIENT_DATABASE_ID)
     (error, chan) = ts3lib.getChannelOfClient(schid, target)
     (error, name) = ts3lib.getChannelVariableAsString(schid, chan, ts3defines.ChannelProperties.CHANNEL_NAME)
     error = ts3lib.requestSetClientChannelGroup(schid, [11], [chan], [dbid])
     if error == ts3defines.ERROR_ok:
         _t = "You have been made operator of the channel [url=channelid://{0}]{1}[/url].".format(chan,name)
         self.answerMessage(schid, ts3defines.TextMessageTargetMode.TextMessageTarget_CLIENT, toID, target, _t)
Beispiel #13
0
 def isChannelCommander(self):
     (err, iccmd) = ts3lib.getClientVariableAsInt(
         self.schid, self.clientID,
         ts3defines.ClientPropertiesRare.CLIENT_IS_CHANNEL_COMMANDER)
     if err != ts3defines.ERROR_ok:
         raise ts3Error(
             "Error getting client channel commander status: (%s, %s)" %
             (err, ts3lib.getErrorMessage(err)[1]))
     return iccmd
Beispiel #14
0
 def isOutputOnlyMuted(self):
     (err, imute) = ts3lib.getClientVariableAsInt(
         self.schid, self.clientID,
         ts3defines.ClientPropertiesRare.CLIENT_OUTPUTONLY_MUTED)
     if err != ts3defines.ERROR_ok:
         raise ts3Error(
             "Error getting client output only mute status: (%s, %s)" %
             (err, ts3lib.getErrorMessage(err)[1]))
     return imute
Beispiel #15
0
 def commandChannelBanMe(self, schid, targetMode, toID, fromID, params=""):
     (error, ownID) = ts3lib.getClientID(schid)
     if self.cfg.getboolean('general', 'customprefix'): prefix = self.cfg.get('general', 'prefix')
     else: prefix = self.clientURL(schid, ownID)
     (error, nickname) = ts3lib.getClientVariableAsString(schid, fromID, ts3defines.ClientProperties.CLIENT_NICKNAME)
     (error, dbid) = ts3lib.getClientVariableAsInt(schid, fromID, ts3defines.ClientPropertiesRare.CLIENT_DATABASE_ID)
     (error, chan) = ts3lib.getChannelOfClient(schid, ownID)
     if params == "": params = "Command %scbanme used by %s" % (prefix, nickname)
     ts3lib.requestSetClientChannelGroup(schid, [12], [chan], [dbid])
     ts3lib.requestClientKickFromChannel(schid, fromID, params)
Beispiel #16
0
 def onClientKickFromChannelEvent(self, schid, clientID, oldChannelID, newChannelID, visibility, kickerID, kickerName, kickerUniqueIdentifier, kickMessage):
     if not self.autoBanOnKick: return False
     if self.toggle:
         (error, _clid) = ts3lib.getClientID(schid)
         if not clientID == _clid:
             (error, _cgid) = ts3lib.getClientVariableAsInt(schid, _clid, ts3defines.ClientPropertiesRare.CLIENT_CHANNEL_GROUP_ID)
             if _cgid == self.smgroup or _cgid == self.sagroup:
                 (error, _cid) = ts3lib.getChannelOfClient(schid, _clid)
                 (error, uid) = ts3lib.getClientVariableAsString(schid, clientID, ts3defines.ClientProperties.CLIENT_UNIQUE_IDENTIFIER)
                 if oldChannelID == _cid and kickMessage == "": self.checkcurrent = uid;ts3lib.requestClientDBIDfromUID(schid, uid)
Beispiel #17
0
 def isTalking(self):
     if self.server.talkingUsers:
         if self in self.server.talkingUsers: return True
         else: return False
     (err, italk) = ts3lib.getClientVariableAsInt(
         self.schid, self.clientID,
         ts3defines.ClientProperties.CLIENT_FLAG_TALKING)
     if err != ts3defines.ERROR_ok:
         raise ts3Error("Error getting client talk status: (%s, %s)" %
                        (err, ts3lib.getErrorMessage(err)[1]))
     return italk
Beispiel #18
0
 def infoData(self, schid, id, atype):
     try:
         if atype == ts3defines.PluginItemType.PLUGIN_CHANNEL:
             (error, clist) = ts3lib.getChannelClientList(schid, id)
             i = []
             for c in clist:
                 (error, clienttype) = ts3lib.getClientVariableAsInt(schid, c, ts3defines.ClientPropertiesRare.CLIENT_TYPE)
                 if clienttype == ts3defines.ClientType.ClientType_SERVERQUERY:
                     i.append(self.clientURL(schid,c))
             if len(i) < 1: return
             else: return i
     except: return
Beispiel #19
0
    def isAway(self):
        if "isAway" in self.cache:
            return self.cache["isAway"]

        err, a = ts3lib.getClientVariableAsInt(
            self.schid, self.clid, ts3defines.ClientPropertiesRare.CLIENT_AWAY)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client isaway flag", err, self.schid,
                      self.clid)
            return False
        else:
            self.cache["isAway"] = a == 1
            return a == 1
Beispiel #20
0
 def onUpdateClientEvent(self, schid, clientID, invokerID, invokerName,
                         invokerUniqueIdentifier):
     if not self.toggle or schid != self.schid: return
     (error, cID) = ts3lib.getClientID(self.schid)
     if not cID == clientID: return
     (error, ownid) = ts3lib.getClientID(schid)
     (error, talker) = ts3lib.getClientVariableAsInt(
         schid, ownid, ts3defines.ClientPropertiesRare.CLIENT_IS_TALKER)
     if self.debug:
         ts3lib.printMessageToCurrentTab(
             'onUpdateClientEvent talker: {}'.format(talker))
     if self.talker(): self.active = False
     else: self.active = True
Beispiel #21
0
    def isRequestingTalkPower(self):
        if "isRequestingTalkPower" in self.cache:
            return self.cache["isRequestingTalkPower"]

        err, r = ts3lib.getClientVariableAsInt(self.schid, self.clid,
                                               ts3defines.ClientPropertiesRare.CLIENT_TALK_REQUEST)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client isrequestingtalkpower flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["isRequestingTalkPower"] = r == 1
            return r == 1
Beispiel #22
0
    def isPrioritySpeaker(self):
        if "isPrioritySpeaker" in self.cache:
            return self.cache["isPrioritySpeaker"]

        err, p = ts3lib.getClientVariableAsInt(self.schid, self.clid,
                                               ts3defines.ClientPropertiesRare.CLIENT_IS_PRIORITY_SPEAKER)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client ispriorityspeaker flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["isPrioritySpeaker"] = p == 1
            return p == 1
Beispiel #23
0
    def isAway(self):
        if "isAway" in self.cache:
            return self.cache["isAway"]

        err, a = ts3lib.getClientVariableAsInt(self.schid, self.clid,
                                               ts3defines.ClientPropertiesRare.CLIENT_AWAY)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client isaway flag", err, self.schid,
                      self.clid)
            return False
        else:
            self.cache["isAway"] = a == 1
            return a == 1
Beispiel #24
0
    def isChannelCommander(self):
        if "isChannelCommander" in self.cache:
            return self.cache["isChannelCommander"]

        err, cc = ts3lib.getClientVariableAsInt(self.schid, self.clid,
                                                ts3defines.ClientPropertiesRare.CLIENT_IS_CHANNEL_COMMANDER)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client channelcommander flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["isChannelCommander"] = cc == 1
            return cc == 1
Beispiel #25
0
    def isRecording(self):
        if "isRecording" in self.cache:
            return self.cache["isRecording"]

        err, rec = ts3lib.getClientVariableAsInt(self.schid, self.clid,
                                                 ts3defines.ClientProperties.CLIENT_IS_RECORDING)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client isrecording flag", err, self.schid,
                      self.clid)
            return False
        else:
            self.cache["isRecording"] = rec == 1
            return rec == 1
Beispiel #26
0
    def talkPower(self):
        if "talkPower" in self.cache:
            return self.cache["talkPower"]

        err, p = ts3lib.getClientVariableAsInt(self.schid, self.clid,
                                               ts3defines.ClientPropertiesRare.CLIENT_TALK_POWER)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client talkpower", err, self.schid,
                      self.clid)
            return 0
        else:
            self.cache["talkPower"] = p
            return p
Beispiel #27
0
    def isTalker(self):
        if "isTalker" in self.cache:
            return self.cache["isTalker"]

        err, t = ts3lib.getClientVariableAsInt(self.schid, self.clid,
                                               ts3defines.ClientPropertiesRare.CLIENT_IS_TALKER)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client istalker flag", err, self.schid,
                      self.clid)
            return False
        else:
            self.cache["isTalker"] = t == 1
            return t == 1
Beispiel #28
0
    def hardwareOutputMuted(self):
        if "hardwareOutputMuted" in self.cache:
            return self.cache["hardwareOutputMuted"]

        err, o = ts3lib.getClientVariableAsInt(self.schid, self.clid,
                                               ts3defines.ClientProperties.CLIENT_OUTPUT_HARDWARE)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client hardwareoutputmuted flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["hardwareOutputMuted"] = o == 0
            return o == 0
Beispiel #29
0
    def onClientMoveMovedEvent(self, schid, clientID, oldChannelID, newChannelID, visibility, moverID, moverName, moverUniqueIdentifier, moveMessage):
        try:
            (error, ownid) = ts3lib.getClientID(schid)
            (error, ownchan) = ts3lib.getChannelOfClient(schid, ownid)
            (error, afk) = ts3lib.getClientVariableAsInt(schid, ownid, ts3defines.ClientPropertiesRare.CLIENT_AWAY)
            if self.debug: ts3lib.printMessageToCurrentTab("onClientMoveMovedEvent: 1 | insupport: {0} | cursupchan: {1} | oldchan: {2}".format(self.insupport,self.cursupchan, self.oldchan))
            if self.debug: ts3lib.printMessageToCurrentTab("{0} {1} {2}".format(ownchan, self.afkchan, afk))
            if self.insupport == 0 and moverUniqueIdentifier == self.supbot and newChannelID == self.supchanmain and not ownchan == self.afkchan and not afk:
                for c in self.supchans:
                    (error, clients) = ts3lib.getChannelClientList(schid, c)
                    if len(clients) > 0: continue
                    else:
                        # ts3lib.sendPluginCommand(schid, "S3NDuZ3r", ts3defines.PluginMessageTarget.PLUGIN_MESSAGE_TARGET_SERVER, targetIDs, returnCode)
                        for ch in self.supchans:
                            (error, clients) = ts3lib.getChannelClientList(schid, ch)
                            if clientID in clients: return

                        ts3lib.requestClientMove(schid, clientID, c, "")
                        ts3lib.requestClientMove(schid, ownid, c, "")
                        (error, muted) = ts3lib.getClientVariableAsInt(schid, ownid, ts3defines.ClientProperties.CLIENT_OUTPUT_MUTED)
                        self.wasmuted = muted
                        ts3lib.setClientSelfVariableAsInt(schid, ts3defines.ClientProperties.CLIENT_OUTPUT_MUTED, 0);ts3lib.flushClientSelfUpdates(schid)
                        self.insupport = clientID;self.cursupchan = c;self.oldchan = ownchan
                        if self.debug: ts3lib.printMessageToCurrentTab("Now in support with client #{0} in channel #{1}".format(clientID, c))
                        return
                ts3lib.printMessageToCurrentTab("No free support channel found for client #{0}! Please try manually.".format(clientID))
            elif self.insupport == clientID and oldChannelID == self.cursupchan and moverID == ownid:
                if self.wasmuted: ts3lib.setClientSelfVariableAsInt(schid, ts3defines.ClientProperties.CLIENT_OUTPUT_MUTED, 1);ts3lib.flushClientSelfUpdates(schid)
                ts3lib.requestClientMove(schid, ownid, self.oldchan, "")
                ts3lib.printMessageToCurrentTab("Not longer in support with client #{0} in channel #{1}".format(self.insupport, self.cursupchan))
                self.insupport = 0;self.cursupchan = 0;self.oldchan = 0
            if self.debug: ts3lib.printMessageToCurrentTab("onClientMoveMovedEvent: 2 | insupport: {0} | cursupchan: {1} | oldchan: {2}".format(self.insupport,self.cursupchan, self.oldchan))
        except:
            try: from traceback import format_exc;ts3lib.logMessage(format_exc(), ts3defines.LogLevel.LogLevel_ERROR, "PyTSon", 0);pass
            except:
                try: from traceback import format_exc;ts3lib.printMessageToCurrentTab(format_exc())
                except:
                    try: from traceback import format_exc;print(format_exc())
                    except: print("Unknown Error")
Beispiel #30
0
    def inputDeactivated(self):
        if "inputDeactivated" in self.cache:
            return self.cache["inputDeactivated"]

        err, i = ts3lib.getClientVariableAsInt(self.schid, self.clid,
                                               ts3defines.ClientProperties.CLIENT_INPUT_DEACTIVATED)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client inputdeactivated flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["hardwareOutputMuted"] = i == 1
            return i == 1
Beispiel #31
0
 def talker(self):
     (err, id) = ts3lib.getClientID(self.schid)
     (err, cid) = ts3lib.getChannelOfClient(self.schid, id)
     (err, ntp) = ts3lib.getChannelVariableAsInt(
         self.schid, cid,
         ts3defines.ChannelPropertiesRare.CHANNEL_NEEDED_TALK_POWER)
     (err, talker) = ts3lib.getClientVariableAsInt(
         self.schid, id, ts3defines.ClientPropertiesRare.CLIENT_IS_TALKER)
     ret = True if talker or ntp < 1 else False
     if self.debug:
         ts3lib.printMessageToCurrentTab(
             'talker() ret: {} | talker: {} | ntp: {} | cid: {} | id: {}'.
             format(ret, talker, ntp, cid, id))
     return ret
Beispiel #32
0
    def isRecording(self):
        if "isRecording" in self.cache:
            return self.cache["isRecording"]

        err, rec = ts3lib.getClientVariableAsInt(
            self.schid, self.clid,
            ts3defines.ClientProperties.CLIENT_IS_RECORDING)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client isrecording flag", err, self.schid,
                      self.clid)
            return False
        else:
            self.cache["isRecording"] = rec == 1
            return rec == 1
Beispiel #33
0
    def isChannelCommander(self):
        if "isChannelCommander" in self.cache:
            return self.cache["isChannelCommander"]

        err, cc = ts3lib.getClientVariableAsInt(
            self.schid, self.clid,
            ts3defines.ClientPropertiesRare.CLIENT_IS_CHANNEL_COMMANDER)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client channelcommander flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["isChannelCommander"] = cc == 1
            return cc == 1
Beispiel #34
0
    def isPrioritySpeaker(self):
        if "isPrioritySpeaker" in self.cache:
            return self.cache["isPrioritySpeaker"]

        err, p = ts3lib.getClientVariableAsInt(
            self.schid, self.clid,
            ts3defines.ClientPropertiesRare.CLIENT_IS_PRIORITY_SPEAKER)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client ispriorityspeaker flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["isPrioritySpeaker"] = p == 1
            return p == 1
Beispiel #35
0
    def isRequestingTalkPower(self):
        if "isRequestingTalkPower" in self.cache:
            return self.cache["isRequestingTalkPower"]

        err, r = ts3lib.getClientVariableAsInt(
            self.schid, self.clid,
            ts3defines.ClientPropertiesRare.CLIENT_TALK_REQUEST)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client isrequestingtalkpower flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["isRequestingTalkPower"] = r == 1
            return r == 1
Beispiel #36
0
 def onChannelGroupListFinishedEvent(self, schid):
     try:
         id = self.idByName(self.tmpcgroups,self.cmdevent["params"])
         if not id: self.answerMessage(schid, self.cmdevent["targetMode"], self.cmdevent["toID"], self.cmdevent["fromID"], "Failed to find a channelgroup like \"%s\""%self.cmdevent["params"]);return
         (error, dbid) = ts3lib.getClientVariableAsInt(schid, self.cmdevent["fromID"], ts3defines.ClientPropertiesRare.CLIENT_DATABASE_ID)
         (error, own) = ts3lib.getClientID(schid)
         (error, chan) = ts3lib.getChannelOfClient(schid, own)
         if self.cfg.getboolean("general", "debug"): ts3lib.printMessageToCurrentTab("dbid: {0} | own: {1} | chan: {2} | id: {3}".format(dbid,own,chan,id))
         error = ts3lib.requestSetClientChannelGroup(schid, [id], [chan], [dbid])
         if error == ts3defines.ERROR_ok: _t = "Successfully set your channelgroup to #{0}".format(id)
         else: _t = "Setting your channelgroup #{0} failed!".format(id)
         self.answerMessage(schid, self.cmdevent["targetMode"], self.cmdevent["toID"], self.cmdevent["fromID"], _t)
     except: from traceback import format_exc;ts3lib.logMessage(format_exc(), ts3defines.LogLevel.LogLevel_ERROR, "PyTSon", 0)
     self.cmdevent = {"event": "", "returnCode": "", "schid": 0, "targetMode": 4, "toID": 0, "fromID": 0, "params": ""}
Beispiel #37
0
    def isTalker(self):
        if "isTalker" in self.cache:
            return self.cache["isTalker"]

        err, t = ts3lib.getClientVariableAsInt(
            self.schid, self.clid,
            ts3defines.ClientPropertiesRare.CLIENT_IS_TALKER)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client istalker flag", err, self.schid,
                      self.clid)
            return False
        else:
            self.cache["isTalker"] = t == 1
            return t == 1
Beispiel #38
0
    def hardwareOutputMuted(self):
        if "hardwareOutputMuted" in self.cache:
            return self.cache["hardwareOutputMuted"]

        err, o = ts3lib.getClientVariableAsInt(
            self.schid, self.clid,
            ts3defines.ClientProperties.CLIENT_OUTPUT_HARDWARE)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client hardwareoutputmuted flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["hardwareOutputMuted"] = o == 0
            return o == 0
Beispiel #39
0
    def inputDeactivated(self):
        if "inputDeactivated" in self.cache:
            return self.cache["inputDeactivated"]

        err, i = ts3lib.getClientVariableAsInt(
            self.schid, self.clid,
            ts3defines.ClientProperties.CLIENT_INPUT_DEACTIVATED)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client inputdeactivated flag", err,
                      self.schid, self.clid)
            return False
        else:
            self.cache["hardwareOutputMuted"] = i == 1
            return i == 1