Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const fs = require('fs');
- const async = require('async');
- const mongoose = require('mongoose');
- const config = require('../config/config');
- const keywordsProcessor = require('../helpers/keywords-processor');
- const _ = require('underscore');
- // mongoose.connect(config.db);
- // const parsedTops = JSON.parse(fs.readFileSync('./data-old.json', 'utf-8'));
- let test_ph_item = {
- keyword: '1',
- searchVolume: '50',
- cpc: '1.23',
- competition: '0.71',
- results: '1000'
- };
- let test_ph_item2 = {
- keyword: '3',
- searchVolume: '50',
- cpc: '1.23',
- competition: '0.71',
- results: '1000'
- };
- let test_parsedKeywords = [
- { name: 'top1',
- position: 1,
- topic: 'Electronics',
- category: 'Printers',
- phrase: [test_ph_item],
- related: []
- },
- { name: 'top2',
- position: 2,
- topic: 'Health & Household',
- category: 'Medical Supplies & Equipment',
- phrase:
- [
- test_ph_item,
- test_ph_item,
- ,
- {
- keyword: 'Uniq kw',
- searchVolume: '55',
- cpc: '1.11',
- competition: '0.11',
- results: '1111'
- }
- ],
- related: [],
- },
- ];
- const phrasesToString = phrases => phrases.map(p => p.keyword);
- const filterTops = (parsedTops) => {
- let filteredTops = parsedTops.reduceRight((rResult, rTop, rIdx) => {
- const rPhrases = phrasesToString(rTop.phrase);
- console.log(rPhrases);
- const phrase = parsedTops.reduce((lResult, lTop, lIdx) => {
- if (rIdx <= lIdx) {
- return rIdx < lIdx ? lResult : _.uniq(lResult);
- }
- const lPhrases = phrasesToString(lTop.phrase);
- let uniquePhrases = _.difference(lResult, lPhrases);
- // console.log(uniquePhrases);
- return uniquePhrases;
- }, rPhrases);
- let aggregatedPhrases = [];
- if (rPhrases.length > 0 && rTop.phrase.length > 0){
- aggregatedPhrases = phrase.reduce((result, keyword, idx) => {
- // result.push(_.where(rTop.phrase, {keyword: keyword})[0]);
- // console.log(_.where(rTop.phrase, {keyword: keyword}), keyword);
- return result;
- }, []);
- }
- const top = Object.assign({}, rTop, { phrase: aggregatedPhrases });
- rResult.push(top);
- return rResult;
- }, []);
- return filteredTops.reverse();
- }
- var test = filterTops(test_parsedKeywords);
- // console.log('before');
- // console.log(test_parsedKeywords);
- // console.log('after');
- // console.log(test[1]);
- // keywordsProcessor.filterTops(test_parsedKeywords);
- // let aggregatedPhrases = [];
- // if (rPhrases.length > 0 && rTop.phrase.length > 0){
- // aggregatedPhrases = rPhrases.reduce((result, keyword, idx) => {
- // result.push(_.where(rTop.phrase, {keyword: rPhrases[idx]})[0]);
- // return result;
- // }, []);
- // }
- // check if not top name in other top.phrase
- // filteredTops = filteredTops.reduce((result, top, idx) => {
- // const phrase = top.phrase.filter(keyword => {
- // return keyword.keyword !== top.name;
- // });
- // const resultTop = Object.assign({}, top, { phrase });
- // result.push(resultTop);
- // return result;
- // } , []);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement