Preserve the weirdness of the API.
[wolnelektury.git] / src / catalogue / __init__.py
index eaeb7d4..612517b 100644 (file)
@@ -4,6 +4,7 @@
 #
 import logging
 from django.conf import settings as settings
 #
 import logging
 from django.conf import settings as settings
+from django.utils.module_loading import import_string
 from catalogue.utils import AppSettings
 
 
 from catalogue.utils import AppSettings
 
 
@@ -14,7 +15,7 @@ class Settings(AppSettings):
     """Default settings for catalogue app."""
     DEFAULT_LANGUAGE = u'pol'
     # PDF needs TeXML + XeLaTeX, MOBI needs Calibre.
     """Default settings for catalogue app."""
     DEFAULT_LANGUAGE = u'pol'
     # PDF needs TeXML + XeLaTeX, MOBI needs Calibre.
-    DONT_BUILD = set(['pdf', 'mobi'])
+    DONT_BUILD = {'pdf', 'mobi'}
     FORMAT_ZIPS = {
             'epub': 'wolnelektury_pl_epub',
             'pdf': 'wolnelektury_pl_pdf',
     FORMAT_ZIPS = {
             'epub': 'wolnelektury_pl_epub',
             'pdf': 'wolnelektury_pl_pdf',
@@ -23,15 +24,15 @@ class Settings(AppSettings):
         }
 
     REDAKCJA_URL = "http://redakcja.wolnelektury.pl"
         }
 
     REDAKCJA_URL = "http://redakcja.wolnelektury.pl"
-    GOOD_LICENSES = set([r'CC BY \d\.\d', r'CC BY-SA \d\.\d'])
+    GOOD_LICENSES = {r'CC BY \d\.\d', r'CC BY-SA \d\.\d'}
     RELATED_RANDOM_PICTURE_CHANCE = .5
     RELATED_RANDOM_PICTURE_CHANCE = .5
+    GET_MP3_LENGTH = 'catalogue.utils.get_mp3_length'
 
     def _more_DONT_BUILD(self, value):
         for format_ in ['cover', 'pdf', 'epub', 'mobi', 'fb2', 'txt']:
             attname = 'NO_BUILD_%s' % format_.upper()
             if hasattr(settings, attname):
 
     def _more_DONT_BUILD(self, value):
         for format_ in ['cover', 'pdf', 'epub', 'mobi', 'fb2', 'txt']:
             attname = 'NO_BUILD_%s' % format_.upper()
             if hasattr(settings, attname):
-                logging.warn("%s is deprecated, "
-                        "use CATALOGUE_DONT_BUILD instead", attname)
+                logging.warn("%s is deprecated, use CATALOGUE_DONT_BUILD instead", attname)
                 if getattr(settings, attname):
                     value.add(format_)
                 else:
                 if getattr(settings, attname):
                     value.add(format_)
                 else:
@@ -42,11 +43,12 @@ class Settings(AppSettings):
         for format_ in ['epub', 'pdf', 'mobi', 'fb2']:
             attname = 'ALL_%s_ZIP' % format_.upper()
             if hasattr(settings, attname):
         for format_ in ['epub', 'pdf', 'mobi', 'fb2']:
             attname = 'ALL_%s_ZIP' % format_.upper()
             if hasattr(settings, attname):
-                logging.warn("%s is deprecated, "
-                        "use CATALOGUE_FORMAT_ZIPS[%s] instead",
-                            attname, format_)
+                logging.warn("%s is deprecated, use CATALOGUE_FORMAT_ZIPS[%s] instead", attname, format_)
                 value[format_] = getattr(settings, attname)
         return value
 
                 value[format_] = getattr(settings, attname)
         return value
 
+    def _more_GET_MP3_LENGTH(self, value):
+        return import_string(value)
+
 
 app_settings = Settings('CATALOGUE')
 
 app_settings = Settings('CATALOGUE')