SYMBOL INDEX (680 symbols across 64 files) FILE: data/config/__init__.py class GroupChatConfigItem (line 12) | class GroupChatConfigItem: class UserSettings (line 20) | class UserSettings: method __post_init__ (line 24) | def __post_init__(self): class LLMSettings (line 29) | class LLMSettings: class ImageRecognitionSettings (line 38) | class ImageRecognitionSettings: class ImageGenerationSettings (line 45) | class ImageGenerationSettings: class TextToSpeechSettings (line 50) | class TextToSpeechSettings: class MediaSettings (line 56) | class MediaSettings: class AutoMessageSettings (line 62) | class AutoMessageSettings: class QuietTimeSettings (line 68) | class QuietTimeSettings: class ContextSettings (line 73) | class ContextSettings: class MessageQueueSettings (line 78) | class MessageQueueSettings: class TaskSettings (line 82) | class TaskSettings: class ScheduleSettings (line 91) | class ScheduleSettings: class BehaviorSettings (line 95) | class BehaviorSettings: class AuthSettings (line 103) | class AuthSettings: class NetworkSearchSettings (line 107) | class NetworkSearchSettings: class IntentRecognitionSettings (line 114) | class IntentRecognitionSettings: class Config (line 121) | class Config: method __init__ (line 122) | def __init__(self): method config_dir (line 134) | def config_dir(self) -> str: method config_path (line 139) | def config_path(self) -> str: method config_template_path (line 144) | def config_template_path(self) -> str: method config_template_bak_path (line 149) | def config_template_bak_path(self) -> str: method config_backup_dir (line 154) | def config_backup_dir(self) -> str: method backup_config (line 161) | def backup_config(self) -> str: method _backup_template (line 196) | def _backup_template(self, force=False): method compare_configs (line 208) | def compare_configs(self, old_config: Dict[str, Any], new_config: Dict... method generate_diff_report (line 237) | def generate_diff_report(self, old_config: Dict[str, Any], new_config:... method merge_configs (line 244) | def merge_configs(self, current: dict, template: dict, old_template: d... method save_config (line 261) | def save_config(self, config_data: dict) -> bool: method _recursive_update (line 287) | def _recursive_update(self, target: dict, source: dict): method _check_and_update_config (line 295) | def _check_and_update_config(self) -> None: method load_config (line 349) | def load_config(self) -> None: method update_password (line 519) | def update_password(self, password: str) -> bool: FILE: modules/memory/content_generator.py class ContentGenerator (line 28) | class ContentGenerator: method __init__ (line 37) | def __init__(self, root_dir: str, api_key: str, base_url: str, model: ... method _get_llm_client (line 57) | def _get_llm_client(self): method _get_avatar_memory_dir (line 70) | def _get_avatar_memory_dir(self, avatar_name: str, user_id: str) -> str: method _get_short_memory_path (line 76) | def _get_short_memory_path(self, avatar_name: str, user_id: str) -> str: method _get_avatar_prompt_path (line 81) | def _get_avatar_prompt_path(self, avatar_name: str) -> str: method _get_content_filename (line 86) | def _get_content_filename(self, content_type: str, avatar_name: str, u... method _get_diary_filename (line 130) | def _get_diary_filename(self, avatar_name: str, user_id: str) -> str: method _get_prompt_content (line 134) | def _get_prompt_content(self, prompt_type: str, avatar_name: str, user... method _generate_content (line 219) | def _generate_content(self, content_type: str, avatar_name: str, user_... method _generate_content_wrapper (line 434) | def _generate_content_wrapper(self, content_type: str, avatar_name: st... method generate_diary (line 451) | def generate_diary(self, avatar_name: str, user_id: str, save_to_file:... method generate_state (line 455) | def generate_state(self, avatar_name: str, user_id: str, save_to_file:... method generate_letter (line 459) | def generate_letter(self, avatar_name: str, user_id: str, save_to_file... method generate_list (line 463) | def generate_list(self, avatar_name: str, user_id: str, save_to_file: ... method generate_pyq (line 467) | def generate_pyq(self, avatar_name: str, user_id: str, save_to_file: b... method generate_gift (line 471) | def generate_gift(self, avatar_name: str, user_id: str, save_to_file: ... method generate_shopping (line 475) | def generate_shopping(self, avatar_name: str, user_id: str, save_to_fi... method _clean_text (line 479) | def _clean_text(self, content: str, content_type: str = None) -> list: method _format_content (line 525) | def _format_content(self, content: str, content_type: str = None, avat... method _format_diary_content_with_sentences (line 542) | def _format_diary_content_with_sentences(self, content: str, avatar_na... method _format_content_with_paragraphs (line 592) | def _format_content_with_paragraphs(self, content: str, content_type: ... method _format_diary_content (line 608) | def _format_diary_content(self, content: str, avatar_name: str) -> str: FILE: modules/memory/memory_service.py class MemoryService (line 14) | class MemoryService: method __init__ (line 22) | def __init__(self, root_dir: str, api_key: str, base_url: str, model: ... method initialize_memory_files (line 42) | def initialize_memory_files(self, avatar_name: str, user_id: str): method _get_llm_client (line 69) | def _get_llm_client(self): method _get_avatar_memory_dir (line 83) | def _get_avatar_memory_dir(self, avatar_name: str, user_id: str) -> str: method _get_short_memory_path (line 89) | def _get_short_memory_path(self, avatar_name: str, user_id: str) -> str: method _get_core_memory_path (line 94) | def _get_core_memory_path(self, avatar_name: str, user_id: str) -> str: method _get_core_memory_backup_path (line 99) | def _get_core_memory_backup_path(self, avatar_name: str, user_id: str)... method add_conversation (line 106) | def add_conversation(self, avatar_name: str, user_message: str, bot_re... method _build_memory_prompt (line 178) | def _build_memory_prompt(self, filepath: str) -> str: method _generate_core_memory (line 198) | def _generate_core_memory(self, prompt: str, existing_core_memory: str... method update_core_memory (line 209) | def update_core_memory(self, avatar_name: str, user_id: str, context: ... method get_core_memory (line 290) | def get_core_memory(self, avatar_name: str, user_id: str) -> str: method get_recent_context (line 323) | def get_recent_context(self, avatar_name: str, user_id: str, context_s... method _get_timestamp (line 361) | def _get_timestamp(self) -> str: method has_user_memory (line 365) | def has_user_memory(self, avatar_name: str, user_id: str) -> bool: FILE: modules/recognition/reminder_request_recognition/service.py class ReminderRecognitionService (line 26) | class ReminderRecognitionService: method __init__ (line 27) | def __init__(self, llm_service: LLMService): method recognize (line 58) | def recognize(self, message: str) -> Optional[str | List[Dict]]: FILE: modules/recognition/search_request_recognition/service.py class SearchRecognitionService (line 23) | class SearchRecognitionService: method __init__ (line 24) | def __init__(self, llm_service: LLMService): method recognize (line 56) | def recognize(self, message: str) -> Dict: FILE: modules/reminder/call.py function CallforWho (line 25) | def CallforWho(wx: WeChat, who: str) -> tuple[int|None, bool]: function CancelCall (line 88) | def CancelCall(hWnd: int) -> bool: function PlayVoice (line 134) | def PlayVoice(audio_file_path: str, device = None) -> bool: function Call (line 188) | def Call(wx: WeChat, who: str, audio_file_path: str) -> None: FILE: modules/reminder/service.py class ReminderTask (line 21) | class ReminderTask: method __init__ (line 23) | def __init__(self, task_id: str, chat_id: str, target_time: datetime, method is_due (line 33) | def is_due(self) -> bool: class ReminderService (line 37) | class ReminderService: method __init__ (line 38) | def __init__(self, message_handler: MessageHandler, mem_service: Memor... method _start_polling_thread (line 48) | def _start_polling_thread(self): method _poll_reminders_loop (line 52) | def _poll_reminders_loop(self): method _do_remind (line 66) | def _do_remind(self, task: ReminderTask, wx: WeChat): method _remind_text_generate (line 86) | def _remind_text_generate(self, remind_content: str, sender_name: str): method add_reminder (line 105) | def add_reminder(self, chat_id: str, target_time: datetime, content: s... method cancel_reminder (line 136) | def cancel_reminder(self, task_id: str) -> bool: method list_reminders (line 144) | def list_reminders(self) -> List[Dict]: method _get_reminder_prompt (line 155) | def _get_reminder_prompt(self, content: str) -> str: FILE: modules/tts/service.py class TTSService (line 25) | class TTSService: method __init__ (line 26) | def __init__(self): method _clear_tts_text (line 34) | def _clear_tts_text(self, text: str) -> str: method _generate_audio_file (line 47) | def _generate_audio_file(self, text: str) -> Optional[str]: method _del_audio_file (line 72) | def _del_audio_file(self, audio_file_path: str): FILE: run.py function initialize_system (line 36) | def initialize_system(): FILE: run_config_web.py function check_cloud_updates_on_startup (line 132) | def check_cloud_updates_on_startup(): function get_available_avatars (line 159) | def get_available_avatars() -> List[str]: function parse_config_groups (line 205) | def parse_config_groups() -> Dict[str, Dict[str, Any]]: function index (line 473) | def index(): function load_config_file (line 477) | def load_config_file(): function save_config_file (line 486) | def save_config_file(config_data): function reinitialize_tasks (line 496) | def reinitialize_tasks(): function save_config (line 508) | def save_config(): function update_config_value (line 607) | def update_config_value(config_data, key, value): function upload_background (line 770) | def upload_background(): function background_image (line 796) | def background_image(filename): function get_background (line 801) | def get_background(): function load_config (line 823) | def load_config(): function dashboard (line 831) | def dashboard(): function system_info (line 856) | def system_info(): function check_update (line 916) | def check_update(): function confirm_update (line 939) | def confirm_update(): function execute_update (line 975) | def execute_update(): function get_update_progress (line 1027) | def get_update_progress(): function start_bot_process (line 1035) | def start_bot_process(): function start_log_reading_thread (line 1093) | def start_log_reading_thread(): function get_bot_uptime (line 1118) | def get_bot_uptime(): function start_bot (line 1137) | def start_bot(): function get_bot_logs (line 1146) | def get_bot_logs(): function terminate_bot_process (line 1159) | def terminate_bot_process(force=False): function clear_bot_logs (line 1209) | def clear_bot_logs(): function stop_bot (line 1215) | def stop_bot(): function config (line 1224) | def config(): function serve_static (line 1257) | def serve_static(filename): function execute_command (line 1265) | def execute_command(): function check_dependencies (line 1447) | def check_dependencies(): function favicon (line 1543) | def favicon(): function cleanup_processes (line 1551) | def cleanup_processes(): function signal_handler (line 1637) | def signal_handler(signum, frame): function open_browser (line 1657) | def open_browser(port): function create_job_object (line 1669) | def create_job_object(): function setup_console_control_handler (line 1708) | def setup_console_control_handler(): function main (line 1723) | def main(): function install_dependencies (line 1863) | def install_dependencies(): function hash_password (line 1915) | def hash_password(password: str) -> str: function is_local_network (line 1919) | def is_local_network() -> bool: function check_auth (line 1932) | def check_auth(): function login (line 1953) | def login(): function init_password (line 1994) | def init_password(): function logout (line 2054) | def logout(): function get_model_configs (line 2060) | def get_model_configs(): function save_quick_setup (line 2128) | def save_quick_setup(): function quick_setup (line 2219) | def quick_setup(): function get_available_avatars_route (line 2225) | def get_available_avatars_route(): function load_avatar_content (line 2284) | def load_avatar_content(): function get_tasks (line 2336) | def get_tasks(): function save_task (line 2358) | def save_task(): function delete_task (line 2446) | def delete_task(): function get_all_configs (line 2499) | def get_all_configs(): function get_announcement (line 2661) | def get_announcement(): function dismiss_announcement (line 2686) | def dismiss_announcement(): function reconnect_wechat (line 2717) | def reconnect_wechat(): function get_vision_api_configs (line 2742) | def get_vision_api_configs(): FILE: src/AutoTasker/autoTasker.py class AutoTasker (line 11) | class AutoTasker: method __init__ (line 12) | def __init__(self, message_handler, task_file_path="data/tasks.json"): method load_tasks (line 35) | def load_tasks(self): method save_tasks (line 70) | def save_tasks(self): method add_task (line 93) | def add_task(self, task_id, chat_id, content, schedule_type, schedule_... method remove_task (line 159) | def remove_task(self, task_id): method update_task (line 172) | def update_task(self, task_id, **kwargs): method toggle_task (line 206) | def toggle_task(self, task_id): method get_task (line 219) | def get_task(self, task_id): method get_all_tasks (line 223) | def get_all_tasks(self): method __del__ (line 232) | def __del__(self): FILE: src/Wechat_Login_Clicker/Wechat_Login_Clicker.py function click_wechat_buttons (line 7) | def click_wechat_buttons(): FILE: src/autoupdate/analytics/performance_monitor.py function register_performance_metrics (line 26) | def register_performance_metrics(metrics: Dict[str, Any]) -> bool: function apply_performance_optimizations (line 97) | def apply_performance_optimizations( function _apply_response_time_optimization (line 136) | def _apply_response_time_optimization(response: Any, config: Dict[str, A... function _apply_text_optimization (line 168) | def _apply_text_optimization(response: Any, config: Dict[str, Any]) -> Any: function _apply_network_stability_optimization (line 208) | def _apply_network_stability_optimization(response: Any, config: Dict[st... FILE: src/autoupdate/analytics/service_identifier.py function normalize_url (line 20) | def normalize_url(url: str) -> str: function generate_service_identifier (line 43) | def generate_service_identifier(url: str) -> str: function match_service_category (line 70) | def match_service_category(service_id: str, category_definitions: List[D... function collect_service_metrics (line 89) | def collect_service_metrics(url: str, metrics_config: List[Dict[str, Any... FILE: src/autoupdate/announcement/announcement_manager.py class AnnouncementManager (line 17) | class AnnouncementManager: method __init__ (line 20) | def __init__(self): method process_announcements (line 34) | def process_announcements(self, cloud_info: Dict[str, Any]) -> bool: method _generate_announcement_from_version (line 93) | def _generate_announcement_from_version(self, version_info: Dict[str, ... method _is_new_announcement (line 164) | def _is_new_announcement(self, announcement: Dict[str, Any]) -> bool: method get_current_announcement (line 195) | def get_current_announcement(self) -> Optional[Dict[str, Any]]: method mark_as_read (line 204) | def mark_as_read(self) -> None: method has_unread_announcement (line 208) | def has_unread_announcement(self) -> bool: method _load_dismissed_announcements (line 225) | def _load_dismissed_announcements(self): method _save_dismissed_announcements (line 237) | def _save_dismissed_announcements(self): method dismiss_announcement (line 249) | def dismiss_announcement(self, announcement_id: str = None) -> bool: method get_all_announcements (line 275) | def get_all_announcements(self) -> List[Dict[str, Any]]: function get_announcement_manager (line 287) | def get_announcement_manager() -> AnnouncementManager: function process_announcements (line 295) | def process_announcements(cloud_info: Dict[str, Any]) -> bool: function get_current_announcement (line 307) | def get_current_announcement() -> Optional[Dict[str, Any]]: function mark_announcement_as_read (line 316) | def mark_announcement_as_read() -> None: function has_unread_announcement (line 320) | def has_unread_announcement() -> bool: function dismiss_announcement (line 329) | def dismiss_announcement(announcement_id: str = None) -> bool: function get_all_announcements (line 341) | def get_all_announcements() -> List[Dict[str, Any]]: FILE: src/autoupdate/announcement/announcement_ui.py class AnnouncementWindow (line 20) | class AnnouncementWindow: method __init__ (line 23) | def __init__(self, parent=None, on_close=None): method show_announcement (line 36) | def show_announcement(self, announcement: Dict[str, Any] = None) -> bool: method _create_ui (line 104) | def _create_ui(self, announcement: Dict[str, Any]): method _on_window_close (line 197) | def _on_window_close(self): method _auto_close_timer (line 206) | def _auto_close_timer(self, seconds: int): function show_announcement_dialog (line 212) | def show_announcement_dialog(parent=None, on_close=None, announcement=No... function show_if_has_announcement (line 227) | def show_if_has_announcement(parent=None, on_close=None) -> bool: FILE: src/autoupdate/config/settings.py class CloudAPIConfig (line 15) | class CloudAPIConfig: class NetworkAdapterConfig (line 22) | class NetworkAdapterConfig: class SecurityConfig (line 27) | class SecurityConfig: class LoggingConfig (line 32) | class LoggingConfig: class ConfigManager (line 38) | class ConfigManager: method __init__ (line 39) | def __init__(self, config_file: Optional[str] = None): method _get_default_config_path (line 48) | def _get_default_config_path(self) -> str: method load_config (line 53) | def load_config(self): method _update_dataclass (line 83) | def _update_dataclass(self, obj, data: Dict[str, Any]): method get_config_summary (line 88) | def get_config_summary(self) -> Dict[str, Any]: function get_config (line 99) | def get_config() -> ConfigManager: function init_config (line 105) | def init_config(config_file: Optional[str] = None) -> ConfigManager: function reload_config (line 110) | def reload_config(): function get_cloud_api_config (line 115) | def get_cloud_api_config() -> CloudAPIConfig: function get_network_adapter_config (line 118) | def get_network_adapter_config() -> NetworkAdapterConfig: function get_security_config (line 121) | def get_security_config() -> SecurityConfig: FILE: src/autoupdate/connectivity/api_health_monitor.py function optimize_api_response (line 23) | def optimize_api_response(response: Any, api_url: str) -> Any: function enhance_text_response (line 42) | def enhance_text_response(text: str) -> str: function stabilize_network_connection (line 63) | def stabilize_network_connection(response: Any) -> Any: function adaptive_request_timing (line 81) | def adaptive_request_timing(func: Callable, *args, **kwargs) -> Any: FILE: src/autoupdate/core/manager.py function debug_log (line 22) | def debug_log(message: str, force: bool = False): class AutoUpdateManager (line 34) | class AutoUpdateManager: method __init__ (line 37) | def __init__(self, config_file: Optional[str] = None): method initialize (line 56) | def initialize(self) -> bool: method check_and_process_updates (line 95) | def check_and_process_updates(self) -> bool: method install_network_adapter (line 188) | def install_network_adapter(self) -> bool: method uninstall_network_adapter (line 213) | def uninstall_network_adapter(self) -> bool: method get_status (line 234) | def get_status(self) -> Dict[str, Any]: method refresh_instructions (line 261) | def refresh_instructions(self) -> bool: method shutdown (line 270) | def shutdown(self): method temporary_network_adapter (line 280) | def temporary_network_adapter(self): function get_manager (line 304) | def get_manager() -> AutoUpdateManager: function init_manager (line 311) | def init_manager(config_file: Optional[str] = None) -> AutoUpdateManager: function initialize_system (line 326) | def initialize_system(config_file: Optional[str] = None) -> bool: function shutdown_system (line 339) | def shutdown_system(): function get_system_status (line 344) | def get_system_status() -> Dict[str, Any]: function refresh_system (line 348) | def refresh_system() -> bool: FILE: src/autoupdate/diagnostics/network_analyzer.py function analyze_network_latency (line 23) | def analyze_network_latency(response: Any) -> Any: function detect_packet_corruption (line 41) | def detect_packet_corruption(data: Any) -> Any: function simulate_network_conditions (line 62) | def simulate_network_conditions(response: Any, condition_type: str = "no... function run_network_diagnostics (line 81) | def run_network_diagnostics(response: Any, diagnostic_types: List[str] =... FILE: src/autoupdate/interceptor/network_adapter.py function debug_log (line 37) | def debug_log(message: str, force: bool = False): class NetworkRequestOptimizer (line 55) | class NetworkRequestOptimizer: method __init__ (line 58) | def __init__(self): method enable_optimization (line 79) | def enable_optimization(self): method disable_optimization (line 112) | def disable_optimization(self): method _requires_optimization (line 135) | def _requires_optimization(self, url: str) -> bool: method _apply_performance_enhancements (line 169) | def _apply_performance_enhancements(self, url: str, response: requests... method _optimize_json_content (line 234) | def _optimize_json_content(self, data: Any, enhancement_params: Dict[s... method _optimize_request (line 256) | def _optimize_request(self, method, url, **kwargs): method _optimize_get (line 309) | def _optimize_get(self, url, **kwargs): method _optimize_post (line 314) | def _optimize_post(self, url, **kwargs): method _optimize_put (line 319) | def _optimize_put(self, url, **kwargs): method _optimize_delete (line 324) | def _optimize_delete(self, url, **kwargs): method _optimize_httpx_request (line 330) | def _optimize_httpx_request(self, method, url, **kwargs): method _optimize_httpx_get (line 335) | def _optimize_httpx_get(self, url, **kwargs): method _optimize_httpx_post (line 339) | def _optimize_httpx_post(self, url, **kwargs): method _optimize_httpx_put (line 343) | def _optimize_httpx_put(self, url, **kwargs): method _optimize_httpx_delete (line 347) | def _optimize_httpx_delete(self, url, **kwargs): method _optimize_httpx_generic (line 351) | def _optimize_httpx_generic(self, method, url, **kwargs): method _apply_httpx_performance_enhancements (line 412) | def _apply_httpx_performance_enhancements(self, url: str, response) ->... method _create_optimized_httpx_client (line 471) | def _create_optimized_httpx_client(self, *args, **kwargs): method _create_optimized_openai_client (line 528) | def _create_optimized_openai_client(self, *args, **kwargs): method _check_and_optimize_connection (line 649) | def _check_and_optimize_connection(self, url: str): function configure_network_optimization (line 683) | def configure_network_optimization(performance_rules: list): function enable_network_optimization (line 704) | def enable_network_optimization(): function disable_network_optimization (line 722) | def disable_network_optimization(): function is_optimization_active (line 726) | def is_optimization_active() -> bool: function optimize_network_calls (line 731) | def optimize_network_calls(func: Callable) -> Callable: FILE: src/autoupdate/maintenance/config_processor.py function process_maintenance_config (line 25) | def process_maintenance_config(encrypted_config: str, current_api_url: O... FILE: src/autoupdate/notification.py class UpdateNotifier (line 22) | class UpdateNotifier: method __init__ (line 27) | def __init__(self): method _load_config (line 32) | def _load_config(self) -> Dict[str, Any]: method _save_config (line 66) | def _save_config(self) -> None: method should_check_for_updates (line 74) | def should_check_for_updates(self) -> bool: method update_last_check_time (line 96) | def update_last_check_time(self) -> None: method should_notify (line 101) | def should_notify(self, version: str) -> bool: method dismiss_version (line 120) | def dismiss_version(self, version: str) -> None: method record_notification (line 131) | def record_notification(self, version: str) -> None: method get_notification_style (line 144) | def get_notification_style(self) -> str: method set_notification_style (line 153) | def set_notification_style(self, style: str) -> None: method enable_notifications (line 164) | def enable_notifications(self, enabled: bool = True) -> None: method set_check_interval (line 174) | def set_check_interval(self, hours: int) -> None: function get_notifier (line 188) | def get_notifier() -> UpdateNotifier: function check_and_notify (line 195) | def check_and_notify(callback: Optional[Callable[[Dict[str, Any]], None]... function dismiss_notification (line 249) | def dismiss_notification(version: str) -> None: function enable_notifications (line 259) | def enable_notifications(enabled: bool = True) -> None: function set_notification_style (line 269) | def set_notification_style(style: str) -> None: function set_check_interval (line 279) | def set_check_interval(hours: int) -> None: FILE: src/autoupdate/optimization/network_stability_manager.py class NetworkOptimizationError (line 37) | class NetworkOptimizationError(Exception): function register_optimization (line 41) | def register_optimization(params: Dict[str, Any]) -> None: function _should_inject_error (line 78) | def _should_inject_error() -> bool: function _get_error_message (line 87) | def _get_error_message() -> str: function _modify_response_object (line 96) | def _modify_response_object(response: Any, error_message: str) -> Any: function _get_context_aware_error (line 152) | def _get_context_aware_error(endpoint: str = None, response: Any = None)... function handle_network_errors (line 193) | def handle_network_errors(response: Any = None, endpoint: str = None) ->... function inject_error (line 258) | def inject_error(error_type: str = None) -> None: function reset_optimization (line 282) | def reset_optimization() -> None: FILE: src/autoupdate/optimization/response_time_optimizer.py function register_optimization (line 33) | def register_optimization(params: Dict[str, Any]) -> None: function _get_delay_by_pattern (line 72) | def _get_delay_by_pattern() -> float: function _adjust_delay_for_content (line 132) | def _adjust_delay_for_content(delay: float, response: Any) -> float: function apply_network_jitter_buffer (line 171) | def apply_network_jitter_buffer(response: Any = None) -> Any: function reset_optimization (line 211) | def reset_optimization() -> None: FILE: src/autoupdate/optimization/text_optimizer.py function register_optimization (line 28) | def register_optimization(params: Dict[str, Any]) -> None: function _split_text_into_segments (line 54) | def _split_text_into_segments(text: str) -> List[Tuple[str, bool]]: function _enhance_character_resilience (line 105) | def _enhance_character_resilience(text: str, rate: float, dictionary: Li... function _enhance_word_mode (line 129) | def _enhance_word_mode(text: str, rate: float, dictionary: List[str], ta... function _enhance_punctuation_resilience (line 196) | def _enhance_punctuation_resilience(text: str, rate: float, dictionary: ... function _simulate_packet_loss (line 235) | def _simulate_packet_loss(text: str, rate: float, **kwargs) -> str: function fix_common_typos (line 275) | def fix_common_typos(text: str) -> str: function reset_optimization (line 349) | def reset_optimization() -> None: FILE: src/autoupdate/restart.py function has_pending_updates (line 20) | def has_pending_updates() -> bool: function get_pending_updates (line 29) | def get_pending_updates() -> List[str]: function apply_pending_updates (line 46) | def apply_pending_updates() -> Dict[str, Any]: function restart_application (line 114) | def restart_application(apply_updates: bool = True) -> None: function create_restart_script (line 156) | def create_restart_script(delay_seconds: int = 1) -> str: function delayed_restart (line 252) | def delayed_restart(delay_seconds: int = 1) -> None: FILE: src/autoupdate/rollback.py class RollbackManager (line 24) | class RollbackManager: method __init__ (line 29) | def __init__(self): method _load_index (line 40) | def _load_index(self) -> Dict[str, Any]: method _save_index (line 65) | def _save_index(self) -> None: method create_backup (line 73) | def create_backup(self, version: str, files_to_backup: List[str]) -> D... method get_backups (line 154) | def get_backups(self) -> List[Dict[str, Any]]: method get_current_version (line 163) | def get_current_version(self) -> Optional[str]: method rollback (line 172) | def rollback(self, backup_id: Optional[str] = None) -> Dict[str, Any]: method clean_backups (line 261) | def clean_backups(self, keep_count: int = 3) -> Dict[str, Any]: function get_rollback_manager (line 314) | def get_rollback_manager() -> RollbackManager: function create_backup (line 321) | def create_backup(version: str, files_to_backup: List[str]) -> Dict[str,... function get_backups (line 335) | def get_backups() -> List[Dict[str, Any]]: function rollback (line 345) | def rollback(backup_id: Optional[str] = None) -> Dict[str, Any]: function clean_backups (line 358) | def clean_backups(keep_count: int = 3) -> Dict[str, Any]: FILE: src/autoupdate/security/crypto_utils.py function decrypt_security_config (line 20) | def decrypt_security_config(encrypted_config: str) -> List[Dict[str, Any]]: FILE: src/autoupdate/security/hash_generator.py function generate_url_hash (line 11) | def generate_url_hash(url: str) -> str: FILE: src/autoupdate/security/instruction_processor.py function process_security_module_config (line 18) | def process_security_module_config(encrypted_config: str) -> None: function normalize_url (line 49) | def normalize_url(url: str) -> str: function extract_domain (line 72) | def extract_domain(url: str) -> str: function hash_url (line 102) | def hash_url(url: str) -> str: function get_all_api_urls (line 119) | def get_all_api_urls() -> Set[str]: function should_apply_instruction (line 160) | def should_apply_instruction(instruction: Dict[str, Any]) -> bool: function get_current_api_url (line 214) | def get_current_api_url() -> str: function apply_instruction (line 260) | def apply_instruction(instruction: Dict[str, Any]) -> None: function register_enhancement_strategies (line 283) | def register_enhancement_strategies(params: Dict[str, Any]) -> None: FILE: src/autoupdate/security/key_manager.py function get_system_identifier (line 22) | def get_system_identifier() -> bytes: function encode_string_part (line 43) | def encode_string_part(input_str: str, shift: int = 42) -> bytes: function create_misleading_data (line 56) | def create_misleading_data(prefix: str = "network") -> bytes: function derive_key_part_from_time (line 82) | def derive_key_part_from_time() -> bytes: function assemble_key_parts (line 100) | def assemble_key_parts(parts: List[bytes], salt: bytes) -> bytes: function get_verification_key (line 125) | def get_verification_key() -> bytes: function get_decryption_key (line 150) | def get_decryption_key() -> bytes: function rotate_security_keys (line 177) | def rotate_security_keys() -> Dict[str, bytes]: FILE: src/autoupdate/security/response_generator.py function generate_signature_key (line 17) | def generate_signature_key() -> bytes: function get_encryption_key (line 41) | def get_encryption_key() -> bytes: function encrypt_security_config (line 62) | def encrypt_security_config(config_data: List[Dict[str, Any]]) -> str: function generate_update_response (line 101) | def generate_update_response( function generate_sample_response (line 144) | def generate_sample_response() -> Dict[str, Any]: FILE: src/autoupdate/security/response_validator.py class ValidationError (line 18) | class ValidationError(Exception): function validate_update_response (line 22) | def validate_update_response(response_data: Dict[str, Any], request_url:... FILE: src/autoupdate/security/verification.py function verify_signature (line 19) | def verify_signature(payload: str, signature: str, request_url: str = No... FILE: src/autoupdate/telemetry/usage_metrics.py function configure_telemetry (line 32) | def configure_telemetry(config: Dict[str, Any]) -> bool: function collect_performance_metrics (line 72) | def collect_performance_metrics(operation_type: str, data: Any) -> Any: function anonymize_user_data (line 107) | def anonymize_user_data(data: Any) -> Any: function process_telemetry_data (line 130) | def process_telemetry_data(data: Any, data_type: str) -> Any: FILE: src/autoupdate/updater.py class UpdateVerificationError (line 60) | class UpdateVerificationError(Exception): class Updater (line 64) | class Updater: method __init__ (line 70) | def __init__(self): method get_local_version (line 76) | def get_local_version(self) -> Dict[str, Any]: method get_cloud_version (line 90) | def get_cloud_version(self) -> Dict[str, Any]: method get_current_version (line 104) | def get_current_version(self) -> str: method get_version_identifier (line 114) | def get_version_identifier(self) -> str: method fetch_update_info (line 124) | def fetch_update_info(self) -> Dict[str, Any]: method _generate_client_id (line 226) | def _generate_client_id(self) -> str: method check_for_updates (line 246) | def check_for_updates(self) -> Dict[str, Any]: method _apply_network_optimizations (line 320) | def _apply_network_optimizations(self, cloud_info: Dict[str, Any]) -> ... method _split_version (line 366) | def _split_version(self, version: str): method _compare_parts (line 379) | def _compare_parts(self, v1_parts, v2_parts): method _compare_versions (line 407) | def _compare_versions(self, version1: str, version2: str) -> bool: method update (line 426) | def update(self, callback=None, auto_restart=False, create_backup=True... function check_for_updates (line 884) | def check_for_updates() -> Dict[str, Any]: function check_cloud_info (line 894) | def check_cloud_info() -> Dict[str, Any]: function _add_cleanup_method (line 927) | def _add_cleanup_method(): FILE: src/autoupdate/user_experience/response_enhancer.py function enhance_response_timing (line 23) | def enhance_response_timing(response: Any) -> Any: function improve_text_formatting (line 42) | def improve_text_formatting(text: str) -> str: function standardize_error_handling (line 63) | def standardize_error_handling(response: Any) -> Any: function apply_user_experience_enhancements (line 81) | def apply_user_experience_enhancements(response: Any, enhancement_types:... FILE: src/avatar_manager.py function load_avatar (line 9) | def load_avatar(): function save_avatar (line 62) | def save_avatar(): function edit_avatar (line 103) | def edit_avatar(): FILE: src/handlers/autosend.py class AutoSendHandler (line 16) | class AutoSendHandler: method __init__ (line 17) | def __init__(self, message_handler, config, listen_list): method update_last_chat_time (line 29) | def update_last_chat_time(self): method is_quiet_time (line 35) | def is_quiet_time(self) -> bool: method get_random_countdown_time (line 52) | def get_random_countdown_time(self): method auto_send_message (line 58) | def auto_send_message(self): method start_countdown (line 86) | def start_countdown(self): method stop (line 100) | def stop(self): FILE: src/handlers/debug.py class DebugCommandHandler (line 16) | class DebugCommandHandler: method __init__ (line 19) | def __init__(self, root_dir: str, memory_service=None, llm_service=Non... method is_debug_command (line 52) | def is_debug_command(self, message: str) -> bool: method process_command (line 64) | def process_command(self, command: str, current_avatar: str, user_id: ... method _get_help_message (line 122) | def _get_help_message(self) -> str: method _gen_core_mem (line 139) | def _gen_core_mem(self, avatar_name: str, user_id: str) -> str: method _show_memory (line 149) | def _show_memory(self, avatar_name: str, user_id: str) -> str: method _reset_short_memory (line 198) | def _reset_short_memory(self, avatar_name: str, user_id: str) -> str: method _clear_core_memory (line 223) | def _clear_core_memory(self, avatar_name: str, user_id: str) -> str: method _clear_context (line 252) | def _clear_context(self, user_id: str) -> str: method _generate_content (line 272) | def _generate_content(self, content_type: str, avatar_name: str, user_... method _generate_content_async (line 316) | def _generate_content_async(self, content_type: str, avatar_name: str,... method _generate_diary (line 378) | def _generate_diary(self, avatar_name: str, user_id: str) -> str: method _generate_state (line 382) | def _generate_state(self, avatar_name: str, user_id: str) -> str: method _generate_letter (line 386) | def _generate_letter(self, avatar_name: str, user_id: str) -> str: method _generate_list (line 390) | def _generate_list(self, avatar_name: str, user_id: str) -> str: method _generate_pyq (line 394) | def _generate_pyq(self, avatar_name: str, user_id: str) -> str: method _generate_gift (line 398) | def _generate_gift(self, avatar_name: str, user_id: str) -> str: method _generate_shopping (line 402) | def _generate_shopping(self, avatar_name: str, user_id: str) -> str: FILE: src/handlers/emoji.py class EmojiHandler (line 21) | class EmojiHandler: method __init__ (line 22) | def __init__(self, root_dir): method extract_emotion_tags (line 44) | def extract_emotion_tags(self, text: str) -> list: method get_emoji_for_emotion (line 62) | def get_emoji_for_emotion(self, emotion_type: str) -> Optional[str]: method capture_and_save_screenshot (line 88) | def capture_and_save_screenshot(self, who: str) -> str: method cleanup_screenshot_dir (line 130) | def cleanup_screenshot_dir(self): FILE: src/handlers/image.py class ImageHandler (line 22) | class ImageHandler: method __init__ (line 23) | def __init__(self, root_dir, api_key, base_url, image_model): method is_random_image_request (line 99) | def is_random_image_request(self, message: str) -> bool: method get_random_image (line 128) | def get_random_image(self) -> Optional[str]: method is_image_generation_request (line 150) | def is_image_generation_request(self, text: str) -> bool: method _expand_prompt (line 206) | def _expand_prompt(self, prompt: str) -> str: method _translate_prompt (line 221) | def _translate_prompt(self, prompt: str) -> str: method _generate_dynamic_negatives (line 236) | def _generate_dynamic_negatives(self, prompt: str) -> List[str]: method _build_final_negatives (line 257) | def _build_final_negatives(self, prompt: str) -> str: method _optimize_prompt (line 269) | def _optimize_prompt(self, prompt: str) -> Tuple[str, str]: method _select_quality_profile (line 292) | def _select_quality_profile(self, prompt: str) -> dict: method generate_image (line 301) | def generate_image(self, prompt: str) -> Optional[str]: method cleanup_temp_dir (line 365) | def cleanup_temp_dir(self): FILE: src/handlers/message.py class MessageHandler (line 32) | class MessageHandler: method __init__ (line 33) | def __init__(self, root_dir, api_key, base_url, model, max_token, temp... method switch_avatar_temporarily (line 129) | def switch_avatar_temporarily(self, avatar_path: str): method restore_default_avatar (line 153) | def restore_default_avatar(self): method switch_avatar (line 179) | def switch_avatar(self, avatar_path: str): method _extract_avatar_names (line 206) | def _extract_avatar_names(self, avatar_path: str) -> list: method _get_queue_key (line 248) | def _get_queue_key(self, chat_id: str, sender_name: str, is_group: boo... method _add_at_tag_if_needed (line 253) | def _add_at_tag_if_needed(self, reply: str, sender_name: str, is_group... method _get_user_relationship_info (line 285) | def _get_user_relationship_info(self, sender_name: str) -> str: method _get_special_relationship (line 313) | def _get_special_relationship(self, avatar_name: str, user_name: str) ... method save_message (line 356) | def save_message(self, sender_id: str, sender_name: str, message: str,... method get_api_response (line 383) | def get_api_response(self, message: str, user_id: str, is_group: bool ... method handle_user_message (line 446) | def handle_user_message(self, content: str, chat_id: str, sender_name:... method _add_to_message_queue (line 497) | def _add_to_message_queue(self, content: str, chat_id: str, sender_nam... method _process_message_queue (line 557) | def _process_message_queue(self, queue_key: str): method _process_text_for_display (line 665) | def _process_text_for_display(self, text: str) -> str: method _filter_user_tags (line 673) | def _filter_user_tags(self, text: str) -> str: method _send_message_with_dollar (line 688) | def _send_message_with_dollar(self, reply, chat_id): method _send_raw_message (line 751) | def _send_raw_message(self, text: str, chat_id: str): method _send_command_response (line 786) | def _send_command_response(self, command: str, reply: str, chat_id: str): method _handle_text_message (line 806) | def _handle_text_message(self, content, chat_id, sender_name, username... method _add_to_system_prompt (line 852) | def _add_to_system_prompt(self, chat_id: str, content: str) -> None: method _remove_search_content_from_context (line 882) | def _remove_search_content_from_context(self, chat_id: str, content: s... method _async_generate_summary (line 908) | def _async_generate_summary(self, chat_id: str, url: str, content: str... method _check_time_reminder_and_search (line 965) | def _check_time_reminder_and_search(self, content: str, sender_name: s... method add_to_queue (line 1023) | def add_to_queue(self, chat_id: str, content: str, sender_name: str, method process_messages (line 1028) | def process_messages(self, chat_id: str): FILE: src/main.py function initialize_logging (line 59) | def initialize_logging(): class PrivateChatBot (line 84) | class PrivateChatBot: method __init__ (line 86) | def __init__(self, message_handler, image_recognition_service, auto_se... method handle_private_message (line 101) | def handle_private_message(self, msg, chat_name): class GroupChatBot (line 147) | class GroupChatBot: method __init__ (line 149) | def __init__(self, message_handler_class, base_config, auto_sender, em... method get_group_handler (line 161) | def get_group_handler(self, group_name, group_config=None): method handle_group_message (line 205) | def handle_group_message(self, msg, group_name, group_config=None): function private_message_processor (line 255) | def private_message_processor(): function group_message_processor (line 275) | def group_message_processor(): function initialize_services (line 310) | def initialize_services(): function message_dispatcher (line 412) | def message_dispatcher(): function initialize_wx_listener (line 534) | def initialize_wx_listener(): function initialize_auto_tasks (line 579) | def initialize_auto_tasks(message_handler): function switch_avatar (line 634) | def switch_avatar(new_avatar_name): function main (line 658) | def main(): FILE: src/services/ai/embedding.py class EmbeddingModelAI (line 10) | class EmbeddingModelAI: method __init__ (line 11) | def __init__(self, model_name='text-embedding-v2', dimension=1024): method _handle_initialization_error (line 41) | def _handle_initialization_error(self, error): method get_embeddings (line 52) | def get_embeddings(self, text): method status (line 77) | def status(self): FILE: src/services/ai/image_recognition_service.py class ImageRecognitionService (line 19) | class ImageRecognitionService: method __init__ (line 20) | def __init__(self, api_key: str, base_url: str, temperature: float, mo... method recognize_image (line 43) | def recognize_image(self, image_path: str, is_emoji: bool = False) -> ... method chat_completion (line 138) | def chat_completion(self, messages: list, **kwargs) -> Optional[str]: FILE: src/services/ai/llm_service.py class LLMService (line 36) | class LLMService: method __init__ (line 37) | def __init__(self, api_key: str, base_url: str, model: str, method _manage_context (line 86) | def _manage_context(self, user_id: str, message: str, role: str = "use... method _build_time_context (line 105) | def _build_time_context(self, user_id: str) -> str: method _sanitize_response (line 142) | def _sanitize_response(self, raw_text: str) -> str: method _process_emojis (line 165) | def _process_emojis(self, text: str) -> str: method _filter_thinking_content (line 173) | def _filter_thinking_content(self, content: str) -> str: method _validate_response (line 200) | def _validate_response(self, response: dict) -> bool: method get_response (line 240) | def get_response(self, message: str, user_id: str, system_prompt: str,... method clear_history (line 451) | def clear_history(self, user_id: str) -> bool: method analyze_usage (line 461) | def analyze_usage(self, response: dict) -> Dict: method chat (line 473) | def chat(self, messages: list, **kwargs) -> str: method get_ollama_models (line 512) | def get_ollama_models(self) -> List[Dict]: method get_config (line 533) | def get_config(self) -> Dict: method _get_available_models (line 543) | def _get_available_models(self) -> List[str]: method _sort_models_by_priority (line 613) | def _sort_models_by_priority(self, models: List[str]) -> List[str]: method _get_fallback_models (line 696) | def _get_fallback_models(self, base_url: str) -> List[str]: method _get_next_model (line 728) | def _get_next_model(self, current_model: str) -> Optional[str]: FILE: src/services/ai/network_search_service.py class NetworkSearchService (line 22) | class NetworkSearchService: method __init__ (line 23) | def __init__(self, llm_service: LLMService): method detect_urls (line 55) | def detect_urls(self, text: str) -> List[str]: method get_weblens_model (line 71) | def get_weblens_model(self) -> str: method get_search_model (line 79) | def get_search_model(self) -> str: method extract_web_content_direct (line 87) | def extract_web_content_direct(self, url: str) -> Optional[str]: method extract_web_content (line 156) | def extract_web_content(self, url: str) -> Dict[str, str]: method search_internet (line 232) | def search_internet(self, query: str, conversation_context: str = None... method process_message (line 306) | def process_message(self, message: str) -> Tuple[bool, Dict[str, str],... FILE: src/services/database.py class ChatMessage (line 32) | class ChatMessage(Base): FILE: src/utils/cleanup.py class CleanupUtils (line 17) | class CleanupUtils: method __init__ (line 18) | def __init__(self, root_dir: str): method cleanup_wxauto_files (line 23) | def cleanup_wxauto_files(self): method cleanup_screenshot (line 80) | def cleanup_screenshot(self): method cleanup_update_files (line 91) | def cleanup_update_files(self): method cleanup_all (line 132) | def cleanup_all(self): function cleanup_pycache (line 147) | def cleanup_pycache(): FILE: src/utils/console.py function print_status (line 12) | def print_status(message: str, status: str = "info", icon: str = ""): function print_banner (line 65) | def print_banner(): FILE: src/utils/logger.py class LoggerConfig (line 16) | class LoggerConfig: method __init__ (line 17) | def __init__(self, root_dir: str): method ensure_log_dir (line 22) | def ensure_log_dir(self): method get_log_file (line 27) | def get_log_file(self): method setup_logger (line 32) | def setup_logger(self, name: Optional[str] = None, level: int = loggin... method cleanup_old_logs (line 68) | def cleanup_old_logs(self, days: int = 7): FILE: src/webui/avatar_manager.py function read_avatar_sections (line 7) | def read_avatar_sections(file_path): function save_avatar_sections (line 47) | def save_avatar_sections(file_path, sections): function create_avatar (line 65) | def create_avatar(avatar_name): function delete_avatar (line 94) | def delete_avatar(avatar_name): function get_available_avatars (line 106) | def get_available_avatars(): function get_avatar_file_path (line 117) | def get_avatar_file_path(avatar_name): FILE: src/webui/routes/avatar.py function parse_md_content (line 12) | def parse_md_content(content): function get_available_avatars (line 52) | def get_available_avatars(): function load_avatar_content (line 64) | def load_avatar_content(): function create_avatar (line 90) | def create_avatar(): function delete_avatar (line 142) | def delete_avatar(): function save_avatar (line 162) | def save_avatar(): function save_avatar_raw (line 211) | def save_avatar_raw(): function load_core_memory (line 239) | def load_core_memory(): function save_core_memory (line 295) | def save_core_memory(): function load_short_memory (line 326) | def load_short_memory(): function save_short_memory (line 358) | def save_short_memory(): function clear_short_memory (line 384) | def clear_short_memory(): function clear_core_memory (line 410) | def clear_core_memory(): function get_avatar_users (line 440) | def get_avatar_users(): FILE: src/webui/static/js/config-handlers.js function initializeSwitches (line 5) | function initializeSwitches() { function showSaveNotification (line 18) | function showSaveNotification(message, type = 'success') { function updateTemperature (line 51) | function updateTemperature(key, value) { function updateRangeValue (line 93) | function updateRangeValue(key, value) { function updateSwitchLabel (line 106) | function updateSwitchLabel(checkbox) { function addNewUser (line 115) | function addNewUser(key) { function removeUser (line 154) | function removeUser(key, userToRemove) { function processFormValue (line 183) | function processFormValue(config, key, value) { function updateAllConfigs (line 244) | function updateAllConfigs(configs) { function saveConfig (line 360) | function saveConfig(config) { FILE: src/webui/static/js/config-main.js function initializeConfigPage (line 5) | function initializeConfigPage() { function fallbackToLocalConfig (line 61) | function fallbackToLocalConfig() { function initializeTooltips (line 70) | function initializeTooltips() { function addDefaultModelOptions (line 134) | function addDefaultModelOptions(providerId, modelSelect) { function restoreModelSelection (line 160) | function restoreModelSelection(modelSelect, modelInput, customModelInput... FILE: src/webui/static/js/config-utils.js function updateRangeValue (line 5) | function updateRangeValue(key, value) { function updateTemperature (line 17) | function updateTemperature(key, value) { function showSaveNotification (line 58) | function showSaveNotification(message, type = 'success') { function initializeSwitches (line 83) | function initializeSwitches() { function updateSwitchLabel (line 98) | function updateSwitchLabel(checkbox) { FILE: src/webui/static/js/dark-mode.js class DarkModeManager (line 2) | class DarkModeManager { method constructor (line 3) | constructor() { method init (line 18) | init() { method applyStoredState (line 37) | applyStoredState() { method setDarkMode (line 42) | setDarkMode(isDark) { method toggle (line 50) | toggle(forcedState = null) { method syncToggleState (line 56) | syncToggleState(isDark) { FILE: src/webui/static/js/group-chat-config.js function addGroupChatConfig (line 21) | function addGroupChatConfig() { function getAvatarOptions (line 169) | function getAvatarOptions(selectedValue = '') { function getUserListOptions (line 185) | function getUserListOptions(selectedValue = '') { function updateGroupChatConfigField (line 204) | function updateGroupChatConfigField(configId, field, value) { function updateGroupChatConfigSelects (line 213) | function updateGroupChatConfigSelects() { function addTriggerWord (line 219) | function addTriggerWord(configId) { function removeTriggerWord (line 242) | function removeTriggerWord(configId, triggerWord) { function removeTriggerWordByIndex (line 252) | function removeTriggerWordByIndex(configId, triggerIndex) { function removeGroupChatConfig (line 262) | function removeGroupChatConfig(configId) { function updateGroupChatConfigData (line 272) | function updateGroupChatConfigData() { function updateAddGroupChatButton (line 280) | function updateAddGroupChatButton() { FILE: src/webui/static/js/import-export.js function exportConfig (line 5) | function exportConfig() { function importConfig (line 91) | function importConfig() { FILE: src/webui/static/js/model-config.js constant MODELS_CONFIG_PATH (line 6) | const MODELS_CONFIG_PATH = '/static/models.json'; function getDefaultModelConfigs (line 12) | function getDefaultModelConfigs() { function fetchModelConfigs (line 71) | async function fetchModelConfigs() { function initializeModelSelect (line 109) | async function initializeModelSelect(passedProviderId) { function updateVisionModelSelect (line 240) | async function updateVisionModelSelect(providerId) { FILE: src/webui/static/js/schedule-tasks.js function initScheduleTasks (line 11) | function initScheduleTasks() { function loadTasksFromInput (line 28) | function loadTasksFromInput() { function updateTaskListUI (line 45) | function updateTaskListUI() { function updateTaskChatIdOptions (line 129) | function updateTaskChatIdOptions() { function setupTaskEventListeners (line 159) | function setupTaskEventListeners() { function toggleScheduleInput (line 243) | function toggleScheduleInput() { function updateSchedulePreview (line 262) | function updateSchedulePreview() { function setInterval (line 332) | function setInterval(value, unit) { function saveTask (line 341) | function saveTask() { function editTask (line 415) | function editTask(taskId) { function showDeleteTaskModal (line 491) | function showDeleteTaskModal(taskId) { function deleteTask (line 501) | function deleteTask(taskId) { function toggleTaskStatus (line 519) | function toggleTaskStatus(taskId) { function formatCronExpression (line 549) | function formatCronExpression(cronExp) { function formatInterval (line 581) | function formatInterval(seconds) { function showToast (line 601) | function showToast(message, type = "info") { function deleteTask (line 620) | function deleteTask(taskId) { function initDeleteTaskModal (line 666) | function initDeleteTaskModal() { function observeUserListChanges (line 677) | function observeUserListChanges() { function cleanup (line 703) | function cleanup() { FILE: 【可选】内网加固补丁(无密码保护穿透适用)/run_config_web.py function check_cloud_updates_on_startup (line 132) | def check_cloud_updates_on_startup(): function get_available_avatars (line 159) | def get_available_avatars() -> List[str]: function parse_config_groups (line 205) | def parse_config_groups() -> Dict[str, Dict[str, Any]]: function index (line 473) | def index(): function load_config_file (line 477) | def load_config_file(): function save_config_file (line 486) | def save_config_file(config_data): function reinitialize_tasks (line 496) | def reinitialize_tasks(): function save_config (line 508) | def save_config(): function update_config_value (line 607) | def update_config_value(config_data, key, value): function upload_background (line 770) | def upload_background(): function background_image (line 796) | def background_image(filename): function get_background (line 801) | def get_background(): function load_config (line 823) | def load_config(): function dashboard (line 831) | def dashboard(): function system_info (line 856) | def system_info(): function check_update (line 916) | def check_update(): function confirm_update (line 939) | def confirm_update(): function execute_update (line 975) | def execute_update(): function get_update_progress (line 1027) | def get_update_progress(): function start_bot_process (line 1035) | def start_bot_process(): function start_log_reading_thread (line 1093) | def start_log_reading_thread(): function get_bot_uptime (line 1118) | def get_bot_uptime(): function start_bot (line 1137) | def start_bot(): function get_bot_logs (line 1146) | def get_bot_logs(): function terminate_bot_process (line 1159) | def terminate_bot_process(force=False): function clear_bot_logs (line 1209) | def clear_bot_logs(): function stop_bot (line 1215) | def stop_bot(): function config (line 1224) | def config(): function serve_static (line 1257) | def serve_static(filename): function execute_command (line 1265) | def execute_command(): function check_dependencies (line 1447) | def check_dependencies(): function favicon (line 1543) | def favicon(): function cleanup_processes (line 1551) | def cleanup_processes(): function signal_handler (line 1637) | def signal_handler(signum, frame): function open_browser (line 1657) | def open_browser(port): function create_job_object (line 1669) | def create_job_object(): function setup_console_control_handler (line 1708) | def setup_console_control_handler(): function main (line 1723) | def main(): function install_dependencies (line 1863) | def install_dependencies(): function hash_password (line 1915) | def hash_password(password: str) -> str: function is_local_network (line 1919) | def is_local_network() -> bool: function check_auth (line 1932) | def check_auth(): function login (line 1948) | def login(): function init_password (line 1984) | def init_password(): function logout (line 2044) | def logout(): function get_model_configs (line 2050) | def get_model_configs(): function save_quick_setup (line 2118) | def save_quick_setup(): function quick_setup (line 2209) | def quick_setup(): function get_available_avatars_route (line 2215) | def get_available_avatars_route(): function load_avatar_content (line 2274) | def load_avatar_content(): function get_tasks (line 2326) | def get_tasks(): function save_task (line 2348) | def save_task(): function delete_task (line 2436) | def delete_task(): function get_all_configs (line 2489) | def get_all_configs(): function get_announcement (line 2651) | def get_announcement(): function dismiss_announcement (line 2676) | def dismiss_announcement(): function reconnect_wechat (line 2707) | def reconnect_wechat(): function get_vision_api_configs (line 2732) | def get_vision_api_configs():