# ==============================================================================
#                         ESSENTIAL ADDON SETUP
# ==============================================================================
# These are the most important settings you'll need to configure.

# --- Addon Identification ---
# Descriptive name for your addon instance.
ADDON_NAME="AIOStreams"
# Unique identifier for your addon.
ADDON_ID="aiostreams.viren070.com"

# --- Network Configuration ---
# The port on which the addon will listen.
# Default: 3000
PORT=3000

# The base URL of your addon. Required for proper functioning.
# Used for generating installation URLs, identifying self scraping, replacing genre links, generating stream URLs for built in addons etc.
# Example: https://aiostreams.yourdomain.com
BASE_URL=

# Optionally override the internal URL. This URL is used when communicating with built-in addons. 
# In most cases, the default is fine. 
# INTERNAL_URL=http://localhost:${PORT}

# --- Security ---
# CRITICAL: Secret key for encrypting addon configuration.
# MUST be a 64-character hex string.
# Generate one using:
#   Linux/macOS: openssl rand -hex 32
#   Windows (PowerShell): -join ((0..31) | ForEach-Object { '{0:x2}' -f (Get-Random -Minimum 0 -Maximum 255) })
#   Or: [System.Guid]::NewGuid().ToString("N") + [System.Guid]::NewGuid().ToString("N") (ensure it's 64 chars)
SECRET_KEY=

# API key to protect your addon installation and usage.
# Leave empty to disable password protection.
# Can be any string.
# Supports multiple passwords separated by commas
# Example: ADDON_PASSWORD="password1,password2"
ADDON_PASSWORD=

# --- Database ---
# REQUIRED: The database URI for storing addon configuration.
# Supports SQLite (simplest) or PostgreSQL.
#
# SQLite example (stores data in a file):
#   DATABASE_URI=sqlite://./data/db.sqlite
#   (You can change './data/db.sqlite' to your preferred path)
#
# PostgreSQL example:
#   DATABASE_URI=postgres://username:password@host:port/database_name
#   (e.g., postgresql://postgres:password@localhost:5432/aiostreams)
DATABASE_URI=sqlite://./data/db.sqlite

# --- Redis (Optional, for Scaled Deployments) ----
# Optionally provide a Redis URI to use for caching. This is only recommended for
# users running multiple instances (e.g., via Docker Swarm).
#
# For standard, single-container setups, leave this blank. It will default to 
# a simpler internal memory cache that is more than sufficient and faster too.
#
# REDIS_URI=redis://your_redis_hostname:6379

# --- Authorisation ---
# Set up credentials for your AIOStreams instance. Currently, this is only used for the built-in proxy. 
# AIOStreams provides a built-in proxy that can be used to proxy streams as well as proxying NZBs for the Newznab addon. 
# Define a comma separated list of username:password pairs here to configure the users. e.g. user1:pass1,user2:pass2
# AIOSTREAMS_AUTH=
# Provide a comma separated list of usernames here (that are also defined above) to control which users are admins. Leaving this blank
# or commented out means all users are admins. Admins can currently view proxy stats at /api/v1/proxy/stats?auth=<user>:<pass>
# AIOSTREAMS_AUTH_ADMINS=

# ==============================================================================
#                     BUILT-IN ADDON CONFIGURATION
# ==============================================================================
# AIOStreams provides some built-in addons that you can configure here. 
# These require BASE_URL to be set above.
# Some of these built-in integrations require StremThru for Debrid integration. 
# Set the URL to your StremThru instance here: 
BUILTIN_STREMTHRU_URL=https://stremthru.13377001.xyz

# By default, built-in addons will only use the primary title when using text-based querying. Use this variable
# to control this behaviour. 
# You can either set this to true, false, or a comma separated list of hostnames.
# true means it always uses all titles, including for knaben, torrent galaxy etc. 
# false means it never uses all titles
# jackett,knaben.org means only for URLs like http://jackett:9117 and https://knaben.org will all titles be used.
BUILTIN_SCRAPE_WITH_ALL_TITLES=false

# How long the cache status of an item is cached. Only applies to cached items, uncached items are always checked again.
# Default: 30 minutes
BUILTIN_DEBRID_INSTANT_AVAILABILITY_CACHE_TTL=1800
# How long download links for an item remain cached for. 
# Default: 1 hour
BUILTIN_DEBRID_PLAYBACK_LINK_CACHE_TTL=3600
# How long the list of downloads in the user's library is cached for.
# Default: 5 minutes
BUILTIN_DEBRID_LIBRARY_CACHE_TTL=300

# The timeout for getting the magnet from a torrent link. Happens in bulk during searches when only download URL is present. 
BUILTIN_GET_TORRENT_TIMEOUT=5000
# How many of the get torrent tasks should be running at the same time
# Higher values will increase search times but use more system resources.
BUILTIN_GET_TORRENT_CONCURRENCY=100
# The minimum interval between background refreshes for built-in addon search caches. Triggered during normal searches.
# e.g. Searches remain cached for the addon-specific TTLs but once this interval has passed, a background refresh can be triggered to ensure fresh results 
# without making the user wait.
# Default: 1 day
BUILTIN_MINIMUM_BACKGROUND_REFRESH_INTERVAL=86400


# ---- Bitmagnet ----
# Enter the URL of a bitmagnet instance to enable the Bitmagnet addon in the marketplace. 
# BUILTIN_BITMAGNET_URL=

# ---- Prowlarr ------
# Optionally provide a default prowlarr URL and API Key here. Users cannot see the values set here.
# BUILTIN_PROWLARR_URL=
# BUILTIN_PROWLARR_API_KEY=
# Optionally provide a comma separated list of indexers to limit the options in the config page, if not provided, all indexers will be shown.
# BUILTIN_PROWLARR_INDEXERS=
# BUILTIN_DEFAULT_PROWLARR_TIMEOUT=
# The timeout for search requests.
# BUILTIN_PROWLARR_SEARCH_TIMEOUT=
# How long specific responses should be cached for. 
BUILTIN_PROWLARR_SEARCH_CACHE_TTL=604800
BUILTIN_PROWLARR_INDEXERS_CACHE_TTL=1209600


# --- Knaben ----
# BUILTIN_DEFAULT_KNABEN_TIMEOUT=
# BUILTIN_KNABEN_SEARCH_TIMEOUT=30000, 
# BUILTIN_KNABEN_SEARCH_CACHE_TTL=604800


# --- Torrent Galaxy ---
# BUILTIN_TORRENT_GALAXY_URL=https://torrentgalaxy.space
# Default timeout of the addon in the marketplace
# BUILTIN_DEFAULT_TORRENT_GALAXY_TIMEOUT=
# The timeout for requests to TGx
# BUILTIN_TORRENT_GALAXY_SEARCH_TIMEOUT=30000
# How long each search is cached for.
# BUILTIN_TORRENT_GALAXY_SEARCH_CACHE_TTL=604800
# The maximum number of pages to fetch. 
# BUILTIN_TORRENT_GALAXY_PAGE_LIMIT=5



# ---- Jackett
# Optionally provide a default Jackett URL and API Key here. Users cannot see the values set here.
# BUILTIN_JACKETT_URL=
# BUILTIN_JACKETT_API_KEY=

# ---- NZBHydra2 ------
# Optionally provide a default NZBHydra URL and API Key here. Users cannot see the values set here.
# BUILTIN_NZBHYDRA_URL=
# BUILTIN_NZBHYDRA_API_KEY=

# ---- Stremio GDrive -----
# Client ID and Secret generated following this guide: https://guides.viren070.me/stremio/addons/stremio-gdrive
# Follow only:
#   - All steps from 'Setting up our Google App' (but set redirect URL to Set the redirect URL to ${BASE_URL}/oauth/callback/gdrive)
#   - Step 7 from 'Setting up the cloudflare worker'
# And then paste in the Client ID and Secret here. 
# BUILTIN_GDRIVE_CLIENT_ID=
# BUILTIN_GDRIVE_CLIENT_SECRET=

# The limit to the amount of items that can possibly be queried from the Google Drive API in a given request.
BUILTIN_GDRIVE_PAGE_SIZE_LIMIT=1000
# BUILTIN_GDRIVE_TIMEOUT=

# ---- TorBox Search -----
# Has no required configuration apart from BASE_URL
# The amount of time to wait for requests to the TorBox Search API.
BUILTIN_TORBOX_SEARCH_SEARCH_API_TIMEOUT=30000
# Whether to cache results for users who've enabled user search engines. This requires a cache entry for each user for each title rather than 
# A shared cache. 
BUILTIN_TORBOX_SEARCH_CACHE_PER_USER_SEARCH_ENGINE=false
# The amount of time that the results of a search remain cached for. Applies to both usenet and torrents.
# Default: 7 days.
# BUILTIN_TORBOX_SEARCH_SEARCH_API_CACHE_TTL=604800
# BUILTIN_TORBOX_SEARCH_METADATA_CACHE_TTL=1209600

# ---- *znab (Torznab/Newznab) ----

BUILTIN_NAB_SEARCH_TIMEOUT=30000
BUILTIN_NAB_SEARCH_CACHE_TTL=604800
BUILTIN_NAB_CAPABILITIES_CACHE_TTL=1209600
BUILTIN_NAB_MAX_PAGES=5

# --- Zilean --- 
BUILTIN_ZILEAN_URL="https://zilean.elfhosted.com"
# BUILTIN_DEFAULT_ZILEAN_TIMEOUT=

# --- AnimeTosho ---
BUILTIN_ANIMETOSHO_URL="https://feed.animetosho.org"
# BUILTIN_DEFAULT_ANIMETOSHO_TIMEOUT=

BUILTIN_NEKOBT_URL="https://nekobt.to/api/torznab"
# BUILTIN_DEFAULT_NEKOBT_TIMEOUT=


# =============================================================================
#                        # ANIME DATABASE
# =============================================================================

