Beispiel #1
0
 def onMenuItemEvent(self, schid, atype, menuItemID, selectedItemID):
     if menuItemID == 0:
         schid = ts3.getCurrentServerConnectionHandlerID()
         (error, item) = ts3.getClientDisplayName(schid, selectedItemID)
         ts3.printMessageToCurrentTab('[{:%Y-%m-%d %H:%M:%S}] '.format(datetime.datetime.now())+" [color=green]Added[/color] [color=yellow]"+item+"[/color] to Report Moderators.")
     if menuItemID == 1:
         schid = ts3.getCurrentServerConnectionHandlerID()
         (error, item) = ts3.getClientDisplayName(schid, selectedItemID)
         ts3.printMessageToCurrentTab('[{:%Y-%m-%d %H:%M:%S}] '.format(datetime.datetime.now())+" [color=red]Removed[/color] [color=yellow]"+item+"[/color] from Report Moderators.")
     if menuItemID == 2:
         self.dlg = ReportDialog(None)
         self.dlg.show()
Beispiel #2
0
 def clientURL(self,
               schid=None,
               clid=1,
               uid=None,
               nickname=None,
               encodednick=None):
     if schid == None:
         try:
             schid = ts3lib.getCurrentServerConnectionHandlerID()
         except:
             pass
     if uid == None:
         try:
             (error, uid) = ts3lib.getClientVariableAsString(
                 schid, clid,
                 ts3defines.ClientProperties.CLIENT_UNIQUE_IDENTIFIER)
         except:
             pass
     if nickname == None:
         try:
             (error, nickname) = ts3lib.getClientDisplayName(schid, clid)
         except:
             nickname = uid
     if encodednick == None:
         try:
             encodednick = urlencode(nickname)
         except:
             pass
     return "[url=client://%s/%s~%s]%s[/url]" % (clid, uid, encodednick,
                                                 nickname)
Beispiel #3
0
    def __init__(self):
        global CONFIG


        self.dlg = None
        self.playing = False

        try:
            self.cfg_schema = {
                'token': ('',         'Youtube API Key'),
                'nick':  ('musicbot', 'Bot Nickname'   ),
            }

            self.cp = ConfigParser({k: v[0] for k, v in self.cfg_schema.items()})

            p = pytson.getConfigPath("musicbot.ini")
            if os.path.isfile(p):
                self.cp.read(p)

            CONFIG = self.cp['DEFAULT']
        except:
            debug(traceback.format_exc())

        self.vlc = player.VLC(CONFIG.get('token'))

        id, err = me()
        if not err:
            err, self.nick = ts3lib.getClientDisplayName(schid(), id)
            self.nickname()

        debug("[musicbot] enabled")
Beispiel #4
0
 def postProcessVar(self, schid, id, name, val, lst):
     if name in [
             "VIRTUALSERVER_CREATED", "CLIENT_LAST_VAR_REQUEST",
             "CLIENT_CREATED", "CLIENT_LASTCONNECTED"
     ]:
         pass  # val = date().fromtimestamp(val).strftime('%Y-%m-%d %H:%M:%S ({0})'.format(val))
     elif name in [
             "VIRTUALSERVER_UPTIME", "VIRTUALSERVER_COMPLAIN_AUTOBAN_TIME",
             "VIRTUALSERVER_COMPLAIN_REMOVE_TIME", "CHANNEL_DELETE_DELAY",
             "CLIENT_IDLE_TIME", "CONNECTION_CONNECTED_TIME",
             "CONNECTION_IDLE_TIME"
     ]:
         val = '{0} ({1})'.format(timedelta(milliseconds=val), val)
     elif name == "TYPE":
         (t, val) = getItemType(lst)
     elif name == "ID":
         return name, id
     elif name == "DISPLAYNAME":
         (err, val) = ts3.getClientDisplayName(schid, id)
     if lst in [VirtualServerProperties, VirtualServerPropertiesRare]:
         name = name.replace("VIRTUALSERVER_", "")
     elif lst in [ChannelProperties, ChannelPropertiesRare]:
         name = name.replace("CHANNEL_", "")
     elif lst in [ConnectionProperties, ConnectionPropertiesRare]:
         name = name.replace("CONNECTION_", "")
     elif list in [ClientProperties, ClientPropertiesRare]:
         name = name.replace("CLIENT_", "")
     name = name.replace("_", " ").title()
     return name, val
Beispiel #5
0
 def getClientInfo(serverConnectionHandlerID, clientID):
     return [
         clientID,
         ts3lib.getClientDisplayName(serverConnectionHandlerID,
                                     clientID)[1],
         tshelp.getAvatar(serverConnectionHandlerID, clientID)
     ]
Beispiel #6
0
 def onTalkStatusChangeEvent(self, serverConnectionHandlerID, status,
                             isReceivedWhisper, clientID):
     name = ts3lib.getClientDisplayName(serverConnectionHandlerID,
                                        clientID)[1]
     if serverConnectionHandlerID == self.currentActiveServer:
         self.send({
             'event': 'onTalkStatusChangeEvent',
             'clientID': clientID,
             'status': status
         })
Beispiel #7
0
 def setupTable(self, type, target):
     tbl = self.tbl_variables
     tbl.clear()
     for k, v in info.getVariables(type, target):
         pos = tbl.rowCount
         tbl.insertRow(pos)
         tbl.setItem(pos, 0, QTableWidgetItem(k))
         tbl.setItem(pos, 1, QTableWidgetItem(v))
     displayName = ts3.getClientDisplayName()
     self.setWindowTitle("{}'s Variables".format(target))
