Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- require("babel-core/register");
- import fetch from "node-fetch";
- import striptags from 'striptags';
- import co from 'co';
- const keyWords = ["butthurt", "бугурт", "буггурт", "баттхерт", "батхерт"];
- let checkCaps = (str) => striptags(str).toUpperCase() === str;
- let checkDogs = (str) => (str.match(/\@/g) || []).length > 0;
- let detectButthurt = (thread) => {
- let expr = new RegExp(keyWords.join("|"));
- let dogsOut = checkDogs(thread.comment);
- let capsOn = checkCaps(thread.comment);
- let subjContainsKw = expr.test(thread.subject.toLowerCase());
- return subjContainsKw || capsOn || dogsOut;
- };
- let fetchThreadsLight = function*(url) {
- let response = yield fetch(url);
- let parsedResponse = yield response.json();
- console.log('total threads recieved: ' + parsedResponse.threads.length);
- return parsedResponse.threads;
- };
- let findSuspiciousThreads = (threads) => {
- let suspiciousThreads = [];
- for (let thread of threads) {
- let butthurtDetected = detectButthurt(thread);
- if (butthurtDetected) {
- suspiciousThreads.push(thread);
- console.log('------------------');
- console.log(thread.views);
- //console.log('link: ' + 'http://2ch.hk/b/res/' + thread.num + '.html');
- console.log('------------------');
- }
- }
- return suspiciousThreads;
- };
- let run = function*() {
- let threads = [];
- try {
- // threads w/o posts
- threads = yield * fetchThreadsLight("http://2ch.hk/b/threads.json");
- } catch (e) {
- console.log('threads fetch failed');
- }
- return findSuspiciousThreads(threads);
- };
- co(run).then(
- suspiciousThreads => {
- console.log('suspicious threads: ' + suspiciousThreads.length);
- },
- error => {
- console.log(error);
- }
- );
Add Comment
Please, Sign In to add comment