# Customise the level of detail that is loaded and available for AIOStreams and the Anime API.
# Choices: none, required, full
# Default: required
ANIME_DB_LEVEL_OF_DETAIL=required
# Control how often the datasources for the local anime database will refresh.

ANIME_DB_FRIBB_MAPPINGS_REFRESH_INTERVAL=86400000
ANIME_DB_MANAMI_DB_REFRESH_INTERVAL=604800000
ANIME_DB_KITSU_IMDB_MAPPING_REFRESH_INTERVAL=86400000
ANIME_DB_EXTENDED_ANITRAKT_MOVIES_REFRESH_INTERVAL=86400000
ANIME_DB_EXTENDED_ANITRAKT_TV_REFRESH_INTERVAL=86400000

# ==============================================================================
#                     DEBRID & OTHER SERVICE API KEYS
# ==============================================================================

# Provide a default TMDB access token to be used for the Title Matching filter if a user does not provide any.
TMDB_ACCESS_TOKEN=
TMDB_API_KEY=

# Provide a trakt client ID for authorised requests to get trakt aliases.
TRAKT_CLIENT_ID=

# Configure API keys for debrid services and others you plan to use.
# 'DEFAULT_' values are pre-filled in the user's config page.
# 'FORCED_' values override user settings and hide the option.

# --- Real-Debrid ---
DEFAULT_REALDEBRID_API_KEY=
FORCED_REALDEBRID_API_KEY=

# --- AllDebrid ---
DEFAULT_ALLDEBRID_API_KEY=
FORCED_ALLDEBRID_API_KEY=

# --- Premiumize ---
DEFAULT_PREMIUMIZE_API_KEY=
FORCED_PREMIUMIZE_API_KEY=

# --- Debrid-Link ---
DEFAULT_DEBRIDLINK_API_KEY=
FORCED_DEBRIDLINK_API_KEY=

# --- Torbox ---
DEFAULT_TORBOX_API_KEY=
FORCED_TORBOX_API_KEY=

# --- OffCloud ---
DEFAULT_OFFCLOUD_API_KEY=
FORCED_OFFCLOUD_API_KEY=
DEFAULT_OFFCLOUD_EMAIL=
FORCED_OFFCLOUD_EMAIL=
DEFAULT_OFFCLOUD_PASSWORD=
FORCED_OFFCLOUD_PASSWORD=

# --- Put.io ---
DEFAULT_PUTIO_CLIENT_ID=
FORCED_PUTIO_CLIENT_ID=
DEFAULT_PUTIO_CLIENT_SECRET=
FORCED_PUTIO_CLIENT_SECRET=

# --- EasyNews ---
DEFAULT_EASYNEWS_USERNAME=
FORCED_EASYNEWS_USERNAME=
DEFAULT_EASYNEWS_PASSWORD=
FORCED_EASYNEWS_PASSWORD=

# --- EasyDebrid ---
DEFAULT_EASYDEBRID_API_KEY=
FORCED_EASYDEBRID_API_KEY=

# --- Debrider ---
DEFAULT_DEBRIDER_API_KEY=
FORCED_DEBRIDER_API_KEY=

# --- PikPak ---
DEFAULT_PIKPAK_EMAIL=
FORCED_PIKPAK_EMAIL=
DEFAULT_PIKPAK_PASSWORD=
FORCED_PIKPAK_PASSWORD=

# --- Seedr ---
DEFAULT_SEEDR_ENCODED_TOKEN=
FORCED_SEEDR_ENCODED_TOKEN=


# ==============================================================================
#                      CUSTOMIZATION & ACCESS CONTROL
# ==============================================================================

# --- Custom HTML ---
# Display custom HTML at the top of the addon's configuration page.
# Example: CUSTOM_HTML="<div>Welcome to my AIOStreams!</div>"
CUSTOM_HTML=

# --- Alternate Design
# Choose to enable an alternate design for the AIOStreams logo.
ALTERNATE_DESIGN=false

# --- Trusted Users ---
# Comma-separated list of trusted UUIDs.
# Trusted users can access features like regex filters if REGEX_FILTER_ACCESS is 'trusted'.
# Example: TRUSTED_UUIDS=ae32f456-1234-5678-9012-345678901234,another-uuid-here
# TRUSTED_UUIDS=

# ---- Stream Data ----
# Whether to provide stream data in stream responses. 
# Set to either true, false, or a list of IPs.
# Or leave undefined. 
# Setting to a list of IPs only shows stream data when request is made from one of those IPs
# Leaving as undefined only shows when necessary by AIO.
# Disabling this means users cannot wrap your AIOStreams instance.
# PROVIDE_STREAM_DATA=

# --- Search API -----
# Control whether to serve a search API for easier access to results through AIOStreams
# at the /api/v1/search endpoint. 
# Enabled by default, set to false to disable.
# ENABLE_SEARCH_API=true

