Commit a1fad49d by Иван Кубота

fix groupped questions

parent 6de40c60
Pipeline #603 failed with stage
KUS_GENERATOR_BACKEND=https://api.new.local.vkusvill.testin.ru #KUS_GENERATOR_BACKEND=https://api.new.local.vkusvill.testin.ru
KUS_GENERATOR_BACKEND=https://api.vkusvill.flexlab.pro
KUS_GENERATOR_PORT=4001 KUS_GENERATOR_PORT=4001
\ No newline at end of file
номер вопроса,ответ,правильный
1,Классический,да
1,С укропом,да
1,С аджикой,да
1,Копченый,нет
2,Яичницу,да
2,Пасту Карбонара,да
2,Макароны по- флотски,нет
3,Соль,нет
3,Сахар,нет
3,Сливочное масло,да
4,Паприка сушеная,нет
4,Чеснок сушеный,нет
4,Базилик,нет
4,Уксус,да
5,Дрожжевая булочка с корицей и сахаром,да
5,Бездрожжевая булочка с корицей и сахаром,нет
5,Постная булочка с корицей и сахаром,нет
6,Говядина и шпик,да
6,Свинина и шпик,нет
6,"Свинина, курица и шпик",нет
7,"Улучшает пищеварение, вызывает аппетит",да
7,Рекомендуется добавлять в пищу при бессолевой диете,да
7,Полезно включать в рацион беременных женщин,нет
8,Позволяет смягчить поверхность кожи и стягивает расширенные поры.,да
8,"Благодаря антибактериальным свойствам, способствует заживлению ран, воспалений и прыщей",да
8,Оказывает омолаживающий эффект,нет
9,Пожилым и малоподвижным людям,да
9,Спортсменам и людям с насыщенной активной жизнью,нет
9,"Людям, которые стараются набрать вес",нет
10,"Очень вкусное и сытное блюдо, подходит тем, кто занимается спортом",да
10,Оригинальное блюдо станет украшением праздничного стола,нет
10,"Тяжело усваивается, не рекомендуется употреблять на ночь",нет
11,"Фучоза -это вермишель из горохового и картофельного крахмала, зеленых бобов и воды",нет
11,"У фунчозы отсутствует собственный вкус, она впитывает вкус ингредиентов, с которыми ее готовят",нет
11,"Фунчоза расслабляет организм, способствует быстрому засыпанию",да
12,Незаменимый помощник во время простуд,да
12,В небольших количествах разрешен во время диеты,нет
12,Подходит диабетикам,нет
13,"Нектар богат витаминами А,В,С,Е",нет
13,"Можно использовать в приготовлении кофе, смузи и кондитерских изделий",да
13,Можно в пост,да
14,"Покупателю, держащему пост",нет
14,Вегетарианцу,нет
14,Противнику соевых продуктов,да
15,Яблочное пюре,нет
15,Мякоть ягод брусники,нет
15,Сахар,да
16,"Тонкое тесто с начинкой из белого мяса, обладает приятным вкусом и ароматом",да
16,"Толстое тесто не позволяет пельменям развариваться, а укроп добавляет неповторимый аромат",нет
16,Тонкое тесто с начинкой из белого мяса без добавления каких-либо специй,нет
17,да,нет
17,нет,да
18,"Семя льна, семя кунжута",да
18,"Семена чиа, семя кунжута",нет
18,Семена подсолнечника,нет
19,"Рис, радужная форель и белокорый палтус",да
19,Мясо тунца и рис,нет
19,"Лосось, рис",нет
20,"Яблочное пюре, цедра лимона, белковый крем",да
20,"Яблочное пюре, белковый крем",нет
20,Белковый крем,нет
21,Мятное с кислинкой лимона и нежное с кусочками манго,да
21,Мятное с кусочками лимона манговое с листочками мяты,нет
21,Мятное с кусочками манго и манговое с листиками мяты,нет
22,Не нужно перебирать или промывать,да
22,"Не нужно следить, приготовится , когда займет весь объем пакета",да
22,"Долго остается теплой, вкусной и рассыпчатой",да
23,"Азиатский суп. Бульон, лапша и добавки",да
23,Корейский острый суп с уткой,нет
23,Комплексный обед из первого и второго блюда,нет
24,Рис вымачивают в специальном растворе,нет
24,При обработке зерна не снимается кожура,нет
24,"При обработке зерна снимается кожура, но сохраняется отрубная оболочка",да
25,Отбитая и зажаренная в сухарях куриная грудка,да
25,Отбивная из говядины с чесноком,нет
25,Рубленное куриное мясо с чесноком и травами,нет
26,Продукт низкой калорийности и высокой питательной ценности,да
26,Продукт высокой калорийности,нет
26,"Продукт не имеет собственного вкуса, необходимо употреблять с чем-то более выразительным",нет
27,Имбирь,нет
27,Гвоздика,нет
27,Корица,да
28,Пюре перца,да
28,Пюре кабачка,нет
28,Пюре гороха,нет
29,"Сыворотка быстрее проникает в кожу, чем крем",да
29,"Концентрация высокоактивных компонентов в сыворотке выше, чем в креме",да
29,"У сыворотки гораздо дольше срок хранения, по сравнению с кремами",нет
30,Сыра Абондас,да
30,Сыра Чеддер,нет
30,Сыра Пармезан,нет
31,Мясо Индейки,да
31,Белое мясо курицы,нет
31,Мягкая отварная говядина,нет
32,Полезные котлетки из фасоли,нет
32,Биточки из арахиса,нет
32,Вкусное и полезное вегетарианское блюдо из нута,да
33,"Считается ""эликсиром молодости""",нет
33,"Подходит спортсменам, наращивающим мышечную массу",нет
33,Не содержит никаких витаминов и полезных веществ,да
34,Достаточно разогреть или поджарить на сковороде,да
34,"Да, продукт требует термической обработки перед употреблением",нет
35,Запекать или солить,да
35,Мариновать,да
35,Делать шашлыки,да
\ No newline at end of file
категория,номер вопроса,Заголовок,карточка,множественный выбор,Тип вопроса,Тип ответа
5,1,"Какие виды сыра Чечил входят в продукт ""Ассорти сыров ""Спагетти""""?",1,да,текст с картинкой,текст
5,2,"Что порекомендуете приготовить с продуктом ""Бекон сырокопченый нарезка""?",2,да,текст с картинкой,текст
5,3,"Какого ингредиента НЕТ в продукте ""Блины постные с соусом ""Медовый""?",3,нет,текст с картинкой,текст
5,4,"Что НЕ входит в состав маринада для продукта ""Голень индейки в маринаде""?",4,нет,текст с картинкой,текст
5,5,"Что такое ""Гребешок с корицей""?",5,нет,текст с картинкой,текст
5,6,"Что входит в состав продукта ""Колбаса Мадридская""?",6,нет,текст с картинкой,текст
5,7,"Какие из утверждений ниже о ""Корице молотой"" являются верными?",7,да,текст с картинкой,текст
5,8,"Какими свойствами обладает ""Крем гипоаллергенный на основе гамамелиса""?",8,да,текст с картинкой,текст
5,9,Кому рекомендована кукурузная крупа?,9,нет,текст с картинкой,текст
5,10,"Какое из описаний ниже подходит продукту ""Кускус с овощами и котлетами из индейки""?",10,нет,текст с картинкой,текст
5,11,"Какое из описаний ниже НЕ относится к продукту ""Фунчоза""?",11,нет,текст с картинкой,текст
5,12,"Какое из утверждений о продукте ""Малина и облепиха протертые с сахаром"" верно?",12,нет,текст с картинкой,текст
5,13,"Какие из утверждений о напитке ""Миндальное молоко с кокосовыми соцветиями"" верно?",13,да,текст с картинкой,текст
5,14,"Кому НЕ подходит ""Напиток растительный ""Соевый ванильный""?",14,нет,текст с картинкой,текст
5,15,"Какого ингредиента нет в продукте ""Пастила яблочная с брусникой без сахара""?",15,нет,текст с картинкой,текст
5,16,"Какое из описаний ниже подходит продукту ""Пельмени ""Нежные"" с курицей и укропом""?",16,нет,текст с картинкой,текст
5,17,"Является ли ""Печенье сахарное с клюквой и грецким орехом"" постным продуктом?",17,нет,текст с картинкой,текст
5,18,"Какие семена входят в состав ""Печенья Болоховские традиции""?",18,нет,текст с картинкой,текст
5,19,"Что входит в начинку продукта ""Пирог рыбный с рисом из форели и палтуса, зам.""?",19,нет,текст с картинкой,текст
5,20,"Какая начинка у продукта ""Пирожное ""Корзиночки с белковым кремом""""?",20,нет,текст с картинкой,текст
5,21,"Какие пирожные в продукте: ""Пирожное в наборе: ""Манго"" и ""Мятное""""?",21,нет,текст с картинкой,текст
5,22,"Какими преимуществами обладает продукт ""Пшено в пакетиках""?",22,да,текст с картинкой,текст
5,23,"Что такое ""Ромен с уткой""?",23,нет,текст с картинкой,текст
5,24,"Почему ""Рис бурый нешлифованный"" имеет такой цвет?",24,нет,текст с картинкой,текст
5,25,"Что такое ""Ромштекс ""Домашний"" с чесноком""?",25,нет,текст с картинкой,текст
5,26,"Что вы можете сказать о продукте ""Салат из водорослей Хиджики с бобами""?",26,нет,текст с картинкой,текст
5,27,"Какого ингредиента нет в продукте ""Смесь ""Нечайный чай"" облеп.-лимон-имбирь""?",27,нет,текст с картинкой,текст
5,28,"Пюре какого овоща добавлено в продукт ""Смузи ""Томат-морковь""""?",28,нет,текст с картинкой,текст
5,29,В чем отличия сыворотки от крема?,29,да,текст с картинкой,текст
5,30,"По рецепту какого сыра произведен Сыр полутвёрдый ""Петит Премьер""?",30,нет,текст с картинкой,текст
5,31,"Какое мясо используется в продукте ""Сэндвич-ролл с микрозеленью""?",31,нет,текст с картинкой,текст
5,32,Что такое Фалафель?,32,нет,текст с картинкой,текст
5,33,"Какое из утверждений ниже НЕ относится к продукту ""Фарш кеты зам.""",33,нет,текст с картинкой,текст
5,34,"Нужно ли готовить продукт ""Цветная капуста в сухарях зам.""?",34,нет,текст с картинкой,текст
5,35,"Как можно приготовить продукт ""Чавыча стейк зам.""?",35,да,текст с картинкой,текст
\ No newline at end of file
...@@ -104,7 +104,13 @@ const readCSV = async function(scope) { ...@@ -104,7 +104,13 @@ const readCSV = async function(scope) {
}); });
}); });
}; };
let BACKEND = process.env.KUS_GENERATOR_BACKEND; const Consts = {
CATEGORY: {
PRODUCT: 1,
INFO: 2
}
};
let BACKEND = process.env.KUS_GENERATOR_BACKEND;
if(!BACKEND) if(!BACKEND)
throw new Error('No backend specified'); throw new Error('No backend specified');
let urlJoin = function(){ let urlJoin = function(){
...@@ -114,7 +120,7 @@ let urlJoin = function(){ ...@@ -114,7 +120,7 @@ let urlJoin = function(){
let afterLoaded = async function(infoHash) { let afterLoaded = async function(infoHash) {
ctx._r(); ctx._r();
return;// everything imported return;// everything imported
let categoryID = 5; let categoryID = 51;
console.log('Importing category:', categoryID); console.log('Importing category:', categoryID);
let hashSlice = {}; let hashSlice = {};
for(let i in infoHash){ for(let i in infoHash){
...@@ -133,14 +139,17 @@ let afterLoaded = async function(infoHash) { ...@@ -133,14 +139,17 @@ let afterLoaded = async function(infoHash) {
} }
} }
let moreElement ={c: 'top-35-march-c.csv', q: 'top-35-march-q.csv', a: 'top-35-march-a.csv'}; //let moreElement ={c: 'top-35-march-c.csv', q: 'top-35-march-q.csv', a: 'top-35-march-a.csv'};
let moreElement = {c: 'top-35-april-c.csv', q: 'top-35-april-q.csv', a: 'top-35-april-a.csv'};
const base = process.env.KUS_DATA_DIR || './data'; const base = process.env.KUS_DATA_DIR || './data';
let mapIDHash = {}; let mapIDHash = {};
var request = require('request');
if( moreElement.c ){ if( moreElement.c ){
await readCSV({ let cards = await readCSV({
fileName: path.join(base,moreElement.c), fileName: path.join(base,moreElement.c),
keys: { keys: {
'номер карточки': 'id', 'номер карточки': 'id',
...@@ -176,9 +185,67 @@ let afterLoaded = async function(infoHash) { ...@@ -176,9 +185,67 @@ let afterLoaded = async function(infoHash) {
}, },
index: 'id' index: 'id'
});
// SAVE!!!
/*
for( let i in cards ){
const card = cards[ i ];
let saved = await new Promise((r,j)=>{
var options = {
'method': 'POST',
'url': urlJoin(BACKEND,'/api/admin/card/'),
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({
//"image": item.image,
"category_id": categoryID,
"name": card.title,
"type": Consts.CATEGORY.INFO,
"hidden": 0,
"text": 'empty text',
is_test: 1,
"tags": [],
"components": []
}) })
};
request(options, function (error, response) {
if (error) throw new Error(error);
r(JSON.parse(response.body));
});
});
debugger;
let sub = await new Promise((r,j)=>{
var options = {
'method': 'POST',
'url': urlJoin(BACKEND,'/api/admin/carditem/'),
'headers': {
'Content-Type': 'application/json'
},
body: JSON.stringify({
card_id: saved.id,
text: card.description,
image: null
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
r(JSON.parse(response.body));
});
});
debugger;
}*/
} }
/*debugger
return;*/
if( moreElement.q ){ if( moreElement.q ){
const Q = await readCSV( { const Q = await readCSV( {
fileName: path.join( base, moreElement.q ), fileName: path.join( base, moreElement.q ),
...@@ -208,7 +275,8 @@ let afterLoaded = async function(infoHash) { ...@@ -208,7 +275,8 @@ let afterLoaded = async function(infoHash) {
a.category_id = categoryID; a.category_id = categoryID;
a.answers = []; a.answers = [];
a.multiple = ( a.multiple + '' )[ 0 ].toLowerCase() in { 'д': 1, '1': 1, 'y': '1', 'c': '1' }; a.multiple = ( a.multiple + '' )[ 0 ].toLowerCase() in { 'д': 1, '1': 1, 'y': '1', 'c': '1' };
a.image = a.image.indexOf('с ')>-1? hashSlice[a.cardInfoID].image :null; //a.image = a.image.indexOf('с ')>-1? hashSlice[a.cardInfoID].image :null;
a.image=null;
}, },
index: 'qID' index: 'qID'
} ); } );
...@@ -242,9 +310,9 @@ let inc = 1; ...@@ -242,9 +310,9 @@ let inc = 1;
for( let i = 0, _i = QS.length; i < _i; i++ ){ for( let i = 0, _i = QS.length; i < _i; i++ ){
const q = QS[ i ]; const q = QS[ i ];
debugger // debugger
// REAL SAVE // REAL SAVE
//return; // return;
let saved = await new Promise((r,j)=>{ let saved = await new Promise((r,j)=>{
var options = { var options = {
...@@ -253,7 +321,7 @@ let inc = 1; ...@@ -253,7 +321,7 @@ let inc = 1;
'headers': { 'headers': {
'Content-Type': 'application/json' 'Content-Type': 'application/json'
}, },
body: JSON.stringify({"card_info_id":q.cardInfoID,"text":q.title,"type":q.multiple?'checkbox':'radio'}) body: JSON.stringify({"card_info_id":q.cardInfoID,"card_id":q.cardInfoID,"text":q.title,"type":q.multiple?'checkbox':'radio'})
}; };
request(options, function (error, response) { request(options, function (error, response) {
...@@ -588,6 +656,8 @@ module.exports = { ...@@ -588,6 +656,8 @@ module.exports = {
}, },
fn: async function(args, req, res) { fn: async function(args, req, res) {
await ctx.ready; const rand = ctx.rand, seeded = ctx.seeded; await ctx.ready; const rand = ctx.rand, seeded = ctx.seeded;
//console.log('Generate sequence', args);
let useCategory = false, let useCategory = false,
categoryHash = {}; categoryHash = {};
...@@ -692,7 +762,7 @@ module.exports = { ...@@ -692,7 +762,7 @@ module.exports = {
} }
if(result && !(result.categoryId + '.' + result.productId in used)){ if(result && (!(result.categoryId + '.' + result.productId in used) || take.type === 2)){
used[ result.categoryId + '.' + result.productId ] = true; used[ result.categoryId + '.' + result.productId ] = true;
list.push( result ); list.push( result );
generated++; generated++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment