Commit e2220a03 authored by Dmitry Shelepnev's avatar Dmitry Shelepnev
Browse files

Add flag for prevernt the repeated startup scanner process

parent a3aa807d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -363,5 +363,7 @@ MySQL по сравнению с sqlite работает гораздо быст
(по умолчанию SOPDS_SCAN_SHED_DAY = '*')  
(по умолчанию SOPDS_SCAN_SHED_DOW = '*')  

**SOPDS_SCAN_START_DIRECTLY** - установка для этого параметра значения True, приведет к тому, что при очередной проверке процессом sopds_scanner этого флага (каждые 10 минут)
запустится внеочередное сканированеи коллекции, а указаный флаг вновь сброситься в False.

+66 −66
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-06 21:29+0300\n"
"POT-Creation-Date: 2017-01-08 15:25+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,87 +20,87 @@ msgstr ""
"10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%"
"100>=11 && n%100<=14)? 2 : 3);\n"

#: .\opds_catalog\feeds.py:127
#: .\opds_catalog\feeds.py:129
#, python-format
msgid "All books by %(author)s"
msgstr "Все книги автора %(author)s"

#: .\opds_catalog\feeds.py:139
#: .\opds_catalog\feeds.py:141
msgid "Book doublicates"
msgstr "Дубликаты книги"

#: .\opds_catalog\feeds.py:160 .\opds_catalog\feeds.py:245
#: .\opds_catalog\feeds.py:247 .\opds_catalog\tests\test_feeds.py:22
#: .\opds_catalog\feeds.py:162 .\opds_catalog\feeds.py:247
#: .\opds_catalog\feeds.py:249 .\opds_catalog\tests\test_feeds.py:24
msgid "By catalogs"
msgstr "По каталогам"

#: .\opds_catalog\feeds.py:161 .\opds_catalog\tests\test_feeds.py:23
#: .\opds_catalog\feeds.py:163 .\opds_catalog\tests\test_feeds.py:25
#, python-format
msgid "Catalogs: %(catalogs)s, books: %(books)s."
msgstr "Каталогов: %(catalogs)s, книг: %(books)s."

#: .\opds_catalog\feeds.py:162
#: .\opds_catalog\feeds.py:164
msgid "By authors"
msgstr "По авторам"

#: .\opds_catalog\feeds.py:163 .\opds_catalog\tests\test_feeds.py:24
#: .\opds_catalog\feeds.py:165 .\opds_catalog\tests\test_feeds.py:26
#, python-format
msgid "Authors: %(authors)s."
msgstr "Авторов: %(authors)s."

#: .\opds_catalog\feeds.py:164
#: .\opds_catalog\feeds.py:166
msgid "By titles"
msgstr "По наименованиям"

#: .\opds_catalog\feeds.py:165
#: .\opds_catalog\feeds.py:167
#, python-format
msgid "Books: %(books)s."
msgstr "Книг: %(books)s."

#: .\opds_catalog\feeds.py:166
#: .\opds_catalog\feeds.py:168
msgid "By genres"
msgstr "По жанрам"

#: .\opds_catalog\feeds.py:167 .\opds_catalog\tests\test_feeds.py:25
#: .\opds_catalog\feeds.py:169 .\opds_catalog\tests\test_feeds.py:27
#, python-format
msgid "Genres: %(genres)s."
msgstr "Жанров: %(genres)s."

#: .\opds_catalog\feeds.py:168
#: .\opds_catalog\feeds.py:170
msgid "By series"
msgstr "По сериям"

#: .\opds_catalog\feeds.py:169
#: .\opds_catalog\feeds.py:171
#, python-format
msgid "Series: %(series)s."
msgstr "Серий: %(series)s."

#: .\opds_catalog\feeds.py:173
#: .\opds_catalog\feeds.py:175
#, python-format
msgid "%(username)s Book shelf"
msgstr "Книжная полка (%(username)s)"

#: .\opds_catalog\feeds.py:174
#: .\opds_catalog\feeds.py:176
#, python-format
msgid "%(username)s books readed: %(bookshelf)s."
msgstr "Книг прочитано (%(username)s): %(bookshelf)s."

#: .\opds_catalog\feeds.py:305 .\opds_catalog\feeds.py:549
#: .\opds_catalog\feeds.py:307 .\opds_catalog\feeds.py:551
#, python-format
msgid "<b>Authors: </b>%(authors)s<br/>"
msgstr "<b>Авторов: </b>%(authors)s<br/>"

#: .\opds_catalog\feeds.py:306 .\opds_catalog\feeds.py:550
#: .\opds_catalog\feeds.py:308 .\opds_catalog\feeds.py:552
#, python-format
msgid "<b>Genres: </b>%(genres)s<br/>"
msgstr "<b>Жанров: </b>%(genres)s<br/>"