# --- Regex Filter Access ---
# Controls who can use regex filters.
# 'none': No one can use regex filters.
# 'trusted': Only users listed in TRUSTED_UUIDS.
# 'all': All users (only recommended if ADDON_PASSWORD is set).
# Default: trusted
REGEX_FILTER_ACCESS=trusted

# --- Allowed Regexes ----
# Set allowed regexes which are available to all users, regardless of the setting of REGEX_FILTER_ACCESS.
# You can make use of the pattern array and/or the URL array. The URLs specified will be fetched each time the server starts 
# Format: e.g. ["/(\\[(Aergia|smol|SoM|Vodes)\\]|-(Aergia(?!-raws)|smol|SoM)\\b|\\b(Arg0|LYS1TH3A|OZR|SCY|ZeroBuild)\\b)|(?<!Not)-Vodes\\b/i", "/(\\[(Legion|sam|Vanilla)\\]|-(Legion|sam|Vanilla)\\b)/"]
# You may also set a list of URLs e.g. ["https://raw.githubusercontent.com/Vidhin05/Releases-Regex/main/merged-regexes.json"]
# Description supports markdown format for links and code only. (i.e. [linktext](link) and `code`)
# ALLOWED_REGEX_PATTERNS=
# ALLOWED_REGEX_PATTERNS_URLS=
# ALLOWED_REGEX_PATTERNS_DESCRIPTION=

# How often patterns from URLs will be refreshed. 
# Default: 86400000 (1 day)
# ALLOWED_REGEX_PATTERNS_URLS_REFRESH_INTERVAL=
# --- Aliased Configurations (Vanity URLs) ---
# Create shorter, memorable installation URLs.
# Format: aliasName1:uuid1:encryptedPassword1,aliasName2:uuid2:encryptedPassword2
# encryptedPassword can be obtained from a manifest URL for the UUID. it will be the base64 section, the 3rd segment in the pathname e.g. /stremio/<uuid>/<encryptedPassword>/manifest.jso
# Users can then access the addon via /stremio/u/aliasName/manifest.json
# ALIASED_CONFIGURATIONS=

# ==============================================================================
#                           CACHE CONFIGURATION
# ==============================================================================

# --- Default maximum cache size ----
# The maximum number of items that can be held in a given cache instance, if not overriden by a specific cache instance
DEFAULT_MAX_CACHE_SIZE=100000

# --- Proxy IP TTL (StremThru/MediaFlow Proxy)
# The Time-To-Live (in seconds) of items in the Public IP cache.
# Set to -1 to disable caching
PROXY_IP_CACHE_TTL=900

# --- Addon Resource Caching ---
# Control the Caching of resources fetched from other addons
# Set to -1 to disable caching.
MANIFEST_CACHE_TTL=21600
SUBTITLE_CACHE_TTL=300
STREAM_CACHE_TTL=-1
CATALOG_CACHE_TTL=300
META_CACHE_TTL=300
ADDON_CATALOG_CACHE_TTL=300

# timeout for background resource requests, uses the value of MAX_TIMEOUT if not set. 
# This is the timeout for processing requests in the background after its initial timeout 
# so it can be cached for the next request.
# BACKGROUND_RESOURCE_REQUEST_TIMEOUT=


# --- RPDB API Key Validation Caching ---
# Control how long a valid API key check is cached for 
# Default: 7 days
RPDB_API_KEY_VALIDITY_CACHE_TTL=604800

# ==============================================================================
#                             FEATURE CONTROL
# ==============================================================================
# Enable or disable specific addon features.

# --- Self-Scraping ---
# Prevent this AIOStreams instance from being added as an addon to itself.
# Default: true
DISABLE_SELF_SCRAPING=true

# --- Disabled Hosts ---
# Prevent certain hostnames from being added as addons.
# Format: host1:reason1,host2:reason2
# Example: DISABLED_HOSTS=torrentio.strem.fun:Blocked by Torrentio
# DISABLED_HOSTS=

# --- Disabled Addons (Marketplace) ---
# Disable specific addons from appearing in the marketplace.
# See https://github.com/Viren070/AIOStreams/blob/main/packages/core/src/utils/marketplace.ts for IDs.
# Format: addonID1:reason1,addonID2:reason2
# Example: DISABLED_ADDONS=torrentio:Blocked by Torrentio
# DISABLED_ADDONS=

# --- Disabled Services (Configuration Page) ---
# Hide certain services (e.g., debrid services) from the configuration page.
# Format: service1:reason1,service2:reason2
# Example: DISABLED_SERVICES=realdebrid:Not available on this instance
# DISABLED_SERVICES=


# ==============================================================================
#                                 LOGGING
# ==============================================================================

# --- Log Level ---
# Set the verbosity of logs. Options: "error", "warn", "info", "http", "verbose","debug", "silly"
# Default: info
LOG_LEVEL=http

# --- Log Format ---
# Output logs in "json" or "text" format.
# Default: text
LOG_FORMAT=text

# --- Log Sensitive Information ---
# Whether to include potentially sensitive info (like API keys) in logs.
# Useful for debugging, but disable for production if concerned.
# Default: true
LOG_SENSITIVE_INFO=true

