Configuration Module¶
config
¶
Configuration management for Weeb CLI.
This module provides a centralized configuration system that stores settings in a SQLite database with fallback to default values. Supports both interactive and headless (API) modes.
Configuration is stored persistently in the database and can be accessed
throughout the application using the global config instance.
Example
Basic usage::
from weeb_cli.config import config
# Get configuration value
download_dir = config.get("download_dir")
aria2_enabled = config.get("aria2_enabled", True)
# Set configuration value
config.set("language", "tr")
# Enable headless mode (no database access)
config.set_headless(True)
Attributes:
| Name | Type | Description |
|---|---|---|
APP_NAME |
str
|
Application name for directory naming. |
CONFIG_DIR |
Path
|
User configuration directory (~/.weeb-cli). |
DEFAULT_CONFIG |
dict
|
Default configuration values. |
config |
Config
|
Global configuration instance. |
Config
¶
Configuration manager with database persistence.
Provides a simple key-value interface for application settings with automatic persistence to SQLite database. Supports headless mode for API usage without database access.
Attributes:
| Name | Type | Description |
|---|---|---|
_db |
Optional[Database]
|
Lazy-loaded database instance. |
_headless |
bool
|
Whether running in headless mode (no database). |
Source code in weeb_cli/config.py
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | |
db
property
¶
Get database instance with lazy loading.
Returns:
| Type | Description |
|---|---|
Database
|
Database instance for configuration storage. |
__init__
¶
get
¶
Get configuration value by key.
Attempts to retrieve value from database first, then falls back to provided default or DEFAULT_CONFIG. Special handling for download_dir to generate localized default path.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Configuration key name. |
required |
default
|
Optional[Any]
|
Default value if key not found in database. |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
Configuration value, default, or None. |
Example
config.get("language", "en") "tr" config.get("aria2_max_connections") 16
Source code in weeb_cli/config.py
set
¶
Set configuration value.
Persists the value to database for future retrieval.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Configuration key name. |
required |
value
|
Any
|
Value to store (must be JSON-serializable). |
required |
Example
config.set("language", "tr") config.set("aria2_max_connections", 32)
Source code in weeb_cli/config.py
set_headless
¶
Enable or disable headless mode.
In headless mode, configuration is read from DEFAULT_CONFIG only, without database access. Useful for API commands and testing.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
headless
|
bool
|
Whether to enable headless mode. |
True
|
Source code in weeb_cli/config.py
get_default_download_dir
¶
Get the default download directory path.
Uses localized folder name from i18n translations.
Returns:
| Type | Description |
|---|---|
str
|
Absolute path to default download directory in current working directory. |
Source code in weeb_cli/config.py
Overview¶
The configuration module provides centralized settings management for Weeb CLI. All configuration is stored in a SQLite database with fallback to sensible defaults.
Usage Examples¶
Getting Configuration Values¶
from weeb_cli.config import config
# Get with default fallback
language = config.get("language", "en")
download_dir = config.get("download_dir")
aria2_enabled = config.get("aria2_enabled", True)
Setting Configuration Values¶
from weeb_cli.config import config
# Set language
config.set("language", "tr")
# Set download directory
config.set("download_dir", "/path/to/downloads")
# Enable/disable features
config.set("discord_rpc_enabled", False)
Headless Mode¶
For API usage without database access:
from weeb_cli.config import config
# Enable headless mode
config.set_headless(True)
# Now config.get() returns only DEFAULT_CONFIG values
language = config.get("language") # Returns None (default)
Default Configuration¶
The following default values are used when no database value exists:
| Key | Default Value | Description |
|---|---|---|
language |
None |
UI language (tr, en, de, pl) |
aria2_enabled |
True |
Enable Aria2 for downloads |
ytdlp_enabled |
True |
Enable yt-dlp for downloads |
aria2_max_connections |
16 |
Max connections per download |
max_concurrent_downloads |
3 |
Max simultaneous downloads |
download_dir |
None |
Download directory path |
ytdlp_format |
"bestvideo+bestaudio/best" |
yt-dlp format string |
scraping_source |
None |
Default provider |
show_description |
True |
Show anime descriptions |
debug_mode |
False |
Enable debug logging |
download_max_retries |
3 |
Download retry attempts |
download_retry_delay |
10 |
Delay between retries (seconds) |
discord_rpc_enabled |
True |
Enable Discord Rich Presence |
shortcuts_enabled |
False |
Enable keyboard shortcuts |
Configuration Directory¶
Configuration and data are stored in:
~/.weeb-cli/
├── weeb.db # SQLite database
├── cache/ # Cached data
├── bin/ # Downloaded dependencies
└── logs/ # Debug logs
API Reference¶
Configuration manager with database persistence.
Provides a simple key-value interface for application settings with automatic persistence to SQLite database. Supports headless mode for API usage without database access.
Attributes:
| Name | Type | Description |
|---|---|---|
_db |
Optional[Database]
|
Lazy-loaded database instance. |
_headless |
bool
|
Whether running in headless mode (no database). |
Source code in weeb_cli/config.py
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | |
get
¶
Get configuration value by key.
Attempts to retrieve value from database first, then falls back to provided default or DEFAULT_CONFIG. Special handling for download_dir to generate localized default path.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Configuration key name. |
required |
default
|
Optional[Any]
|
Default value if key not found in database. |
None
|
Returns:
| Type | Description |
|---|---|
Any
|
Configuration value, default, or None. |
Example
config.get("language", "en") "tr" config.get("aria2_max_connections") 16
Source code in weeb_cli/config.py
set
¶
Set configuration value.
Persists the value to database for future retrieval.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key
|
str
|
Configuration key name. |
required |
value
|
Any
|
Value to store (must be JSON-serializable). |
required |
Example
config.set("language", "tr") config.set("aria2_max_connections", 32)
Source code in weeb_cli/config.py
set_headless
¶
Enable or disable headless mode.
In headless mode, configuration is read from DEFAULT_CONFIG only, without database access. Useful for API commands and testing.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
headless
|
bool
|
Whether to enable headless mode. |
True
|