work on archiver

This commit is contained in:
bkfox
2020-05-29 16:42:31 +02:00
parent 78a013255e
commit d5209206bd
7 changed files with 170 additions and 141 deletions

View File

@ -1,10 +1,50 @@
# Code inspired from rest_framework of course.
import os
import stat
from django.conf import settings
#class BaseSettings:
# def __init__(self, user_conf):
# if user_conf:
# for key, value in user_conf.items():
# setattr(self, key, value)
#
#class Settings(BaseSettings):
# default_user_groups = {
#
# }
#
# programs_dir = os.path.join(settings.MEDIA_ROOT, 'programs'),
# """ Programs data directory. """
# episode_title = '{program.title} - {date}'
# """ Default episodes title. """
# episode_title_date_format = '%-d %B %Y'
# """ Date format used in episode title. """
#
# logs_archives_dir = os.path.join(settings.PROJECT_ROOT, 'logs/archives')
# """ Directory where logs are saved once archived """
# logs_archive_age = 30
# """ Default age of log before being archived """
#
# sounds_default_dir = os.path.join(settings.MEDIA_ROOT, 'programs/defaults')
# sound_archive_dir = 'archives'
# sound_excerpt_dir = 'excerpts'
# sound_auto_chmod = True
# sound_chmod_flags = (stat.S_IRWXU, stat.S_IRWXU | stat.S_IRWXG | stat.S_IROTH)
# sound_quality = {
# 'attribute': 'RMS lev dB',
# 'range': (-18.0, -8.0),
# 'sample_length': 120,
# }
# sound_ext = ('.ogg', '.flac', '.wav', '.mp3', '.opus')
#
# # TODO: move into aircox_streamer
# streamer_working_dir = '/tmp/aircox'
#
#
#
def ensure(key, default):
globals()[key] = getattr(settings, key, default)
@ -16,12 +56,22 @@ def ensure(key, default):
# to add to each group.
ensure('AIRCOX_DEFAULT_USER_GROUPS', {
'radio hosts': (
# TODO include content_type in order to avoid clash with potential
# extra applications
# aircox
'change_program', 'change_episode', 'change_diffusion',
'add_comment', 'change_comment', 'delete_comment',
'add_article', 'change_article', 'delete_article',
'change_sound',
'add_track', 'change_track', 'delete_track',
# taggit
'add_tag', 'change_tag', 'delete_tag',
# filer
'add_folder', 'change_folder', 'delete_folder', 'can_use_directory_listing',
'add_image', 'change_image', 'delete_image',
),
})
@ -29,10 +79,6 @@ ensure('AIRCOX_DEFAULT_USER_GROUPS', {
ensure('AIRCOX_PROGRAMS_DIR',
os.path.join(settings.MEDIA_ROOT, 'programs'))
# Directory for working data
ensure('AIRCOX_DATA_DIR',
os.path.join(settings.PROJECT_ROOT, 'data'))
########################################################################
# Programs & Episodes
@ -46,9 +92,7 @@ ensure('AIRCOX_EPISODE_TITLE_DATE_FORMAT', '%-d %B %Y')
# Logs & Archives
########################################################################
# Directory where to save logs' archives
ensure('AIRCOX_LOGS_ARCHIVES_DIR',
os.path.join(AIRCOX_DATA_DIR, 'episodes')
)
ensure('AIRCOX_LOGS_ARCHIVES_DIR', os.path.join(settings.PROJECT_ROOT, 'logs/archives'))
# In days, minimal age of a log before it is archived
ensure('AIRCOX_LOGS_ARCHIVES_AGE', 60)