Beispiel #8
0
 def saveTab(self, schid):
     if not hasattr(self.tabs, '%s'%schid):
         self.tabs[schid] = {}
     (err, self.tabs[schid]["name"]) = ts3lib.getServerVariable(schid, ts3defines.VirtualServerProperties.VIRTUALSERVER_NAME)
     (err, self.tabs[schid]["host"], self.tabs[schid]["port"], self.tabs[schid]["pw"]) = ts3lib.getServerConnectInfo(schid)
     (err, self.tabs[schid]["clid"]) = ts3lib.getClientID(schid)
     (err, self.tabs[schid]["nick"]) = ts3lib.getClientDisplayName(schid, self.tabs[schid]["clid"])
     (err, cid) = ts3lib.getChannelOfClient(schid, self.tabs[schid]["clid"])
     (err, self.tabs[schid]["cpath"], self.tabs[schid]["cpw"]) = ts3lib.getChannelConnectInfo(schid, cid)
     self.log(LogLevel.LogLevel_DEBUG, "Saved Tab: {}".format(self.tabs[schid]), schid)
Beispiel #9
0
 def onHotkeyEvent(self, keyword):
     if keyword == "fakeMute":
         self.enabled = not self.enabled
         if self.changeName:
             name = ts3.getClientDisplayName(1, ts3.getClientID(1), 128)
             if enabled:
                 ts3.setClientSelfVariableAsString(
                     1, ts3defines.CLIENT_NICKNAME, name + " [MUTED]")
             else:
                 ts3.setClientSelfVariableAsString(
                     1, ts3defines.CLIENT_NICKNAME, name[:-8])
             ts3.flushClientSelfUpdates(1, "")
Beispiel #10
0
    def displayName(self):
        if "displayName" in self.cache:
            return self.cache["displayName"]

        err, n = ts3lib.getClientDisplayName(self.schid, self.clid)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client displayname", err, self.schid,
                      self.clid)
            return "ERROR_GETTING_DISPLAYNAME: %s" % err
        else:
            self.cache["displayName"] = n
            return n
Beispiel #11
0
    def displayName(self):
        if "displayName" in self.cache:
            return self.cache["displayName"]

        err, n = ts3lib.getClientDisplayName(self.schid, self.clid)
        if err != ts3defines.ERROR_ok:
            _errprint("Error getting client displayname", err, self.schid,
                      self.clid)
            return "ERROR_GETTING_DISPLAYNAME: %s" % err
        else:
            self.cache["displayName"] = n
            return n
Beispiel #12
0
 def getNearbyClients(serverConnectionHandlerID):
     users = ts3lib.getChannelClientList(
         serverConnectionHandlerID,
         tshelp.getChannelID(serverConnectionHandlerID))[1]
     userDetailed = []
     for user in users:
         userDetailed.append([
             user,
             ts3lib.getClientDisplayName(serverConnectionHandlerID,
                                         user)[1],
             tshelp.getAvatar(serverConnectionHandlerID, user)
         ])
     return userDetailed
Beispiel #13
0
def getClientIDByName(name: str,
                      schid: int = 0,
                      use_displayname: bool = False,
                      multi: bool = False):
    if not schid: schid = ts3lib.getCurrentServerConnectionHandlerID()
    if multi: results = []
    (err, clids) = ts3lib.getClientList(schid)
    for clid in clids:
        if use_displayname:
            (err, _name) = ts3lib.getClientDisplayName(schid, clid)
        else:
            (err, _name) = ts3lib.getClientVariable(
                schid, clid, ts3defines.ClientProperties.CLIENT_NICKNAME)
        if name == _name:
            if multi: results.append(clid)
            else: return clid
    if multi and len(results): return results
Beispiel #14
0
 def onMenuItemEvent(self, schid, atype, menuItemID, selectedItemID):
     if menuItemID == 0:
         ts3.requestClientVariables(schid, selectedItemID, "")
         shit = "[COLOR=red]"
         shit += ts3.getClientDisplayName(
             schid, selectedItemID)[1] + " (" + str(selectedItemID) + "):\n"
         shit += "Unique ID: " + ts3.getClientVariableAsString(
             schid, selectedItemID,
             ts3defines.ClientProperties.CLIENT_UNIQUE_IDENTIFIER)[1] + "\n"
         shit += "MetaData: " + ts3.getClientVariableAsString(
             schid, selectedItemID,
             ts3defines.ClientProperties.CLIENT_META_DATA)[1] + "\n"
         shit += "IsTalking: " + ts3.getClientVariableAsString(
             schid, selectedItemID,
             ts3defines.ClientProperties.CLIENT_FLAG_TALKING)[1] + "\n"
         shit += "[/COLOR]"
         ts3.printMessageToCurrentTab(shit)
Beispiel #15
0
 def commandWhoAmI(self, schid, targetMode, toID, fromID, params=""):
     (error, displayName) = ts3lib.getClientDisplayName(schid, fromID)
     self.answerMessage(schid, targetMode, toID, fromID, "I changed your nickname to: %s%s" % (color.ERROR, displayName))
Beispiel #16
0
 def displayName(self):
     (err, dname) = ts3lib.getClientDisplayName(self.schid, self.clientID)
     if err != ts3defines.ERROR_ok:
         raise ts3Error("Error getting client display name: (%s, %s)" %
                        (err, ts3lib.getErrorMessage(err)[1]))
     return dname
Beispiel #17
0
 def onConnectStatusChangeEvent(self, _schid, newStatus, errorNumber):
     if newStatus == ts3defines.ConnectStatus.STATUS_CONNECTION_ESTABLISHED:
         err, self.nick = ts3lib.getClientDisplayName(schid(), me()[0])
         self.nickname()