node.사회성 모니터

12245 단어 Node.js소셜 필터

초면


저는 @albno273라고 합니다.
예전시나닷컴 블로그 사람들은 조금씩 비망록과 일기를 섞어 투고했는데, 앞으로는 Qiita에 비망록을 쓰고 과장된 블로그에 일기를 쓴다.
인기 있는 것에 관해서는 블로그에서 이곳으로 이식할 계획이다.
그나저나 Twitter도 있어요.
잘 부탁드립니다.

소셜 필터


Qiita에서 첫 글을 쓸 때 소재를 찾고 있었어요.
[야옹] 파이톤3로 사회성 필터/Qita 실시
그나저나 지금 자신이 처한 상황은 죽기 어려워서 노드가 경을 쓰는 대신js로 해봤어요.

해냈다


소스 파일: GitHub
---적절한 ID로 변경하십시오.
var twitter = require('twitter');
var confu = require('confu');

var conf = confu('.', 'config', 'key.json');
var client = new twitter({
    consumer_key: conf.test.cons_key,
    consumer_secret: conf.test.cons_sec,
    access_token_key: conf.test.acc_token,
    access_token_secret: conf.test.acc_token_sec
});

var filter = ['つらい', '死にたい', '死ね', '殺す', '疲れた'];
var count = 1;

console.log('Sociality filter activated.');
client.stream('statuses/filter', { follow: --- }, function (stream) {

    stream.on('data', function (tweet) {
        var text = tweet.text;
        var id = tweet.id_str;
        var i = filter.length;

        while (i--) {
            if (text.indexOf(filter[i]) !== -1) {

                console.log('Negative word(s) detected!')
                console.log('catch: ' + filter[i]);
                setTimeout(function () {
                    client.post('statuses/destroy/' + id, function (err, rep) {
                        if (!err) {
                            console.log('Delete succeeded.');
                            setTimeout(function () {
                                var tweet_body = 'にゃーん (通算' + count + '回目)';
                                client.post('statuses/update',
                                    { status: tweet_body },
                                    function (err, rep) {
                                        if (!err) {
                                            console.log('Tweet succeeded. Meow!');
                                            count++;
                                        } else {
                                            console.log('Tweet failed...');
                                            console.log(err);
                                        }
                                    });
                            }, 1000);
                        } else {
                            console.log('Delete failed...');
                            console.log(err);
                        }
                    });
                }, 1000);

                break;
            }
        }
    });

    stream.on('error', function (error) {
        console.log(error);
    });

});
모자이크 예쁘네.

실행하다



고찰하다.

  • 기업인들에게 보여도 부끄럽지 않은 트윗
  • 필터된 단어를 어떻게 선택하는지 고려할 필요가 있다
  • 데이터베이스만 추가
  • 필름 판정
  • 여러분께 공모
  • 감상


    야옹

    좋은 웹페이지 즐겨찾기