#: .\opds_catalog\feeds.py:307 .\opds_catalog\feeds.py:551
#: .\opds_catalog\feeds.py:309 .\opds_catalog\feeds.py:553
#, python-format
msgid "<b>Series: </b>%(series)s<br/>"
msgstr "<b>Серий: </b>%(series)s<br/>"

#: .\opds_catalog\feeds.py:308 .\opds_catalog\feeds.py:552
#: .\opds_catalog\feeds.py:310 .\opds_catalog\feeds.py:554
#, python-format
msgid ""
"<b>File: </b>%(filename)s<br/><b>File size: </b>%(filesize)s<br/><b>Changes "
@@ -109,163 +109,163 @@ msgstr ""
"<b>Файл: </b>%(filename)s<br/><b>Размер файла: </b>%(filesize)s<br/><b>Дата "
"изменения: </b>%(docdate)s<br/>"

#: .\opds_catalog\feeds.py:341 .\opds_catalog\tests\test_feeds.py:58
#: .\opds_catalog\feeds.py:343 .\opds_catalog\tests\test_feeds.py:60
msgid "Search by titles"
msgstr "Поиск по наименованиям"

#: .\opds_catalog\feeds.py:341
#: .\opds_catalog\feeds.py:343
msgid "Search books by title"
msgstr "Поиск книг по наименованию"

#: .\opds_catalog\feeds.py:342
#: .\opds_catalog\feeds.py:344
msgid "Search by authors"
msgstr "Поиск авторов"

#: .\opds_catalog\feeds.py:342
#: .\opds_catalog\feeds.py:344
msgid "Search authors by name"
msgstr "Поиск авторов по имени"

#: .\opds_catalog\feeds.py:343
#: .\opds_catalog\feeds.py:345
msgid "Search series"
msgstr "Поиск серий"

#: .\opds_catalog\feeds.py:375
#: .\opds_catalog\feeds.py:377
msgid "Books found"
msgstr "Найдены книги"

#: .\opds_catalog\feeds.py:375
#: .\opds_catalog\feeds.py:377
msgid "doubles hide"
msgstr "дубликаты скрыты"

#: .\opds_catalog\feeds.py:375
#: .\opds_catalog\feeds.py:377
msgid "doubles show"
msgstr "дубликаты показаны"

#: .\opds_catalog\feeds.py:553
#: .\opds_catalog\feeds.py:555
#, python-format
msgid "<b>Doubles count: </b>%(doubles)s<br/>"
msgstr "<b>Число дубликатов: </b>%(doubles)s<br/>"

#: .\opds_catalog\feeds.py:567
#: .\opds_catalog\feeds.py:569
msgid "Series by authors select"
msgstr "Выбор серий у автора"

#: .\opds_catalog\feeds.py:588
#: .\opds_catalog\feeds.py:590
msgid "Books by series"
msgstr "Книги по сериям"

#: .\opds_catalog\feeds.py:588
#: .\opds_catalog\feeds.py:590
msgid "Books by author and series"
msgstr "Книги по авторам и сериям"

#: .\opds_catalog\feeds.py:589
#: .\opds_catalog\feeds.py:591
msgid "Books outside series"
msgstr "Книги вне серий"

#: .\opds_catalog\feeds.py:589
#: .\opds_catalog\feeds.py:591
msgid "Books by author outside series"
msgstr "Книги автора вне серий"

#: .\opds_catalog\feeds.py:590
#: .\opds_catalog\feeds.py:592
msgid "Books by alphabet"
msgstr "Книги по алфавиту"

#: .\opds_catalog\feeds.py:590
#: .\opds_catalog\feeds.py:592
msgid "Books by author alphabetical order"
msgstr "Книги автора в алфавитном порядке"

#: .\opds_catalog\feeds.py:621
#: .\opds_catalog\feeds.py:623
msgid "Authors found"
msgstr "Найдены авторы"

#: .\opds_catalog\feeds.py:674 .\opds_catalog\feeds.py:752
#: .\opds_catalog\feeds.py:676 .\opds_catalog\feeds.py:754
#, python-format
msgid "Books count: %s"
msgstr "Всего: %s книг"

#: .\opds_catalog\feeds.py:690
#: .\opds_catalog\feeds.py:692
msgid "Series found"
msgstr "Найдены серии"

#: .\opds_catalog\feeds.py:776
#: .\opds_catalog\feeds.py:778
msgid "Select language"
msgstr "Выбор алфавита"

#: .\opds_catalog\feeds.py:788 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:104
#: .\opds_catalog\tests\test_feeds.py:117
#: .\opds_catalog\tests\test_feeds.py:128
#: .\opds_catalog\feeds.py:790 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:106
#: .\opds_catalog\tests\test_feeds.py:119
#: .\opds_catalog\tests\test_feeds.py:130
msgid "Cyrillic"
msgstr "Кириллица (РУС)"