# --- Log Timezone ---
# Adjust the timezone used for logging
# e.g. Europe/Paris, America/New_York
LOG_TIMEZONE=Etc/UTC


# ===============================================================================
#                      URL MAPPINGS
# ==============================================================================
# Configure URL mappings for rerouting outgoing requests and adjusting stream URLs
# ----- Request URL Mappings -------
# Configure URL Mappings for outgoing requests. e.g. reroute requests to https://aiostreams.example.com to http://localhost:3000
# REQUEST_URL_MAPPINGS='{"https://aiostreams.example.com": "http://localhost:3000"}'

# ---- Stream URL Mappings -----
# Configure adjustments to stream URLs. e.g convert stream URLs with http://localhost:3000 as the base URL to https://aiostreams.example.com
# STREAM_URL_MAPPINGS='{"http://localhost:3000": "https://aiostreams.example.com"}'


# ==============================================================================
#                  PROXY FOR OUTGOING ADDON REQUESTS (Torrentio, etc.)
# ==============================================================================
# Configure a proxy for requests made *by* this AIOStreams instance *to* other addons (e.g., Torrentio).
# Useful if your server's IP is blocked by an upstream service.

# --- Addon Proxy URL ---
# The proxy URL to use for all requests to upstream addons.
# Example: ADDON_PROXY=http://warp:1080 (using https://github.com/cmj2002/warp-docker)
# ADDON_PROXY=

# --- Addon Proxy Configuration ---
# Optionally, specify which domains to proxy.
# Comma-separated list of rules: domain_pattern:boolean. Later rules have higher priority.
# Wildcards (*) can be used.
# Example: ADDON_PROXY_CONFIG="*:false,*.strem.fun:true" (only proxy *.strem.fun domains)
# ADDON_PROXY_CONFIG=

# AIOStreams also supports using multiple proxies. For example. 
# ADDON_PROXY='["http://warp:1080", "http://gluetun:8080"]'
# ADDON_PROXY_CONFIG=*:false,*.strem.fun:0,*.baby-beamup.club:1

# Where you would normally put true/false, replace it with the index of the proxy you want to use (index starts from 0)
# The above setup would use warp for strem.fun and gluetun for baby-beamup.club


# ==============================================================================
#                  DEFAULT/FORCED STREAM PROXY (MediaFlow, StremThru)
# ==============================================================================
# Configure how AIOStreams handles stream proxies like MediaFlow or StremThru for playback.
# 'DEFAULT_' values are pre-filled. 'FORCE_' values override user settings.

# --- Stream Proxy Enabled ---
# DEFAULT_PROXY_ENABLED=true  # Default state for enabling a stream proxy.
# FORCE_PROXY_ENABLED=false   # Force stream proxy on/off for all users.

# --- Stream Proxy ID ---
# 'mediaflow' or 'stremthru'
DEFAULT_PROXY_ID=mediaflow
# FORCE_PROXY_ID=

# --- Stream Proxy URL ---
# URL of your MediaFlow or StremThru instance.
# DEFAULT_PROXY_URL=
# FORCE_PROXY_URL=

# --- Stream Proxy Public URL ---
# Public URL of your MediaFlow or StremThru instance (Optional)
# DEFAULT_PROXY_PUBLIC_URL=
# FORCE_PROXY_PUBLIC_URL=

# --- Stream Proxy Credentials ---
# Format: username:password
# DEFAULT_PROXY_CREDENTIALS=
# FORCE_PROXY_CREDENTIALS=

# --- Stream Proxy Public IP ---
# Public IP for the proxy, if needed.
# DEFAULT_PROXY_PUBLIC_IP=
# FORCE_PROXY_PUBLIC_IP=

# --- Proxied Services ---
# Comma-separated list of services whose streams should be proxied (e.g., realdebrid,alldebrid).
# DEFAULT_PROXY_PROXIED_SERVICES=
# FORCE_PROXY_PROXIED_SERVICES=

# --- Disable Proxied Addons Feature ---
# If true, it disables the 'Proxied Addons' option.
FORCE_PROXY_DISABLE_PROXIED_ADDONS=false

# --- Encrypt Streaming URLs ---
# Encrypt MediaFlow/StremThru URLs for better compatibility with external players.
ENCRYPT_MEDIAFLOW_URLS=true
ENCRYPT_STREMTHRU_URLS=true



# ==============================================================================
#                       ADVANCED CONFIGURATION & LIMITS
# ==============================================================================

# --- General Default Timeout ---
# Default timeout in milliseconds for all requests if not overridden by a specific timeout.
# Default: 7000 (7 seconds)
DEFAULT_TIMEOUT=7000

# --- User Agents per Domain ---
# Apply overrides for user agents per domain here. 
# e.g. "*.strem.fun:Stremio" 
# This overrides the user agent to Stremio for all requests to any subdomain of strem.fun
# HOSTNAME_USER_AGENT_OVERRIDES

