]> git.phdru.name Git - m_librarian.git/commitdiff
Feat(glst): Import all *.glst files
authorOleg Broytman <phd@phdru.name>
Thu, 10 May 2018 21:19:55 +0000 (00:19 +0300)
committerOleg Broytman <phd@phdru.name>
Thu, 10 May 2018 21:51:58 +0000 (00:51 +0300)
m_librarian/glst.py
m_librarian/glst/genres_fb2_flibusta.glst [moved from m_librarian/glst/genres_fb2.glst with 100% similarity]
m_librarian/glst/genres_fb2_librusec.glst [new file with mode: 0644]
tests/test_glst.py

index 6b2e0904157870d2de8c52298e31a64b736c3a0a..9b16c14e69755ada314f0e848dd5f65b22b78b7e 100755 (executable)
@@ -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_librusec.glst b/m_librarian/glst/genres_fb2_librusec.glst
new file mode 100644 (file)
index 0000000..5ef6f6f
--- /dev/null
@@ -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;Неотсортированное
+#--------------------  к о н е ц
index 8211cc1e7dcad602e8fd6ba231b01b34fb13fd2f..15fafa053e89b1c56187b357131e53089e34e246 100644 (file)
@@ -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