Yapılandırma Modülü¶
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
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 166 167 | |
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
Genel Bakış¶
Yapılandırma modülü, Weeb CLI için merkezi ayar yönetimi sağlar. Tüm yapılandırma, mantıklı varsayılanlara geri dönüşle birlikte bir SQLite veritabanında saklanır.
Kullanım Örnekleri¶
Yapılandırma Değerlerini Alma¶
from weeb_cli.config import config
# Varsayılan geri dönüşle al
language = config.get("language", "en")
download_dir = config.get("download_dir")
aria2_enabled = config.get("aria2_enabled", True)
Yapılandırma Değerlerini Ayarlama¶
from weeb_cli.config import config
# Dili ayarla
config.set("language", "tr")
# İndirme dizinini ayarla
config.set("download_dir", "/yol/indirmeler")
# Özellikleri etkinleştir/devre dışı bırak
config.set("discord_rpc_enabled", False)
Headless Modu¶
Veritabanı erişimi olmadan API kullanımı için:
from weeb_cli.config import config
# Headless modunu etkinleştir
config.set_headless(True)
# Şimdi config.get() yalnızca DEFAULT_CONFIG değerlerini döndürür
language = config.get("language") # None döndürür (varsayılan)
Varsayılan Yapılandırma¶
Veritabanı değeri olmadığında aşağıdaki varsayılan değerler kullanılır:
| Anahtar | Varsayılan Değer | Açıklama |
|---|---|---|
language |
None |
Arayüz dili (tr, en, de, pl) |
aria2_enabled |
True |
İndirmeler için Aria2'yi etkinleştir |
ytdlp_enabled |
True |
İndirmeler için yt-dlp'yi etkinleştir |
aria2_max_connections |
16 |
İndirme başına maksimum bağlantı |
max_concurrent_downloads |
3 |
Maksimum eşzamanlı indirme |
download_dir |
None |
İndirme dizini yolu |
ytdlp_format |
"bestvideo+bestaudio/best" |
yt-dlp format dizesi |
scraping_source |
None |
Varsayılan sağlayıcı |
show_description |
True |
Anime açıklamalarını göster |
debug_mode |
False |
Hata ayıklama günlüğünü etkinleştir |
download_max_retries |
3 |
İndirme yeniden deneme sayısı |
download_retry_delay |
10 |
Denemeler arası gecikme (saniye) |
discord_rpc_enabled |
True |
Discord Rich Presence'ı etkinleştir |
shortcuts_enabled |
False |
Klavye kısayollarını etkinleştir |
Yapılandırma Dizini¶
Yapılandırma ve veri şurada saklanır:
~/.weeb-cli/
├── weeb.db # SQLite veritabanı
├── cache/ # Önbelleğe alınmış veri
├── bin/ # İndirilen bağımlılıklar
└── logs/ # Hata ayıklama günlükleri
API Referansı¶
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
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 166 167 | |
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
|