# --- Configuration Limits ---
# Maximum number of addons allowed per AIOStreams configuration.
MAX_ADDONS=15
# Maximum number of groups allowed per AIOStreams configuration
MAX_GROUPS=20
# Maximum number of keyword filters per AIOStreams configuration.
MAX_KEYWORD_FILTERS=30
# Maximum number of stream expression filters per AIOStreams configuration
MAX_STREAM_EXPRESSION_FILTERS=30
# Maximum timeout (ms) an addon can be set to via override.
MAX_TIMEOUT=50000
# Minimum timeout (ms) an addon can be set to via override.
MIN_TIMEOUT=1000

# The minimum interval between precache attempts of the same episode by the same user in seconds.
# Default: 1 day
PRECACHE_NEXT_EPISODE_MIN_INTERVAL=86400


# ==============================================================================
#                           RATE LIMIT CONFIGURATION
# ==============================================================================
# Configure rate limits to prevent abuse. Typically, defaults are fine.

# --- Disable Rate Limits ---
# Set to true to disable all rate limits (NOT RECOMMENDED).
# Default: false
DISABLE_RATE_LIMITS=false

# Window and Max requests refer to the maximum number of requests a user can make within a specific timeframe

# --- Static File Serving ---
STATIC_RATE_LIMIT_WINDOW=5
STATIC_RATE_LIMIT_MAX_REQUESTS=75

# --- User API ---
USER_API_RATE_LIMIT_WINDOW=5
USER_API_RATE_LIMIT_MAX_REQUESTS=5

# --- Stream API ---
STREAM_API_RATE_LIMIT_WINDOW=5
STREAM_API_RATE_LIMIT_MAX_REQUESTS=10

# --- Format API ---
FORMAT_API_RATE_LIMIT_WINDOW=5
FORMAT_API_RATE_LIMIT_MAX_REQUESTS=30

# --- Catalog API ---
CATALOG_API_RATE_LIMIT_WINDOW=5
CATALOG_API_RATE_LIMIT_MAX_REQUESTS=5

# --- Anime API ---
ANIME_API_RATE_LIMIT_WINDOW=60
ANIME_API_RATE_LIMIT_MAX_REQUESTS=120

# --- Stremio Stream ---
STREMIO_STREAM_RATE_LIMIT_WINDOW=15
STREMIO_STREAM_RATE_LIMIT_MAX_REQUESTS=10

# --- Stremio Catalog ---
STREMIO_CATALOG_RATE_LIMIT_WINDOW=5
STREMIO_CATALOG_RATE_LIMIT_MAX_REQUESTS=30

# --- Stremio Manifest ---
STREMIO_MANIFEST_RATE_LIMIT_WINDOW=5
STREMIO_MANIFEST_RATE_LIMIT_MAX_REQUESTS=5

# --- Stremio Subtitle ---
STREMIO_SUBTITLE_RATE_LIMIT_WINDOW=5
STREMIO_SUBTITLE_RATE_LIMIT_MAX_REQUESTS=10

# --- Stremio Meta ---
STREMIO_META_RATE_LIMIT_WINDOW=5
STREMIO_META_RATE_LIMIT_MAX_REQUESTS=15


# ==============================================================================
#                         INACTIVE USER PRUNING
# ==============================================================================
# Automatically prune (delete) inactive user configurations.

# --- Prune Interval ---
# How often to check for inactive users, in seconds.
# Default: 86400 (1 day)
PRUNE_INTERVAL=86400

# --- Prune Max Inactivity Days ---
# Maximum days of inactivity before a user's configuration is pruned.
# Set to -1 to disable
# Default: -1
PRUNE_MAX_DAYS=-1


# ==============================================================================
#                      EXTERNAL ADDON SERVICE URLs & TIMEOUTS
# ==============================================================================
# URLs and default timeouts for various external Stremio addons that AIOStreams can integrate with.
# Change these if you use self-hosted versions or if defaults become outdated.

# ----------- COMET ------------
# This can also be set to a list of URLs which would show as options to users when configuring
# e.g. COMET_URL='["https://comet.elfhosted.com", "https://comet.example.com"]'
# COMET_URL=https://comet.elfhosted.com/
# DEFAULT_COMET_TIMEOUT=
# Advanced: Override Comet hostname/port/protocol if COMET_URL is internal but needs to be public-facing.
# Only uncomment and set if needed. Usually, leave these commented.
# FORCE_COMET_HOSTNAME=
# FORCE_COMET_PORT=
# FORCE_COMET_PROTOCOL= # e.g., https

# ----------- MEDIAFUSION ------------
# This can also be set to a list of URLs which would show as options to users when configuring
# e.g. MEDIAFUSION_URL='["https://mediafusion.elfhosted.com", "https://mediafusion.example.com"]'
# MEDIAFUSION_URL=https://mediafusion.elfhosted.com/
# DEFAULT_MEDIAFUSION_TIMEOUT=
# API Password for self-hosted MediaFusion (for auto-configuration).
# MEDIAFUSION_API_PASSWORD=

