Add ability to load genres associations from file
This commit is contained in:
parent
d4f7d860f7
commit
223fe0c4fb
6 changed files with 659 additions and 6 deletions
574
genres_to_upload.txt
Normal file
574
genres_to_upload.txt
Normal file
|
@ -0,0 +1,574 @@
|
||||||
|
about_musicians:::О музыкантах и композиторах
|
||||||
|
accounting:::Бухучет и аудит
|
||||||
|
addition:::Дополнительные материалы к книге
|
||||||
|
adv_all:::Приключения
|
||||||
|
adv_animal:::Природа и животные
|
||||||
|
adv_geo:::Путешествия и география
|
||||||
|
adv_history:::Исторические приключения
|
||||||
|
adv_indian:::Приключения про индейцев
|
||||||
|
adv_maritime:::Морские приключения
|
||||||
|
adv_military:::Военные приключения
|
||||||
|
adv_modern:::Приключения в современном мире
|
||||||
|
adv_rus:::Русская приключенческая литература
|
||||||
|
adv_story:::Авантюрный роман
|
||||||
|
adv_su:::Советская приключенческая литература
|
||||||
|
adv_western:::Вестерн
|
||||||
|
adventure:::Приключения
|
||||||
|
adventure_fantasy:::Приключенческое фэнтези
|
||||||
|
age_all:::Литература по возрасту
|
||||||
|
age_elementary:::Для начальной школы 6+
|
||||||
|
age_high:::Для старшего школьного возраста 16+
|
||||||
|
ages_all:::Литература по эпохам
|
||||||
|
ant_all:::Старинное
|
||||||
|
antique:::Старинная литература
|
||||||
|
antique_ant:::Античная литература
|
||||||
|
antique_east:::Древневосточная литература
|
||||||
|
antique_european:::Древнеевропейская литература
|
||||||
|
antique_myths:::Мифы. Легенды. Эпос
|
||||||
|
antique_russian:::Древнерусская литература
|
||||||
|
aphorisms:::Афоризмы и цитаты
|
||||||
|
architecture_book:::Архитектура и скульптура
|
||||||
|
art_all:::Культура и искусство
|
||||||
|
art_criticism:::Искусствоведение
|
||||||
|
art_dance:::Танцы и хореография
|
||||||
|
art_history:::История искусства
|
||||||
|
art_world_culture:::Мировая художественная культура
|
||||||
|
article:::Статья
|
||||||
|
astrology:::Астрология
|
||||||
|
atheism:::Атеизм
|
||||||
|
audiobook:::Аудиокнига
|
||||||
|
auto_business:::Автостроение, автодело, тракторная техника
|
||||||
|
auto_regulations:::Авто-, мото- и велотранспорт, ПДД
|
||||||
|
autor_collection:::Авторские сборники, собрания сочинений
|
||||||
|
banking:::Банковское дело
|
||||||
|
banking_all:::Деловая литература
|
||||||
|
beginning_authors:::Начинающие авторы
|
||||||
|
bestseller:::Бестселлеры
|
||||||
|
biolog_all:::Науки о живой природе
|
||||||
|
cats:::Кошки
|
||||||
|
child_adv:::Детские приключения
|
||||||
|
child_all:::Детская литература
|
||||||
|
child_baby:::Для самых маленьких 0+
|
||||||
|
child_classical:::Классическая детская литература
|
||||||
|
child_det:::Детские остросюжетные
|
||||||
|
child_education:::Детская образовательная литература
|
||||||
|
child_fantasy:::Детское фэнтези
|
||||||
|
child_folklore:::Детский фольклор
|
||||||
|
child_horror:::Детские ужастики
|
||||||
|
child_prose:::Детская проза
|
||||||
|
child_rus:::Русская детская литература
|
||||||
|
child_sf:::Детская фантастика
|
||||||
|
child_su:::Советская детская литература
|
||||||
|
child_tale:::Сказки для детей
|
||||||
|
child_tale_rus:::Русские сказки для детей
|
||||||
|
child_verse:::Детские стихи
|
||||||
|
children:::Детская литература: прочее
|
||||||
|
cine:::Кино
|
||||||
|
collection:::Сборники, альманахи, антологии
|
||||||
|
coloring:::Раскраски, прописи
|
||||||
|
comedy:::Комедия
|
||||||
|
comics:::Комикс, Манга
|
||||||
|
comp_all:::Компьютеры и Интернет
|
||||||
|
comp_cobol:::Cobol
|
||||||
|
comp_db:::Базы данных
|
||||||
|
comp_db_exp:::Базы знаний и экспертные системы
|
||||||
|
comp_design:::Графика. Дизайн. Мультимедиа
|
||||||
|
comp_dsp:::Цифровая обработка сигналов
|
||||||
|
comp_dv_ai:::Искусственный интеллект
|
||||||
|
comp_game:::Игровые приставки и автоматы
|
||||||
|
comp_hacking:::Хакерство
|
||||||
|
comp_hard:::Аппаратное обеспечение, компьютерное железо
|
||||||
|
comp_history:::История информатики и вычислительной техники
|
||||||
|
comp_os:::Прочие ОС
|
||||||
|
comp_os_admin:::ОС: администрирование, мониторинг, диагностика
|
||||||
|
comp_os_android:::Android
|
||||||
|
comp_os_linux:::Linux
|
||||||
|
comp_os_macos:::MacOS
|
||||||
|
comp_os_msdos:::MS-DOS, FreeDOS
|
||||||
|
comp_os_os2:::OS/2
|
||||||
|
comp_os_theory:::ОС: теоретические вопросы
|
||||||
|
comp_os_unix:::Unix
|
||||||
|
comp_os_windows:::Windows
|
||||||
|
comp_osnet:::Сети
|
||||||
|
comp_prog_ada:::Ada
|
||||||
|
comp_prog_assembler:::Assembler
|
||||||
|
comp_prog_basic:::Basic, Visual Basic, VB Script, VBA и т.п.
|
||||||
|
comp_prog_c:::C, C++, C#
|
||||||
|
comp_prog_dotnet:::.NET Framework
|
||||||
|
comp_prog_forth:::Forth
|
||||||
|
comp_prog_fortran:::Fortran
|
||||||
|
comp_prog_golang:::Go (golang)
|
||||||
|
comp_prog_java:::Java, Java Script
|
||||||
|
comp_prog_lisp:::Lisp, Scheme
|
||||||
|
comp_prog_mfc:::MFC
|
||||||
|
comp_prog_oberon:::Modula-2, Modula-3, Oberon, Oberon-2, Component Pascal
|
||||||
|
comp_prog_pascal:::Pascal, Delphi, Lazarus и т.п.
|
||||||
|
comp_prog_perl:::Perl
|
||||||
|
comp_prog_php:::PHP
|
||||||
|
comp_prog_prolog:::Prolog
|
||||||
|
comp_prog_python:::Python
|
||||||
|
comp_prog_qt:::Qt
|
||||||
|
comp_prog_ror:::Ruby
|
||||||
|
comp_prog_rust:::Rust
|
||||||
|
comp_prog_scratch:::Scratch, Snap!, Slash, Panther и т.п.
|
||||||
|
comp_prog_winapi:::Windows API
|
||||||
|
comp_programming:::Другие языки и системы программирования
|
||||||
|
comp_security:::Компьютерная безопасность
|
||||||
|
comp_soft:::Программы
|
||||||
|
comp_soft_cad:::САПР
|
||||||
|
comp_soft_dev:::Программирование: прочее
|
||||||
|
comp_soft_dev_alg:::Алгоритмы и структуры данных
|
||||||
|
comp_soft_dev_craking:::Крэкинг и реверсинжиниринг
|
||||||
|
comp_soft_dev_debug:::Отладка, тестирование и оптимизация ПО
|
||||||
|
comp_soft_dev_games:::Программирование игр
|
||||||
|
comp_soft_dev_graphic:::Программирование графики
|
||||||
|
comp_soft_dev_man:::Менеджмент ПО
|
||||||
|
comp_soft_dev_oop:::Объектно-ориентированное программирование
|
||||||
|
comp_soft_dev_parallel:::Параллельное и распределенное программирование
|
||||||
|
comp_soft_dev_system:::Системное программирование
|
||||||
|
comp_soft_office:::Офисные приложения
|
||||||
|
comp_www:::Интернет
|
||||||
|
comp_www_design:::Web-дизайн
|
||||||
|
compilation:::Компиляции
|
||||||
|
computers:::Околокомпьютерная литература
|
||||||
|
crossover:::Кроссовер
|
||||||
|
design:::Искусство и Дизайн
|
||||||
|
det_action:::Боевик
|
||||||
|
det_all:::Детективы и Триллеры
|
||||||
|
det_classic:::Классический детектив
|
||||||
|
det_cozy:::Дамский детективный роман
|
||||||
|
det_crime:::Криминальный детектив
|
||||||
|
det_espionage:::Шпионский детектив
|
||||||
|
det_hard:::Крутой детектив
|
||||||
|
det_history:::Исторический детектив
|
||||||
|
det_irony:::Иронический детектив
|
||||||
|
det_maniac:::Маньяки
|
||||||
|
det_police:::Полицейский детектив
|
||||||
|
det_political:::Политический детектив
|
||||||
|
det_rus:::Российский детектив
|
||||||
|
det_su:::Советский детектив
|
||||||
|
detective:::Детектив
|
||||||
|
diafilm:::Диафильм
|
||||||
|
diaries:::Записки, дневники
|
||||||
|
dissident:::Антисоветская литература
|
||||||
|
dogs:::Собаки
|
||||||
|
dragon_fantasy:::О драконах
|
||||||
|
drama:::Драма
|
||||||
|
drama_all:::Драматургия
|
||||||
|
drama_antique:::Античная драма
|
||||||
|
dramaturgy:::Драматургия
|
||||||
|
dramaturgy_for_classic:::Зарубежная классическая драматургия
|
||||||
|
dramaturgy_rus:::Русская современная драматургия
|
||||||
|
dramaturgy_rus_classic:::Русская классическая драматургия
|
||||||
|
dramaturgy_su:::Советская драматургия
|
||||||
|
dystopian:::Антиутопия
|
||||||
|
economics_ref:::Справочная деловая литература
|
||||||
|
epic:::Былины
|
||||||
|
epic_all:::Фольклор
|
||||||
|
epic_poetry:::Эпическая поэзия
|
||||||
|
epistolary_fiction:::Эпистолярная проза
|
||||||
|
equ_history:::История техники
|
||||||
|
erotic_fantasy:::Эротическое фэнтези
|
||||||
|
essay:::Эссе, очерк, этюд, набросок
|
||||||
|
ex_su_publication:::Современные издания стран бывшего СССР
|
||||||
|
experimental_poetry:::Экспериментальная поэзия
|
||||||
|
extravaganza:::Феерия
|
||||||
|
fable:::Басни
|
||||||
|
fairy_fantasy:::Сказочная фантастика
|
||||||
|
family:::Семейные отношения
|
||||||
|
fan_translation:::Любительские переводы
|
||||||
|
fanfiction:::Фанфик
|
||||||
|
fantasy_all:::Фэнтези
|
||||||
|
fantasy_dark:::Темное фэнтези
|
||||||
|
fantasy_epic:::Эпическое фэнтези
|
||||||
|
fantasy_fight:::Боевое фэнтези
|
||||||
|
fantasy_heroic:::Героическое фэнтези
|
||||||
|
fantasy_rus:::Российское фэнтези
|
||||||
|
fantasy_wuxia:::Уся
|
||||||
|
fashion_style:::Мода и стиль
|
||||||
|
folk_songs:::Народные песни
|
||||||
|
folk_tale:::Народные сказки
|
||||||
|
folk_traditions:::Народные приметы, обряды, традиции
|
||||||
|
folklore:::Фольклор: прочее
|
||||||
|
folklore_rus:::Русский фольклор
|
||||||
|
foreign_adventure:::Зарубежная приключенческая литература
|
||||||
|
foreign_antique:::Литература V-XIII веков (эпоха Средневековья)
|
||||||
|
foreign_children:::Зарубежная литература для детей
|
||||||
|
foreign_contemporary:::Зарубежная современная проза
|
||||||
|
foreign_detective:::Зарубежный детектив
|
||||||
|
foreign_dramaturgy:::Зарубежная современная драматургия
|
||||||
|
foreign_fantasy:::Зарубежное фэнтези
|
||||||
|
foreign_language:::Иностранные языки
|
||||||
|
foreign_love:::Зарубежная литература о любви
|
||||||
|
foreign_prose:::Зарубежная классическая проза
|
||||||
|
foreign_publication:::Современные зарубежные издания
|
||||||
|
foreign_sf:::Зарубежная фантастика
|
||||||
|
foreign_su_publication:::Зарубежные издания советского периода
|
||||||
|
formp_all:::Формы произведений
|
||||||
|
fragment:::Отрывок, ознакомительный фрагмент
|
||||||
|
geo_guides:::Путеводители
|
||||||
|
global_economy:::Внешняя торговля
|
||||||
|
gothic_novel:::Готический роман
|
||||||
|
great_story:::Повесть
|
||||||
|
historical_fantasy:::Историческое фэнтези
|
||||||
|
history_africa:::История Африки
|
||||||
|
history_all:::История и археология
|
||||||
|
history_america:::История Америки
|
||||||
|
history_asia:::История Азии
|
||||||
|
history_australia:::История Австралии и Океании
|
||||||
|
history_europe:::История Европы
|
||||||
|
history_russia:::История России и СССР
|
||||||
|
history_world:::Мировая история
|
||||||
|
hobbies_all:::Хобби и ремесла
|
||||||
|
home:::Дом и семья: прочее
|
||||||
|
home_all:::Домоводство (Дом и семья)
|
||||||
|
home_aquarium:::Аквариумистика
|
||||||
|
home_beauty:::Красота
|
||||||
|
home_beekeeping:::Пчеловодство
|
||||||
|
home_bookmaking:::Книгоделие
|
||||||
|
home_building:::Индивидуальное строительство и ремонт
|
||||||
|
home_child:::Дети. Книги для родителей
|
||||||
|
home_collecting:::Коллекционирование
|
||||||
|
home_cooking:::Кулинария
|
||||||
|
home_crafts:::Хобби и ремесла: прочее
|
||||||
|
home_diy:::Сделай сам
|
||||||
|
home_entertain:::Игры и развлечения
|
||||||
|
home_fishing:::Рыболовство и рыбоводство
|
||||||
|
home_floriculture:::Цветоводство и комнатное садоводство
|
||||||
|
home_furniture:::Изготовление и ремонт мебели
|
||||||
|
home_garden:::Сад и огород
|
||||||
|
home_handiwork:::Рукоделие
|
||||||
|
home_health:::Здоровье
|
||||||
|
home_housekeeping:::Домоводство
|
||||||
|
home_hunt:::Охота и охотоведение
|
||||||
|
home_inventory:::Инвентарь, инструменты
|
||||||
|
home_livestock:::Животноводство и птицеводство
|
||||||
|
home_marine:::Морское дело, парусный спорт
|
||||||
|
home_metalwork:::Работа по металлу
|
||||||
|
home_modelling:::Моделизм и диорамостроение
|
||||||
|
home_mountain:::Альпинизм и скалолазание
|
||||||
|
home_mushrooms:::Сбор и выращивание грибов
|
||||||
|
home_pets:::Домашние животные
|
||||||
|
home_sex:::Эротика, Секс
|
||||||
|
home_speedreading:::Скорочтение
|
||||||
|
home_sport:::Физкультура и спорт
|
||||||
|
home_survival:::Выживание и личная безопасность
|
||||||
|
home_tourism:::Туризм
|
||||||
|
home_winemaking:::Виноделие, спиртные напитки
|
||||||
|
home_woodwork:::Работа по дереву
|
||||||
|
home_writing_art:::Писательское искусство
|
||||||
|
hronoopera:::Хроноопера
|
||||||
|
humor:::Юмор: прочее
|
||||||
|
humor_all:::Юмор
|
||||||
|
humor_anecdote:::Анекдоты
|
||||||
|
humor_fantasy:::Юмористическое фэнтези
|
||||||
|
humor_parody:::Пародии, шаржи, эпиграммы, карикатуры
|
||||||
|
humor_prose:::Юмористическая проза
|
||||||
|
humor_satire:::Сатира
|
||||||
|
humor_tales:::Байки
|
||||||
|
humor_verse:::Юмористические стихи
|
||||||
|
in_prose:::В прозе
|
||||||
|
in_reduction:::В сокращении
|
||||||
|
in_retelling:::В пересказе, в лит. обработке
|
||||||
|
in_verse:::в стихах
|
||||||
|
industries:::Отраслевые издания
|
||||||
|
interview:::Беседы и интервью
|
||||||
|
invalid:::Для людей с ограниченными возможностями
|
||||||
|
job_hunting:::Поиск работы, карьера
|
||||||
|
letters:::Письма, переписки
|
||||||
|
limerick:::Частушки, прибаутки, потешки
|
||||||
|
literary_fairy_tale:::Литературные сказки
|
||||||
|
literature_16:::Литература XIV-XVI веков (эпоха Возрождения)
|
||||||
|
literature_18:::Литература XVII-XVIII веков (эпоха Просвещения)
|
||||||
|
literature_19:::Литература ХIX века (эпоха Промышленной революции)
|
||||||
|
literature_20:::Литература ХX века (эпоха Социальных революций)
|
||||||
|
literature_21:::Литература ХXI века (эпоха Глобализации экономики)
|
||||||
|
literature_4:::Литература IV века и ранее (эпоха Древнего мира)
|
||||||
|
local_lore_study:::Краеведение
|
||||||
|
love:::О любви
|
||||||
|
love_all:::Любовные романы
|
||||||
|
love_contemporary:::Современные любовные романы
|
||||||
|
love_detective:::Остросюжетные любовные романы
|
||||||
|
love_erotica:::Эротика
|
||||||
|
love_fantasy:::Любовное фэнтези
|
||||||
|
love_history:::Исторические любовные романы
|
||||||
|
love_rus:::Русская литература о любви
|
||||||
|
love_sf:::Любовная фантастика
|
||||||
|
love_short:::Короткие любовные романы
|
||||||
|
love_su:::Советская литература о любви
|
||||||
|
lyrics:::Лирика
|
||||||
|
magician_book:::Магическое фэнтези
|
||||||
|
management:::Управление, подбор персонала
|
||||||
|
marketing:::Маркетинг, PR, реклама
|
||||||
|
military:::Военное дело
|
||||||
|
military_all:::Военное дело
|
||||||
|
military_arts:::Боевые искусства
|
||||||
|
military_history:::Военная история
|
||||||
|
military_memoirs:::Военные мемуары
|
||||||
|
military_special:::Спецслужбы
|
||||||
|
military_weapon:::Военная техника и вооружение
|
||||||
|
modern_tale:::Современная сказка
|
||||||
|
music:::Музыкальная литература: прочее
|
||||||
|
music_all:::Музыкальное искусство
|
||||||
|
music_conducting:::Дирижирование
|
||||||
|
music_history:::История музыки
|
||||||
|
music_instrumental:::Инструментальное искусство
|
||||||
|
music_theory:::Теория музыки
|
||||||
|
music_vocal:::Вокальное и хоровое искусство
|
||||||
|
musicology:::Музыковедение и этномузыковедение
|
||||||
|
mystery:::Мистерия
|
||||||
|
naturalist_notes:::Заметки натуралиста
|
||||||
|
network_literature:::Самиздат, сетевая литература
|
||||||
|
nonf_all:::Документальная литература
|
||||||
|
nonf_biography:::Биографии и Мемуары
|
||||||
|
nonf_criticism:::Критика
|
||||||
|
nonf_military:::Военная документалистика и аналитика
|
||||||
|
nonf_publicism:::Публицистика
|
||||||
|
nonfiction:::Документальная литература
|
||||||
|
notes:::Нотная литература: прочее
|
||||||
|
notes_accordion:::Для баяна и аккордеона
|
||||||
|
notes_all:::Музыка: нотная литература
|
||||||
|
notes_brass:::Для духовых инструментов
|
||||||
|
notes_clavier:::Для клавира
|
||||||
|
notes_ensemble:::Для инструментальных ансамблей
|
||||||
|
notes_handbook:::Музыкальные справочники, пособия, самоучители, школы игры
|
||||||
|
notes_harmonica:::Для гармоник
|
||||||
|
notes_keyboard:::Для клавишных инструментов
|
||||||
|
notes_orchestra:::Партитуры для оркестра
|
||||||
|
notes_percussion:::Для ударных инструментов, перкуссии, идиофонов
|
||||||
|
notes_religious:::Религиозная музыка и песнопения
|
||||||
|
notes_songbook:::Песенники
|
||||||
|
notes_string_bowed:::Для струнно-смычковых инструментов
|
||||||
|
notes_string_plucked:::Для струнно-щипковых инструментов
|
||||||
|
notes_vocal:::Вокальная, оперная и хоровая музыка
|
||||||
|
novelization:::Новеллизации
|
||||||
|
nsf:::Ненаучная фантастика
|
||||||
|
old_foreign_publication:::Дореволюционные зарубежные издания
|
||||||
|
old_rus_publication:::Дореволюционные российские издания
|
||||||
|
org_behavior:::Корпоративная культура
|
||||||
|
os_all:::Компьютеры: Операционные системы
|
||||||
|
other:::Неотсортированное
|
||||||
|
other_all:::Прочее
|
||||||
|
outdated:::Устаревшие материалы
|
||||||
|
painting:::Живопись, альбомы, иллюстрированные каталоги
|
||||||
|
palindromes:::Палиндромы
|
||||||
|
palmistry:::Хиромантия
|
||||||
|
paper_work:::Делопроизводство
|
||||||
|
periodic:::Газеты и журналы
|
||||||
|
personal_finance:::Личные финансы
|
||||||
|
poem:::Поэма
|
||||||
|
poetry:::Поэзия
|
||||||
|
poetry_all:::Поэзия
|
||||||
|
poetry_classical:::Классическая поэзия
|
||||||
|
poetry_east:::Поэзия Востока
|
||||||
|
poetry_for_classical:::Классическая зарубежная поэзия
|
||||||
|
poetry_for_modern:::Современная зарубежная поэзия
|
||||||
|
poetry_military:::Стихи о войне
|
||||||
|
poetry_modern:::Современная поэзия
|
||||||
|
poetry_rus_classical:::Классическая русская поэзия
|
||||||
|
poetry_rus_modern:::Современная русская поэзия
|
||||||
|
poetry_su:::Советская поэзия
|
||||||
|
popadanec:::Попаданцы
|
||||||
|
popular_business:::О бизнесе популярно
|
||||||
|
postcards:::Наборы открыток, календари
|
||||||
|
presentation:::Презентация
|
||||||
|
prog_lang_all:::Компьютеры: Языки и системы программирования
|
||||||
|
programming_all:::Компьютеры: Разработка ПО
|
||||||
|
prose:::Проза
|
||||||
|
prose_abs:::Фантасмагория, абсурдистская проза
|
||||||
|
prose_all:::Проза
|
||||||
|
prose_classic:::Классическая проза
|
||||||
|
prose_contemporary:::Современная проза
|
||||||
|
prose_counter:::Контркультура
|
||||||
|
prose_epic:::Эпопея
|
||||||
|
prose_game:::Книга-игра
|
||||||
|
prose_history:::Историческая проза
|
||||||
|
prose_magic:::Магический реализм
|
||||||
|
prose_military:::Военная проза
|
||||||
|
prose_neformatny:::Экспериментальная, неформатная проза
|
||||||
|
prose_rus_classic:::Русская классическая проза
|
||||||
|
prose_sentimental:::Сентиментальная проза
|
||||||
|
prose_su_classics:::Советская проза
|
||||||
|
proverbs:::Пословицы, поговорки
|
||||||
|
psy_childs:::Детская психология
|
||||||
|
psy_sex_and_family:::Секс и семейная психология
|
||||||
|
psy_theraphy:::Психотерапия и консультирование
|
||||||
|
psycho_all:::Психология и психиатрия
|
||||||
|
pub_all:::Литература по изданиям
|
||||||
|
publishing:::Библиотечное и редакционно-издательское дело
|
||||||
|
radio_tv:::Радио и телевидение
|
||||||
|
rarity:::Раритетные издания
|
||||||
|
real_estate:::Недвижимость
|
||||||
|
ref_all:::Справочная литература
|
||||||
|
ref_dict:::Словари
|
||||||
|
ref_encyc:::Энциклопедии
|
||||||
|
ref_guide:::Руководства
|
||||||
|
ref_ref:::Справочники
|
||||||
|
ref_self_tutor:::Самоучители
|
||||||
|
reference:::Справочная литература: прочее
|
||||||
|
rel_all:::Религия и духовность
|
||||||
|
religion:::Религия и духовность: прочее
|
||||||
|
religion_budda:::Буддизм
|
||||||
|
religion_catholicism:::Католицизм
|
||||||
|
religion_christianity:::Христианство
|
||||||
|
religion_esoterics:::Эзотерика, мистицизм, оккультизм
|
||||||
|
religion_hinduism:::Индуизм
|
||||||
|
religion_islam:::Ислам
|
||||||
|
religion_judaism:::Иудаизм
|
||||||
|
religion_orthodoxy:::Православие
|
||||||
|
religion_paganism:::Язычество
|
||||||
|
religion_protestantism:::Протестантизм
|
||||||
|
religion_rel:::Религия
|
||||||
|
religion_self:::Самосовершенствование
|
||||||
|
riddles:::Загадки
|
||||||
|
roman:::Роман
|
||||||
|
rus_publication:::Современные российские издания
|
||||||
|
russian_contemporary:::Русская современная проза
|
||||||
|
russian_fantasy:::Славянское фэнтези
|
||||||
|
sagas:::Семейный роман/Семейная сага
|
||||||
|
scenarios:::Сценарии
|
||||||
|
sci_abstract:::Статьи и рефераты
|
||||||
|
sci_aerodynamics:::Аэро-, газо- и гидродинамика
|
||||||
|
sci_all:::Наука, Образование: прочее
|
||||||
|
sci_archeology:::Археология
|
||||||
|
sci_biochem:::Биохимия
|
||||||
|
sci_biology:::Биология
|
||||||
|
sci_biophys:::Биофизика
|
||||||
|
sci_botany:::Ботаника
|
||||||
|
sci_build:::Строительство и монтажные работы
|
||||||
|
sci_business:::Деловая литература: прочее
|
||||||
|
sci_chem:::Химия
|
||||||
|
sci_cosmos:::Астрономия и Космос
|
||||||
|
sci_crib:::Шпаргалки
|
||||||
|
sci_culture:::Культурология
|
||||||
|
sci_ecology:::Экология и защита природы
|
||||||
|
sci_economy:::Экономика
|
||||||
|
sci_electronics:::Электроника, микроэлектроника, схемотехника
|
||||||
|
sci_energy:::Энергетика, электротехника
|
||||||
|
sci_engineering:::Конструирование, изобретательство, рационализаторство
|
||||||
|
sci_evolutionism:::Эволюционизм
|
||||||
|
sci_ex_all:::Науки естественные
|
||||||
|
sci_fleet:::Судостроение, флот
|
||||||
|
sci_geo:::Геологические науки и горное дело
|
||||||
|
sci_geography:::География и другие науки о Земле
|
||||||
|
sci_history:::История: прочее
|
||||||
|
sci_history_0:::История первобытного общества
|
||||||
|
sci_history_15:::История Средних веков
|
||||||
|
sci_history_18:::История Нового времени
|
||||||
|
sci_history_20:::Новейшая история
|
||||||
|
sci_history_21:::Современная история
|
||||||
|
sci_history_4:::История Древнего мира
|
||||||
|
sci_hu_all:::Науки общественные и гуманитарные
|
||||||
|
sci_hypnosis:::Гипноз, НЛП, внушение и самовнушение
|
||||||
|
sci_instrumentation:::Приборостроение
|
||||||
|
sci_juris:::Юриспруденция
|
||||||
|
sci_linguistic:::Языкознание
|
||||||
|
sci_math:::Математика
|
||||||
|
sci_medicine:::Медицина
|
||||||
|
sci_medicine_alternative:::Альтернативная медицина
|
||||||
|
sci_metal:::Металлургия
|
||||||
|
sci_oriental:::Востоковедение
|
||||||
|
sci_paleontology:::Палеонтология
|
||||||
|
sci_pedagogy:::Педагогика
|
||||||
|
sci_philology:::Литературоведение
|
||||||
|
sci_philosophy:::Философия
|
||||||
|
sci_phys:::Физика
|
||||||
|
sci_politics:::Политика и дипломатия
|
||||||
|
sci_popular:::Научно-популярная и научно-художественная литература
|
||||||
|
sci_psychiatry:::Психиатрия и наркология
|
||||||
|
sci_psychology:::Психология
|
||||||
|
sci_radio:::Радиоэлектроника, радиотехника, связь
|
||||||
|
sci_religion:::Религиоведение
|
||||||
|
sci_social_studies:::Социология
|
||||||
|
sci_state:::Государство и право
|
||||||
|
sci_tech:::Технические науки
|
||||||
|
sci_tech_assembling:::Сборка, неразъемное соединение
|
||||||
|
sci_tech_chem:::Химическая и нефтехимическая промышленности
|
||||||
|
sci_tech_drawing:::Начертательная геометрия, инженерная графика, черчение
|
||||||
|
sci_tech_ergonomics:::Психология труда, инженерная психология и эргономика
|
||||||
|
sci_tech_hydraulics:::Гидравлика, пневматика
|
||||||
|
sci_tech_machine_parts:::Детали машин
|
||||||
|
sci_tech_machinery:::Машиностроение и металлообработка
|
||||||
|
sci_tech_materials:::Материаловедение, конструкционные и прочие материалы
|
||||||
|
sci_tech_mech:::Механика
|
||||||
|
sci_tech_metrology:::Метрология, стандартизация и сертификация
|
||||||
|
sci_tech_nano:::Наноматериалы и нанотехнологии
|
||||||
|
sci_tech_oil:::Нефтегазовая и угольная промышленности
|
||||||
|
sci_tech_print:::Полиграфическое и упаковочное производство
|
||||||
|
sci_tech_protection:::Безопасность жизнедеятельности и охрана труда
|
||||||
|
sci_tech_reliability:::Диагностика, неразрушающий контроль и надежность
|
||||||
|
sci_tech_robot:::Автоматизация, робототехника, мехатроника
|
||||||
|
sci_tech_rockets:::Авиация, ракетная и космическая техника
|
||||||
|
sci_tech_sopromat:::Строительная механика и сопромат
|
||||||
|
sci_tech_standards:::Нормативно-техническая документация
|
||||||
|
sci_tech_theormech:::Теория механизмов и машин
|
||||||
|
sci_textbook:::Учебники и пособия: прочее
|
||||||
|
sci_textbook_su:::Советские учебники и пособия
|
||||||
|
sci_theories:::Паранаука, псевдонаука, альтернативные теории
|
||||||
|
sci_thermodynamics:::Термодинамика, теплопередача, теплотехника
|
||||||
|
sci_thesis:::Диссертации, дипломные, курсовые и прочие работы
|
||||||
|
sci_transport:::Транспорт и спецтехника
|
||||||
|
sci_veterinary:::Ветеринария
|
||||||
|
sci_zoo:::Зоология
|
||||||
|
science:::Научная литература
|
||||||
|
science_history:::История науки
|
||||||
|
screenplays:::Киносценарии
|
||||||
|
sf:::Научная Фантастика
|
||||||
|
sf_action:::Боевая фантастика
|
||||||
|
sf_all:::Фантастика
|
||||||
|
sf_cyberpunk:::Киберпанк
|
||||||
|
sf_detective:::Детективная фантастика
|
||||||
|
sf_epic:::Эпическая фантастика
|
||||||
|
sf_etc:::Фантастика: прочее
|
||||||
|
sf_fantasy:::Фэнтези: прочее
|
||||||
|
sf_fantasy_city:::Городское фэнтези
|
||||||
|
sf_fantasy_irony:::Ироническое фэнтези
|
||||||
|
sf_heroic:::Героическая фантастика
|
||||||
|
sf_history:::Альтернативная история
|
||||||
|
sf_horror:::Ужасы
|
||||||
|
sf_humor:::Юмористическая фантастика
|
||||||
|
sf_irony:::Ироническая фантастика
|
||||||
|
sf_litrpg:::ЛитРПГ
|
||||||
|
sf_mystic:::Мистика
|
||||||
|
sf_paleontological:::Палеонтологическая фантастика
|
||||||
|
sf_postapocalyptic:::Постапокалипсис
|
||||||
|
sf_realrpg:::РеалРПГ
|
||||||
|
sf_rus:::Российская фантастика
|
||||||
|
sf_social:::Социально-философская фантастика
|
||||||
|
sf_space:::Космическая фантастика
|
||||||
|
sf_space_opera:::Космоопера
|
||||||
|
sf_stimpank:::Стимпанк
|
||||||
|
sf_su:::Советская фантастика
|
||||||
|
sf_technofantasy:::Технофэнтези
|
||||||
|
short_story:::Рассказ
|
||||||
|
small_business:::Малый бизнес
|
||||||
|
song_poetry:::Песенная поэзия
|
||||||
|
sound_engineering:::Звукорежиссура
|
||||||
|
speech:::Речи, выступления, доклады
|
||||||
|
stock:::Ценные бумаги, инвестиции
|
||||||
|
story:::Новелла
|
||||||
|
su_publication:::Советские издания
|
||||||
|
tale_chivalry:::Рыцарский роман
|
||||||
|
tbg_all:::Учебники и пособия
|
||||||
|
tbg_computers:::Учебники и самоучители по компьютеру
|
||||||
|
tbg_higher:::Учебники и пособия ВУЗов
|
||||||
|
tbg_school:::Школьные учебники и пособия
|
||||||
|
tbg_secondary:::Учебники и пособия для среднего и специального образования
|
||||||
|
tech_all:::Техника
|
||||||
|
theatre:::Театр
|
||||||
|
thriller:::Триллер
|
||||||
|
thriller_archaeological:::Археологический триллер
|
||||||
|
thriller_legal:::Юридический триллер
|
||||||
|
thriller_medical:::Медицинский триллер
|
||||||
|
thriller_psychology:::Психологический триллер
|
||||||
|
thriller_techno:::Техно триллер
|
||||||
|
trade:::Торговля
|
||||||
|
tragedy:::Трагедия
|
||||||
|
travel_notes:::Записки путешественника
|
||||||
|
unfinished:::Недописанное
|
||||||
|
vampire_book:::О вампирах
|
||||||
|
vaudeville:::Водевиль, буффонада
|
||||||
|
vers_libre:::Верлибры
|
||||||
|
visual_arts:::Изобразительное искусство, фотография
|
||||||
|
visual_poetry:::Визуальная поэзия
|
||||||
|
ya:::Для среднего школьного возраста (Подростковая литература) 12
|
|
@ -3,11 +3,13 @@ package ru.redrise.marinesco.library;
|
||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.Id;
|
import jakarta.persistence.Id;
|
||||||
import lombok.AccessLevel;
|
import lombok.AccessLevel;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Entity
|
@Entity
|
||||||
|
@AllArgsConstructor
|
||||||
@NoArgsConstructor(access = AccessLevel.PRIVATE, force = true)
|
@NoArgsConstructor(access = AccessLevel.PRIVATE, force = true)
|
||||||
public class Genre {
|
public class Genre {
|
||||||
@Id
|
@Id
|
||||||
|
|
|
@ -1,20 +1,28 @@
|
||||||
package ru.redrise.marinesco.library.settings;
|
package ru.redrise.marinesco.library.settings;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import ru.redrise.marinesco.data.GenreRepository;
|
import ru.redrise.marinesco.data.GenreRepository;
|
||||||
import ru.redrise.marinesco.library.Genre;
|
import ru.redrise.marinesco.library.Genre;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Controller
|
@Controller
|
||||||
|
@ -58,4 +66,16 @@ public class GenreSettingsController {
|
||||||
private class GenresHolder {
|
private class GenresHolder {
|
||||||
private List<Genre> genres;
|
private List<Genre> genres;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/upload")
|
||||||
|
public String postMethodName(@RequestParam("file") MultipartFile file,
|
||||||
|
RedirectAttributes redirectAttributes) {
|
||||||
|
|
||||||
|
final String message = GenresUpload.upload(file.getResource(), file.getSize(), genreRepository);
|
||||||
|
|
||||||
|
redirectAttributes.addFlashAttribute("message", message);
|
||||||
|
|
||||||
|
return "redirect:/settings/genres";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
package ru.redrise.marinesco.library.settings;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.core.io.Resource;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import ru.redrise.marinesco.data.GenreRepository;
|
||||||
|
import ru.redrise.marinesco.library.Genre;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class GenresUpload {
|
||||||
|
|
||||||
|
public static String upload(Resource resouce, long fileSize, GenreRepository repository) {
|
||||||
|
try (BufferedReader reader = new BufferedReader(new InputStreamReader(resouce.getInputStream()))){
|
||||||
|
if (fileSize == 0)
|
||||||
|
throw new Exception("empty file");
|
||||||
|
String line;
|
||||||
|
|
||||||
|
List<Genre> genres = new ArrayList<>();
|
||||||
|
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
String arr[] = line.split(":::");
|
||||||
|
|
||||||
|
if (arr.length != 2)
|
||||||
|
throw new Exception("Malformed file");
|
||||||
|
|
||||||
|
genres.add(new Genre(arr[0], arr[1]));
|
||||||
|
}
|
||||||
|
|
||||||
|
repository.saveAll(genres);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.debug("{}", e);
|
||||||
|
return "Upload failed: " + e.getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
return "Successfully uploaded: " + resouce.getFilename();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package ru.redrise.marinesco.library;
|
package ru.redrise.marinesco.library.web;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
|
@ -52,4 +52,4 @@ public class DownloadController {
|
||||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Book not found [" + e.getMessage() + "]");
|
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Book not found [" + e.getMessage() + "]");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,13 +10,28 @@
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<div th:replace="~{fragments/header :: ${#authorization.expression('isAuthenticated()')} ? 'header-auth' : 'header-anon'}"></div>
|
<div
|
||||||
|
th:replace="~{fragments/header :: ${#authorization.expression('isAuthenticated()')} ? 'header-auth' : 'header-anon'}">
|
||||||
|
</div>
|
||||||
<div class="container base">
|
<div class="container base">
|
||||||
|
<div class="wrapper_centred" th:if="${message != null}">
|
||||||
|
<em><span th:text="${message}"></span></em>
|
||||||
|
</div>
|
||||||
|
<form method="POST" th:action="@{/settings/genres/upload}" enctype="multipart/form-data">
|
||||||
|
<div class="wrapper_centred">
|
||||||
|
<span class="item0">Pick from file: </span>
|
||||||
|
<input class="item1" name="file" type="file" accept="text/plain" />
|
||||||
|
</div>
|
||||||
|
<div class="wrapper_centred"><button class="sign" type="submit">Apply</button></div>
|
||||||
|
</form>
|
||||||
|
<hr>
|
||||||
<form method="POST" th:action="@{/settings/genres}" th:object="${genresHolder}">
|
<form method="POST" th:action="@{/settings/genres}" th:object="${genresHolder}">
|
||||||
<div class="wrapper_centred" th:each="genre, itemStat : ${genresHolder.genres}">
|
<div class="wrapper_centred" th:each="genre, itemStat : ${genresHolder.genres}">
|
||||||
<label for="displayname" th:text="${genre.genreId}" class="item0"></label>
|
<span th:text="${genre.genreId}" class="item0"></span>
|
||||||
<input type="hidden" th:value="${genre.genreId}" th:field="*{genres[__${itemStat.index}__].genreId}" />
|
<input type="hidden" th:value="${genre.genreId}"
|
||||||
<input class="item1" type="text" th:field="*{genres[__${itemStat.index}__].humanReadableDescription}"
|
th:field="*{genres[__${itemStat.index}__].genreId}" />
|
||||||
|
<input class="item1" type="text"
|
||||||
|
th:field="*{genres[__${itemStat.index}__].humanReadableDescription}"
|
||||||
th:value="${genre.humanReadableDescription}" size="25%" />
|
th:value="${genre.humanReadableDescription}" size="25%" />
|
||||||
</div>
|
</div>
|
||||||
<div class="wrapper_centred"><button class="sign" type="submit">Save Changes</button></div>
|
<div class="wrapper_centred"><button class="sign" type="submit">Save Changes</button></div>
|
||||||
|
|
Loading…
Reference in a new issue