U
    ЮhC                     @   sx  d Z ddlZddlmZ ddlmZmZ ee j	j	Z
e
d Zzejdd W n( ek
rx   edZejdd Y nX ed	d
dZeddedZedde dZdddddddddddddddd gZd!d"d#d$d%d&d'd(d)g	Zd*Zd+e
d, gdd-d.d/d0d1d2gid3gZd4Zd5Zed6dedr2d7d8e
d9 d:iZnjd7d;ed<d=ded>d?ded@d?dedAdBdedCdDdedEdFededGdeddHdIedJdKddLdMdN	iZdOdPidOdQidOdRidOdSigZdTZedUdVdZdZdZedWdXdZedYe
dZ dZ e
d[ gZ!d\Z"ed]d^dZ#ed_e
d` dZ$daZ%dbdcdddegdfgdgdhgdidjgdkdldmdndodpdqdrZ&edsdte dZ'dZ(edudvdZ)edwdvdZ*dxgZ+dxZ,dxZ-eZ.dZ/d7dyedzd{dd|ed}d~edddddddLeddeddiZ0dZ1d7Z2eddedZ3ddddddddddddddddddddddddddddddddddZ4edddeddededdededdededdededdeddZ5edddedddeddededddeddddZ6edddeddededdeddZ7eddtdeddtdeeddtddZ8eddededde9deddededdeddŜZ:deddtdiZ;dddddʜdddʜd̜dddddќidgddҜdgedddddԜdgdddԜdgdddԜd՜d֜Z<dZ=dZ>dZ?eseddedZ@dZAeddedZBeddedZCdZDdZEdZFdddddddfgdddegddddddddddddddddddddddddddddgdZGdS )a  
Django settings for Stream Processor project.

This module contains all configuration settings for the Django application,
including database configuration, security settings, installed apps,
middleware configuration, and third-party service settings.

The settings are designed to work with python-decouple for environment
variable management, allowing for different configurations across
development, staging, and production environments.
    N)Path)configCsvZlogsT)exist_okz	/app/logs
SECRET_KEYz)django-insecure-change-this-in-production)defaultDEBUGF)r   castALLOWED_HOSTSzlocalhost,127.0.0.1zdjango.contrib.adminzdjango.contrib.authzdjango.contrib.contenttypeszdjango.contrib.sessionszdjango.contrib.messageszdjango.contrib.staticfilesZrest_frameworkZcorsheadersZdjango_filtersZdrf_spectacularz	apps.corezapps.authenticationzapps.streamszapps.jingleszapps.notificationszapps.monitoringz-django.middleware.security.SecurityMiddlewarez*whitenoise.middleware.WhiteNoiseMiddlewarez4django.contrib.sessions.middleware.SessionMiddlewarez%corsheaders.middleware.CorsMiddlewarez)django.middleware.common.CommonMiddlewarez)django.middleware.csrf.CsrfViewMiddlewarez7django.contrib.auth.middleware.AuthenticationMiddlewarez4django.contrib.messages.middleware.MessageMiddlewarez6django.middleware.clickjacking.XFrameOptionsMiddlewarez	core.urlsz/django.template.backends.django.DjangoTemplates	templatescontext_processorsz(django.template.context_processors.debugz*django.template.context_processors.requestz+django.contrib.auth.context_processors.authz3django.contrib.messages.context_processors.messagesz-apps.core.context_processors.settings_context)BACKENDDIRSAPP_DIRSOPTIONSzcore.wsgi.applicationzcore.asgi.applicationZ
USE_SQLITEr   zdjango.db.backends.sqlite3z
db.sqlite3)ENGINENAMEzdjango.db.backends.postgresqlZDB_NAMEZ	stream_dbZDB_USERZpostgresZDB_PASSWORDZDB_HOST	localhostZDB_PORTZ5432ZDB_CONN_MAX_AGEiX  ZDB_CONN_HEALTH_CHECKS<   z--c default_transaction_isolation=serializableZDB_SSL_MODEpreferZstream_processor)connect_timeoutoptionsZsslmodeZapplication_name)	r   r   USERPASSWORDHOSTPORTCONN_MAX_AGECONN_HEALTH_CHECKSr   r   zHdjango.contrib.auth.password_validation.UserAttributeSimilarityValidatorz>django.contrib.auth.password_validation.MinimumLengthValidatorz?django.contrib.auth.password_validation.CommonPasswordValidatorz@django.contrib.auth.password_validation.NumericPasswordValidatorzen-us	TIME_ZONEUTC
STATIC_URLz/static/STATIC_ROOTstaticfilesZstaticz7whitenoise.storage.CompressedManifestStaticFilesStorage	MEDIA_URLz/media/
MEDIA_ROOTZmediazdjango.db.models.BigAutoFieldz.rest_framework.pagination.PageNumberPagination   z3rest_framework.authentication.SessionAuthenticationz1rest_framework.authentication.TokenAuthenticationz*rest_framework.permissions.IsAuthenticatedz%rest_framework.renderers.JSONRendererz-rest_framework.renderers.BrowsableAPIRendererz*rest_framework.throttling.AnonRateThrottlez*rest_framework.throttling.UserRateThrottlez100/hourz	1000/hourz	30/minutez500/hourz200/hour)ZanonuserZstream_controlZdetection_apiZnotification_apiz"drf_spectacular.openapi.AutoSchema)ZDEFAULT_PAGINATION_CLASSZ	PAGE_SIZEZDEFAULT_AUTHENTICATION_CLASSESZDEFAULT_PERMISSION_CLASSESZDEFAULT_RENDERER_CLASSESZDEFAULT_THROTTLE_CLASSESZDEFAULT_THROTTLE_RATESZDEFAULT_SCHEMA_CLASSCORS_ALLOWED_ORIGINS CELERY_BROKER_URLzredis://localhost:6379/0CELERY_RESULT_BACKENDjsonzdjango_redis.cache.RedisCacheZ	REDIS_URLzredis://localhost:6379/1z!django_redis.client.DefaultClientZREDIS_MAX_CONNECTIONS2   )max_connectionsretry_on_timeoutz,django_redis.serializers.json.JSONSerializerz,django_redis.compressors.zlib.ZlibCompressor)ZCLIENT_CLASSZCONNECTION_POOL_KWARGSZ
SERIALIZERZ
COMPRESSORZCACHE_DEFAULT_TIMEOUTi,  )r   LOCATIONr   
KEY_PREFIXTIMEOUTz&django.contrib.sessions.backends.cachePERFORMANCE_PROFILING_ENABLEDz&apps.streams.tasks.check_stream_healthg      >@)taskschedulez'apps.streams.tasks.cleanup_old_segmentsg     @z,apps.jingles.tasks.process_pending_ad_breaksg      N@z,apps.monitoring.tasks.collect_system_metricsz)apps.monitoring.tasks.collect_app_metricsg      ^@z1apps.monitoring.tasks.generate_performance_reportg      @z,apps.monitoring.tasks.monitor_resource_usageg     r@z+apps.monitoring.tasks.cleanup_metrics_cacheg      @z4apps.monitoring.tasks.check_external_services_healthg     @z#apps.monitoring.tasks.create_backupz%apps.monitoring.tasks.cleanup_backupsg     u"A)zstream-health-checkzcleanup-old-segmentszprocess-ad-breakszcollect-system-metricszcollect-app-metricszgenerate-performance-reportzmonitor-resource-usagezcleanup-metrics-cachezcheck-external-serviceszcreate-backupzcleanup-backups
OUTPUT_DIRz/app/media/streamsSEGMENT_DURATION   MAX_TS_FILE_NUMBER
   MAX_CAPTURE_RETRIES   CAPTURE_RETRY_INTERVALEXIT_ON_FAILURE)r5   r6   r8   r:   r<   r=   
RESOLUTIONZ1280x720ASPECT_RATIOz16:9FPS   MIN_BITRATEZ2000kMAX_BITRATEZ4000k)r>   r?   r@   rB   rC   ZAUDIO_BITRATEZ128kZAUDIO_SAMPLE_RATEi  ZAUDIO_CHANNELS   )ZBITRATEZSAMPLE_RATEZCHANNELSZTELEGRAM_BOT_TOKENZTELEGRAM_CHAT_ID)Z	BOT_TOKENZCHAT_IDENABLEDUSE_JINGLESZJINGLE_SIMILARITY_THRESHOLDg?MIN_AD_BREAK_DURATION   MAX_AD_BREAK_DURATIONiJ  )rF   ZSIMILARITY_THRESHOLDrG   rI   ZDAI_API_URL   z?{levelname} {asctime} {module} {process:d} {thread:d} {message}{)formatstylez{levelname} {message})verbosesimpleZconsoleINFOzlogging.StreamHandlerrO   )levelclass	formatter)handlersrQ   Z	LOG_LEVEL)rT   rQ   	propagate)djangocorecelery)versionZdisable_existing_loggersZ
formattersrT   rootloggersz/accounts/login//SECURE_SSL_REDIRECT)ZHTTP_X_FORWARDED_PROTOhttpsSESSION_COOKIE_SECURECSRF_COOKIE_SECUREDENYzStream Processing APIzWComprehensive API for HLS stream capture, jingle detection, and notification managementz1.0.0z/api/v1/z*drf_spectacular.generators.SchemaGenerator)ZdeepLinkingZpersistAuthorizationZdisplayOperationIdfilterZChannelszStream channel management)namedescriptionZSessionszStream session monitoringZConfigurationsz!Video and audio encoding settingsZJinglesz(Jingle template and detection managementz	Ad BreakszAdvertisement break trackingZNotificationsz!Multi-channel notification systemZ
MonitoringzSystem health and metrics)ZTITLEZDESCRIPTIONVERSIONZSERVE_INCLUDE_SCHEMAZSCHEMA_PATH_PREFIXZDEFAULT_GENERATOR_CLASSZSERVE_PERMISSIONSZSERVE_AUTHENTICATIONZSWAGGER_UI_SETTINGSZCOMPONENT_SPLIT_REQUESTZSORT_OPERATIONSZTAGS)H__doc__ospathlibr   Zdecoupler   r   __file__resolveparentZBASE_DIRZlogs_dirmkdirPermissionErrorr   boolr   r
   INSTALLED_APPS
MIDDLEWAREROOT_URLCONF	TEMPLATESWSGI_APPLICATIONZASGI_APPLICATION	DATABASESintAUTH_PASSWORD_VALIDATORSLANGUAGE_CODEr   USE_I18NUSE_TZr    r!   STATICFILES_DIRSSTATICFILES_STORAGEr#   r$   DEFAULT_AUTO_FIELDZREST_FRAMEWORKr'   ZCORS_ALLOW_CREDENTIALSr)   r*   ZCELERY_ACCEPT_CONTENTZCELERY_TASK_SERIALIZERZCELERY_RESULT_SERIALIZERZCELERY_TIMEZONEZCELERY_ENABLE_UTCCACHESSESSION_ENGINESESSION_CACHE_ALIASr2   CELERY_BEAT_SCHEDULEZSTREAM_CONFIGZVIDEO_CONFIGZAUDIO_CONFIGTELEGRAM_CONFIGfloatZJINGLE_CONFIGZEXTERNAL_APISLOGGING	LOGIN_URLLOGIN_REDIRECT_URLLOGOUT_REDIRECT_URLr]   SECURE_PROXY_SSL_HEADERr_   r`   ZSECURE_BROWSER_XSS_FILTERSECURE_CONTENT_TYPE_NOSNIFFX_FRAME_OPTIONSZSPECTACULAR_SETTINGS r   r   1/var/www/html/JingleDetector/src/core/settings.py<module>   s2  





    

	2





	

	
 

-