# ----------- JACKETTIO -------------
# This can also be set to a list of URLs which would show as options to users when configuring
# e.g. JACKETTIO_URL='["https://jackettio.elfhosted.com", "https://jackettio.example.com"]'
# JACKETTIO_URL=https://jackettio.elfhosted.com/
# DEFAULT_JACKETTIO_TIMEOUT=
# Default indexers for auto-configuration with Jackettio.
# DEFAULT_JACKETTIO_INDEXERS='["bitsearch", "eztv", "thepiratebay", "therarbg", "yts"]'
# Default StremThru URL used by Jackettio.
# DEFAULT_JACKETTIO_STREMTHRU_URL=https://stremthru.13377001.xyz
# Self-hosted StremThru for Jackettio:
# DEFAULT_JACKETTIO_STREMTHRU_URL=http://stremthru:8080
# Advanced: Override Jackettio hostname/port/protocol (similar to Comet).
# FORCE_JACKETTIO_HOSTNAME=
# FORCE_JACKETTIO_PORT=
# FORCE_JACKETTIO_PROTOCOL=

# --------- STREMTHRU-STORE ---------
# STREMTHRU_STORE_URL=https://stremthru.13377001.xyz/stremio/store/
# DEFAULT_STREMTHRU_STORE_TIMEOUT=
# Advanced: Override StremThru Store  hostname/port/protocol (similar to Comet).
# FORCE_STREMTHRU_STORE_HOSTNAME=
# FORCE_STREMTHRU_STORE_PORT=
# FORCE_STREMTHRU_STORE_PROTOCOL=
# --------- STREMTHRU-TORZ -----
# STREMTHRU_TORZ_URL=https://stremthru.13377001.xyz/stremio/torz/
# DEFAULT_STREMTHRU_TORZ_TIMEOUT=
# Advanced: Override StremThru Torz hostname/port/protocol (similar to Comet).
# FORCE_STREMTHRU_TORZ_HOSTNAME=
# FORCE_STREMTHRU_TORZ_PORT=
# FORCE_STREMTHRU_TORZ_PROTOCOL=

# --------- Sootio ---------
# SOOTIO_URL=https://sootio.elfhosted.com
# DEFAULT_SOOTIO_TIMEOUT=

# --------- EASYNEWS+ ADDON ---------
# EASYNEWS_PLUS_URL=https://b89262c192b0-stremio-easynews-addon.baby-beamup.club/
# DEFAULT_EASYNEWS_PLUS_TIMEOUT=

# -------- EASYNEWS++ ADDON ---------
# EASYNEWS_PLUS_PLUS_URL=https://easynews-cloudflare-worker.jqrw92fchz.workers.dev/
# DEFAULT_EASYNEWS_PLUS_PLUS_TIMEOUT=

# --------- STREAMFUSION ---------
# STREAMFUSION_URL=https://stream-fusion.stremiofr.com/
# DEFAULT_STREAMFUSION_TIMEOUT=

# --------- MARVEL UNIVERSE ---------
# MARVEL_UNIVERSE_URL=https://addon-marvel.onrender.com/
# DEFAULT_MARVEL_UNIVERSE_TIMEOUT=

# --------- DC UNIVERSE ---------
# DC_UNIVERSE_URL=https://addon-dc-cq85.onrender.com/
# DEFAULT_DC_UNIVERSE_TIMEOUT=

# --------- STAR WARS UNIVERSE ---------
# STAR_WARS_UNIVERSE_URL=https://addon-star-wars-u9e3.onrender.com/
# DEFAULT_STAR_WARS_UNIVERSE_TIMEOUT=

# --------- ANIME KITSU ---------
# ANIME_KITSU_URL=https://anime-kitsu.strem.fun/
# DEFAULT_ANIME_KITSU_TIMEOUT=

# --------- NUVIOSTREAMS ---------
# NUVIOSTREAMS_URL=https://nuviostreams.hayd.uk/
# DEFAULT_NUVIOSTREAMS_TIMEOUT=

# --------- TMDB COLLECTIONS ---------
# TMDB_COLLECTIONS_URL=https://61ab9c85a149-tmdb-collections.baby-beamup.club/
# DEFAULT_TMDB_COLLECTIONS_TIMEOUT=

# ----------- TORRENTIO -------------
# TORRENTIO_URL=https://torrentio.strem.fun/
# DEFAULT_TORRENTIO_TIMEOUT=

# -------- ORION STREMIO ADDON --------
# ORION_STREMIO_ADDON_URL=https://5a0d1888fa64-orion.baby-beamup.club/
# DEFAULT_ORION_STREMIO_ADDON_TIMEOUT=

# ------------ PEERFLIX --------------
# PEERFLIX_URL=https://addon.peerflix.mov
# DEFAULT_PEERFLIX_TIMEOUT=

# -------- TORBOX STREMIO ADDON --------
# TORBOX_STREMIO_URL=https://stremio.torbox.app/
# DEFAULT_TORBOX_STREMIO_TIMEOUT=

