Code Analysis: KissAi Widget 1.7.102

Function Rating Maintainability Complexity Lines of code
KissAi\OpenAI_API::chatgpt_run_thread()
C
32 25 99
KissAi\KissAi_Widget::kissai_handle_file_upload()
C
32 24 99
KissAi\OpenAI_API::update_token_usage()
C
39 27 54
KissAi\KissAi_Widget::process_single_file()
C
34 22 91
kissai_display_register_page()
B
30 18 150
KissAi\KissAi_Widget::render_vector_store_file_list()
B
34 19 86
KissAi\KissAi_Widget::form()
B
31 13 135
kissai_display_assistants_page()
B
30 11 165
KissAi\KissAi_Widget::kissai_fetch_delta_ajax()
B
35 16 89
KissAi\KissAi_DB::save_suggested_questions()
B
40 18 59
KissAi\OpenAI_API::query_suggested_questions()
B
37 17 72
KissAi_API::check_permission()
B
44 18 49
KissAi\KissAi_Base_Widget::get_visual_editor_name()
B
50 19 24
KissAi\KissAi_DB::import_assistant()
B
34 13 108
KissAi\KissAi_Widget::kissai_ask_ajax()
A
33 12 105
KissAi\KissAi_Widget::render_kissai_shortcode_client_mode()
A
37 14 75
KissAi\KissAi_DB::save_message()
A
40 15 56
KissAI\KissAi_Threads_Widget::load_kissai_threads()
A
41 15 50
kissai_display_settings_page()
A
36 10 106
KissAi\KissAi_Widget::kissai_save_suggested_questions()
A
45 13 39
KissAi\OpenAI_API::update_assistant_function()
A
49 13 29
kissai_check_license()
A
42 11 54
KissAi\KissAi_Widget::extractJsonContent()
A
47 12 35
KissAi\KissAi_Widget::kissai_handle_file_edit()
A
42 11 49
KissAi_Admin_Elements::render_openai_model_list()
A
43 11 47
KissAi\KissAi_DB::export_assistant()
A
37 9 77
kissai_update_assistant()
A
47 11 35
KissAi_Admin_Elements::render_assistant_list()
A
41 9 62
kissai_add_assistant()
A
49 11 30
KissAi_Admin_Elements::request_user_token()
A
46 10 39
KissAi\OpenAI_API::get_vector_store_id()
A
52 11 23
KissAi\KissAi_Widget::kissai_ajax_suggested_questions()
A
40 8 64
KissAi\OpenAI_API::chatgpt_query()
A
44 9 46
KissAi_API::decapsulate_and_decrypt_data()
A
50 10 30
kissai_run_thread_bg()
A
48 10 30
kissai_ajax_update_user_details()
A
45 9 44
KissAi\OpenAI_API::test_model_compatibility_with_assistant()
A
50 10 29
KissAi\OpenAI_API::get_vector_store_files()
A
51 10 25
kissai_delete_assistant()
A
51 10 24
KissAi\KissAi_Base_Widget::format_markdown_table()
A
48 9 34
KissAi\OpenAI_API::create_assistant()
A
43 8 47
KissAi\KissAi_Widget::kissai_save_usage_ajax()
A
45 8 41
KissAi\KissAi_Widget::kissai_save_message_ajax()
A
45 8 41
KissAi\KissAi_Base_Widget::render_thread_messages()
A
42 7 55
KissAi\OpenAI_API::update_assistant()
A
46 8 39
KissAi\OpenAI_API::save_message_and_token_count()
A
46 8 39
KissAi\OpenAI_API::chatgpt_create_message()
A
45 8 39
KissAi\OpenAI_API::check_model_id()
A
53 9 22
KissAi_API::get_service_api_key_from_kissai_server()
A
47 8 35
KissAi_API::get_assistants()
A
48 8 34
KissAi\KissAi_DB::get_threads_list_where_clause_params()
A
49 8 31
KissAi_API::add_assistant()
A
45 7 41
KissAI\KissAi_Threads_Widget::render_kissai_thread_list_body()
A
45 7 40
KissAi\KissAi_DB::get_threads_list_where_clause()
A
51 8 24
KissAi_API::call_update_token_usage()
A
46 7 37
KissAi_API::add_assistant_to_user()
A
47 7 35
KissAi\KissAi_DB::get_suggested_questions()
A
49 7 31
KissAi\KissAi_Base_Widget::parse_table_buffer()
S
50 7 28
KissAi\KissAi_DB::handle_db_update()
S
58 8 13
KissAi\KissAi_Base_Widget::kissai_save_api_log_ajax()
S
51 7 27
KissAi\KissAi_DB::create_plugin_database_tables()
S
39 2 100
kissai_save_plugin_settings()
S
52 7 24
KissAi_API::call_server_token_count()
S
46 6 36
KissAi\OpenAI_API::delete_vector_store_file()
S
54 7 20
KissAi_API::delete_assistant()
S
48 6 34
KissAi\OpenAI_API::get_assistant()
S
57 7 19
KissAi\OpenAI_API::filter_models_by_conditions()
S
56 7 18
KissAi\OpenAI_API::get_latest_model()
S
56 7 17
KissAi\KissAi_DB::rrmdir()
S
58 7 15
KissAi_API::get_kissai_updater()
S
45 5 44
kissai_save_email_ajax()
S
51 6 28
KissAi\KissAi_Widget::kissai_delete_file_ajax()
S
51 6 27
KissAi\KissAi_DB::get_event_data()
S
51 6 26
kissai_admin_settings_assets()
S
43 1 98
KissAi\OpenAI_API::call_get_api()
S
52 6 23
kissai_display_about_page()
S
56 6 20
KissAi\KissAi_Widget::render_suggested_questions_from_json()
S
54 6 20
kissai_manual_page_content()
S
46 1 94
KissAi\KissAi_DB::update_all_messages_assistant_ids()
S
48 5 34
KissAi\KissAi_DB::update_db_notice()
S
54 6 18
KissAi\KissAi_Base_Widget::update_instance_setting()
S
57 6 18
KissAi\KissAi_Base_Widget::format_size_units()
S
57 6 16
KissAi\KissAi_Base_Widget::get_allowed_html()
S
38 1 91
KissAi\KissAi_DB::match_thread_assistant_id()
S
50 5 30
kissai_import_assistant()
S
49 5 30
KissAi\KissAi_DB::match_message_assistant_id()
S
50 5 29
KissAi\OpenAI_API::create_vector_store()
S
50 5 29
KissAi_API::request_kissai_user_token()
S
51 5 26
KissAi\KissAi_Widget::render_kissai_shortcode_admin_mode()
S
54 5 26
KissAi\KissAi_Base_Widget::update_instance_settings()
S
62 6 11
KissAi\KissAi_Widget::render_suggested_questions()
S
52 5 25
KissAi\KissAi_DB::update_db()
S
52 5 24
KissAi_API::download_url()
S
52 5 24
KissAi\OpenAI_API::chatgpt_check_nonce()
S
53 5 24
KissAi_API::get_kissai_user()
S
53 5 23
KissAi_API::get_key_validity()
S
53 5 22
KissAi\KissAi_DB::update_knowledge_file_id()
S
49 4 35
KissAi\KissAi_DB::update_knowledge_path()
S
49 4 35
KissAi\KissAi_Widget::kissai_ajax_login()
S
48 4 35
KissAi\KissAi_Widget::kissai_handle_file_download()
S
54 5 20
KissAi\KissAi_Base_Widget::execute_method_from_string()
S
56 5 18
KissAi\KissAi_Widget::kissai_get_suggested_questions()
S
56 5 17
KissAi\OpenAI_API::upload_file()
S
48 4 32
KissAi\OpenAI_API::delete_assistant()
S
58 5 14
KissAi\OpenAI_API::initialize_thread()
S
52 4 28
KissAi\KissAi_Widget::render_kissai_admin_form()
S
48 3 43
KissAi_API_Base::is_successful()
S
61 5 13
KissAi_API::get_key_license()
S
63 5 12
KissAi\OpenAI_API::sort_models_by_key()
S
61 5 12
KissAi\KissAi_Widget::kissai_ajax_delete_chat()
S
52 4 26
KissAi_API::update_kissai_user()
S
51 4 26
KissAi\OpenAI_API::update_thread()
S
51 4 26
KissAI\KissAi_Threads_Widget::render_kissai_thread_list()
S
50 4 26
KissAi\OpenAI_API::call_delete_api()
S
52 4 24
KissAi\KissAi_DB::store_event_data()
S
53 4 22
KissAi_API::save_guest_user_session_cookie()
S
53 4 22
KissAi\KissAi_Base_Widget::reset_kissai_vars_nonce()
S
54 4 21
KissAi_API::get_plugin_details()
S
55 4 20
KissAi\OpenAI_API::get_session_thread()
S
55 4 20
kissai_export_assistant()
S
56 4 18
check_messages_json_sanitization()
S
56 4 18
KissAi_API::get_service_api_key()
S
58 4 17
KissAi\KissAi_DB::update_all_thread_assistant_ids()
S
58 4 16
KissAi\KissAi_DB::save_assistant_setting()
S
51 3 30
kissai_load_widget_classes()
S
59 4 14
kissai_redirect_to_assistants_page()
S
59 4 13
KissAi_API::get_kissai_user_id()
S
60 4 13
KissAI\KissAi_Threads_Widget::render_sort_icon()
S
61 4 12
KissAi\OpenAI_API::delete_file()
S
61 4 11
KissAi\OpenAI_API::set_assistant()
S
63 4 11
KissAi\KissAi_Widget::render_kissai_instructions_form()
S
55 3 24
KissAi\KissAi_Widget::kissai_update_knowledge_file_id()
S
52 3 24
kissai_about_page_content()
S
53 2 38
KissAI\KissAi_Threads_Widget::__construct()
S
53 3 23
KissAi\KissAi_Widget::update()
S
54 3 22
KissAi\KissAi_DB::reset_plugin_database_tables()
S
55 3 20
KissAi\KissAi_Widget::kissai_render_suggested_questions_ui()
S
50 1 49
kissai_view_assistant_threads()
S
55 3 18
KissAi\OpenAI_API::get_assistants()
S
57 3 18
kissai_get_assistant_details()
S
57 3 16
KissAi\OpenAI_API::get_model()
S
67 4 7
KissAI\KissAi_Threads_Widget::update()
S
67 4 7
KissAi\KissAi_DB::save_assistant()
S
58 3 15
KissAi\OpenAI_API::replace_url_with_args()
S
65 4 8
KissAi\OpenAI_API::is_call_get_api_success()
S
67 4 7
KissAi\OpenAI_API::get_models()
S
67 4 7
KissAi\KissAi_Base_Widget::get_allowed_svg_html()
S
47 1 45
KissAI\KissAi_Threads_Widget::get_sort_order_css()
S
58 3 15
kissai_error_log()
S
66 4 7
KissAi\KissAi_Widget::render_suggested_questions_buttons()
S
61 3 12
KissAi\OpenAI_API::create_thread()
S
61 3 12
kissai_init_plugin()
S
61 3 12
KissAi\KissAi_DB::add_knowledge()
S
53 2 26
kissai_json_encode()
S
63 3 11
kissai_add_about_page()
S
54 2 25
KissAi\KissAi_DB::read_threads_list()
S
52 2 24
KissAi\KissAi_Base_Widget::get_reset_kissai_vars_nonce_script()
S
54 2 23
KissAi\KissAi_DB::update_all_message_repeated()
S
55 2 21
kissai_enqueue_scripts()
S
49 1 36
kissai_display_threads_page()
S
55 2 20
KissAI\KissAi_Threads_Widget::render_kissai_threads()
S
56 2 19
KissAi\OpenAI_API::chatgpt_save_nonce()
S
55 2 19
KissAi\KissAi_DB::update_thread_assistant_id()
S
57 2 18
KissAi\OpenAI_API::send_function_response()
S
56 2 18
KissAi\KissAi_DB::get_session_id_with_nonce()
S
57 2 17
kissai_admin_assistants_assets()
S
56 1 31
KissAi_Admin_Elements::get_allowed_html()
S
51 1 31
KissAi\KissAi_DB::is_existing_message()
S
59 2 16
KissAi\KissAi_Widget::kissai_ajax_admin_instruction_update()
S
57 2 16
kissai_add_training_page()
S
60 2 15
KissAi\OpenAI_API::fallbackToPrevious()
S
70 3 6
kissai_add_register_page()
S
60 2 15
KissAi_API::get_api_key_type()
S
66 3 9
array_map_recursive()
S
64 3 10
sanitize_json_data()
S
63 3 10
kissai_conditional_check_license()
S
73 3 5
kissai_add_settings_page()
S
60 2 15
KissAi\OpenAI_API::process_openai_function_calls()
S
68 3 7
KissAi_API_Base::get_latest_version()
S
66 3 9
KissAi_API::get_session_identifier()
S
64 3 10
KissAi\KissAi_DB::get_existing_message()
S
60 2 15
KissAi\KissAi_Base_Widget::get_assistant_id_from_widget_atts()
S
68 3 7
KissAi_API::save_assistants()
S
67 3 8
KissAi\KissAi_DB::get_current_api_key_type()
S
66 3 8
kissai_add_assistants_page()
S
60 2 15
kissai_update_check()
S
68 3 7
kissai_admin_register_assets()
S
54 1 29
KissAi\KissAi_DB::remove_event_data()
S
59 2 14
KissAi\KissAi_DB::update_assistant_knowledge_count()
S
60 2 14
KissAI\KissAi_Threads_Widget::load_kissai_messages()
S
59 2 13
KissAi\KissAi_DB::delete_nonce()
S
60 2 13
KissAi\KissAi_DB::get_event_count()
S
60 2 13
KissAi\KissAi_DB::get_event_max_seq()
S
60 2 13
KissAi\KissAi_Base_Widget::render_hidden_field_with_attributes()
S
61 2 12
KissAi\OpenAI_API::update_assistant_model()
S
62 2 12
KissAi\KissAi_Widget::kissai_shortcode()
S
63 2 11
KissAi\KissAi_Widget::widget()
S
61 2 11
KissAi_API::encrypt_and_encapsulate_with_key()
S
63 2 11
KissAi\KissAi_DB::get_knowledge_file_path_by_file_id()
S
62 2 11
KissAI\KissAi_Threads_Widget::render_dropdown_menu()
S
61 2 11
kissai_display_training_page()
S
56 1 23
KissAi\KissAi_Widget::get_default_instance()
S
53 1 22
kissai_get_plugin_data()
S
56 1 19
KissAi\KissAi_Base_Widget::render_kissai_login_form()
S
61 1 18
KissAi\KissAi_Widget::render_vector_store_text_upload()
S
61 1 18
KissAI\KissAi_Threads_Widget::form()
S
57 1 18
KissAi_Admin_Elements::init()
S
60 1 16
KissAi\KissAi_Base_Widget::render_kissai_register_form()
S
69 1 16
KissAi\KissAi_Base_Widget::render_no_permission_message()
S
64 2 9
KissAi_API::get_bg_process_api_key_setting()
S
71 2 6
KissAi_API::get_default_header()
S
63 2 10
KissAi_API::get_session_id()
S
71 2 6
KissAi\KissAi_Base_Widget::widget()
S
64 2 9
KissAi\OpenAI_API::isThreadId()
S
72 2 6
KissAi\KissAi_DB::get_assistant_knowledge_count()
S
65 2 9
KissAi_API::get_service_api_key_from_kissai()
S
69 2 7
kissai_api_increase_timeout()
S
70 2 6
KissAI\KissAi_Threads_Widget::enqueue_dynamic_css()
S
68 2 7
KissAi_API::get_api_key()
S
71 2 6
KissAi\KissAi_Base_Widget::is_in_editing_mode()
S
73 2 5
KissAi\OpenAI_API::handle_openai_function_call()
S
67 2 8
KissAi\KissAi_Base_Widget::get_api_server_from_endpoint()
S
72 2 5
KissAi\KissAi_Base_Widget::widget_atts_from_ajax()
S
64 2 9
KissAi\KissAi_Base_Widget::update()
S
71 2 5
KissAi_API::getInstance()
S
71 2 6
KissAi\KissAi_DB::delete_assistant()
S
64 2 10
KissAi\KissAi_DB::api_log()
S
58 1 15
KissAi\KissAi_DB::check_db_version()
S
72 2 5
KissAi_API::get_current_kissai_user()
S
68 2 8
kissai_is_plugin_installed()
S
68 2 7
KissAi\KissAi_Base_Widget::format_bold_text()
S
69 2 6
kissai_sanitize_json_data_strict()
S
69 2 7
kissai_http_dev_request_args()
S
69 2 6
KissAi_API::get_saved_service_api_key()
S
69 2 7
KissAi\OpenAI_API::getThreadId()
S
69 2 7
KissAi\KissAi_Base_Widget::encode_attributes()
S
67 2 8
KissAi\KissAi_DB::cached_get_row()
S
64 2 9
KissAi\KissAi_DB::is_db_up_to_date()
S
69 2 7
KissAi\OpenAI_API::getInstance()
S
68 2 7
KissAi\KissAi_DB::find_knowledge_id_by_assistant_and_name()
S
63 2 10
KissAi\KissAi_Base_Widget::get_chatgpt_api_with_widget_atts()
S
65 2 9
KissAi\KissAi_DB_Tables::__construct()
S
60 1 13
kissai_register_inline_script()
S
63 1 12
kissai_admin_training_assets()
S
65 1 12
KissAi\KissAi_Widget::kissai_ajax_admin_widget_refresh()
S
60 1 12
KissAi\KissAi_Base_Widget::get_allowed_form_html()
S
63 1 12
kissai_register_inline_style()
S
64 1 11
KissAi\KissAi_Widget::render_vector_store_file_upload()
S
67 1 11
KissAi\OpenAI_API::get_current_time_function_def()
S
69 1 7
KissAi\OpenAI_API::get_default_assistant_name()
S
63 1 10
KissAI\KissAi_Threads_Widget::get_default_instance()
S
69 1 7
KissAi\KissAi_Base_Widget::render_loading_animation()
S
69 1 7
KissAi_API::__construct()
S
80 1 3
KissAi\OpenAI_API::update_assistant_name()
S
74 1 5
KissAi\OpenAI_API::is_deleted_openai_file_id()
S
78 1 3
KissAi\OpenAI_API::get_default_header()
S
69 1 7
kissai_admin_about_assets()
S
67 1 9
KissAi_API::kissai_api_error_log()
S
76 1 3
KissAi\KissAi_Base_Widget::format_reference_text()
S
71 1 5
KissAi\KissAi_DB::update_token_count()
S
64 1 10
register_kissai_widget()
S
82 1 3
get_sanitized_site_name()
S
67 1 7
KissAi\OpenAI_API::models_data_into_object()
S
77 1 3
kissai_update_option()
S
75 1 4
KissAI\KissAi_Threads_Widget::get_kissai_shortcode_atts()
S
75 1 4
kissai_get_plugin_assets_url()
S
78 1 3
kissai_get_plugin_name()
S
76 1 4
KissAi\KissAi_Base_Widget::format_h4_text()
S
78 1 3
kissai_cleanup_expired_guids()
S
65 1 9
KissAi_API::get_user_session_id()
S
80 1 3
KissAi_API::decrypt_data()
S
64 1 9
KissAi\KissAi_Widget::get_kissai_shortcode_atts()
S
70 1 6
KissAi\OpenAI_API::update_assistant_instructions()
S
74 1 5
KissAi\KissAi_Base_Widget::convertUnixToUTC()
S
71 1 5
KissAi\KissAi_DB::convert_export_assistant_path_to_url()
S
71 1 5
KissAi\OpenAI_API::get_assistant_id()
S
82 1 3
KissAi\OpenAI_API::get_session_id()
S
76 1 4
KissAi\OpenAI_API::is_model_compatible_with_assistant()
S
78 1 3
KissAi\KissAi_Base_Widget::get_kissai_widget_path()
S
75 1 4
KissAi\KissAi_Base_Widget::_convert_to_pascal_case()
S
77 1 3
KissAi\OpenAI_API::api_log()
S
72 1 5
KissAi\OpenAI_API::chatgpt_new_thread_and_start_new_session()
S
76 1 4
KissAi\KissAi_DB::get_assistant_setting()
S
65 1 9
KissAi\KissAi_DB::__construct()
S
80 1 3
KissAi\KissAi_Base_Widget::__construct()
S
78 1 3
kissai_add_plugin_action_links()
S
71 1 5
KissAi\KissAi_Widget::kissai_ajax_admin_refresh()
S
65 1 9
KissAi\KissAi_Widget::make_kissai_file_path()
S
71 1 5
KissAi\KissAi_Base_Widget::convert_unix_timestamp_to_wordpress_timezone()
S
65 1 9
KissAi\KissAi_Widget::__construct()
S
69 1 7
KissAi\OpenAI_API::set_thread_id()
S
81 1 3
KissAI\KissAi_Threads_Widget::render_kissai_thread_list_begin()
S
65 1 9
KissAi\KissAi_Base_Widget::format_h_text()
S
75 1 4
KissAi\OpenAI_API::__construct()
S
77 1 4
kissai_add_threads_page()
S
67 1 10
KissAi\OpenAI_API::get_bg_process_api_key()
S
82 1 3
KissAi\KissAi_DB::update_success_notice()
S
75 1 8
KissAi\KissAi_Base_Widget::_convert_to_title_case()
S
77 1 3
kissai_get_plugin_version()
S
73 1 5
KissAi\OpenAI_API::get_assistant_by_id()
S
78 1 3
KissAi\KissAi_Widget::kissai_ajax_admin_file_list_refresh()
S
65 1 9
KissAi_API::update_kissai_user_data()
S
68 1 7
KissAi_API::save_assistant()
S
77 1 4
KissAi_API::get_ai_api_instance()
S
71 1 6
KissAi_API::is_service_key_from_kissai()
S
82 1 3
KissAi\KissAi_Base_Widget::render_divider()
S
68 1 10
KissAi_API::encrypt_data()
S
64 1 9
KissAI\KissAi_Threads_Widget::render_kissai_thread_list_end()
S
74 1 5
KissAi\KissAi_Base_Widget::split_table_row()
S
68 1 7
KissAi_API::set_session_id()
S
81 1 3
KissAi\OpenAI_API::update_assistant_vector_store()
S
67 1 9
kissai_register_threads_widget()
S
82 1 3
KissAi\KissAi_Base_Widget::format_h3_text()
S
78 1 3
KissAi\KissAi_DB::update_all_messages_api_server()
S
69 1 6
kissai_get_option()
S
75 1 4
KissAI\KissAi_Threads_Widget::css_property_data()
S
66 1 8
KissAi\KissAi_DB::count_threads_list_items()
S
64 1 9
kissai_get_plugin_info()
S
77 1 4
KissAi\KissAi_Base_Widget::get_current_timestamp_for_prompt()
S
73 1 4
KissAI\KissAi_Threads_Widget::kissai_shortcode()
S
70 1 6
KissAI\KissAi_Threads_Widget::widget()
S
68 1 7
KissAi_API::get_header()
S
65 1 9
KissAi\OpenAI_API::add_deleted_openai_file_id()
S
78 1 3
KissAi\KissAi_Widget::render_suggested_questions_reload_button()
S
66 1 9
KissAi\OpenAI_API::get_header()
S
73 1 5
KissAi\KissAi_Widget::get_kissai_widget_css_url()
S
75 1 4