Code Analysis: Similar Posts AI (SPAI) 1.5.3

Function Rating Maintainability Complexity Lines of code
Mobile_Detect::mobileGrade()
D
31 78 56
Spai_Admin::validate()
C
48 27 25
Spai_Admin::display_plugin_admin_page()
B
41 21 44
Spai_Widget::form()
B
42 16 54
Spai_Public::checkSpaiPostsDataSync()
B
38 15 67
templateAbstract::run()
A
44 10 43
Spai_Widget::widget()
A
49 11 28
template3::run()
A
44 9 45
Spai_Widget::prepareDataToWidget()
A
45 9 43
Mobile_Detect::version()
A
51 9 24
Spai_Widget::update()
A
61 10 10
Spai_Widget::setCountPosts()
A
56 8 17
Spai_Widget::getRelatedPosts()
S
52 7 23
Mobile_Detect::isMobile()
S
55 7 20
Mobile_Detect::checkHttpHeadersForMobile()
S
57 7 17
Mobile_Detect::setUserAgent()
S
55 6 20
Spai_Widget::widgetAsHtml()
S
54 6 20
shutDownFunction()
S
56 6 18
Mobile_Detect::isTablet()
S
58 6 15
Spai_Widget::setMaxAdsCount()
S
59 6 14
Spai_Widget::sendImpression()
S
54 5 21
Mobile_Detect::setCfHeaders()
S
58 5 14
Spai_Public::spai_add_widget_after_post()
S
61 5 13
templateAbstract::setTitleMax()
S
59 5 13
Mobile_Detect::setHttpHeaders()
S
61 5 12
templateAbstract::getCategoryStyles()
S
62 5 11
Mobile_Detect::match()
S
61 5 11
Spai_Activator::createConnectionToExternalServer()
S
50 3 28
Mobile_Detect::matchUAAgainstKey()
S
61 4 13
Mobile_Detect::getHttpHeader()
S
60 4 13
Spai_Admin::addPostToTableSpaiPostsDataSync()
S
60 4 12
Mobile_Detect::matchDetectionRulesAgainstUA()
S
63 4 11
Spai_Public::spai_save_related_post_click()
S
54 3 22
Spai_Api::get_ip_address()
S
63 4 10
Mobile_Detect::setDetectionType()
S
66 4 9
templateAbstract::setUrlHtml()
S
59 3 15
templateAbstract::setAdsNotifierHtml()
S
59 3 14
templateAbstract::setCategoriesHtml()
S
59 3 14
template3::setCategoriesHtml()
S
59 3 14
template3::prepareHistoryWindow()
S
59 1 40
Spai_Widget::__construct()
S
58 2 16
templateAbstract::setImgUrl()
S
67 3 9
templateAbstract::setTitleHtml()
S
66 3 7
Spai_Loader::run()
S
66 3 8
Mobile_Detect::is()
S
65 3 10
template3::setTitleHtml()
S
66 3 7
Mobile_Detect::getMobileDetectionRulesExtended()
S
63 2 13
Mobile_Detect::getMobileDetectionRules()
S
64 2 12
Spai_Activator::addDataInTableSpaiPostsDataSync()
S
61 2 12
Spai_Api::getRelatedPosts()
S
56 1 19
Mobile_Detect::prepareVersionNo()
S
65 2 8
Spai_Public::__construct()
S
71 2 5
Spai_Public::spai_define_javascript_ajaxurl()
S
68 2 9
templateAbstract::setHeadingHtml()
S
73 2 4
Spai_Api::__construct()
S
64 2 10
templateAbstract::setImgHtml()
S
68 2 6
Spai_Admin::load_dependencies()
S
71 2 5
Spai_Widget::setHash()
S
63 2 10
Mobile_Detect::getRules()
S
70 2 7
Mobile_Detect::__call()
S
66 2 8
Spai_Logger::getInstance()
S
72 2 6
Spai_Logger::__construct()
S
71 2 5
Spai_Api::createConnectionToNewUser()
S
61 1 13
Spai_Api::sendClickToRelatedPost()
S
61 1 13
Spai_Api::sendImpressionData()
S
61 1 13
Spai_Api::sendPostData()
S
61 1 13
Spai_Api::log()
S
61 1 12
Spai_Api::checkToken()
S
62 1 12
Spai::define_public_hooks()
S
62 1 11
templateAbstract::__construct()
S
67 1 8
Mobile_Detect::getUtilities()
S
80 1 3
Spai_Logger::__wakeup()
S
91 1 2
deactivate_spai_plugin()
S
76 1 4
Mobile_Detect::getUserAgent()
S
82 1 3
Mobile_Detect::getMatchesArray()
S
82 1 3
Mobile_Detect::getTabletDevices()
S
80 1 3
Spai_Admin::spai_add_action_links()
S
66 1 8
Spai_Logger::__clone()
S
91 1 2
Spai::set_locale()
S
75 1 4
Mobile_Detect::getMobileHeaders()
S
81 1 3
template3::setAdsNotifierHtml()
S
82 1 3
Spai_Admin::__construct()
S
76 1 4
Mobile_Detect::getMatchingRegex()
S
82 1 3
Spai_Activator::createSpaiPostsDataSync()
S
66 1 8
Spai_Admin::options_update()
S
79 1 3
Mobile_Detect::prepareUserAgent()
S
73 1 5
Spai::run()
S
82 1 3
Spai_Deactivator::DeleteTableSpaiPostsDataSync()
S
70 1 6
Spai_Loader::add()
S
64 1 10
Spai_Public::spai_register_widget()
S
81 1 3
Spai_Logger::log()
S
69 1 7
Spai_Activator::activate()
S
77 1 4
Mobile_Detect::getUserAgents()
S
80 1 3
spai_register_widget()
S
82 1 3
Mobile_Detect::getProperties()
S
80 1 3
Spai_Loader::__construct()
S
77 1 4
Spai::get_loader()
S
82 1 3
Mobile_Detect::getUaHttpHeaders()
S
81 1 3
Mobile_Detect::getPhoneDevices()
S
80 1 3
activate_spai_plugin()
S
76 1 4
Spai_i18n::load_plugin_textdomain()
S
69 1 7
Spai_Deactivator::deactivate()
S
80 1 3
Mobile_Detect::getScriptVersion()
S
80 1 3
run_spai_plugin()
S
77 1 4
Spai_Admin::add_plugin_admin_menu()
S
73 1 5
templateAbstract::setOneCategoryHtml()
S
69 1 6
Spai_Public::spai_enqueue_styles()
S
73 1 4
Spai_Activator::createTableSpaiPostsDataSync()
S
65 1 10
Spai::define_admin_hooks()
S
62 1 10
Spai::__construct()
S
73 1 6
Spai_Admin::spai_enqueue_styles()
S
66 1 8
Spai_Widget::setAdsNotifierHtml()
S
72 1 6
Mobile_Detect::getOperatingSystems()
S
80 1 3
template3::setHeadingHtml()
S
82 1 3
Spai_Public::spai_enqueue_scripts()
S
73 1 4
Spai_Loader::add_filter()
S
77 1 3
Mobile_Detect::__construct()
S
77 1 4
Spai::load_dependencies()
S
66 1 8
Mobile_Detect::getHttpHeaders()
S
82 1 3
Spai_Loader::add_action()
S
77 1 3
Mobile_Detect::getBrowsers()
S
80 1 3
Spai_Admin::spai_enqueue_scripts()
S
69 1 6
Mobile_Detect::getCfHeaders()
S
82 1 3