# -------- EASYNEWS ADDON (Standalone) --------
# EASYNEWS_URL=https://ea627ddf0ee7-easynews.baby-beamup.club/
# DEFAULT_EASYNEWS_TIMEOUT=

# ------------ DEBRIDIO -----------
# DEBRIDIO_URL=https://addon.debridio.com/
# DEFAULT_DEBRIDIO_TIMEOUT=

# ------------ DEBRIDIO TVDB ------------
# DEBRIDIO_TVDB_URL=https://tvdb-addon.debridio.com/
# DEFAULT_DEBRIDIO_TVDB_TIMEOUT=

# ------------ DEBRIDIO TMDB ------------
# DEBRIDIO_TMDB_URL=https://tmdb-addon.debridio.com/
# DEFAULT_DEBRIDIO_TMDB_TIMEOUT=

# ------------ DEBRIDIO TV ------------
# DEBRIDIO_TV_URL=https://tv.lb.debridio.com/
# DEFAULT_DEBRIDIO_TV_TIMEOUT=

# ------------ DEBRIDIO WATCHTOWER ------------
# DEBRIDIO_WATCHTOWER_URL=https://wt-addon.debridio.com/
# DEFAULT_DEBRIDIO_WATCHTOWER_TIMEOUT=

# ------------ OPENSUBTITLES V3 ------------
# OPENSUBTITLES_URL=https://opensubtitles-v3.strem.io/
# DEFAULT_OPENSUBTITLES_TIMEOUT=

# ------------ TORRENT CATALOGS ------------
# TORRENT_CATALOGS_URL=https://torrent-catalogs.strem.fun/
# DEFAULT_TORRENT_CATALOGS_TIMEOUT=

# ------------ RPDB CATALOGS ------------
# RPDB_CATALOGS_URL=https://1fe84bc728af-rpdb.baby-beamup.club/
# DEFAULT_RPDB_CATALOGS_TIMEOUT=

# ------------- DMM Cast ----------------
# DEFAULT_DMM_CAST_TIMEOUT=

# ----------- STREAMING CATALOGS ---------
# STREAMING_CATALOGS_URL=https://7a82163c306e-stremio-netflix-catalog-addon.baby-beamup.club
# DEFAULT_STREAMING_CATALOGS_TIMEOUT=

# ----------- ANIME CATALOGS -----------
# ANIME_CATALOGS_URL=https://1fe84bc728af-stremio-anime-catalogs.baby-beamup.club
# DEFAULT_ANIME_CATALOGS_TIMEOUT=

# ----------- DOCTOR WHO UNIVERSE -----------
# DOCTOR_WHO_UNIVERSE_URL=https://new-who.onrender.com
# DEFAULT_DOCTOR_WHO_UNIVERSE_TIMEOUT=

# ----------- WEBSTREAMR -----------
# WEBSTREAMR_URL=https://webstreamr.hayd.uk
# DEFAULT_WEBSTREAMR_TIMEOUT=

# --------------- TMDB ADDON ---------------
# TMDB_ADDON_URL=https://tmdb.elfhosted.com
# DEFAULT_TMDB_ADDON_TIMEOUT=

# --------------- TORRENTS DB ---------------
# TORRENTS_DB_URL=https://torrentsdb.com
# DEFAULT_TORRENTS_DB_TIMEOUT=

# --------------- USA TV ---------------
# USA_TV_URL=https://848b3516657c-usatv.baby-beamup.club
# DEFAULT_USA_TV_TIMEOUT=

# --------------- ARGENTINA TV ---------------
# ARGENTINA_TV_URL=https://848b3516657c-argentinatv.baby-beamup.club
# DEFAULT_ARGENTINA_TV_TIMEOUT=

# --------------- SUBDL ---------------
# SUBDL_URL=https://subdl.strem.top
# DEFAULT_SUBDL_TIMEOUT=

# --------------- SUBSOURCE ---------------
# SUBSOURCE_URL=https://subsource.strem.top
# DEFAULT_SUBSOURCE_TIMEOUT=

# --------------- OPENSUBTITLES V3 PLUS ---------------
# OPENSUBTITLES_V3_PLUS_URL=https://opensubtitles.stremio.homes
# DEFAULT_OPENSUBTITLES_V3_PLUS_TIMEOUT=

# ---------------- AI Search ----------------------------
# AI_SEARCH_URL=https://stremio.itcon.au/aisearch

#--------------- FKStream ----------------
# FKSTREAM_URL=https://streamio.fankai.fr

# ---------------- AIO Subtitle -------------
# AIOSUBTITLE_URL=https://3b4bbf5252c4-aio-streaming.baby-beamup.club

# ---------------- Subhero -----------------
# SUBHERO_URL=https://subhero.onrender.com

# --------------- StreamAsia ---------------
# STREAMASIA_URL=https://stremio-dramacool-addon.xyz

# --------------- More Like This -------------
# MORE_LIKE_THIS_URL=https://bbab4a35b833-more-like-this.baby-beamup.club

# ==============================================================================
