Repository Analysis

caronc/apprise

Apprise - Push Notifications that work with just about every platform!

29.0 Moderate AI signal View on GitHub
29.0
Adjusted Score
29.0
Raw Score
100%
Time Factor
2026-05-29
Last Push
16,657
Stars
Python
Language
221,893
Lines of Code
441
Files
3422
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 566MEDIUM 400LOW 2456

Pattern Findings

3422 matches across 15 categories. Click a row to expand file-level details.

Cross-File Repetition534 hits · 2670 pts
SeverityFileLineSnippet
HIGHtests/test_config_base.py0; a comment line over top of a url mailto://userb:pass@gmail.com
HIGHtests/test_config_base.py0; a comment line over top of a url mailto://userb:pass@gmail.com
HIGHtests/test_config_base.py0; a comment line over top of a url mailto://userb:pass@gmail.com
HIGHtests/test_apprise_cli.py0this class is used to test various requirement configurations.
HIGHtests/test_apprise_cli.py0this class is used to test various requirement configurations.
HIGHtests/test_apprise_cli.py0this class is used to test various requirement configurations.
HIGHtests/test_api.py0this class is used to test various requirement configurations.
HIGHtests/test_api.py0this class is used to test various requirement configurations.
HIGHtests/test_api.py0this class is used to test various requirement configurations.
HIGHtests/test_apprise_config.py0a dummy wrapper for testing the different options in the load_matrix function.
HIGHtests/test_apprise_config.py0a dummy wrapper for testing the different options in the load_matrix function.
HIGHtests/test_apprise_config.py0a dummy wrapper for testing the different options in the load_matrix function.
HIGHtests/test_apprise_config.py0a dummy wrapper for testing the different options in the load_matrix function.
HIGHtests/test_plugin_telegram.py0regression: attachmemory must be sendable without oserror.
HIGHtests/test_plugin_discord.py0regression: attachmemory must be sendable without oserror.
HIGHtests/test_plugin_pushover.py0regression: attachmemory must be sendable without oserror.
HIGHtests/test_plugin_fluxer.py0regression: attachmemory must be sendable without oserror.
HIGHtests/test_plugin_slack.py0regression: attachmemory must be sendable without oserror.
HIGHtests/test_plugin_revolt.py0# heading @everyone and @admin, wake and meet our new user <@123>; <@&456>"
HIGHtests/test_plugin_discord.py0# heading @everyone and @admin, wake and meet our new user <@123>; <@&456>"
HIGHtests/test_plugin_discord.py0# heading @everyone and @admin, wake and meet our new user <@123>; <@&456>"
HIGHtests/test_plugin_fluxer.py0# heading @everyone and @admin, wake and meet our new user <@123>; <@&456>"
HIGHtests/test_plugin_fluxer.py0# heading @everyone and @admin, wake and meet our new user <@123>; <@&456>"
HIGHtests/test_plugin_slack.py0{ "blocks": [ { "type": "section", "text": {"type": "mrkdwn", "text": "{{app_body}}"} } ] }
HIGHtests/test_plugin_slack.py0{ "blocks": [ { "type": "section", "text": {"type": "mrkdwn", "text": "{{app_body}}"} } ] }
HIGHtests/test_plugin_slack.py0{ "blocks": [ { "type": "section", "text": {"type": "mrkdwn", "text": "{{app_body}}"} } ] }
HIGHapprise/apprise.py0allows the apprise object to be wrapped in an 'if statement'. true is returned if at least one service has been loaded.
HIGHapprise/apprise_config.py0allows the apprise object to be wrapped in an 'if statement'. true is returned if at least one service has been loaded.
HIGHapprise/apprise_attachment.py0allows the apprise object to be wrapped in an 'if statement'. true is returned if at least one service has been loaded.
HIGHapprise/url.py0parses the url and returns it broken apart into a dictionary. this is very specific and customized for apprise. args: ur
HIGHapprise/config/base.py0parses the url and returns it broken apart into a dictionary. this is very specific and customized for apprise. args: ur
HIGHapprise/attachment/base.py0parses the url and returns it broken apart into a dictionary. this is very specific and customized for apprise. args: ur
HIGHapprise/config/memory.py0returns the url built dynamically based on specified arguments.
HIGHapprise/config/file.py0returns the url built dynamically based on specified arguments.
HIGHapprise/config/http.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/apprise_api.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/sfr.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/humhub.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/revolt.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/enigma2.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/zulip.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/httpsms.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/prowl.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/voipms.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/clickatell.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/messagebird.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/pagertree.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/ntfy.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/one_signal.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/groupme.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/dingtalk.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/kodi.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/simplepush.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/ses.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/smtp2go.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/kavenegar.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/whatsapp.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/synology.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/zoom.py0returns the url built dynamically based on specified arguments.
HIGHapprise/plugins/kumulos.py0returns the url built dynamically based on specified arguments.
474 more matches not shown…
Hyper-Verbose Identifiers1346 hits · 1123 pts
SeverityFileLineSnippet
LOWREADME.md392def my_custom_notification_wrapper(body, title, notify_type, *args, **kwargs):
LOWtests/test_plugin_smpp.py139def test_plugin_smpplib_import_error():
LOWtests/test_plugin_smpp.py170def test_plugin_smpp_edge_case():
LOWtests/test_plugin_rocket_chat.py326def test_plugin_rocket_chat_urls():
LOWtests/test_plugin_rocket_chat.py335def test_plugin_rocket_chat_edge_cases(mock_post, mock_get):
LOWtests/test_plugin_wechat.py907def test_plugin_wechat_parse_native_url():
LOWtests/test_plugin_wechat.py915def test_plugin_wechat_error_codes():
LOWtests/test_plugin_wechat.py925def test_plugin_wechat_apprise_integration(mock_post, mock_get):
LOWtests/test_plugin_wechat.py304def test_plugin_wechat_url_round_trip():
LOWtests/test_plugin_wechat.py389def test_plugin_wechat_url_identifier():
LOWtests/test_plugin_wechat.py410def test_plugin_wechat_send_ok(mock_post, mock_get):
LOWtests/test_plugin_wechat.py443def test_plugin_wechat_send_cached_token(mock_post, mock_get):
LOWtests/test_plugin_wechat.py479def test_plugin_wechat_send_all_targets(mock_post, mock_get):
LOWtests/test_plugin_wechat.py519def test_plugin_wechat_send_markdown(mock_post, mock_get):
LOWtests/test_plugin_wechat.py556def test_plugin_wechat_send_no_targets(mock_post, mock_get):
LOWtests/test_plugin_wechat.py568def test_plugin_wechat_token_fetch_http_error(mock_post, mock_get):
LOWtests/test_plugin_wechat.py589def test_plugin_wechat_token_fetch_api_error(mock_post, mock_get):
LOWtests/test_plugin_wechat.py615def test_plugin_wechat_token_fetch_no_token_field(mock_post, mock_get):
LOWtests/test_plugin_wechat.py638def test_plugin_wechat_token_fetch_bad_json(mock_post, mock_get):
LOWtests/test_plugin_wechat.py657def test_plugin_wechat_token_fetch_request_exception(mock_post, mock_get):
LOWtests/test_plugin_wechat.py673def test_plugin_wechat_send_http_error(mock_post, mock_get):
LOWtests/test_plugin_wechat.py706def test_plugin_wechat_send_api_error(mock_post, mock_get):
LOWtests/test_plugin_wechat.py739def test_plugin_wechat_send_token_expiry_evicts_cache(mock_post, mock_get):
LOWtests/test_plugin_wechat.py775def test_plugin_wechat_send_token_expiry_all_codes(mock_post, mock_get):
LOWtests/test_plugin_wechat.py812def test_plugin_wechat_send_bad_json(mock_post, mock_get):
LOWtests/test_plugin_wechat.py848def test_plugin_wechat_send_request_exception(mock_post, mock_get):
LOWtests/test_plugin_wechat.py876def test_plugin_wechat_parse_url():
LOWtests/test_plugin_wechat.py952def test_plugin_wechat_send_unknown_api_error(mock_post, mock_get):
LOWtests/test_plugin_wechat.py985def test_plugin_wechat_token_unknown_api_error(mock_post, mock_get):
LOWtests/test_plugin_wecombot.py110def test_plugin_wecombot_urls():
LOWtests/test_apprise_translations.py54def test_apprise_trans_gettext_init():
LOWtests/test_apprise_translations.py75def test_apprise_trans_gettext_translations(
LOWtests/test_apprise_translations.py102def test_apprise_trans_gettext_lang_at(mock_getlocale):
LOWtests/test_apprise_translations.py233def test_apprise_trans_windows_users_win(mock_getlocale):
LOWtests/test_apprise_translations.py279def test_apprise_trans_windows_users_nux(mock_getlocale):
LOWtests/test_apprise_translations.py331def test_detect_language_using_env(mock_getlocale):
LOWtests/test_apprise_translations.py374def test_apprise_trans_gettext_missing(tmpdir):
LOWtests/test_apprise_translations.py406def test_apprise_locale_add_existing_language(mock_translation):
LOWtests/test_apprise_translations.py420def test_apprise_trans_successful_translation(
LOWtests/test_plugin_nextcloud.py252def test_plugin_nextcloud_urls():
LOWtests/test_plugin_nextcloud.py260def test_plugin_nextcloud_edge_cases(mock_post):
LOWtests/test_plugin_nextcloud.py287def test_plugin_nextcloud_url_prefix(mock_post):
LOWtests/test_plugin_nextcloud.py318def test_plugin_nextcloud_groups_and_all(mock_get, mock_post):
LOWtests/test_plugin_nextcloud.py390def test_plugin_nextcloud_persistent_storage(mock_get, mock_post, tmpdir):
LOWtests/test_plugin_nextcloud.py475def test_plugin_nextcloud_groups_errors_and_dedup(mock_get, mock_post):
LOWtests/test_plugin_nextcloud.py516def test_plugin_nextcloud_req_exception_and_empty_targets(mock_get, mock_post):
LOWtests/test_plugin_nextcloud.py549def test_plugin_nextcloud_json_empty_returns_empty(mock_get, mock_post):
LOWtests/test_plugin_nextcloud.py592def test_plugin_nextcloud_caching_group_and_all(mock_get, mock_post):
LOWtests/test_plugin_bluesky.py331def test_plugin_bluesky_general(mocker):
LOWtests/test_plugin_bluesky.py473def test_plugin_bluesky_edge_cases():
LOWtests/test_plugin_bluesky.py482def test_plugin_bluesky_attachments_basic(
LOWtests/test_plugin_bluesky.py543def test_plugin_bluesky_attachments_bad_message_response(
LOWtests/test_plugin_bluesky.py598def test_plugin_bluesky_attachments_upload_fails(
LOWtests/test_plugin_bluesky.py649def test_plugin_bluesky_attachments_invalid_attachment(
LOWtests/test_plugin_bluesky.py698def test_plugin_bluesky_attachments_multiple_batch(
LOWtests/test_plugin_bluesky.py857def test_plugin_bluesky_auth_failure(
LOWtests/test_plugin_bluesky.py895def test_plugin_bluesky_did_web_and_plc_resolution(
LOWtests/test_plugin_bluesky.py958def test_plugin_bluesky_pds_resolution_failures(mock_get):
LOWtests/test_plugin_bluesky.py980def test_plugin_bluesky_missing_pds_endpoint(mock_get):
LOWtests/test_plugin_custom_xml.py259def test_plugin_custom_xml_urls():
1286 more matches not shown…
Decorative Section Separators197 hits · 729 pts
SeverityFileLineSnippet
MEDIUMtests/test_plugin_wechat.py130 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py132 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py140 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py142 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py150 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py152 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py162 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py164 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py172 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py174 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py182 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py184 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py192 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py194 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py202 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py204 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py214 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py216 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py73 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py75 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py104 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py106 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py117 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py119 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py233 # ----------------------------------------------------------------
MEDIUMtests/test_plugin_wechat.py235 # ----------------------------------------------------------------
MEDIUMtests/test_notification_manager.py754# ===========================================================================
MEDIUMtests/test_notification_manager.py756# ===========================================================================
MEDIUMtests/test_notification_manager.py520# ---------------------------------------------------------------------------
MEDIUMtests/test_notification_manager.py493# ---------------------------------------------------------------------------
MEDIUMtests/test_notification_manager.py495# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py46# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py48# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py105# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py107# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py395# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py397# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py414# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py416# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py424# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py426# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py506# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py508# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py658# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py660# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py708# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py710# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py757# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py759# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py788# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py790# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py822# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_pgp.py824# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_wkd.py41# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_wkd.py43# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_wkd.py52# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_wkd.py54# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_wkd.py118# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_wkd.py120# ---------------------------------------------------------------------------
MEDIUMtests/test_utils_wkd.py361# ---------------------------------------------------------------------------
137 more matches not shown…
Over-Commented Block661 hits · 646 pts
SeverityFileLineSnippet
LOWREADME.md281# ~/.apprise
LOWREADME.md301# %ALLUSERSPROFILE%\Apprise\apprise.conf
LOWREADME.md401
LOWREADME.md721 # Set our storage path directory (minimum requirement to enable it)
LOWwin-requirements.txt1#
LOWsetup.py1#!/usr/bin/env python
LOWsetup.py21# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
LOWdocker-compose.yml81#
LOWpackaging/i18n_normalize.sh1#!/usr/bin/sh
LOWpackaging/i18n_normalize.sh21# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
LOWbin/build-rpm.sh1#!/bin/bash
LOWbin/checkdone.sh1#!/bin/bash
LOWbin/test.sh1#!/bin/bash
LOWbin/test.sh21# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LOWtests/test_plugin_smpp.py1# BSD 2-Clause License
LOWtests/test_plugin_rocket_chat.py1# BSD 2-Clause License
LOWtests/test_plugin_d7networks.py1# BSD 2-Clause License
LOWtests/test_plugin_wechat.py1#
LOWtests/test_plugin_wechat.py21# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
LOWtests/test_plugin_wecombot.py1# BSD 2-Clause License
LOWtests/test_plugin_misskey.py1# BSD 2-Clause License
LOWtests/test_apprise_translations.py1# BSD 2-Clause License
LOWtests/test_plugin_nextcloud.py1# BSD 2-Clause License
LOWtests/test_plugin_bluesky.py1# BSD 2-Clause License
LOWtests/test_plugin_custom_xml.py1# BSD 2-Clause License
LOWtests/test_plugin_title_maxlen.py1# BSD 2-Clause License
LOWtests/test_plugin_macosx.py1# BSD 2-Clause License
LOWtests/test_plugin_windows.py1# BSD 2-Clause License
LOWtests/test_attach_base.py1# BSD 2-Clause License
LOWtests/test_apprise_emojis.py1# BSD 2-Clause License
LOWtests/test_plugin_nextcloudtalk.py1# BSD 2-Clause License
LOWtests/test_plugin_notifiarr.py1# BSD 2-Clause License
LOWtests/test_plugin_ses.py1# BSD 2-Clause License
LOWtests/test_plugin_exotel.py1# BSD 2-Clause License
LOWtests/test_plugin_streamlabs.py1# BSD 2-Clause License
LOWtests/conftest.py1# BSD 2-Clause License
LOWtests/test_notification_manager.py1# BSD 2-Clause License
LOWtests/test_plugin_pushjet.py1# BSD 2-Clause License
LOWtests/test_utils_pem.py1# BSD 2-Clause License
LOWtests/test_plugin_wxpusher.py1# BSD 2-Clause License
LOWtests/test_plugin_homeassistant.py1# BSD 2-Clause License
LOWtests/test_apprise_jsonencoder.py1# BSD 2-Clause License
LOWtests/test_plugin_resend.py1# BSD 2-Clause License
LOWtests/test_plugin_freemobile.py1# BSD 2-Clause License
LOWtests/test_plugin_pushme.py1# BSD 2-Clause License
LOWtests/test_plugin_syslog.py1# BSD 2-Clause License
LOWtests/test_utils_pgp.py1# BSD 2-Clause License
LOWtests/test_plugin_glib.py1# BSD 2-Clause License
LOWtests/test_plugin_glib.py161 """Simulate generic error in gio_iface.Notify()"""
LOWtests/test_plugin_sogs.py1# BSD 2-Clause License
LOWtests/test_plugin_lametric.py1# BSD 2-Clause License
LOWtests/test_plugin_feishu.py1# BSD 2-Clause License
LOWtests/test_plugin_qq.py1# BSD 2-Clause License
LOWtests/test_config_base.py1# BSD 2-Clause License
LOWtests/test_plugin_sfr.py1# BSD 2-Clause License
LOWtests/test_plugin_jira.py1# BSD 2-Clause License
LOWtests/test_plugin_serverchan.py1# BSD 2-Clause License
LOWtests/test_plugin_octopush.py1# BSD 2-Clause License
LOWtests/test_plugin_ringcentral.py1# BSD 2-Clause License
LOWtests/test_utils_wkd.py1# BSD 2-Clause License
601 more matches not shown…
Self-Referential Comments193 hits · 525 pts
SeverityFileLineSnippet
MEDIUMtests/test_attach_base.py71 # Create an object with no mimetype over-ride
MEDIUMtests/test_utils_pem.py64 # Create a PEM Controller
MEDIUMtests/test_utils_pem.py512 # Create a PEM Controller
MEDIUMtests/test_config_base.py1120# Define an Asset object if you wish (Optional)
MEDIUMtests/test_plugin_sfr.py234 # Create a mock response object
MEDIUMtests/test_plugin_sfr.py278 # Create a mock response object
MEDIUMtests/test_plugin_sfr.py324 # Create a mock response object
MEDIUMtests/test_plugin_sfr.py370 # Create a mock response object
MEDIUMtests/test_plugin_sfr.py405 # Create a mock response object
MEDIUMtests/test_plugin_sfr.py451 # Create a mock response object
MEDIUMtests/test_plugin_sfr.py540 # Create a mock response object
MEDIUMtests/test_plugin_sfr.py585 # Create a mock response object
MEDIUMtests/test_plugin_burstsms.py229 # Initialize our object
MEDIUMtests/test_config_file.py53 # Create an Apprise asset we can reference
MEDIUMtests/test_config_file.py56 # Initialize our object
MEDIUMtests/test_config_file.py113 # Initialize our object
MEDIUMtests/test_apprise_attachments.py404 # Create a base area to work within
MEDIUMtests/test_apprise_cli.py1092 # Create a config file we can source easily
MEDIUMtests/test_apprise_cli.py1096 # Define a second test URL that will
MEDIUMtests/test_apprise_cli.py1341 # Create a stale 8-char namespace on disk that belongs to a different
MEDIUMtests/test_apprise_cli.py1638 # Create a tmporary namespace
MEDIUMtests/test_apprise_cli.py1970 """This class is used to test various requirement configurations."""
MEDIUMtests/test_apprise_cli.py1993 """This class is used to test various requirement configurations."""
MEDIUMtests/test_apprise_cli.py2020 """This class is used to test various requirement configurations."""
MEDIUMtests/test_apprise_cli.py2043 """This class is used to test a case where our requirements is fixed to
MEDIUMtests/test_apprise_cli.py2061 """This class is used to test a case where only packages_recommended is
MEDIUMtests/test_apprise_cli.py2079 """This class is used to test a pre-disabled state."""
MEDIUMtests/test_apprise_cli.py2099 """This class is used to test a post-disabled state."""
MEDIUMtests/test_apprise_cli.py2123 """This class is just a simple enabled one."""
MEDIUMtests/test_apprise_config.py916 # Create a temporary config file
MEDIUMtests/test_apprise_config.py1003 # Create a base area to work within
MEDIUMtests/test_apprise_config.py133 # Create a ConfigBase object
MEDIUMtests/test_plugin_base_formatting.py89 # Create a large body and title with random data
MEDIUMtests/test_plugin_base_formatting.py320 # Create a large body and title with random data
MEDIUMtests/test_plugin_base_formatting.py553 # Create a large body and title with random data
MEDIUMtests/test_plugin_base_formatting.py1073 # Create a large body and title with random data
MEDIUMtests/test_plugin_base_formatting.py1675 # Create a large body and title with random data
MEDIUMtests/test_plugin_base_formatting.py2237 # Create a large body and title with random data
MEDIUMtests/test_plugin_base_formatting.py2686 # Create a large body and title with random data
MEDIUMtests/test_plugin_base_formatting.py3159 # Create a large body and title with random data
MEDIUMtests/test_plugin_twilio.py386 # Initialize our object
MEDIUMtests/test_apprise_utils.py3372 # Create a directory insde one of our namespaces
MEDIUMtests/test_plugin_email.py570 # Create a mock SMTP Object
MEDIUMtests/test_plugin_email.py835 # Create an apprise object to work with as well
MEDIUMtests/test_plugin_email.py2639 # Create a mock SMTP Object
MEDIUMtests/test_plugin_email.py3694 # Create a fake matching keyfile to trigger discovery
MEDIUMtests/test_decorator_notify.py60 # Define a function here on the spot
MEDIUMtests/test_decorator_notify.py278 # Define a function here on the spot
MEDIUMtests/test_decorator_notify.py308 # Define a function here on the spot
MEDIUMtests/test_decorator_notify.py543 # Define a function here on the spot
MEDIUMtests/test_plugin_xmpp.py4862 # Create a client using the production factory
MEDIUMtests/test_plugin_revolt.py461 # Create an apprise instance
MEDIUMtests/test_plugin_revolt.py496 # Create a large body and title with random data
MEDIUMtests/test_plugin_matrix.py2510 # Create a second account to act as recipient
MEDIUMtests/test_plugin_discord.py711 # Create an apprise instance
MEDIUMtests/test_plugin_discord.py794 # Create an apprise instance
MEDIUMtests/test_plugin_discord.py835 # Create an apprise instance
MEDIUMtests/test_plugin_discord.py874 # Create a large body and title with random data
MEDIUMtests/test_plugin_voipms.py243 # Initialize our object
MEDIUMtests/test_plugin_ntfy.py770 # Create a very, very big message
133 more matches not shown…
Cross-Language Confusion31 hits · 268 pts
SeverityFileLineSnippet
HIGHtests/test_utils_pgp.py577 # from_blob raise NameError (same as if the name were undefined)
HIGHtests/test_plugin_workflows.py249 "contentUrl": null,
HIGHtests/test_plugin_workflows.py415 "contentUrl": null,
HIGHtests/test_plugin_workflows.py531 "contentUrl": null,
HIGHtests/test_plugin_workflows.py604 "contentUrl": null,
HIGHapprise/plugins/messagebird.py224 # "reference": null,
HIGHapprise/plugins/messagebird.py240 # "validity": null,
HIGHapprise/plugins/messagebird.py246 # "scheduledDatetime": null,
HIGHapprise/plugins/bulksms.py358 # "body": null,
HIGHapprise/plugins/mastodon.py759 # "in_reply_to_id":null,
HIGHapprise/plugins/mastodon.py760 # "in_reply_to_account_id":null,
HIGHapprise/plugins/mastodon.py770 # "edited_at":null,
HIGHapprise/plugins/mastodon.py777 # "reblog":null,
HIGHapprise/plugins/mastodon.py815 # "remote_url":null,
HIGHapprise/plugins/mastodon.py816 # "preview_remote_url":null,
HIGHapprise/plugins/mastodon.py817 # "text_url":null,
HIGHapprise/plugins/mastodon.py832 # "description":null,
HIGHapprise/plugins/mastodon.py845 # "card":null,
HIGHapprise/plugins/pushover.py471 3. Compute HMAC-SHA256 over (IV || ciphertext) with the same key
HIGHapprise/plugins/pushover.py472 4. Return base64(IV || ciphertext || HMAC)
HIGHapprise/plugins/twist.py309 # "contact_info": null,
HIGHapprise/plugins/twist.py310 # "profession": null,
HIGHapprise/plugins/twist.py312 # "avatar_id": null,
HIGHapprise/plugins/twist.py319 # "snooze_dnd_end": null,
HIGHapprise/plugins/twist.py322 # "snooze_until": null,
HIGHapprise/plugins/twist.py326 # "away_mode": null,
HIGHapprise/plugins/twist.py347 # "snooze_dnd_start": null,
HIGHapprise/plugins/sogs.py340 SERVER_KEY || NONCE || TIMESTAMP || METHOD || PATH [|| HBODY]
HIGHapprise/plugins/seven.py242 # "label": null,
HIGHapprise/plugins/seven.py244 # "udh": null,
HIGHapprise/plugins/seven.py248 # "error": null,
Fake / Example Data114 hits · 110 pts
SeverityFileLineSnippet
LOWtests/test_plugin_ses.py375 "user@example.com",
LOWtests/test_plugin_ses.py394 "user@example.com",
LOWtests/test_plugin_ses.py494 "user@example.com",
LOWtests/test_plugin_resend.py229 NotifyResend(apikey=None, from_addr="user@example.com")
LOWtests/test_plugin_resend.py241 apikey="abcd", from_addr="user@example.com", targets="!invalid"
LOWtests/test_utils_pgp.py126 result = ctrl._fetch_wkd_key("user@example.com")
LOWtests/test_utils_pgp.py146 result = ctrl._fetch_wkd_key(None, "user@example.com")
LOWtests/test_utils_pgp.py149 mock_wkd.fetch.assert_called_once_with("user@example.com")
LOWtests/test_utils_pgp.py157 result = ctrl._fetch_wkd_key("user@example.com")
LOWtests/test_utils_pgp.py170 uid = pgpy.PGPUID.new("Test", email="user@example.com")
LOWtests/test_utils_pgp.py187 result = ctrl._fetch_wkd_key("user@example.com")
LOWtests/test_utils_pgp.py190 mock_wkd.fetch.assert_called_once_with("user@example.com")
LOWtests/test_utils_pgp.py195 result2 = ctrl._fetch_wkd_key("user@example.com")
LOWtests/test_utils_pgp.py239 result = ctrl._fetch_wkd_key("user@example.com")
LOWtests/test_utils_pgp.py241 mock_wkd.fetch.assert_called_once_with("user@example.com")
LOWtests/test_utils_pgp.py300 result = ctrl._fetch_wkd_key("user@example.com")
LOWtests/test_utils_pgp.py461 ctrl = ApprisePGPController(path=str(tmpdir), email="user@example.com")
LOWtests/test_utils_pgp.py797 ctrl = ApprisePGPController(path=str(tmpdir), email="user@example.com")
LOWtests/test_utils_pgp.py801 result = ctrl.public_key("user@example.com", autogen=False)
LOWtests/test_utils_pgp.py816 result = ctrl.public_key("user@example.com", autogen=False)
LOWtests/test_utils_pgp.py213 uid = pgpy.PGPUID.new("Fresh", email="user@example.com")
LOWtests/test_utils_pgp.py317 result = ctrl._fetch_wkd_key("user@example.com")
LOWtests/test_utils_wkd.py125 sub, direct = AppriseWKDController.wkd_urls("user@example.com")
LOWtests/test_utils_wkd.py325 result = ctrl.fetch("user@example.com")
LOWtests/test_utils_wkd.py355 result = ctrl.fetch("user@example.com")
LOWtests/test_utils_wkd.py373 result1 = ctrl.fetch("user@example.com")
LOWtests/test_utils_wkd.py374 result2 = ctrl.fetch("user@example.com")
LOWtests/test_utils_wkd.py390 result = ctrl.fetch("user@example.com")
LOWtests/test_utils_wkd.py405 ctrl._cache["user@example.com"] = {
LOWtests/test_utils_wkd.py410 result = ctrl.fetch("user@example.com")
LOWtests/test_utils_wkd.py147 sub_lower, dir_lower = AppriseWKDController.wkd_urls("user@example.com")
LOWtests/test_utils_wkd.py225 for bad in (123, 12.5, object(), ["user@example.com"]):
LOWtests/test_utils_wkd.py261 sub, direct = AppriseWKDController.wkd_urls(BrokenStr("user@example.com"))
LOWtests/test_utils_wkd.py343 result = ctrl.fetch("user@example.com")
LOWtests/test_utils_wkd.py446 for bad in (123, 12.5, object(), ["user@example.com"]):
LOWtests/test_plugin_office365.py72 aid="user@example.com",
LOWtests/test_plugin_office365.py242 aid="user@example.com",
LOWtests/test_plugin_office365.py259 aid="user@example.com",
LOWtests/test_plugin_office365.py277 aid="user@example.com",
LOWtests/test_plugin_office365.py292 aid="user@example.com",
LOWtests/test_plugin_office365.py1263 source="user@example.com",
LOWtests/test_apprise_utils.py605 assert unquote(result["qsd"]["from"]) == "test@test.com"
LOWtests/test_apprise_utils.py1159 assert unquote(result["qsd"]["from"]) == "test@test.com"
LOWtests/test_apprise_utils.py2135 results = utils.parse.parse_emails("user@example.com")
LOWtests/test_apprise_utils.py2138 assert "user@example.com" in results
LOWtests/test_plugin_sendgrid.py203 NotifySendGrid(apikey=None, from_email="user@example.com")
LOWtests/test_plugin_sendgrid.py215 apikey="abcd", from_email="user@example.com", targets="!invalid"
LOWtests/test_plugin_email.py2830 assert obj.pgp.public_keyfile("user@example.com").endswith(
LOWtests/test_plugin_email.py2839 assert obj.pgp.public_keyfile("user@example.com").endswith("user-pub.asc")
LOWtests/test_plugin_email.py2845 assert obj.pgp.public_keyfile("user@example.com").endswith("user-pub.asc")
LOWtests/test_plugin_email.py2851 assert obj.pgp.public_keyfile("user@example.com").endswith("user-pub.asc")
LOWtests/test_plugin_email.py2860 assert obj.pgp.public_keyfile("user@example.com").endswith(
LOWtests/test_plugin_email.py2864 assert obj.pgp.public_keyfile("user@example.com").endswith("chris-pub.asc")
LOWtests/test_plugin_email.py3626 from_addr=(None, "test@test.com"),
LOWtests/test_plugin_email.py3635 from_addr=(None, "test@test.com"),
LOWtests/test_plugin_email.py1735 assert obj.from_addr[1] == "user@example.com"
LOWtests/test_plugin_email.py1770 assert obj.from_addr[1] == "user@example.com"
LOWtests/test_plugin_email.py2813 assert obj.pgp.public_keyfile("user@example.com").endswith(
LOWtests/test_plugin_email.py2817 assert obj.pgp.public_keyfile("user@example.com").endswith(
LOWtests/test_plugin_email.py2555 assert ("John Doe", "john@yahoo.ca") in obj.targets
54 more matches not shown…
Deep Nesting118 hits · 104 pts
SeverityFileLineSnippet
LOWtests/test_plugin_email.py545
LOWtests/test_plugin_xmpp.py1967
LOWtests/test_plugin_xmpp.py2819
LOWtests/test_plugin_xmpp.py3468
LOWtests/test_plugin_growl.py128
LOWtests/test_api.py1784
LOWtests/test_api.py2191
LOWtests/helpers/rest.py338
LOWtests/helpers/module.py58
LOWapprise/asset.py242
LOWapprise/persistent_store.py126
LOWapprise/persistent_store.py930
LOWapprise/persistent_store.py1015
LOWapprise/persistent_store.py1409
LOWapprise/persistent_store.py1714
LOWapprise/conversion.py183
LOWapprise/apprise.py268
LOWapprise/apprise.py397
LOWapprise/apprise.py421
LOWapprise/apprise.py459
LOWapprise/apprise.py616
LOWapprise/apprise.py800
LOWapprise/apprise.py928
LOWapprise/apprise.py1088
LOWapprise/apprise.py1451
LOWapprise/apprise.py1546
LOWapprise/apprise.py1591
LOWapprise/url.py394
LOWapprise/url.py1020
LOWapprise/cli.py603
LOWapprise/cli.py258
LOWapprise/locale.py180
LOWapprise/apprise_attachment.py129
LOWapprise/manager.py125
LOWapprise/manager.py168
LOWapprise/manager.py315
LOWapprise/manager.py834
LOWapprise/config/http.py146
LOWapprise/config/base.py178
LOWapprise/config/base.py622
LOWapprise/config/base.py855
LOWapprise/plugins/apprise_api.py255
LOWapprise/plugins/ntfy.py434
LOWapprise/plugins/ntfy.py509
LOWapprise/plugins/one_signal.py366
LOWapprise/plugins/groupme.py169
LOWapprise/plugins/ses.py403
LOWapprise/plugins/kavenegar.py196
LOWapprise/plugins/whatsapp.py373
LOWapprise/plugins/opsgenie.py326
LOWapprise/plugins/opsgenie.py594
LOWapprise/plugins/office365.py547
LOWapprise/plugins/fluxer.py411
LOWapprise/plugins/fluxer.py562
LOWapprise/plugins/fluxer.py1031
LOWapprise/plugins/ringcentral.py524
LOWapprise/plugins/mastodon.py487
LOWapprise/plugins/mastodon.py873
LOWapprise/plugins/notificationapi.py261
LOWapprise/plugins/notificationapi.py662
58 more matches not shown…
Unused Imports90 hits · 79 pts
SeverityFileLineSnippet
LOWtests/test_plugin_irc_state.py30
LOWtests/test_utils_sanitize.py30
LOWtests/test_plugin_irc.py30
LOWtests/test_plugin_xmpp.py33
LOWtests/test_plugin_matrix.py2307
LOWtests/test_plugin_fluxer.py27
LOWtests/test_compat_py39.py30
LOWtests/helpers/__init__.py28
LOWtests/helpers/__init__.py29
LOWtests/helpers/__init__.py30
LOWtests/helpers/__init__.py31
LOWapprise/__init__.py39
LOWapprise/__init__.py39
LOWapprise/__init__.py40
LOWapprise/__init__.py41
LOWapprise/__init__.py42
LOWapprise/__init__.py43
LOWapprise/__init__.py44
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py45
LOWapprise/__init__.py64
LOWapprise/__init__.py65
LOWapprise/__init__.py68
LOWapprise/__init__.py68
LOWapprise/__init__.py68
LOWapprise/__init__.py69
LOWapprise/__init__.py70
LOWapprise/__init__.py71
LOWapprise/__init__.py72
LOWapprise/__init__.py73
LOWapprise/__init__.py74
LOWapprise/__init__.py75
LOWapprise/__init__.py75
LOWapprise/apprise.py28
LOWapprise/apprise_config.py28
LOWapprise/config/__init__.py30
LOWapprise/config/base.py27
LOWapprise/decorators/__init__.py28
LOWapprise/plugins/fluxer.py44
LOWapprise/plugins/notificationapi.py31
LOWapprise/plugins/discord.py45
LOWapprise/plugins/mattermost.py45
LOWapprise/plugins/fortysixelks.py36
LOWapprise/plugins/__init__.py31
LOWapprise/plugins/__init__.py31
30 more matches not shown…
Excessive Try-Catch Wrapping74 hits · 74 pts
SeverityFileLineSnippet
LOWtests/test_plugin_glib.py305 except Exception:
LOWtests/test_plugin_email.py706 except Exception:
LOWtests/test_plugin_email.py714 except Exception as e:
LOWtests/test_plugin_email.py723 except Exception as e:
LOWtests/test_plugin_xmpp.py66except Exception:
LOWtests/test_plugin_xmpp.py3510 except Exception:
LOWtests/test_plugin_growl.py364 except Exception as e:
LOWtests/test_plugin_growl.py372 except Exception as e:
LOWtests/helpers/rest.py204 except Exception as e:
LOWtests/helpers/rest.py722 except Exception:
LOWtests/helpers/rest.py730 except Exception as e:
LOWtests/helpers/rest.py770 except Exception:
LOWtests/helpers/rest.py778 except Exception as e:
LOWapprise/persistent_store.py529 except Exception as e:
LOWapprise/apprise.py228 except Exception:
LOWapprise/apprise.py788 except Exception:
LOWapprise/apprise.py1126 except Exception:
LOWapprise/apprise.py1230 except Exception:
LOWapprise/apprise.py1287 except Exception:
LOWapprise/apprise.py1342 except Exception:
LOWapprise/apprise_config.py435 except Exception:
LOWapprise/apprise_attachment.py295 except Exception:
LOWapprise/config/base.py307 except Exception as e:
LOWapprise/config/base.py838 except Exception as e:
LOWapprise/config/base.py1373 except Exception as e:
LOWapprise/decorators/base.py188 except Exception as e:
LOWapprise/plugins/dbus.py355 except Exception as e:
LOWapprise/plugins/dbus.py386 except Exception as e:
LOWapprise/plugins/pushover.py505 except Exception as err:
LOWapprise/plugins/pushover.py600 except Exception:
LOWapprise/plugins/aprs.py357 except Exception as e:
LOWapprise/plugins/aprs.py494 except Exception as e:
LOWapprise/plugins/aprs.py545 except Exception as e:
LOWapprise/plugins/smpp.py271 except Exception as e:
LOWapprise/plugins/gnome.py216 except Exception as e:
LOWapprise/plugins/gnome.py225 except Exception as e:
LOWapprise/plugins/glib.py312 except Exception as e:
LOWapprise/plugins/glib.py344 except Exception as e:
LOWapprise/plugins/streamlabs.py214 except Exception as e:
LOWapprise/plugins/streamlabs.py229 except Exception as e:
LOWapprise/plugins/windows.py198 except Exception as e:
LOWapprise/plugins/windows.py243 except Exception as e:
LOWapprise/plugins/dot.py403 except Exception as e:
MEDIUMapprise/plugins/xmpp/adapter.py523def _shutdown() -> None:
LOWapprise/plugins/xmpp/adapter.py241 except Exception:
LOWapprise/plugins/xmpp/adapter.py262 except Exception:
LOWapprise/plugins/xmpp/adapter.py325 except Exception:
LOWapprise/plugins/xmpp/adapter.py471 except Exception:
LOWapprise/plugins/xmpp/adapter.py503 except Exception:
LOWapprise/plugins/xmpp/adapter.py664 except Exception as e:
LOWapprise/plugins/xmpp/adapter.py696 except Exception as e: # pragma: no cover
LOWapprise/plugins/xmpp/adapter.py725 except Exception:
LOWapprise/plugins/xmpp/adapter.py848 except Exception as e: # pragma: no cover
LOWapprise/plugins/xmpp/adapter.py908 except Exception as e:
LOWapprise/plugins/xmpp/adapter.py926 except Exception:
LOWapprise/plugins/xmpp/adapter.py968 except Exception:
LOWapprise/plugins/xmpp/adapter.py979 except Exception as e:
LOWapprise/plugins/xmpp/adapter.py1040 except Exception as e:
LOWapprise/plugins/xmpp/base.py313 except Exception:
LOWapprise/plugins/matrix/e2ee.py197 except Exception:
14 more matches not shown…
AI Slop Vocabulary25 hits · 44 pts
SeverityFileLineSnippet
LOWtests/test_config_base.py1116# completely optional field. It's a good idea to just add this line because it
LOWtests/test_attach_http.py263 # Test case where location is simply set to INACCESSIBLE
LOWtests/test_attach_memory.py133 # Test case where location is simply set to INACCESSIBLE
MEDIUMtests/test_apprise_cli.py1668 # Generates another listing but utilize the tag
LOWtests/test_attach_file.py153 # Test case where location is simply set to INACCESSIBLE
MEDIUMtests/test_plugin_custom_json.py443 # This is rather confusing, it may be easier to leverage the
MEDIUMtests/test_plugin_sendpulse.py178 # leverage all get params from URL
MEDIUMtests/test_plugin_fcm.py833 # Verify that not a single call to the web escaped the test harness.
LOWtests/helpers/rest.py193 # just add `pdb': True to the call that is failing
MEDIUMtests/helpers/module.py133 # if we get here, we have test_ files that utilize the Class we just
LOWapprise/persistent_store.py1287 # For the below, we just set both cases and set them up as an
LOWapprise/apprise.py309 # Go ahead and just add our plugin into our list
LOWapprise/apprise.py322 # Go ahead and just add our plugin into our list
LOWapprise/apprise_config.py190 # Go ahead and just add our configuration into our list
LOWapprise/apprise_config.py208 # Go ahead and just add our configuration into our list
LOWapprise/plugins/ntfy.py687 # We will just use the status we already have.
LOWapprise/plugins/kavenegar.py272 # We will just use the status we already have.
LOWapprise/plugins/whatsapp.py526 # We will just use the status we already have.
LOWapprise/plugins/sinch.py369 # We will just use the status we already have.
LOWapprise/plugins/pushsafer.py305# at one time. When more are supported, just add their argument below
LOWapprise/plugins/d7networks.py299 # We will just use the status we already have.
LOWapprise/plugins/twilio.py472 # We will just use the status we already have.
LOWapprise/plugins/rocketchat.py739 # If no webhook is specified, then we just pass along as if nothing
LOWapprise/plugins/matrix/base.py1664 # not issue a redundant GET -- we just set the encryption state.
MEDIUMapprise/utils/sanitize.py82 # How many recursive lists/sets/tuples/dicts to delve into before
Verbosity Indicators14 hits · 27 pts
SeverityFileLineSnippet
LOWtests/test_plugin_bluesky.py902 # Step 1: Identity resolution response (public.api.bsky.app)
LOWtests/test_plugin_bluesky.py905 # Step 2: PLC Directory lookup
LOWtests/test_plugin_bluesky.py917 # Step 3: Auth session
LOWtests/test_plugin_bluesky.py920 # Step 4: Create post
LOWtests/test_plugin_glib.py72 # Step 2: Inject into sys.modules
LOWtests/test_plugin_glib.py76 # Step 3: Reload plugin with all mocks in place
LOWtests/test_plugin_glib.py320 # Step 1: Mock GI
LOWtests/test_plugin_glib.py330 # Step 2: Patch into sys.modules
LOWtests/test_plugin_glib.py334 # Step 3: Reload plugin to trigger branch
LOWtests/test_plugin_glib.py337 # Step 4: Confirm GdkPixbuf image support was not enabled
LOWtests/test_plugin_glib.py48 # Step 1: Fake gi and repository
LOWapprise/plugins/bluesky.py307 # Step 1: Acquire DID from bsky.app
LOWapprise/plugins/bluesky.py327 # Step 2: Use DID to find the PDS
LOWapprise/plugins/bluesky.py392 # Step 3: Send to correct endpoint
Redundant / Tautological Comments16 hits · 24 pts
SeverityFileLineSnippet
LOWtests/test_plugin_rsyslog.py103 # Set length to include title (for test)
LOWapprise/asset.py217 # Set storage to auto
LOWapprise/url.py325 # Set time to 'now' and no need to throttle
LOWapprise/plugins/sfr.py308 # Check if the request was successfull
LOWapprise/plugins/aprs.py389 # Check if we are connected
LOWapprise/plugins/aprs.py464 # Check if we are connected
LOWapprise/plugins/aprs.py517 # Check if we are connected
LOWapprise/plugins/__init__.py293 # Check if the mapped reference is a list; if it is, then
LOWapprise/plugins/twist.py178 # Check if it is valid
LOWapprise/plugins/threema.py177 # Check if an email was defined
LOWapprise/plugins/pushbullet.py250 # Check if an email was defined
LOWapprise/plugins/slack.py1597 # Verify if our token is a bot token or part of a webhook:
LOWapprise/plugins/vapid/subscription.py353 # Verify if we're dealing with a single element:
LOWapprise/plugins/matrix/base.py1449 # Check if it's a room id...
LOWapprise/plugins/matrix/base.py2777 # Read file bytes
LOWapprise/utils/cwe312.py76 # Verify if it is a hostname or not
Slop Phrases8 hits · 15 pts
SeverityFileLineSnippet
LOWtests/test_plugin_macosx.py231 # of a plugin, make sure to reload it.
LOWtests/test_plugin_macosx.py246 # of a plugin, make sure to reload it.
LOWtests/test_plugin_twitter.py679 # This test case submits two notifications, so make sure to provide two
MEDIUMtests/test_apprise_utils.py665 # It's worth noting that the hostname is an empty string and is NEVER set
LOWtests/test_plugin_gnome.py96 # of a plugin, make sure to reload it.
LOWtests/test_plugin_gnome.py378 # of a plugin, make sure to reload it.
MEDIUMapprise/config/base.py645 # Or you can use this format (no tags associated)
MEDIUMapprise/config/base.py648 # you can also use the keyword 'include' and identify a
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippet
HIGHapprise/plugins/base.py1176Parses the URL and returns it broken apart into a dictionary. This is very specific and customized for Apprise.