Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 08:28

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Nodejs - Twitch bot - für jeden viewer einen datenbank eintrag

Discussion on Nodejs - Twitch bot - für jeden viewer einen datenbank eintrag within the Web Development forum part of the Coders Den category.

Closed Thread
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2014
Posts: 276
Received Thanks: 84
Nodejs - Twitch bot - für jeden viewer einen datenbank eintrag

PHP Code:
client.api({
    
url"http://tmi.twitch.tv/group/user/lirik/chatters"
}, function(errresbody) {
    var 
count JSON.parse(body)["chatter_count"];
    
console.log(count);
    var 
chatter JSON.parse(body)["chatters"]["viewers"];
for(
i=0;chatter.length;i++){
var 
post  = {namechatter[i], points0};
var 
usernamed chatter[i];
var 
checkusercon.query('SELECT * FROM `test` WHERE `name` = ?',chatter[i], function (errorresultsfields) {
console.log(results);
var 
resu results.map( function( el ){
return 
el.name;
});
if(
resu != chatter[i]){
var 
insertusercon.query('INSERT INTO test SET ?'post, function(errresult) {
});
}
});
}
}); 
Hier ist der aktuelle code.
chatter ist ein array mit den aktuellen zuschauern.
Ich möchte das jeder einzelne Zuschauer in die Datenbank eingetragen wird. Jedoch soll, wenn der Zuschauer schon in der Datenbank steht, der Zuschauer übersprungen werden.
Wenn ich das so laufen lasse, wird lediglich der erste Zuschauer eingetragen. D.h wenn es 50 zuschauer sind, wird der erste Zuschauer 50mal eingetragen.
.Barone is offline  
Old 11/08/2015, 09:38   #2
 
elite*gold: 0
Join Date: Dec 2014
Posts: 276
Received Thanks: 84
Niemand ne Idee?
.Barone is offline  
Old 11/08/2015, 09:59   #3
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,546
Received Thanks: 1,418
Das Problem ist, dass Java nichts mit JavaScript zu tun hat, außer die große (nicht zufällige) Ähnlichkeit der Namen.

Ich habe das Thema mal gemeldet damit es verschoben wird.
ComputerBaer is offline  
Old 11/08/2015, 10:21   #4
 
elite*gold: 0
Join Date: Dec 2014
Posts: 276
Received Thanks: 84
ich sehe jetzt erst das ich im javabereich bin. Jup, bitte verschieben.
.Barone is offline  
Old 11/09/2015, 16:44   #5
 
elite*gold: 0
Join Date: Aug 2006
Posts: 409
Received Thanks: 150
Ich konnte deinen Code nicht 1:1 übernehmen weil ich nicht weiß welche Module dafür benötigt werden, also hab ich ihn eben in einer für mich benutzbaren Version nachgebaut.
Ich vermute das Problem bei der Asynchronizität der query-Funktion in Zeile 13. Aus diesem Grund habe ich den Code mit async umgebaut. Wenn du mein Beispiel auf deinen Code anwendest sollte alles so funktionier wie du es möchtest.

Code:
// require the necessary modules
var request = require('request');
var http    = require('http');
var mysql   = require('mysql');
var async   = require('async');

// setting up the mysql connection
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : '',
  database : 'test'
});


request({
    url: 'http://tmi.twitch.tv/group/user/lirik/chatters',
    json: true
}, function (err, res, body) {

    // only procceed if there are no errors
    if (!err && res.statusCode === 200) {

        // mapping stuff
        var json     = body;
        var chatters = json.chatters.viewers;

        // establishing the mysql connection
        connection.connect();

        // asynchronously accessing all the users
        async.each(chatters, function(user, callback) {

            // look if there is any entry with the current user
            connection.query('SELECT 1 FROM test WHERE name = ? ORDER BY name LIMIT 1;', user, function(err, result, fields) {

                // return early if there are any errors
                if (err) {
                    return callback && callback(err);
                }

                // if it is a new user the result is empty
                if (0 === result.length) {
                    // insert new user
                    connection.query('INSERT INTO test SET ?', {name: user, points: 0}, function(err, result) {
                        // call the callback function (err may or may not be undefined)
                        callback && callback(err);
                    });
                } else {
                    // call the callback function if we already got that user
                    callback && callback();
                }

            });

        }, function(err) {

            // if there are any errors, print them
            if (err) {
                console.log('error: ', err);
            }

            console.log('done');

            // close the mysql connection
            connection.end();

            // exit the process
            process.exit();
        });
    }
});
~De@dly Silence~ is offline  
Old 11/20/2015, 17:59   #6

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Arrow Java -> Web Development

#moved…
snow is offline  
Closed Thread


Similar Threads Similar Threads
Suche einen Arena Scoreboard Datenbank eintrag!
11/26/2014 - Flyff Private Server - 11 Replies
Ich brauche Hilfe bei meine Arena Scoreboard unzwar habe ich momentan das Problem das Kills nicht gespeichert werden wenn man den Worldserver neustartet. Darum brauche ich unbedingt die Datenbank oder den Eintrag für das Scoreboard. Benutze das hier: http://i.epvpimg.com/lPqSg.png Danke schonmal für die Hilfe!
Ich suche einen Twitch Viewer Bot
04/17/2014 - Twitch Trading - 0 Replies
Hallo Ich benötige einen Twitch Viewer Bot welcher mindestens 2000 Viewer schafft ausserdem darf er fast keine PC Leistung benötigen. Falls jemand einen solchen Bot verkauft, der kann mich gerne in Skype adden: exotiqz.hd Natürlich kann ich euch auch adden. MfG



All times are GMT +1. The time now is 08:29.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.