#: .\opds_catalog\feeds.py:789 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:105
#: .\opds_catalog\feeds.py:791 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:107
msgid "Latin"
msgstr "Латинница (LAT)"

#: .\opds_catalog\feeds.py:790 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:106
#: .\opds_catalog\feeds.py:792 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:108
msgid "Digits"
msgstr "Цифры (0..9)"

#: .\opds_catalog\feeds.py:791 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:107
#: .\opds_catalog\feeds.py:793 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:109
msgid "Other symbols"
msgstr "Другие символы"

#: .\opds_catalog\feeds.py:792 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:108
#: .\opds_catalog\feeds.py:794 .\opds_catalog\models.py:36
#: .\opds_catalog\tests\test_feeds.py:110
msgid "Show all"
msgstr "Показать все"

#: .\opds_catalog\feeds.py:822
#: .\opds_catalog\feeds.py:824
msgid "Select books by substring"
msgstr "Поиск книг по подстроке"

#: .\opds_catalog\feeds.py:859 .\opds_catalog\feeds.py:1025
#: .\opds_catalog\feeds.py:861 .\opds_catalog\feeds.py:1027
#, python-format
msgid "Found: %s books"
msgstr "Найдено %s книг"

#: .\opds_catalog\feeds.py:880
#: .\opds_catalog\feeds.py:882
msgid "Select authors by substring"
msgstr "Поиск авторов по подстроке"

#: .\opds_catalog\feeds.py:917
#: .\opds_catalog\feeds.py:919
#, python-format
msgid "Found: %s authors"
msgstr "Найдено %s авторов"

#: .\opds_catalog\feeds.py:938
#: .\opds_catalog\feeds.py:940
msgid "Select series by substring"
msgstr "Поиск серий по подстроке"

#: .\opds_catalog\feeds.py:975
#: .\opds_catalog\feeds.py:977
#, python-format
msgid "Found: %s series"
msgstr "Найдено %s серий"

#: .\opds_catalog\feeds.py:996
#: .\opds_catalog\feeds.py:998
#, python-format
msgid "Select genres (%s)"
msgstr "Выбор жанра (%s)"

#: .\opds_catalog\feeds.py:996
#: .\opds_catalog\feeds.py:998
msgid "section"
msgstr "секция"

#: .\opds_catalog\feeds.py:996
#: .\opds_catalog\feeds.py:998
msgid "subsection"
msgstr "подсекция"

#: .\opds_catalog\opdsdb.py:36
msgid "Unknown genre"
msgstr "Неизвестный жанр"

#: .\opds_catalog\tests\test_feeds.py:76
#: .\opds_catalog\tests\test_feeds.py:78
#, python-format
msgid "All books by %(full_name)s"
msgstr "Все книги автора %(full_name)s"

#~ msgid "Unknown genre"
#~ msgstr "Неизвестный жанр"

#~ msgid "Book name:"
#~ msgstr "Название:"

+16 −5
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ from constance import config

class Command(BaseCommand):
    help = 'Scan Books Collection.'
    scan_is_active = False

    def add_arguments(self, parser):
        parser.add_argument('command', help='Use [ scan | start | stop | restart ]')
@@ -65,6 +66,12 @@ class Command(BaseCommand):
            self.restart(pid)            

    def scan(self):
        if self.scan_is_active:
            self.stdout.write('Scan process already active. Skip currend job.')
            return
        
        self.scan_is_active = True
        
        if connection.connection and not connection.is_usable():
            del(connections._connections.default)
                
@@ -72,6 +79,7 @@ class Command(BaseCommand):
        with transaction.atomic():
            scanner.scan_all()
        Counter.objects.update_known_counters()  
        self.scan_is_active = False
        
    def update_shedule(self):
        self.SCAN_SHED_DAY = config.SOPDS_SCAN_SHED_DAY
@@ -85,12 +93,15 @@ class Command(BaseCommand):
        if connection.connection and not connection.is_usable():
            del(connections._connections.default)        
        settings.constance_update_all()
        if self.SCAN_SHED_MIN==config.SOPDS_SCAN_SHED_MIN and \
        if not (self.SCAN_SHED_MIN==config.SOPDS_SCAN_SHED_MIN and \
           self.SCAN_SHED_HOUR==config.SOPDS_SCAN_SHED_HOUR and \
           self.SCAN_SHED_DOW==config.SOPDS_SCAN_SHED_DOW and \
           self.SCAN_SHED_DAY==config.SOPDS_SCAN_SHED_DAY:
            return
           self.SCAN_SHED_DAY==config.SOPDS_SCAN_SHED_DAY):
            self.update_shedule()
        if config.SOPDS_SCAN_START_DIRECTLY:
            config.SOPDS_SCAN_START_DIRECTLY
            self.stdout.write('Startup scannyng directly by SOPDS_SCAN_START_DIRECTLY flag.')
            self.scan()
                       
    def start(self):
        writepid(self.pidfile)
Loading