Поправки дерева жанров
This commit is contained in:
@@ -24,7 +24,7 @@ module.exports = `
|
||||
0.22 Учебники и пособия
|
||||
0.0 Неотсортированное
|
||||
#---------- 0.1 Фантастика ----------
|
||||
0.1.1 sf_history;Альтернативная история, попаданцы
|
||||
0.1.1 sf_history;Альтернативная история
|
||||
0.1.2 sf_action;Боевая фантастика
|
||||
0.1.3 sf_epic;Эпическая фантастика
|
||||
0.1.4 sf_heroic;Героическая фантастика
|
||||
@@ -47,7 +47,7 @@ module.exports = `
|
||||
0.1.231 sf_mystic;Мистика
|
||||
0.1.232 sf_stimpank;Стимпанк
|
||||
0.1.233 modern_tale;Современная сказка
|
||||
0.1.234 popadancy;Попаданцы
|
||||
0.1.254 popadancy;Попаданцы
|
||||
#---------- 0.2 Детективы и Триллеры ----------
|
||||
0.2.13 det_classic;Классический детектив
|
||||
0.2.14 det_police;Полицейский детектив
|
||||
@@ -275,5 +275,180 @@ module.exports = `
|
||||
0.22.250 tbg_school;Школьные учебники и пособия, рефераты, шпаргалки
|
||||
0.22.251 tbg_secondary;Учебники и пособия для среднего и специального образования
|
||||
0.22.252 tbg_higher;Учебники и пособия ВУЗов
|
||||
#---------- 2021-07-22 11:35:50.469539----------
|
||||
#---------- 2022-04-28 16:16:05.605170----------
|
||||
|
||||
#nonfb2
|
||||
#---------- Список жанров НЕ-fb2 ----------#
|
||||
0.1 study;Учебная литература
|
||||
0.1.0 study_preschool;Дошкольникам
|
||||
0.1.1 study_scool;Школьникам
|
||||
0.1.2 study_students;Студентам
|
||||
0.1.3 study_graduate;Аспирантам
|
||||
0.2 home;Дом. Быт. Досуг
|
||||
0.2.0 home_child;Дети. Книги для родителей
|
||||
0.2.1 home_health;Красота. Здоровье.
|
||||
0.2.2 home_handiwork;Рукоделие. Домоводство
|
||||
0.2.3 home_garden;Сад, огород, цветник, дизайн участка
|
||||
0.2.4 home_cooking;Кулинария
|
||||
0.2.5 home_pets;Домашние питомцы
|
||||
0.2.6 home_collecting;Коллекционирование
|
||||
0.2.7 home_sex;Любовь, эротика
|
||||
0.2.8 home_diy;Строительство, ремонт
|
||||
0.2.9 home_crafts;Увлечения. Хобби
|
||||
0.3 arts;Искусство
|
||||
0.3.0 arts_albums;Альбомы по искусству. Фотоальбомы
|
||||
0.3.1 art_visual;Изобразительное искусство. Архитектура
|
||||
0.3.2 art_sci;Искусствоведение
|
||||
0.3.3 art_film;Кино. Киноведение
|
||||
0.3.4 art_dance;Танец. Хореография
|
||||
0.3.5 art_theater;Театр. Сценическое искусство
|
||||
0.3.6 design;Дизайн
|
||||
0.4 languages;Иностранные языки
|
||||
0.4.0 lang_rus;Русский язык
|
||||
0.4.1 lag_eng;Английский язык
|
||||
0.4.1.0 lang_eng_textbook;Учебники, пособия
|
||||
0.4.1.1 lang_eng_dict;Словари
|
||||
0.4.1.2 lang_eng_read;Домашнее чтение
|
||||
0.4.1.3 lang_eng_theor;Теория и история
|
||||
0.4.1.4 lang_eng_phrase;Разговорники
|
||||
0.4.2 lang_arab;Арабский язык
|
||||
0.4.3 lang_east;Восточные языки
|
||||
0.4.4 lang_euro;Европейские языки
|
||||
0.4.5 lang_spanish;Испанский язык
|
||||
0.4.6 lang_it;Итальянский язык
|
||||
0.4.7 lang_chi;Китайский язык
|
||||
0.4.8 lang_korean;Корейский язык
|
||||
0.4.9 lang_lat;Латинский язык
|
||||
0.4.10 lang_de;Немецкий язык
|
||||
0.4.11 lang_pl;Польский язык
|
||||
0.4.12 lang_tu;Турецкий язык
|
||||
0.4.13 lang_fr;Французский язык
|
||||
0.4.14 lang_jap;Японский язык
|
||||
0.4.15 lang_greek;Древнегреческий и другие древние языки
|
||||
0.5 computers;Компьютерная литература
|
||||
0.5.0 comp_soft_office;Офисные программы
|
||||
0.5.1 comp_db;Базы данных
|
||||
0.5.1.0 comp_db_db2;DB2
|
||||
0.5.1.1 comp_db_mysql;MySQL
|
||||
0.5.1.2 comp_db_mssqlserver;MS SQL Server
|
||||
0.5.1.3 comp_db_oracle;Oracle
|
||||
0.5.1.4 comp_db_postgresql;PostgreSQL
|
||||
0.5.1.5 comp_db_sqlite;SQLite
|
||||
0.5.1.6 comp_db_sybase;Sybase SQL
|
||||
0.5.1.7 comp_dv_ai;Искуственный интеллект
|
||||
0.5.1.8 comp_db_exp;Экспертные системы
|
||||
0.5.2 comp_design;Графика. Дизайн. Мультимедиа
|
||||
0.5.3 comp_www;Интернет и Web-страницы
|
||||
0.5.3.0 comp_www_html;HTML
|
||||
0.5.3.1 comp_www_css;CSS
|
||||
0.5.3.2 comp_www_cms;CMS
|
||||
0.5.4 comp_security;Компьютерная безопасность
|
||||
0.5.5 comp_osnet;Сети
|
||||
0.5.6 comp_soft;Компьютеры и программы
|
||||
0.5.7 comp_os;Операционные системы
|
||||
0.5.7.0 comp_os_windows;Windows
|
||||
0.5.7.1 comp_os_linux;Linux
|
||||
0.5.7.2 comp_os_unix;UNIX
|
||||
0.5.8 comp_soft_dev;Разработка ПО
|
||||
0.5.8.0 comp_soft_dev_alg;Алгоритмы
|
||||
0.5.8.1 comp_soft_dev_man;Менеджмент
|
||||
0.5.8.2 comp_soft_dev_debug;Отладка
|
||||
0.5.9 comp_soft_cad;Системы проектирования
|
||||
0.5.10 comp_programming;Языки и системы программирования
|
||||
0.5.10.0 comp_prog_delphi;Delphi
|
||||
0.5.10.1 comp_prog_pascal;Pascal
|
||||
0.5.10.2 comp_prog_c;C
|
||||
0.5.10.3 comp_prog_cpp;C++
|
||||
0.5.10.3.0 comp_prog_gnuc;GNU C++
|
||||
0.5.10.3.1 comp_prog_msvc;MS Visual Studio
|
||||
0.5.10.3.2 comp_prog_qt;Qt
|
||||
0.5.10.4 comp_prog_csharp;C#
|
||||
0.5.10.5 comp_prog_java;Java
|
||||
0.5.10.6 comp_prog_js;JavaScript
|
||||
0.5.10.7 comp_prog_php;PHP
|
||||
0.5.10.8 comp_prog_pyton;Pyton
|
||||
0.5.10.9 comp_prog_ror;Ruby
|
||||
0.5.11 comp_dig_photo;Цифровая фотография
|
||||
0.5.12 comp_exam;Сертификационные экзамены
|
||||
0.5.13 comp_hard;Железо
|
||||
0.7 nonfiction;Публицистика
|
||||
0.7.0 nonf_biography;Биографии, мемуары
|
||||
0.7.1 nonf_publicism;Публицистика
|
||||
0.7.2 nonf_criticism;Критика
|
||||
0.8 Туризм. Фото. Спорт
|
||||
0.8.0 turism;Путешествия. Туризм
|
||||
0.8.1 auto;Автомобиль
|
||||
0.8.3 fish;Рыбалка
|
||||
0.8.4 hunt;Охота
|
||||
0.8.5 sport;Спорт
|
||||
0.9 religion;Религия. Изотерика
|
||||
0.9.0 religion_esoterics;Эзотерика
|
||||
0.9.1 religion_self;Самосовершенствование
|
||||
0.9.2 religion_budda;Буддизм
|
||||
0.10 science;Наука. Техника
|
||||
0.10.0 sci_tech;Техника. Технические науки
|
||||
0.10.0.0 sci_tech_industry;Промышленность
|
||||
0.10.0.0.0 sci_tech_oil;Нефть, газ
|
||||
0.10.0.0.1 sci_tech_machinery;Машиностроение
|
||||
0.10.0.0.2 sci_metal;Металлургия
|
||||
0.10.0.0.3 sci_tech_print;Полиграфия
|
||||
0.10.0.0.4 sci_tech_chem;Химическая
|
||||
0.10.0.1 sci_radio;Радиоэлектроника, радиотехника, связь
|
||||
0.10.0.2 sci_build;Строительство
|
||||
0.10.0.3 none;Технические науки
|
||||
0.10.0.3.0 sci_tech_sopromat;Сопротивление материалов
|
||||
0.10.0.3.1 sci_tech_theormech;Теория машин
|
||||
0.10.0.3.2 sci_tech_ref;Справочники
|
||||
0.10.0.4 sci_transport;Транспорт
|
||||
0.10.0.5 sci_energy;Энергетика. Электротехника
|
||||
0.10.1 none;Естественные науки
|
||||
0.10.1.0 sci_phys;Физика
|
||||
0.10.1.0.0 sci_phys_acustics;Акустика
|
||||
0.10.1.0.1 sci_phys_quant;Квантовая механика. Теория поля
|
||||
0.10.1.0.2 sci_phys_math;Математическая физика
|
||||
0.10.1.0.3 sci_phys_molecular;Молекулярная физика. Физика газов и жидкостей
|
||||
0.10.1.0.4 sci_phys_gen;Общие работы по физике
|
||||
0.10.1.0.5 sci_phys_optics;Оптика
|
||||
0.10.1.0.6 sci_phys_theor;Теоретическая физика
|
||||
0.10.1.0.7 sci_phys_thermo;Термодинамика и статистическая физика
|
||||
0.10.1.0.8 sci_phys_plasma;Физика плазмы
|
||||
0.10.1.0.9 sci_phys_nuclear;Физика атомного ядра и элементарных частиц
|
||||
0.10.1.0.10 sci_phys_solidstate;Физика твердого тела. Кристаллография
|
||||
0.10.1.0.11 sci_phys_em;Электричество и магнетизм
|
||||
0.10.1.0.12 sci_phys_ref;Энциклопедии, справочники, словари по физике
|
||||
0.10.1.1 sci_chem;Химические
|
||||
0.10.1.1.0 sci_hem_general;Общая химия
|
||||
0.10.1.1.1 sci_orgchem;Органическая химия
|
||||
0.10.1.1.2 sci_anachem;Аналитическая химия
|
||||
0.10.1.1.3 sci_physchem;Физическая химия
|
||||
0.10.1.2 none;Географические
|
||||
0.10.1.3 sci_biology;Биологические
|
||||
0.10.1.3.0 sci_biophys;Биофизика
|
||||
0.10.1.4 sci_math;Математика
|
||||
0.10.2 none;Ветеринария. Животноводство. Сельское хозяйство
|
||||
0.10.3 sicial;Общественные и гуманитарные науки
|
||||
0.10.3.0 sicial_var;Военное дело. Оружие. Спецслужбы
|
||||
0.10.3.1 sicial_hist;История. Археология. Этнография
|
||||
0.10.3.2 sicial_lit;Литературоведение. Фольклор
|
||||
0.10.3.3 sicial_ped;Педагогика
|
||||
0.10.3.4 sicial_pol;Политика
|
||||
0.10.3.5 sicial_law;Право. Юриспруденция
|
||||
0.10.3.6 sicial_psi;Психология
|
||||
0.10.3.7 sicial_sicial;Социология
|
||||
0.10.3.8 sicial_smi;Средства массовой информации. Книжное дело
|
||||
0.10.3.9 sicial_stat;Статистика. Демография
|
||||
0.10.3.10 sicial_phy;Философия
|
||||
0.10.3.11 sicial_lang;Языкознание. Филологические науки
|
||||
0.11 sci_medicine;Медицина
|
||||
0.11.0 sci_medicine_alternative;Нетрадиционная медицина
|
||||
0.12 reference;Справочная литература
|
||||
0.12.0 ref_encyc;Энциклопедии
|
||||
0.12.1 ref_dict;Словари
|
||||
0.12.2 ref_ref;Справочники
|
||||
0.12.3 ref_guide;Руководства
|
||||
0.12.4 geo_guides;Путеводители
|
||||
0.13 periodic;Периодика
|
||||
0.13.0 periodic_newspaper;Газеты
|
||||
0.13.1 periodic_mag;Журналы
|
||||
0.0 none;Неотсортированное
|
||||
`;
|
||||
@@ -1,13 +1,20 @@
|
||||
const genresText = require('./genresText.js');
|
||||
const genres = [];
|
||||
const nonfb2Genres = [];//костылики
|
||||
let nonfb2 = false;//костылики
|
||||
|
||||
const sec2index = {};
|
||||
const lines = genresText.split('\n').map(l => l.trim());
|
||||
|
||||
let index = 0;
|
||||
|
||||
let other;//прочее в конец
|
||||
const names = new Set();
|
||||
|
||||
for (const line of lines) {
|
||||
if (line.indexOf('#nonfb2') == 0)
|
||||
nonfb2 = true;
|
||||
|
||||
if (!line || line[0] == '#')
|
||||
continue;
|
||||
|
||||
@@ -22,32 +29,49 @@ for (const line of lines) {
|
||||
|
||||
let name = line.substring(p + 1).trim();
|
||||
|
||||
if (num.length < 3) {//раздел
|
||||
if (section == '0.20') {//прочее
|
||||
other = {name, value: []};
|
||||
} else {
|
||||
if (sec2index[section] === undefined) {
|
||||
if (!genres[index])
|
||||
genres[index] = {name, value: []};
|
||||
sec2index[section] = index;
|
||||
index++;
|
||||
if (!nonfb2) {
|
||||
if (num.length < 3) {//раздел
|
||||
if (section == '0.20') {//прочее
|
||||
other = {name, value: []};
|
||||
} else {
|
||||
if (sec2index[section] === undefined) {
|
||||
if (!genres[index])
|
||||
genres[index] = {name, value: []};
|
||||
sec2index[section] = index;
|
||||
index++;
|
||||
}
|
||||
}
|
||||
} else {//подраздел
|
||||
const n = name.split(';').map(l => l.trim());
|
||||
names.add(n[0]);
|
||||
|
||||
if (section == '0.20') {//прочее
|
||||
other.value.push({name: n[1], value: n[0]});
|
||||
} else {
|
||||
const i = sec2index[section];
|
||||
if (i !== undefined) {
|
||||
genres[i].value.push({name: n[1], value: n[0]});
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {//подраздел
|
||||
} else {
|
||||
const n = name.split(';').map(l => l.trim());
|
||||
|
||||
if (section == '0.20') {//прочее
|
||||
other.value.push({name: n[1], value: n[0]});
|
||||
} else {
|
||||
const i = sec2index[section];
|
||||
if (i !== undefined) {
|
||||
genres[i].value.push({name: n[1], value: n[0]});
|
||||
}
|
||||
}
|
||||
if (!names.has(n[0]))
|
||||
nonfb2Genres.push({name: n[1], value: n[0]});
|
||||
|
||||
names.add(n[0]);
|
||||
}
|
||||
}
|
||||
|
||||
if (other)
|
||||
if (other) {
|
||||
if (nonfb2Genres.length) {
|
||||
other.value = other.value.concat(nonfb2Genres);
|
||||
}
|
||||
|
||||
genres.push(other);
|
||||
}
|
||||
|
||||
//console.log(JSON.stringify(genres));
|
||||
|
||||
module.exports = genres;
|
||||
Reference in New Issue
Block a user