38 lines
899 B
JavaScript
38 lines
899 B
JavaScript
![]() |
const { client } = require('../../algolia');
|
||
|
const debug = require('debug');
|
||
|
const { getYoutubeData } = require('../../data-sources/youtube');
|
||
|
|
||
|
const log = debug('fcc:search:init:youtube');
|
||
|
|
||
|
const index = client.initIndex('youtube');
|
||
|
|
||
|
index.setSettings(
|
||
|
{
|
||
|
searchableAttributes: ['title', 'description', 'playlistTitle'],
|
||
|
distinct: true,
|
||
|
attributeForDistinct: 'id',
|
||
|
attributesForFaceting: ['playlistTitle']
|
||
|
},
|
||
|
(err, response) => {
|
||
|
if (err) {
|
||
|
log(err.message);
|
||
|
log(err.debugData);
|
||
|
throw new Error(err);
|
||
|
}
|
||
|
log('setSettings\n\n' + JSON.stringify(response, null, 2));
|
||
|
}
|
||
|
);
|
||
|
|
||
|
exports.insertYoutube = function insertYoutube() {
|
||
|
getYoutubeData().subscribe(
|
||
|
videos =>
|
||
|
index.addObjects(videos, err => {
|
||
|
if (err) {
|
||
|
throw new Error(err);
|
||
|
}
|
||
|
}),
|
||
|
err => log(err, 'red'),
|
||
|
() => log('Complete', 'blue')
|
||
|
);
|
||
|
};
|