[mediagoblin]
# HTML title of the pages
html_title = string(default="GNU MediaGoblin")

# link to source for this MediaGoblin site
source_link = string(default="https://gitorious.org/mediagoblin/mediagoblin")

# Enabled media types
media_types = string_list(default=list("mediagoblin.media_types.image"))

# database stuff
sql_engine = string(default="sqlite:///%(here)s/mediagoblin.db")

# Where temporary files used in processing and etc are kept
workbench_path = string(default="%(here)s/user_dev/media/workbench")

# Where to store cryptographic sensible data
crypto_path = string(default="%(here)s/user_dev/crypto")

# Where mediagoblin-builtin static assets are kept
direct_remote_path = string(default="/mgoblin_static/")

# set to false to enable sending notices
email_debug_mode = boolean(default=True)
email_sender_address = string(default="notice@mediagoblin.example.org")
email_smtp_host = string(default='')
email_smtp_port = integer(default=25)
email_smtp_user = string(default=None)
email_smtp_pass = string(default=None)

# Set to false to disable registrations
allow_registration = boolean(default=True)

# tag parsing
tags_max_length = integer(default=50)

# Whether comments are ascending or descending
comments_ascending = boolean(default=True)

# By default not set, but you might want something like:
# "%(here)s/user_dev/templates/"
local_templates = string()

# Whether or not celery is set up via an environment variable or
# something else (and thus mediagoblin should not attempt to set it up
# itself)
celery_setup_elsewhere = boolean(default=False)

# Whether or not users are able to upload files of any filetype with
# their media entries -- This is useful if you want to provide the
# source files for a media file but can also be a HUGE security risk.
allow_attachments = boolean(default=False)

# Cookie stuff
csrf_cookie_name = string(default='mediagoblin_csrftoken')

# Push stuff
push_urls = string_list(default=list())

exif_visible = boolean(default=False)

# Theming stuff
theme_install_dir = string(default="%(here)s/user_dev/themes/")
theme_web_path = string(default="/theme_static/")
theme_linked_assets_dir = string(default="%(here)s/user_dev/theme_static/")
theme = string()


[storage:publicstore]
storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage")
base_dir = string(default="%(here)s/user_dev/media/public")
base_url = string(default="/mgoblin_media/")

[storage:queuestore]
storage_class = string(default="mediagoblin.storage.filestorage:BasicFileStorage")
base_dir = string(default="%(here)s/user_dev/media/queue")

[media:medium]
# Dimensions used when creating media display images.
max_width = integer(default=640)
max_height = integer(default=640)

[media:thumb]
# Dimensions used when creating media thumbnails
# This is unfortunately not implemented in the media
# types yet. You can help!
# TODO: Make plugins follow the media size settings
max_width = integer(default=180)
max_height = integer(default=180)

[media_type:mediagoblin.media_types.image]
# One of BICUBIC, BILINEAR, NEAREST, ANTIALIAS
resize_filter = string(default="ANTIALIAS")

[media_type:mediagoblin.media_types.video]
# Should we keep the original file?
keep_original = boolean(default=False)

# 0 means autodetect, autodetect means number_of_CPUs - 1
vp8_threads = integer(default=0)
# Range: 0..10
vp8_quality = integer(default=8)
# Range: -0.1..1
vorbis_quality = float(default=0.3)

# Autoplay the video when page is loaded?
auto_play = boolean(default=True)

[[skip_transcode]]
mime_types = string_list(default=list("video/webm"))
container_formats = string_list(default=list("Matroska"))
video_codecs = string_list(default=list("VP8 video"))
audio_codecs = string_list(default=list("Vorbis"))
dimensions_match = boolean(default=True)


[media_type:mediagoblin.media_types.audio]
keep_original = boolean(default=True)
# vorbisenc quality
quality = float(default=0.3)
create_spectrogram = boolean(default=True)
spectrogram_fft_size = integer(default=4096)


[media_type:mediagoblin.media_types.ascii]
thumbnail_font = string(default=None)

[media_type:mediagoblin.media_types.pdf]
pdf_js = boolean(default=False)

[celery]
# default result stuff
CELERY_RESULT_BACKEND = string(default="database")
CELERY_RESULT_DBURI = string(default="sqlite:///%(here)s/celery.db")

# default kombu stuff
BROKER_TRANSPORT = string(default="sqlalchemy")
BROKER_HOST = string(default="sqlite:///%(here)s/kombu.db")

# known booleans
CELERY_RESULT_PERSISTENT = boolean()
CELERY_CREATE_MISSING_QUEUES = boolean()
BROKER_USE_SSL = boolean()
BROKER_CONNECTION_RETRY = boolean()
CELERY_ALWAYS_EAGER = boolean()
CELERY_EAGER_PROPAGATES_EXCEPTIONS = boolean()
CELERY_IGNORE_RESULT = boolean()
CELERY_TRACK_STARTED = boolean()
CELERY_DISABLE_RATE_LIMITS = boolean()
CELERY_ACKS_LATE = boolean()
CELERY_STORE_ERRORS_EVEN_IF_IGNORED = boolean()
CELERY_SEND_TASK_ERROR_EMAILS = boolean()
CELERY_SEND_EVENTS = boolean()
CELERY_SEND_TASK_SENT_EVENT = boolean()
CELERYD_LOG_COLOR = boolean()
CELERY_REDIRECT_STDOUTS = boolean()

# known ints
CELERYD_CONCURRENCY = integer()
CELERYD_PREFETCH_MULTIPLIER = integer()
CELERY_AMQP_TASK_RESULT_EXPIRES = integer()
CELERY_AMQP_TASK_RESULT_CONNECTION_MAX = integer()
REDIS_PORT = integer()
REDIS_DB = integer()
BROKER_PORT = integer()
BROKER_CONNECTION_TIMEOUT = integer()
CELERY_BROKER_CONNECTION_MAX_RETRIES = integer()
CELERY_TASK_RESULT_EXPIRES = integer()
CELERY_MAX_CACHED_RESULTS = integer()
CELERY_DEFAULT_RATE_LIMIT = integer()
CELERYD_MAX_TASKS_PER_CHILD = integer()
CELERYD_TASK_TIME_LIMIT = integer()
CELERYD_TASK_SOFT_TIME_LIMIT = integer()
MAIL_PORT = integer()
CELERYBEAT_MAX_LOOP_INTERVAL = integer()

# known floats
CELERYD_ETA_SCHEDULER_PRECISION = float()

# known lists
CELERY_ROUTES = string_list()
CELERY_IMPORTS = string_list()
