From 285b270bf2c379be4be7d4dcb507bb7c99acee02 Mon Sep 17 00:00:00 2001 From: Oleg Broytman Date: Fri, 11 May 2018 00:19:55 +0300 Subject: [PATCH] Feat(glst): Import all *.glst files --- m_librarian/glst.py | 12 +- ...nres_fb2.glst => genres_fb2_flibusta.glst} | 0 m_librarian/glst/genres_fb2_librusec.glst | 313 ++++++++++++++++++ tests/test_glst.py | 2 +- 4 files changed, 321 insertions(+), 6 deletions(-) rename m_librarian/glst/{genres_fb2.glst => genres_fb2_flibusta.glst} (100%) create mode 100644 m_librarian/glst/genres_fb2_librusec.glst diff --git a/m_librarian/glst.py b/m_librarian/glst.py index 6b2e090..9b16c14 100755 --- a/m_librarian/glst.py +++ b/m_librarian/glst.py @@ -2,6 +2,7 @@ from __future__ import print_function import codecs +from glob import glob import os from sqlobject import sqlhub, SQLObjectNotFound from .db import Genre @@ -43,14 +44,15 @@ def import_glst_file(glst_filename): def _import_glst(): ml_dir = os.path.dirname(__file__) - old_fb2, new_fb2 = import_glst_file( - os.path.join(ml_dir, 'glst', 'genres_fb2.glst')) - old_nonfb2, new_nonfb2 = import_glst_file( - os.path.join(ml_dir, 'glst', 'genres_nonfb2.glst')) + count_old = count_new = 0 + for glst_file in glob(os.path.join(ml_dir, 'glst', '*.glst')): + _count_old, _count_new = import_glst_file(glst_file) + count_old += _count_old + count_new += _count_new connection = sqlhub.processConnection if connection.dbName == 'postgres': connection.query("VACUUM %s" % Genre.sqlmeta.table) - return old_fb2 + old_nonfb2, new_fb2 + new_nonfb2 + return count_old, count_new def import_glst(): diff --git a/m_librarian/glst/genres_fb2.glst b/m_librarian/glst/genres_fb2_flibusta.glst similarity index 100% rename from m_librarian/glst/genres_fb2.glst rename to m_librarian/glst/genres_fb2_flibusta.glst diff --git a/m_librarian/glst/genres_fb2_librusec.glst b/m_librarian/glst/genres_fb2_librusec.glst new file mode 100644 index 0000000..5ef6f6f --- /dev/null +++ b/m_librarian/glst/genres_fb2_librusec.glst @@ -0,0 +1,313 @@ +#-------------------- Список жанров fb2 +0.1 Фантастика +0.2 Проза +0.3 Наука, Образование +0.4 Детективы и Триллеры +0.5 Документальная литература +0.6 Любовные романы +0.7 Детское +0.8 Домоводство (Дом и семья) +0.9 Религия и духовность +0.10 Приключения +0.11 Юмор +0.12 Поэзия +0.13 Военное дело +0.14 Техника +0.15 Справочная литература +0.16 Компьютеры и Интернет +0.17 Драматургия +0.18 Деловая литература +0.19 Старинное +0.20 Фольклор +0.21 Прочее +0.0 Неотсортированное +#-------------------- 0.1 Фантастика +0.1.0 sf;Научная фантастика +0.1.1 sf_fantasy;Фэнтези +0.1.2 sf_action;Боевая фантастика +0.1.3 sf_horror;Ужасы +0.1.4 sf_history;Альтернативная история +0.1.5 sf_humor;Юмористическая фантастика +0.1.6 love_sf;Любовная фантастика +0.1.7 sf_social;Социальная фантастика +0.1.8 sf_space;Космическая фантастика +0.1.9 child_sf;Детская фантастика +0.1.10 sf_fantasy_city;Городское фэнтези +0.1.11 sf_detective;Детективная фантастика +0.1.12 sf_mystic;Мистика +0.1.13 sf_heroic;Героическая фантастика +0.1.14 sf_epic;Эпическая фантастика +0.1.15 sf_postapocalyptic;Постапокалипсис +0.1.16 popadanec;Попаданцы +0.1.17 sf_cyberpunk;Киберпанк +0.1.18 sf_etc;Фантастика: прочее +0.1.19 fairy_fantasy;Сказочная фантастика +0.1.20 sf_space_opera;Космоопера +0.1.21 humor_fantasy;Юмористическое фэнтези +0.1.22 historical_fantasy;Историческое фэнтези +0.1.23 nsf;Ненаучная фантастика +0.1.24 sf_irony;Ироническая фантастика +0.1.25 sf_stimpank;Стимпанк +0.1.26 sf_fantasy_irony;Ироническое фэнтези +0.1.27 gothic_novel;Готический роман +0.1.28 sf_technofantasy;Технофэнтези +#-------------------- 0.2 Проза +0.2.0 prose_contemporary;Современная проза +0.2.1 prose_classic;Классическая проза +0.2.2 prose_rus_classic;Русская классическая проза +0.2.3 prose_history;Историческая проза +0.2.4 prose_su_classics;Советская классическая проза +0.2.5 prose_military;О войне +0.2.6 short_story;Рассказ +0.2.7 prose;Проза +0.2.8 prose_counter;Контркультура +0.2.9 roman;Роман +0.2.10 essay;Эссе, очерк, этюд, набросок +0.2.11 great_story;Повесть +0.2.12 epistolary_fiction;Эпистолярная проза +0.2.13 prose_magic;Магический реализм +0.2.14 aphorisms;Афоризмы +0.2.15 dissident;Антисоветская литература +0.2.16 story;Новелла +0.2.17 sagas;Семейный роман/Семейная сага +0.2.18 prose_sentimental;Сентиментальная проза +0.2.19 prose_epic;Эпопея +0.2.20 extravaganza;Феерия +#-------------------- 0.3 Наука, Образование +0.3.0 sci_history;История +0.3.1 sci_psychology;Психология +0.3.2 sci_tech;Технические науки +0.3.3 sci_philosophy;Философия +0.3.4 sci_politics;Политика +0.3.5 science;Научная литература: прочее +0.3.6 sci_culture;Культурология +0.3.7 sci_philology;Литературоведение +0.3.8 sci_medicine;Медицина +0.3.9 sci_textbook;Учебники +0.3.10 sci_linguistic;Языкознание +0.3.11 military_history;Военная история +0.3.12 sci_religion;Религиоведение +0.3.13 sci_juris;Юриспруденция +0.3.14 sci_biology;Биология +0.3.15 sci_math;Математика +0.3.16 sci_phys;Физика +0.3.17 sci_pedagogy;Педагогика +0.3.18 sci_business;Деловая литература +0.3.19 sci_cosmos;Астрономия и Космос +0.3.20 sci_economy;Экономика +0.3.21 sci_medicine_alternative;Альтернативная медицина +0.3.22 sci_crib;Шпаргалки +0.3.23 sci_geo;Геология и география +0.3.24 sci_social_studies;Обществознание +0.3.25 sci_chem;Химия +0.3.26 sci_zoo;Зоология +0.3.27 psy_sex_and_family;Секс и семейная психология +0.3.28 sci_state;Государство и право +0.3.29 sci_botany;Ботаника +0.3.30 psy_childs;Детская психология +0.3.31 foreign_language;Иностранные языки +0.3.32 psy_theraphy;Психотерапия и консультирование +0.3.33 sci_ecology;Экология +0.3.34 sci_biochem;Биохимия +0.3.35 sci_veterinary;Ветеринария +0.3.36 sci_physchem;Физическая химия +0.3.37 sci_orgchem;Органическая химия +0.3.38 sci_biophys;Биофизика +0.3.39 sci_anachem;Аналитическая химия +0.3.40 sci_abstract;Рефераты +#-------------------- 0.4 Детективы и Триллеры +0.4.0 detective;Детективы: прочее +0.4.1 thriller;Триллер +0.4.2 det_classic;Классический детектив +0.4.3 det_action;Боевик +0.4.4 det_police;Полицейский детектив +0.4.5 det_history;Исторический детектив +0.4.6 det_crime;Криминальный детектив +0.4.7 love_detective;Любовные детективы +0.4.8 child_det;Детские остросюжетные +0.4.9 det_irony;Иронический детектив +0.4.10 det_espionage;Шпионский детектив +0.4.11 sf_detective;Детективная фантастика +0.4.12 det_hard;Крутой детектив +0.4.13 det_cozy;Дамский детективный роман +0.4.14 det_political;Политический детектив +0.4.15 det_maniac;Маньяки +0.4.16 thriller_medical;Медицинский триллер +0.4.17 thriller_legal;Юридический триллер +0.4.18 thriller_techno;Техно триллер +#-------------------- 0.5 Документальная литература +0.5.0 nonf_biography;Биографии и Мемуары +0.5.1 nonf_publicism;Публицистика +0.5.2 sci_popular;Научпоп +0.5.3 adv_geo;Путешествия и география +0.5.4 nonfiction;Документальная литература +0.5.5 nonf_criticism;Критика +0.5.6 adv_animal;Природа и животные +0.5.7 nonf_military;Военная документалистика +#-------------------- 0.6 Любовные романы +0.6.0 love_contemporary;Современные любовные романы +0.6.1 love_short;Короткие любовные романы +0.6.2 love_history;Исторические любовные романы +0.6.3 love_sf;Любовная фантастика +0.6.4 love;О любви +0.6.5 love_detective;Любовные детективы +0.6.6 love_erotica;Эротика +0.6.7 det_cozy;Дамский детективный роман +0.6.8 love_hard;Порно +#-------------------- 0.7 Детское +0.7.0 child_tale;Сказка +0.7.1 child_prose;Детская проза +0.7.2 children;Детская литература: прочее +0.7.3 child_sf;Детская фантастика +0.7.4 child_education;Образовательная литература +0.7.5 child_det;Детские остросюжетные +0.7.6 child_verse;Детские стихи +0.7.7 child_adv;Детские приключения +0.7.8 ya;Подростковая литература +0.7.9 prose_game;Книга-игра +0.7.10 child_folklore;Детский фольклор +#-------------------- 0.8 Домоводство (Дом и семья) +0.8.1 home_sex;Эротика, Секс +0.8.2 home_health;Здоровье +0.8.3 home_crafts;Хобби и ремесла +0.8.4 home_cooking;Кулинария +0.8.5 home_diy;Сделай сам +0.8.6 home_sport;Спорт +0.8.7 home_pets;Домашние животные +0.8.8 home;Домоводство +0.8.9 home_garden;Сад и огород +0.8.10 home_entertain;Развлечения +0.8.11 home_collecting;Коллекционирование +#-------------------- 0.9 Религия и духовность +0.9.0 religion_esoterics;Эзотерика +0.9.1 religion_rel;Религия +0.9.2 religion_christianity;Христианство +0.9.3 religion_self;Самосовершенствование +0.9.4 religion_orthodoxy;Православие +0.9.5 religion_budda;Буддизм +0.9.6 astrology;Астрология +0.9.7 religion_judaism;Иудаизм +0.9.8 religion_hinduism;Индуизм +0.9.9 religion_protestantism;Протестантизм +0.9.10 religion_paganism;Язычество +0.9.11 religion;Религиозная литература: прочее +0.9.12 religion_islam;Ислам +0.9.13 religion_catholicism;Католицизм +0.9.14 palmistry;Хиромантия +#-------------------- 0.10 Приключения +0.10.0 adventure;Приключения: прочее +0.10.1 adv_history;Исторические приключения +0.10.2 adv_geo;Путешествия и география +0.10.3 adv_animal;Природа и животные +0.10.4 child_adv;Детские приключения +0.10.5 adv_maritime;Морские приключения +0.10.6 adv_western;Вестерн +0.10.7 adv_indian;Приключения про индейцев +#-------------------- 0.11 Юмор +0.11.0 sf_humor;Юмористическая фантастика +0.11.1 humor_prose;Юмористическая проза +0.11.2 humor;Юмор: прочее +0.11.3 humor_satire;Сатира +0.11.4 comedy;Комедия +0.11.5 humor_verse;Юмористические стихи +0.11.6 humor_anecdote;Анекдоты +#-------------------- 0.12 Поэзия +0.12.0 poetry;Поэзия: прочее +0.12.1 child_verse;Детские стихи +0.12.2 lyrics;Лирика +0.12.3 in_verse;в стихах +0.12.4 humor_verse;Юмористические стихи +0.12.5 epic_poetry;Эпическая поэзия +0.12.6 song_poetry;Песенная поэзия +0.12.7 fable;Басни +0.12.8 experimental_poetry;Экспериментальная поэзия +0.12.9 palindromes;Палиндромы +0.12.10 visual_poetry;Визуальная поэзия +0.12.11 vers_libre;Верлибры +#-------------------- 0.13 Военное дело +0.13.0 prose_military;О войне +0.13.1 military_weapon;Военная техника и вооружение +0.13.2 military_history;Военная история +0.13.3 nonf_military;Военная документалистика +0.13.4 military_special;Cпецслужбы +0.13.5 military_arts;Боевые искусства +0.13.6 military;Военное дело: прочее +#-------------------- 0.14 Техника +0.14.0 sci_tech;Технические науки +0.14.1 sci_transport;Транспорт и авиация +0.14.2 sci_radio;Радиоэлектроника +0.14.3 auto_regulations;Автомобили и ПДД +0.14.4 sci_build;Строительство и сопромат +0.14.5 architecture_book;Архитектура +0.14.6 sci_metal;Металлургия +#-------------------- 0.15 Справочная литература +0.15.0 ref_ref;Справочники +0.15.1 ref_guide;Руководства +0.15.2 ref_encyc;Энциклопедии +0.15.3 design;Искусство и Дизайн +0.15.4 reference;Справочная литература +0.15.5 geo_guides;Путеводители +0.15.6 ref_dict;Словари +#-------------------- 0.16 Компьютеры и Интернет +0.16.0 computers;Околокомпьютерная литература +0.16.1 comp_programming;Программирование +0.16.2 comp_soft;Программы +0.16.3 comp_osnet;ОС и Сети +0.16.4 comp_hard;Аппаратное обеспечение +0.16.5 comp_www;Интернет +0.16.6 comp_db;Базы данных +0.16.7 comp_dsp;Цифровая обработка сигналов +#-------------------- 0.17 Драматургия +0.17.0 dramaturgy;Драматургия: прочее +0.17.1 comedy;Комедия +0.17.2 drama;Драма +0.17.3 screenplays;Киносценарии +0.17.4 tragedy;Трагедия +0.17.5 scenarios;Сценарии +0.17.6 vaudeville;Водевиль +0.17.7 mystery;Мистерия +#-------------------- 0.18 Деловая литература +0.18.0 popular_business;О бизнесе популярно +0.18.1 marketing;Маркетинг, PR, реклама +0.18.2 management;Управление, подбор персонала +0.18.3 economics;Экономика +0.18.4 stock;Ценные бумаги, инвестиции +0.18.5 accounting;Бухучет и аудит +0.18.6 small_business;Малый бизнес +0.18.7 personal_finance;Личные финансы +0.18.8 job_hunting;Поиск работы, карьера +0.18.9 org_behavior;Корпоративная культура +0.18.10 banking;Банковское дело +0.18.11 trade;Торговля +0.18.12 industries;Отраслевые издания +0.18.13 paper_work;Делопроизводство +0.18.14 global_economy;Внешняя торговля +0.18.15 real_estate;Недвижимость +#-------------------- 0.19 Старинное +0.19.0 antique_myths;Мифы. Легенды. Эпос +0.19.1 antique_east;Древневосточная литература +0.19.2 antique_ant;Античная литература +0.19.3 antique_european;Древнеевропейская литература +0.19.4 antique;Старинная литература: прочее +0.19.5 antique_russian;Древнерусская литература +#-------------------- 0.20 Фольклор +0.20.0 folk_tale;Народные сказки +0.20.1 humor_anecdote;Анекдоты +0.20.2 folklore;Фольклор: прочее +0.20.3 child_folklore;Детский фольклор +0.20.4 proverbs;Пословицы, поговорки +0.20.5 epic;Былины +0.20.6 folk_songs;Народные песни +0.20.7 limerick;Частушки, прибаутки, потешки +0.20.8 riddles;Загадки +#-------------------- 0.21 Прочее +0.21.0 periodic;Газеты и журналы +0.21.1 fanfiction;Фанфик +0.21.2 unfinished;Недописанное +0.21.3 music;Музыка +0.21.4 cine;Кино +0.21.5 visual_arts;Изобразительное искусство, фотография +0.21.6 notes;Партитуры +0.21.7 theatre;Театр +0.21.8 other;Неотсортированное +#-------------------- к о н е ц diff --git a/tests/test_glst.py b/tests/test_glst.py index 8211cc1..15fafa0 100644 --- a/tests/test_glst.py +++ b/tests/test_glst.py @@ -6,4 +6,4 @@ from m_librarian.glst import import_glst def test_import_glst(): import_glst() - assert Genre.select().count() == 340 + assert Genre.select().count() == 370 -- 2.39.2