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()
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)
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")
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
def getClientInfo(serverConnectionHandlerID, clientID): return [ clientID, ts3lib.getClientDisplayName(serverConnectionHandlerID, clientID)[1], tshelp.getAvatar(serverConnectionHandlerID, clientID) ]
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 })
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))
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)
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, "")
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
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
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
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)
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))
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
def onConnectStatusChangeEvent(self, _schid, newStatus, errorNumber): if newStatus == ts3defines.ConnectStatus.STATUS_CONNECTION_ESTABLISHED: err, self.nick = ts3lib.getClientDisplayName(schid(), me()[0]) self.nickname()