AI Slop Code RIsk Monitor

tonquer/picacg-qt

哔咔漫画, PicACG comic PC client(Windows, Linux, MacOS)

35.4 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for tonquer/picacg-qt, a Python project with 5,297 GitHub stars. SynthScan examined 68,490 lines of code across 300 source files, recording 2374 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 35.4 (High pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

35.4
Adjusted Signal
35.4
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
5.3K
Stars
Python
Language
68.5K
Lines of Code
300
Files
2.4K
Pattern Hits
2026-10-12
Scan Date
0.14
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 16.0/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 242 finding(s).

Hallucinated Dependency & Supply Chain Risk 70.5/100 · HIGH

Are imports declared and package/API names verified? 1838 finding(s).

Agent Over-Engineering Ratio 35.3/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 368 finding(s).

PR Review Velocity Impact 86.7/100 · CRITICAL

Which changes need focused human review? 2374 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 2HIGH 41MEDIUM 81LOW 2250

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 2374 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Unused Imports1835 hits · 1642 pts
SeverityFileLineSnippetContext
LOWsrc/start.py11CODE
LOWsrc/start.py50CODE
LOWsrc/start.py54CODE
LOWsrc/qt_owner.py1CODE
LOWsrc/qt_owner.py9CODE
LOWsrc/qt_owner.py12CODE
LOWsrc/qt_owner.py13CODE
LOWsrc/qt_owner.py16CODE
LOWsrc/qt_owner.py18CODE
LOWsrc/qt_owner.py21CODE
LOWsrc/qt_owner.py24CODE
LOWsrc/qt_owner.py27CODE
LOWsrc/qt_owner.py29CODE
LOWsrc/qt_owner.py31CODE
LOWsrc/qt_owner.py41CODE
LOWsrc/qt_owner.py44CODE
LOWsrc/qt_owner.py52CODE
LOWsrc/qt_owner.py53CODE
LOWsrc/qt_owner.py54CODE
LOWsrc/qt_owner.py55CODE
LOWsrc/qt_error.py1CODE
LOWsrc/interface/ui_game_info.py11CODE
LOWsrc/interface/ui_game_info.py11CODE
LOWsrc/interface/ui_game_info.py11CODE
LOWsrc/interface/ui_game_info.py11CODE
LOWsrc/interface/ui_game_info.py11CODE
LOWsrc/interface/ui_game_info.py11CODE
LOWsrc/interface/ui_game_info.py11CODE
LOWsrc/interface/ui_game_info.py11CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py14CODE
LOWsrc/interface/ui_game_info.py18CODE
LOWsrc/interface/ui_game_info.py18CODE
LOWsrc/interface/ui_game_info.py18CODE
LOWsrc/interface/ui_game_info.py24CODE
LOWsrc/interface/ui_main_windows.py11CODE
LOWsrc/interface/ui_main_windows.py11CODE
LOWsrc/interface/ui_main_windows.py11CODE
LOWsrc/interface/ui_main_windows.py11CODE
LOWsrc/interface/ui_main_windows.py11CODE
LOWsrc/interface/ui_main_windows.py11CODE
LOWsrc/interface/ui_main_windows.py11CODE
LOWsrc/interface/ui_main_windows.py11CODE
LOWsrc/interface/ui_main_windows.py11CODE
LOWsrc/interface/ui_main_windows.py14CODE
LOWsrc/interface/ui_main_windows.py14CODE
LOWsrc/interface/ui_main_windows.py14CODE
LOWsrc/interface/ui_main_windows.py14CODE
1775 more matches not shown…
Excessive Try-Catch Wrapping231 hits · 273 pts
SeverityFileLineSnippetContext
LOWsrc/start.py32except Exception as es:CODE
LOWsrc/start.py46except Exception as es:CODE
LOWsrc/start.py70 except Exception as es:CODE
LOWsrc/start.py105 except Exception as es:CODE
MEDIUMsrc/qt_owner.py499def SetFont():CODE
LOWsrc/qt_owner.py536 except Exception as es:CODE
LOWsrc/tools/user.py133 except Exception as es:CODE
LOWsrc/tools/user.py157 except Exception as es:CODE
LOWsrc/tools/user.py188 except Exception as es:CODE
LOWsrc/tools/user.py210 except Exception as es:CODE
MEDIUMsrc/tools/user.py113def LoginBack(self, backData):CODE
MEDIUMsrc/tools/user.py144def UpdateUserInfoBack(self, backData):CODE
MEDIUMsrc/tools/user.py171def RegisterBack(self, backData):CODE
MEDIUMsrc/tools/user.py192def UpdateFavoritesBack(self, backData):CODE
LOWsrc/tools/log.py100 except Exception:CODE
LOWsrc/tools/book.py102 except Exception as es:CODE
LOWsrc/tools/book.py122 except Exception as es:CODE
LOWsrc/tools/book.py214 except Exception as es:CODE
LOWsrc/tools/book.py281 except Exception as es:CODE
MEDIUMsrc/tools/tool.py188def ParseFromData(desc, src):CODE
MEDIUMsrc/tools/tool.py326def GetAnimationFormat(data):CODE
MEDIUMsrc/tools/tool.py379def GetCanUseData(data):CODE
MEDIUMsrc/tools/tool.py472def LoadCachePicture(filePath):CODE
MEDIUMsrc/tools/tool.py522def IsHaveFile(filePath):CODE
LOWsrc/tools/tool.py196 except Exception as es:CODE
LOWsrc/tools/tool.py338 except Exception as es:CODE
LOWsrc/tools/tool.py350 except Exception as es:CODE
LOWsrc/tools/tool.py374 except Exception as es:CODE
LOWsrc/tools/tool.py383 except Exception as es:CODE
LOWsrc/tools/tool.py402 except Exception as es:CODE
LOWsrc/tools/tool.py496 except Exception as es:CODE
LOWsrc/tools/tool.py527 except Exception as es:CODE
LOWsrc/tools/tool.py627 except Exception as es:CODE
LOWsrc/tools/tool.py776 except Exception:CODE
LOWsrc/config/global_config.py204 except Exception as es:CODE
LOWsrc/config/global_config.py217 except Exception as es:CODE
MEDIUMsrc/config/global_config.py190def LoadSetting():CODE
LOWsrc/config/setting.py57 except Exception as es:CODE
LOWsrc/component/widget/main_widget.py58 except Exception as es:CODE
LOWsrc/component/widget/comment_widget.py119 except Exception as es:CODE
LOWsrc/component/widget/comment_widget.py141 except Exception as es:CODE
LOWsrc/component/widget/comment_widget.py188 except Exception as es:CODE
LOWsrc/component/widget/comment_widget.py215 except Exception as es:CODE
MEDIUMsrc/component/widget/comment_widget.py131def JumpPage(self):CODE
MEDIUMsrc/component/widget/comment_widget.py156def GetCommnetBack(self, raw):CODE
MEDIUMsrc/component/widget/comment_widget.py200def SendCommentBack(self, raw):CODE
LOWsrc/component/widget/comment_item_widget.py113 except Exception as es:CODE
MEDIUMsrc/component/widget/comment_item_widget.py109def KillComment(self):CODE
LOWsrc/component/label/msg_label.py167 except Exception as ex:CODE
MEDIUMsrc/component/label/msg_label.py143def OpenPicture(self, path="."):CODE
LOWsrc/component/list/base_list_widget.py94 except Exception:CODE
MEDIUMsrc/server/server.py306def _SendAttempt(self, task, index):CODE
MEDIUMsrc/server/server.py476def _Download(self, task, index, session):CODE
LOWsrc/server/server.py186 except Exception as es:CODE
LOWsrc/server/server.py200 except Exception as es:CODE
LOWsrc/server/server.py244 except Exception as es:CODE
LOWsrc/server/server.py296 except Exception as es:CODE
LOWsrc/server/server.py358 except Exception as es:CODE
LOWsrc/server/server.py514 except Exception as es:CODE
LOWsrc/server/server.py523 except Exception as es:CODE
171 more matches not shown…
Cross-File Repetition34 hits · 170 pts
SeverityFileLineSnippetContext
HIGHsrc/component/widget/qframelesswindow/utils/__init__.py0resize window parameters ---------- window: qwidget window globalpos: qpoint the global point of mouse release eventSTRING
HIGH…component/widget/qframelesswindow/utils/win32_utils.py0resize window parameters ---------- window: qwidget window globalpos: qpoint the global point of mouse release eventSTRING
HIGH…c/component/widget/qframelesswindow/utils/mac_utils.py0resize window parameters ---------- window: qwidget window globalpos: qpoint the global point of mouse release eventSTRING
HIGHsrc/component/widget/qframelesswindow/utils/__init__.py0resize window parameters ---------- window: qwidget window globalpos: qpoint the global point of mouse release event edgSTRING
HIGH…component/widget/qframelesswindow/utils/win32_utils.py0resize window parameters ---------- window: qwidget window globalpos: qpoint the global point of mouse release event edgSTRING
HIGH…component/widget/qframelesswindow/utils/linux_utils.py0resize window parameters ---------- window: qwidget window globalpos: qpoint the global point of mouse release event edgSTRING
HIGH…c/component/widget/qframelesswindow/utils/mac_utils.py0resize window parameters ---------- window: qwidget window globalpos: qpoint the global point of mouse release event edgSTRING
HIGHsrc/component/widget/qframelesswindow/mac/__init__.py0set custom title bar parameters ---------- titlebar: titlebar title barSTRING
HIGHsrc/component/widget/qframelesswindow/linux/__init__.py0set custom title bar parameters ---------- titlebar: titlebar title barSTRING
HIGH…/component/widget/qframelesswindow/windows/__init__.py0set custom title bar parameters ---------- titlebar: titlebar title barSTRING
HIGH…component/widget/qframelesswindow/mac/window_effect.py0add the mica effect to the window (win11 only) parameters ---------- hwnd: int or `sip.voidptr` window handle isdarkmodeSTRING
HIGH…mponent/widget/qframelesswindow/linux/window_effect.py0add the mica effect to the window (win11 only) parameters ---------- hwnd: int or `sip.voidptr` window handle isdarkmodeSTRING
HIGH…onent/widget/qframelesswindow/windows/window_effect.py0add the mica effect to the window (win11 only) parameters ---------- hwnd: int or `sip.voidptr` window handle isdarkmodeSTRING
HIGH…component/widget/qframelesswindow/mac/window_effect.py0add the aero effect to the window parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…mponent/widget/qframelesswindow/linux/window_effect.py0add the aero effect to the window parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…onent/widget/qframelesswindow/windows/window_effect.py0add the aero effect to the window parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…component/widget/qframelesswindow/mac/window_effect.py0remove shadow from pop-up menu parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…mponent/widget/qframelesswindow/linux/window_effect.py0remove shadow from pop-up menu parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…onent/widget/qframelesswindow/windows/window_effect.py0remove shadow from pop-up menu parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…component/widget/qframelesswindow/mac/window_effect.py0remove dwm shadow from the window parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…mponent/widget/qframelesswindow/linux/window_effect.py0remove dwm shadow from the window parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…onent/widget/qframelesswindow/windows/window_effect.py0remove dwm shadow from the window parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…component/widget/qframelesswindow/mac/window_effect.py0enables the maximize and minimize animation of the window parameters ---------- hwnd : int or `sip.voidptr` window handlSTRING
HIGH…mponent/widget/qframelesswindow/linux/window_effect.py0enables the maximize and minimize animation of the window parameters ---------- hwnd : int or `sip.voidptr` window handlSTRING
HIGH…onent/widget/qframelesswindow/windows/window_effect.py0enables the maximize and minimize animation of the window parameters ---------- hwnd : int or `sip.voidptr` window handlSTRING
HIGH…component/widget/qframelesswindow/mac/window_effect.py0disable the maximize button of window parameters ---------- hwnd : int or `sip.voidptr` window handleSTRING
HIGH…mponent/widget/qframelesswindow/linux/window_effect.py0disable the maximize button of window parameters ---------- hwnd : int or `sip.voidptr` window handleSTRING
HIGH…onent/widget/qframelesswindow/windows/window_effect.py0disable the maximize button of window parameters ---------- hwnd : int or `sip.voidptr` window handleSTRING
HIGH…component/widget/qframelesswindow/mac/window_effect.py0enable the blur effect behind the whole client parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…mponent/widget/qframelesswindow/linux/window_effect.py0enable the blur effect behind the whole client parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGH…onent/widget/qframelesswindow/windows/window_effect.py0enable the blur effect behind the whole client parameters ---------- hwnd: int or `sip.voidptr` window handleSTRING
HIGHsrc/view/fried/qt_fried_msg.py0# background:transparent; # border:2px solid red; #STRING
HIGHsrc/view/chat/chat_msg_widget.py0# background:transparent; # border:2px solid red; #STRING
HIGHsrc/view/chat_new/chat_new_msg_widget.py0# background:transparent; # border:2px solid red; #STRING
Deep Nesting105 hits · 96 pts
SeverityFileLineSnippetContext
LOWtests/test_http.py73CODE
LOWtests/test_http.py83CODE
LOWtests/test_tasks.py71CODE
LOWtests/test_settings.py47CODE
LOWtests/test_settings.py247CODE
LOWscript/build_universal2.py13CODE
LOWsrc/qt_owner.py499CODE
LOWsrc/tools/user.py113CODE
LOWsrc/tools/user.py171CODE
LOWsrc/tools/langconv.py114CODE
LOWsrc/tools/book.py106CODE
LOWsrc/tools/tool.py200CODE
LOWsrc/tools/tool.py343CODE
LOWsrc/tools/tool.py445CODE
LOWsrc/tools/tool.py472CODE
LOWsrc/config/global_config.py190CODE
LOWsrc/component/scroll/read_scroll.py269CODE
LOWsrc/component/scroll/smooth_scroll.py95CODE
LOWsrc/component/widget/comment_widget.py156CODE
LOWsrc/component/widget/comment_item_widget.py87CODE
LOWsrc/component/widget/qframelesswindow/linux/__init__.py53CODE
LOW…/component/widget/qframelesswindow/windows/__init__.py75CODE
LOWsrc/component/widget/windows/frame_less_widget.py84CODE
LOWsrc/component/widget/windows/frame_less_widget.py201CODE
LOWsrc/component/widget/windows/frame_less_widget.py223CODE
LOWsrc/component/label/msg_label.py143CODE
LOWsrc/component/line_edit/search_line_edit.py149CODE
LOWsrc/component/line_edit/tip_line_edit.py58CODE
LOWsrc/component/list/comic_list_widget.py101CODE
LOWsrc/component/list/comic_list_widget.py451CODE
LOWsrc/component/list/category_list_widget.py32CODE
LOWsrc/server/server.py176CODE
LOWsrc/server/server.py190CODE
LOWsrc/server/server.py234CODE
LOWsrc/server/server.py257CODE
LOWsrc/server/server.py306CODE
LOWsrc/server/server.py476CODE
LOWsrc/server/sql_server.py94CODE
LOWsrc/server/sql_server.py275CODE
LOWsrc/server/user_handler.py236CODE
LOWsrc/server/req.py99CODE
LOWsrc/server/req.py118CODE
LOWsrc/task/task_download.py106CODE
LOWsrc/task/task_download.py185CODE
LOWsrc/task/task_cache.py235CODE
LOWsrc/task/task_cache.py382CODE
LOWsrc/task/task_upload.py177CODE
LOWsrc/task/upload_webdav.py129CODE
LOWsrc/task/qt_task.py201CODE
LOWsrc/task/task_local.py201CODE
LOWsrc/task/task_local.py277CODE
LOWsrc/task/task_local.py365CODE
LOWsrc/task/task_local.py404CODE
LOWsrc/task/task_local.py484CODE
LOWsrc/task/task_local.py563CODE
LOWsrc/task/upload_smbv3.py104CODE
LOWsrc/task/upload_smbv3.py144CODE
LOWsrc/task/task_waifu2x.py59CODE
LOWsrc/task/task_waifu2x.py149CODE
LOWsrc/view/fried/qt_fried_msg.py104CODE
45 more matches not shown…
Hyper-Verbose Identifiers67 hits · 74 pts
SeverityFileLineSnippetContext
LOWtests/test_pagination.py109 def test_page_count_boundaries(self):CODE
LOWtests/test_pagination.py115 def test_search_count_and_facets_share_base_conditions(self):CODE
LOWtests/test_pagination.py128 def test_search_stable_pages_and_old_schema(self):CODE
LOWtests/test_pagination.py139 def test_search_receives_rows_and_count_in_one_page_result(self):CODE
LOWtests/test_pagination.py169 def test_search_failure_releases_page_lock_and_facets_use_full_query(self):CODE
LOWtests/test_pagination.py184 def test_search_does_not_request_more_pages_while_inserting_rows(self):CODE
LOWtests/test_pagination.py195 def test_both_scroll_inputs_guard_loading_last_page_and_retry(self):CODE
LOWtests/test_pagination.py211 def test_favorite_filter_count_page_size_and_query_reset(self):CODE
LOWtests/test_pagination.py224 def test_favorite_global_metric_sort_snapshot_and_missing_rows(self):CODE
LOWtests/test_pagination.py244 def test_favorite_all_local_sorts_are_global_before_limit(self):CODE
LOWtests/test_pagination.py252 def test_history_and_local_book_exact_pages_and_shrink(self):CODE
LOWtests/test_http.py34 def test_retry_success_replaces_error_and_returns_response(self):CODE
LOW⚡tests/test_http.py50 def test_failure_exhausts_budget_and_notifies_once(self):CODE
LOW⚡tests/test_http.py59 def test_zero_retries_attempts_once(self):CODE
LOW⚡tests/test_http.py66 def test_first_success_does_not_retry(self):CODE
LOW⚡tests/test_http.py73 def test_http_methods_forward_request_timeout(self):CODE
LOW⚡tests/test_http.py83 def test_timeout_is_preserved_for_download_and_speed_tasks(self):CODE
LOWtests/test_http.py95 def test_offline_notifies_once_without_transport(self):CODE
LOW⚡tests/test_queries.py52 def test_query_keeps_phrase_required_and_excluded_word_semantics(self):CODE
LOW⚡tests/test_queries.py59 def test_parameterized_and_legacy_queries_round_trip_quotes_and_question_marks(self):CODE
LOW⚡tests/test_queries.py68 def test_count_facets_and_rows_keep_one_base_filter(self):CODE
LOWtests/test_queries.py79 def test_projection_and_named_mapping_support_old_database_and_metrics(self):CODE
LOW⚡tests/test_queries.py91 def test_mapping_retains_unknown_metrics_and_defaults_other_nulls(self):CODE
LOW⚡tests/test_queries.py99 def test_legacy_import_and_pickle_still_resolve_db_book(self):CODE
LOW⚡tests/test_queries.py109 def test_favorite_statement_preserves_folder_and_search_columns(self):CODE
LOWtests/test_queries.py121 def test_page_result_preserves_local_size_and_remote_page_metadata(self):CODE
LOWtests/test_queries.py141 def test_real_worker_emits_one_serializable_page_result(self):CODE
LOWtests/test_queries.py152 def test_real_worker_page_error_notifies_once_and_continues(self):CODE
LOWtests/test_queries.py165 def test_real_worker_page_mapping_without_share_id(self):CODE
LOWtests/test_queries.py181 def test_failure_and_malformed_response_retry_same_page(self):CODE
LOWtests/test_tasks.py71 def test_terminal_callbacks_are_consumed_once_even_on_callback_error(self):CODE
LOWtests/test_tasks.py88 def test_absent_callbacks_and_cancelled_results_do_not_leak(self):CODE
LOWtests/test_tasks.py102 def test_callback_can_register_new_task_under_same_owner(self):CODE
LOWtests/test_tasks.py113 def test_concurrent_registration_and_flag_cancellation(self):CODE
LOWtests/test_tasks.py130 def test_dispatch_errors_remove_new_registration(self):CODE
LOWtests/test_tasks.py146 def test_invalid_pickle_does_not_keep_terminal_task(self):CODE
LOWtests/test_tasks.py156 def test_sql_failure_none_and_success_payloads_keep_callback_signature(self):CODE
LOWtests/test_tasks.py167 def test_local_progress_stays_registered_until_terminal(self):CODE
LOWtests/test_tasks.py180 def test_local_read_and_scan_error_emit_terminal(self):CODE
LOWtests/test_tasks.py195 def test_download_progress_terminal_and_metadata_handoff(self):CODE
LOWtests/test_tasks.py218 def test_download_save_error_and_metadata_error_finish(self):CODE
LOWtests/test_tasks.py232 def test_qimage_empty_input_keeps_worker_available(self):CODE
LOWtests/test_tasks.py246 def test_upload_unexpected_error_finishes_and_queue_continues(self):CODE
LOWtests/test_tasks.py257 def test_waifu_cancellation_preserves_backend_operations(self):CODE
LOWtests/test_tasks.py272 def test_nas_pause_cancels_item_tasks_and_ignores_late_upload_result(self):CODE
LOWtests/test_tasks.py367 def test_sql_success_payloads_and_committed_write_acknowledgements(self):CODE
LOWtests/test_tasks.py407 def test_sql_errors_notify_once_and_do_not_stop_following_tasks(self):CODE
LOWtests/test_tasks.py424 def test_missing_database_uses_type_appropriate_failure_payloads(self):CODE
LOWtests/test_tasks.py438 def test_failed_writes_rollback_before_error_callback(self):CODE
LOWtests/test_tasks.py455 def test_failed_version_query_does_not_change_update_watermark(self):CODE
LOW⚡tests/test_release_metadata.py14 def test_tag_uses_triggering_ref(self):CODE
LOW⚡tests/test_release_metadata.py18 def test_manual_build_is_development_even_on_tag(self):CODE
LOW⚡tests/test_release_metadata.py24 def test_branch_push_is_not_a_release(self):CODE
LOW⚡tests/test_release_metadata.py27 def test_writes_github_output_without_replacing_existing_values(self):CODE
LOWtests/test_settings.py25 def test_false_values_are_not_replaced_by_defaults(self):CODE
LOWtests/test_settings.py35 def test_qsettings_strings_and_invalid_numbers(self):CODE
LOWtests/test_settings.py47 def test_real_ini_round_trip_and_restart_semantics(self):CODE
LOWtests/test_settings.py140 def test_checkboxes_keep_pending_values_on_reentry(self):CODE
LOWtests/test_settings.py162 def test_numeric_controls_preserve_types_and_loaded_limits(self):CODE
LOWtests/test_settings.py184 def test_combo_boxes_keep_wire_values_and_pending_choices(self):CODE
7 more matches not shown…
Over-Commented Block61 hits · 60 pts
SeverityFileLineSnippetContext
LOW.github/workflows/release.yml181 7z x book.zipCOMMENT
LOWsrc/qt_owner.py541 #COMMENT
LOWsrc/tools/user.py61 # def InitBack(self, backData):COMMENT
LOWsrc/tools/user.py81 # Log.Info("初始化失败, info:{}".format(backData.res))COMMENT
LOWsrc/tools/book.py201 # nextPage = page + 1COMMENT
LOWsrc/tools/book.py261 ToolUtil.ParseFromData(picInfo, data['media'])COMMENT
LOWsrc/tools/book.py281 except Exception as es:COMMENT
LOWsrc/tools/tool.py401 return dataCOMMENT
LOWsrc/component/scroll/read_scroll.py141 # self.ani.setDuration(time)COMMENT
LOWsrc/component/scroll/smooth_scroll.py21 self.stepsLeftQueue = deque()COMMENT
LOWsrc/component/scroll/smooth_scroll.py41 # # 计算步数COMMENT
LOWsrc/component/widget/windows/frame_less_widget.py81 # self.style().drawPrimitive(QStyle.PE_Widget, option, painter, self)COMMENT
LOWsrc/component/widget/windows/frame_less_widget.py101 #COMMENT
LOWsrc/component/label/auto_picture_label.py21 return self.pixmap().height() / max(1, self.pixmap().devicePixelRatioF())COMMENT
LOWsrc/component/label/auto_picture_label.py81COMMENT
LOWsrc/component/dialog/base_mask_dialog.py81 # opacityAni.finished.connect(self.deleteLater)COMMENT
LOWsrc/server/server.py21import socketCOMMENT
LOWsrc/server/server.py41 def generator(handler):COMMENT
LOWsrc/server/server.py101 self._speedQueue = Queue()COMMENT
LOWsrc/server/server.py141 thread = threading.Thread(target=self.RunSpeed, args=[i])COMMENT
LOWsrc/server/server.py161 #COMMENT
LOWsrc/server/server.py201 Log.Error(es)COMMENT
LOWsrc/server/server.py381 if task.req.cookies:COMMENT
LOWsrc/server/server.py441 cookies=task.req.cookies, json=task.req.json)COMMENT
LOWsrc/server/req.py201 url = config.Url + "auth/sign-in"COMMENT
LOWsrc/view/chat/chat_msg_widget.py41 self.replayLabel.setTextInteractionFlags(Qt.TextSelectableByMouse)COMMENT
LOWsrc/view/nas/nas_view.py281 # self.listWidget.clear()COMMENT
LOWsrc/view/read/read_graphics.py101 self.initReadMode = NoneCOMMENT
LOWsrc/view/read/read_graphics.py261 # # self.GetScrollBar().SetChangeState(True)COMMENT
LOWsrc/view/read/read_graphics.py721 # TODO,优化COMMENT
LOWsrc/view/read/read_graphics.py781 pictureHeight = self.graphicsItem1.height() // self.graphicsItem1.devicePixelRatio() * self.devicePixelRatioCOMMENT
LOWsrc/view/read/read_graphics.py801 # oldHeight, oldWidth = self.LabelToPixmap(index)COMMENT
LOWsrc/view/read/read_graphics.py841 # if curPixcurSize <= oldValue:COMMENT
LOWsrc/view/read/read_graphics.py961 if self.scaleCnt == 0:COMMENT
LOWsrc/view/read/read_graphics.py1001 passCOMMENT
LOWsrc/view/read/read_tool.py561 self.ScalePicture2(100)COMMENT
LOWsrc/view/read/read_tool.py581 # properties = QScroller.scroller(self.readImg.scrollArea).scrollerProperties()COMMENT
LOWsrc/view/read/read_view.py541 # p = self.pictureData.get(index)COMMENT
LOWsrc/view/read/read_view.py561 # if p.waifuData:COMMENT
LOWsrc/view/read/read_qgraphics_proxy_widget.py101 # returnCOMMENT
LOWsrc/view/user/login_proxy_new_widget.py301 Setting.ApiTimeOut.SetValue(self.owner.apiTimeout.currentIndex())COMMENT
LOWsrc/view/user/login_proxy_new_widget.py361 def OpenUrl(self):COMMENT
LOWsrc/view/user/local_favorite_db.py161 format(fid, bookId)COMMENT
LOWsrc/view/search/search_view.py421 QtOwner().ShowError(Str.GetStr(Str.Error))COMMENT
LOWsrc/view/search/search_view.py441 # data.append(widget.text())COMMENT
LOWsrc/view/search/search_view.py501COMMENT
LOWsrc/view/info/book_info_view.py661 self.lastIndex = info.picIndexCOMMENT
LOWsrc/view/download/download_item.py301 return self.ConvertingCOMMENT
LOWsrc/view/chat_new/chat_new_room_widget.py181 # self.LoginRoom()COMMENT
LOWsrc/view/chat_new/chat_new_room_widget.py241 # self._UpdateOnline(data[1])COMMENT
LOWsrc/view/chat_new/chat_new_msg_widget.py41 self.picLabel.setScaledContents(True)COMMENT
LOWsrc/view/chat_new/chat_new_msg_widget.py61 # self.commentLabel.setFont(font)COMMENT
LOWsrc/view/setting/setting_view.py321 # if not QtOwner().backSock:COMMENT
LOWsrc/view/main/main_view.py141 # def event(self, ev):COMMENT
LOWsrc/view/main/main_view.py401 QtOwner().app.setQuitOnLastWindowClosed(False)COMMENT
LOWsrc/view/main/main_view.py461 # if sys.platform == 'darwin':COMMENT
LOWsrc/view/help/help_view.py401 # self.maxFetchLaterPage = fetchPageCOMMENT
LOWsrc/view/tool/waifu2x_tool_view.py121 self.modelName.setEnabled(True)COMMENT
LOWsrc/view/tool/waifu2x_tool_view.py181 self.graphicsItem.pixmap().height() // self.graphicsCOMMENT
LOWsrc/view/tool/waifu2x_tool_view.py201 # if width <= 0 or height <= 0:COMMENT
1 more matches not shown…
Dead Code23 hits · 41 pts
SeverityFileLineSnippetContext
MEDIUMsrc/tools/tool.py143CODE
MEDIUMsrc/tools/tool.py144CODE
MEDIUMsrc/tools/tool.py147CODE
MEDIUMsrc/tools/tool.py149CODE
MEDIUMsrc/tools/tool.py151CODE
MEDIUMsrc/tools/tool.py153CODE
MEDIUMsrc/tools/tool.py155CODE
MEDIUMsrc/tools/tool.py157CODE
MEDIUMsrc/tools/tool.py159CODE
MEDIUMsrc/tools/tool.py161CODE
MEDIUMsrc/tools/tool.py163CODE
MEDIUMsrc/tools/tool.py165CODE
MEDIUMsrc/tools/tool.py167CODE
MEDIUMsrc/tools/tool.py169CODE
MEDIUMsrc/tools/tool.py171CODE
MEDIUMsrc/tools/tool.py173CODE
MEDIUMsrc/tools/tool.py175CODE
MEDIUMsrc/tools/tool.py177CODE
MEDIUMsrc/tools/tool.py178CODE
MEDIUMsrc/view/read/read_graphics.py956CODE
MEDIUMsrc/view/read/read_graphics.py961CODE
MEDIUMsrc/view/read/read_graphics.py964CODE
MEDIUMsrc/view/read/read_graphics.py981CODE
Empty Error Handlers6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHsrc/start.py46except Exception as es:CODE
HIGHsrc/tools/langconv.py9except:CODE
HIGHsrc/tools/tool.py776except Exception:CODE
HIGHsrc/server/user_handler.py457except Exception as es:CODE
HIGHsrc/server/user_handler.py475except Exception as es:CODE
HIGHsrc/server/user_handler.py493except Exception as es:CODE
Hallucination Indicators2 hits · 25 pts
SeverityFileLineSnippetContext
CRITICALsrc/view/main/main_view.py233 # self.qtReadImg.frame.qtTool.checkBox.setEnabled(False)COMMENT
CRITICALsrc/view/main/main_view.py262 self.readView.frame.qtTool.checkBox.setEnabled(False)CODE
AI Structural Patterns7 hits · 7 pts
SeverityFileLineSnippetContext
LOWsrc/component/list/comic_list_widget.py344CODE
LOWsrc/task/task_download.py80CODE
LOWsrc/task/task_download.py156CODE
LOWsrc/task/qt_task.py61CODE
LOWsrc/task/qt_task.py78CODE
LOWsrc/view/read/read_tool.py280CODE
LOWsrc/view/tool/waifu2x_tool_view.py454CODE
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGH…/widget/qframelesswindow/titlebar/title_bar_buttons.py222 for i in range(pathNodes.length()):CODE
Slop Phrases2 hits · 1 pts
SeverityFileLineSnippetContext
LOWsrc/component/widget/qframelesswindow/demo.py52 # don't forget to call the resizeEvent() of super classSTRING
LOWsrc/component/widget/qframelesswindow/demo.py52 # don't forget to call the resizeEvent() of super classSTRING