-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Description
Hey I#m currectly working on an MEAN-Stack project and using node-teamspeak for pulling some information about specific clients. The problem is I cant return a valid result, because the function are asyncronous.
Maybe some one knows a better solution or add this functionality to the repo.
Here the code:
function CompareTeamspeakClients(forumUsers) {
var deferred = Q.defer();
var cl = new TeamSpeakClient("127.0.0.1");
cl.send("login", {client_login_name: "serveradmin", client_login_password: "M+h8YzUA"}, function(err, response, rawResponse){
if (err) deferred.reject(err);
cl.send("use", {port: 9987}, function(err, response, rawResponse){
if (err) deferred.reject(err);
forumUsers.forEach(function(user, index){
cl.send("clientdbfind", ["uid"], {pattern: user.tsid}, function(err, response, rawResponse){
if (err) {
deferred.reject(err);
} else {
cl.send("clientdbinfo", {cldbid: response.cldbid}, function(err, response, rawResponse){
if (err) deferred.reject(err);
forumUsers[index]['tsdbid'] = response.client_database_id;
forumUsers[index]['tsnickname'] = response.client_nickname;
forumUsers[index]['tslastconnected'] = response.client_lastconnected;
});
}
});
});
});
});
deferred.resolve(forumUsers);
return deferred.promise;
}
Thanks
Metadata
Metadata
Assignees
Labels
No labels