基于 manga-image-translator 的开源漫画翻译工具。支持日/韩/美漫自动翻译,内置 OpenAI、Gemini 等 5 种翻译引擎,并提供可视化编辑器自由调整文本样式。一键安装,开箱即用。如果喜欢,欢迎点亮 ⭐ Star 支持!
This report presents the forensic synthetic code analysis of hgmzhn/manga-translator-ui, a Python project with 2,486 GitHub stars. SynthScan v2.0 examined 270,140 lines of code across 907 source files, recording 4066 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 17.6 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 4066 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/build_packages.py | 86 | def write_runtime_version_file(self, dist_dir, app_version): | CODE |
| LOW | packaging/launch.py | 76 | def is_official_pytorch_index_url(url): | CODE |
| LOW | packaging/launch.py | 100 | def get_pytorch_index_candidates(primary_index_url): | CODE |
| LOW | packaging/launch.py | 440 | def is_pytorch_source_package(pkg_name): | CODE |
| LOW | packaging/launch.py | 472 | def run_pip_packages_fallback(packages, primary_index_url, desc=None): | CODE |
| LOW | packaging/launch.py | 635 | def ensure_git_safe_directory(): | CODE |
| LOW | packaging/launch.py | 746 | def check_nvidia_cuda_version(): | CODE |
| LOW | packaging/launch.py | 1125 | def print_supported_amd_gpu_types(): | CODE |
| LOW | packaging/launch.py | 1136 | def choose_when_amd_unsupported(): | CODE |
| LOW | packaging/launch.py | 1165 | def detect_installed_pytorch_version(): | CODE |
| LOW | packaging/launch.py | 1237 | def repair_broken_pytorch_runtime(pytorch_type, detail, *, allow_reinstall=True): | CODE |
| LOW | packaging/launch.py | 1295 | def ensure_pytorch_runtime_ready(): | CODE |
| LOW | packaging/launch.py | 2107 | def git_fetch_with_mirror_prompt(fetch_args=None, desc=None): | CODE |
| LOW | packaging/launch.py | 2425 | def update_dependencies_selective(args, missing_packages): | CODE |
| LOW | packaging/launch.py | 2723 | def update_runtime_dependencies(args, req_file, missing_packages): | CODE |
| LOW | packaging/launch.py | 1220 | def get_requirements_file_from_env(): | STRING |
| LOW⚡ | packaging/build_utils/package_checker.py | 186 | def get_missing_packages_from_file(requirements_file: str) -> List[str]: | CODE |
| LOW | test/test_combo_popup_lifetime.py | 11 | def test_stop_popup_animation_tolerates_deleted_qt_animation(): | CODE |
| LOW | test/editor_region_regressions.py | 15 | def test_async_region_update_uses_region_id_on_main_thread() -> None: | CODE |
| LOW | test/editor_region_regressions.py | 72 | def test_legacy_white_frame_is_normalized_to_render_box() -> None: | CODE |
| LOW | test/test_mask_refinement_split.py | 24 | def test_textline_straddling_rearrange_seam_is_assigned_to_both_stripes(): | CODE |
| LOW | test/test_mask_refinement_split.py | 40 | def test_seam_textline_is_reconstructed_from_an_uncut_context_crop(monkeypatch): | CODE |
| LOW | test/test_editor_export_executor.py | 66 | def test_serial_executor_keeps_only_latest_pending_auto_export(): | CODE |
| LOW | test/test_editor_export_executor.py | 101 | def test_different_images_run_fifo_with_single_concurrency(): | CODE |
| LOW | test/test_editor_export_executor.py | 136 | def test_failed_job_does_not_block_the_next_export(): | CODE |
| LOW | test/test_editor_export_executor.py | 162 | def test_shutdown_drains_all_accepted_exports(): | CODE |
| LOW | test/test_code_scanning_security.py | 29 | def test_remote_image_urls_are_rejected_without_fetching(): | CODE |
| LOW | test/test_code_scanning_security.py | 38 | def test_data_uri_and_shared_json_image_round_trip(): | CODE |
| LOW | test/test_code_scanning_security.py | 60 | def test_api_key_status_fingerprint_is_keyed_and_stable(): | CODE |
| LOW | test/test_code_scanning_security.py | 69 | def test_resolve_path_within_rejects_traversal(): | CODE |
| LOW | test/test_code_scanning_security.py | 82 | def test_hq_regex_fallback_handles_escaped_quotes(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 21 | def test_clear_document_cache_removes_previous_page_state(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 73 | def invalidate_inpaint_requests(self): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 100 | def _update_undo_redo_buttons(): | CODE |
| LOW | test/test_editor_inpaint_cache_reset.py | 108 | def test_loading_snapshot_resets_inpaint_cache_before_applying_document(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 33 | def test_inject_space_units_flat_siblings(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 41 | def test_inject_space_units_nested_lca_placement(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 50 | def test_inject_space_units_leading_trailing_and_runs(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 56 | def test_inject_space_units_no_space_passthrough(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 63 | def test_inject_space_units_merged_entity_token(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 71 | def test_inject_space_units_mismatch_returns_none(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 76 | def test_space_unit_is_structural_break(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 84 | def test_suffix_not_attached_across_space(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 93 | def test_merge_lines_to_target_segments_returns_all_partitions(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 106 | def test_penalty_allows_space_dropped_at_break(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 110 | def test_penalty_exact_match_no_break(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 114 | def test_penalty_keeps_inline_space(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 118 | def test_penalty_rejects_space_dropped_without_break(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 122 | def test_penalty_rejects_tampered_content(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 128 | def test_penalty_plain_chinese_regression(): | CODE |
| LOW⚡ | test/test_chinese_linebreak_spaces.py | 145 | def test_semantic_units_mixed_text_no_fallback(): | CODE |
| LOW | test/test_chinese_linebreak_spaces.py | 158 | def test_semantic_units_pure_chinese_regression(): | CODE |
| LOW | test/test_chinese_linebreak_spaces.py | 187 | def test_layout_pure_chinese_roundtrip(): | CODE |
| LOW | test/test_editor_file_dialog_paths.py | 34 | def test_open_and_add_files_persists_selected_file_directory(monkeypatch): | CODE |
| LOW | test/test_editor_file_dialog_paths.py | 56 | def test_open_and_add_folder_persists_first_selected_directory(monkeypatch): | CODE |
| LOW | test/test_state_manager.py | 8 | def test_signal_callback_does_not_hold_state_lock(): | CODE |
| LOW | test/test_br_single_region_cleanup.py | 40 | def test_single_region_br_cleaned_even_when_check_disabled(): | CODE |
| LOW⚡ | test/test_br_single_region_cleanup.py | 51 | def test_single_region_all_br_variants_cleaned(): | CODE |
| LOW⚡ | test/test_br_single_region_cleanup.py | 61 | def test_multi_line_region_br_preserved(): | CODE |
| LOW⚡ | test/test_br_single_region_cleanup.py | 71 | def test_mixed_single_and_multi_region(): | CODE |
| 1328 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packaging/launch.py | 124 | # ============================================================ | COMMENT |
| MEDIUM | packaging/launch.py | 127 | # ============================================================ | COMMENT |
| MEDIUM⚡ | packaging/launch.py | 1934 | # ============================================================ | STRING |
| MEDIUM⚡ | packaging/launch.py | 1936 | # ============================================================ | STRING |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 28 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 30 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 101 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 103 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 133 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_chinese_linebreak_spaces.py | 135 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 289 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 291 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 429 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 431 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 439 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | test/test_rich_text_editing.py | 441 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | test/test_rich_text_rendering.py | 1359 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | test/test_rich_text_rendering.py | 1361 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | manga_translator/translators/common.py | 205 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/translators/common.py | 207 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/translators/common.py | 530 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/translators/common.py | 532 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/config_manager.py | 339 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/config_manager.py | 341 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/core/config_manager.py | 382 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/core/config_manager.py | 384 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/config_manager.py | 436 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/config_manager.py | 438 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | …ga_translator/server/core/config_management_service.py | 109 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | …ga_translator/server/core/config_management_service.py | 111 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | …ga_translator/server/core/config_management_service.py | 465 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | …ga_translator/server/core/config_management_service.py | 467 | # ======================================================================== | COMMENT |
| MEDIUM | …ga_translator/server/core/config_management_service.py | 254 | # ======================================================================== | COMMENT |
| MEDIUM | …ga_translator/server/core/config_management_service.py | 256 | # ======================================================================== | COMMENT |
| MEDIUM | manga_translator/server/core/cleanup_service.py | 222 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/cleanup_service.py | 224 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/task_manager.py | 277 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/core/task_manager.py | 279 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/files.py | 32 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/files.py | 34 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/files.py | 83 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/files.py | 85 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/web.py | 26 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/web.py | 28 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/web.py | 68 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/web.py | 70 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 583 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 585 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 803 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 805 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 985 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | manga_translator/server/routes/config.py | 987 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 197 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 199 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 874 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 876 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 1003 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/config.py | 1005 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/audit.py | 24 | # ============================================================================ | COMMENT |
| MEDIUM | manga_translator/server/routes/audit.py | 26 | # ============================================================================ | COMMENT |
| 341 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | packaging/build_packages.py | 41 | except Exception as e: | CODE |
| MEDIUM⚡ | packaging/build_packages.py | 44 | print(f"Error executing command: {e}") | CODE |
| MEDIUM⚡ | packaging/build_packages.py | 46 | print(f"Error executing command (ascii representation): {repr(e)}") | CODE |
| MEDIUM | packaging/build_packages.py | 117 | print(f"Error: Spec file '{spec_file}' not found.") | CODE |
| MEDIUM | packaging/launch.py | 1950 | def load_maint_config(): | CODE |
| MEDIUM | packaging/launch.py | 1959 | def save_maint_config(**updates): | CODE |
| LOW⚡ | packaging/launch.py | 895 | except Exception: | CODE |
| LOW⚡ | packaging/launch.py | 903 | except Exception: | CODE |
| LOW⚡ | packaging/launch.py | 911 | except Exception: | CODE |
| LOW⚡ | packaging/launch.py | 919 | except Exception: | CODE |
| LOW | packaging/launch.py | 165 | except Exception: | CODE |
| LOW | packaging/launch.py | 176 | except Exception: | CODE |
| LOW | packaging/launch.py | 401 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 467 | except Exception: | CODE |
| LOW | packaging/launch.py | 519 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 644 | except Exception: | CODE |
| LOW | packaging/launch.py | 772 | except Exception: | CODE |
| LOW | packaging/launch.py | 934 | except Exception: | CODE |
| LOW | packaging/launch.py | 991 | except Exception: | CODE |
| LOW | packaging/launch.py | 998 | except Exception: | CODE |
| LOW | packaging/launch.py | 1028 | except Exception: | CODE |
| LOW | packaging/launch.py | 1266 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 1984 | except Exception: | CODE |
| LOW | packaging/launch.py | 1988 | except Exception: | CODE |
| LOW | packaging/launch.py | 2026 | except Exception: | CODE |
| LOW | packaging/launch.py | 2115 | except Exception: | CODE |
| LOW | packaging/launch.py | 2254 | except Exception: | CODE |
| LOW | packaging/launch.py | 2270 | except Exception: | CODE |
| LOW | packaging/launch.py | 2381 | except Exception: | CODE |
| LOW | packaging/launch.py | 2420 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 2461 | except Exception: | CODE |
| LOW | packaging/launch.py | 2474 | except Exception: | CODE |
| LOW | packaging/launch.py | 2492 | except Exception as e: | CODE |
| LOW | packaging/launch.py | 2515 | except Exception: | CODE |
| LOW | packaging/launch.py | 2527 | except Exception: | CODE |
| LOW | packaging/launch.py | 2543 | except Exception: | CODE |
| LOW | packaging/launch.py | 2555 | except Exception: | CODE |
| LOW | packaging/launch.py | 2568 | except Exception: | CODE |
| LOW | packaging/launch.py | 2682 | except Exception as e: | CODE |
| LOW⚡ | packaging/launch.py | 1927 | except Exception as e: | STRING |
| LOW | packaging/launch.py | 1216 | except Exception as e: | STRING |
| LOW | packaging/launch.py | 1480 | except Exception: | STRING |
| LOW | packaging/launch.py | 1798 | except Exception as e: | STRING |
| LOW | packaging/launch.py | 1854 | except Exception as e: | STRING |
| LOW | packaging/launch.py | 1897 | except Exception: | STRING |
| LOW | packaging/launch.py | 1955 | except Exception: | STRING |
| LOW | packaging/launch.py | 1966 | except Exception: | STRING |
| LOW | packaging/check_version.py | 30 | except Exception as e: | CODE |
| LOW | packaging/check_version.py | 48 | except Exception: | CODE |
| LOW | packaging/check_version.py | 61 | except Exception: | CODE |
| LOW | packaging/check_version.py | 141 | except Exception as e: | CODE |
| LOW | packaging/check_version.py | 162 | except Exception: | CODE |
| LOW | packaging/build_utils/package_checker.py | 152 | except Exception: | CODE |
| LOW⚡ | packaging/build_utils/package_checker.py | 181 | except Exception as e: | CODE |
| LOW⚡ | packaging/build_utils/package_checker.py | 191 | except Exception as e: | CODE |
| LOW | packaging/build_utils/build_pydensecrf_wheel.py | 71 | except Exception as e: | CODE |
| LOW | packaging/build_utils/build_pydensecrf_wheel.py | 133 | except Exception as e: | CODE |
| LOW⚡ | test/scan_fonts_fe47.py | 32 | except Exception as e: | CODE |
| LOW⚡ | test/scan_fonts_fe47.py | 40 | except Exception as e: | CODE |
| LOW⚡ | test/scan_fonts_fe47.py | 46 | except Exception as e: | CODE |
| 1110 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/launch.py | 472 | CODE | |
| LOW | packaging/launch.py | 670 | CODE | |
| LOW | packaging/launch.py | 1136 | CODE | |
| LOW | packaging/launch.py | 1165 | CODE | |
| LOW | packaging/launch.py | 1220 | CODE | |
| LOW | packaging/launch.py | 1326 | CODE | |
| LOW | packaging/launch.py | 2107 | CODE | |
| LOW | packaging/launch.py | 2306 | CODE | |
| LOW | packaging/launch.py | 2425 | CODE | |
| LOW | packaging/launch.py | 2497 | CODE | |
| LOW | packaging/launch.py | 2866 | CODE | |
| LOW | packaging/launch.py | 775 | CODE | |
| LOW | packaging/check_version.py | 64 | CODE | |
| LOW | packaging/detect_torch_type.py | 9 | CODE | |
| LOW | packaging/detect_torch_type.py | 40 | CODE | |
| LOW | packaging/build_utils/package_checker.py | 104 | CODE | |
| LOW | packaging/build_utils/build_pydensecrf_wheel.py | 41 | CODE | |
| LOW | test/chinese_linebreak_debug_ui.py | 942 | CODE | |
| LOW | test/test_editor_inpainted_fallback.py | 192 | CODE | |
| LOW | manga_translator/manga_translator.py | 269 | CODE | |
| LOW | manga_translator/manga_translator.py | 540 | CODE | |
| LOW | manga_translator/manga_translator.py | 713 | CODE | |
| LOW | manga_translator/manga_translator.py | 913 | CODE | |
| LOW | manga_translator/manga_translator.py | 1098 | CODE | |
| LOW | manga_translator/manga_translator.py | 1145 | CODE | |
| LOW | manga_translator/manga_translator.py | 1277 | CODE | |
| LOW | manga_translator/manga_translator.py | 1325 | CODE | |
| LOW | manga_translator/manga_translator.py | 1630 | CODE | |
| LOW | manga_translator/manga_translator.py | 1686 | CODE | |
| LOW | manga_translator/manga_translator.py | 2003 | CODE | |
| LOW | manga_translator/manga_translator.py | 2085 | CODE | |
| LOW | manga_translator/manga_translator.py | 2152 | CODE | |
| LOW | manga_translator/manga_translator.py | 2297 | CODE | |
| LOW | manga_translator/manga_translator.py | 2397 | CODE | |
| LOW | manga_translator/manga_translator.py | 2499 | CODE | |
| LOW | manga_translator/manga_translator.py | 2872 | CODE | |
| LOW | manga_translator/manga_translator.py | 3023 | CODE | |
| LOW | manga_translator/manga_translator.py | 3131 | CODE | |
| LOW | manga_translator/manga_translator.py | 3399 | CODE | |
| LOW | manga_translator/manga_translator.py | 4236 | CODE | |
| LOW | manga_translator/manga_translator.py | 4618 | CODE | |
| LOW | manga_translator/manga_translator.py | 4934 | CODE | |
| LOW | manga_translator/manga_translator.py | 5045 | CODE | |
| LOW | manga_translator/manga_translator.py | 5320 | CODE | |
| LOW | manga_translator/manga_translator.py | 5473 | CODE | |
| LOW | manga_translator/manga_translator.py | 5542 | CODE | |
| LOW | manga_translator/manga_translator.py | 5588 | CODE | |
| LOW | manga_translator/api_key_rotation.py | 380 | CODE | |
| LOW | manga_translator/__main__.py | 32 | CODE | |
| LOW | manga_translator/translators/gemini_hq.py | 324 | CODE | |
| LOW | manga_translator/translators/gemini.py | 290 | CODE | |
| LOW | manga_translator/translators/openai_hq.py | 295 | CODE | |
| LOW | manga_translator/translators/openai.py | 263 | CODE | |
| LOW | manga_translator/translators/common.py | 1163 | CODE | |
| LOW | manga_translator/translators/common.py | 1346 | CODE | |
| LOW | manga_translator/translators/common.py | 2864 | CODE | |
| LOW | manga_translator/translators/common.py | 2953 | CODE | |
| LOW | manga_translator/translators/common.py | 3069 | CODE | |
| LOW | manga_translator/translators/common.py | 3384 | CODE | |
| LOW | manga_translator/translators/common.py | 1467 | CODE | |
| 395 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/launch.py | 1342 | CODE | |
| LOW | packaging/launch.py | 1343 | CODE | |
| LOW | packaging/launch.py | 1344 | CODE | |
| LOW | packaging/launch.py | 1352 | CODE | |
| LOW | packaging/launch.py | 1353 | CODE | |
| LOW | packaging/launch.py | 1354 | CODE | |
| LOW | packaging/launch.py | 1360 | CODE | |
| LOW | packaging/launch.py | 1361 | CODE | |
| LOW | packaging/launch.py | 1362 | CODE | |
| LOW | packaging/build_utils/package_checker.py | 10 | CODE | |
| LOW | packaging/build_utils/package_checker.py | 11 | CODE | |
| LOW | packaging/build_utils/__init__.py | 7 | CODE | |
| LOW | packaging/build_utils/__init__.py | 7 | CODE | |
| LOW | packaging/build_utils/__init__.py | 7 | CODE | |
| LOW | test/test_combo_popup_lifetime.py | 1 | CODE | |
| LOW | test/editor_region_regressions.py | 1 | CODE | |
| LOW | test/test_mask_refinement_split.py | 1 | CODE | |
| LOW | test/test_editor_inpaint_cache_reset.py | 1 | CODE | |
| LOW | test/test_chinese_linebreak_spaces.py | 7 | CODE | |
| LOW | test/test_editor_file_dialog_paths.py | 1 | CODE | |
| LOW | test/test_state_manager.py | 1 | CODE | |
| LOW | test/test_app_logic_file_sources.py | 1 | CODE | |
| LOW | test/chinese_linebreak_debug_ui.py | 1 | CODE | |
| LOW | test/chinese_linebreak_debug_ui.py | 11 | CODE | |
| LOW | test/check_char_tables.py | 7 | CODE | |
| LOW | test/_bootstrap.py | 20 | CODE | |
| LOW | test/_bootstrap.py | 36 | CODE | |
| LOW | test/test_update_fetch_failure.py | 4 | CODE | |
| LOW | test/test_editor_region_reorder.py | 1 | CODE | |
| LOW | test/repro_seam_dilution.py | 8 | CODE | |
| LOW | test/test_rich_text_strikethrough.py | 1 | CODE | |
| LOW | test/test_test_collection_isolation.py | 1 | CODE | |
| LOW | test/test_mangalens_long_image_memory.py | 1 | CODE | |
| LOW | test/test_editor_delete_recover.py | 3 | CODE | |
| LOW | test/test_folder_dialog_sort_state.py | 1 | CODE | |
| LOW | manga_translator/manga_translator.py | 6 | CODE | |
| LOW | manga_translator/__init__.py | 12 | CODE | |
| LOW | manga_translator/__init__.py | 12 | CODE | |
| LOW | manga_translator/__init__.py | 12 | CODE | |
| LOW | manga_translator/runtime_files.py | 3 | CODE | |
| LOW | manga_translator/api_request_params.py | 1 | CODE | |
| LOW | manga_translator/runtime_paths.py | 3 | CODE | |
| LOW | manga_translator/custom_api_params.py | 1 | CODE | |
| LOW | manga_translator/api_key_rotation.py | 1 | CODE | |
| LOW | manga_translator/__main__.py | 28 | CODE | |
| LOW | manga_translator/translators/__init__.py | 7 | CODE | |
| LOW | manga_translator/server/__init__.py | 7 | CODE | |
| LOW | manga_translator/server/__init__.py | 7 | CODE | |
| LOW | manga_translator/server/__init__.py | 8 | CODE | |
| LOW | manga_translator/server/__init__.py | 8 | CODE | |
| LOW | manga_translator/server/__init__.py | 9 | CODE | |
| LOW | manga_translator/server/__init__.py | 9 | CODE | |
| LOW | manga_translator/server/__init__.py | 9 | CODE | |
| LOW | manga_translator/server/__init__.py | 10 | CODE | |
| LOW | manga_translator/server/__init__.py | 10 | CODE | |
| LOW | manga_translator/server/__init__.py | 10 | CODE | |
| LOW | manga_translator/server/__init__.py | 10 | CODE | |
| LOW | manga_translator/server/__init__.py | 10 | CODE | |
| LOW | manga_translator/server/__init__.py | 17 | CODE | |
| LOW | manga_translator/server/__init__.py | 17 | CODE | |
| 274 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packaging/build_utils/__init__.py | 13 | __all__ = [ | CODE |
| LOW | test/chinese_linebreak_debug_ui.py | 723 | def _set_mask_preview(self, mask: dict) -> None: | CODE |
| LOW | test/_bootstrap.py | 40 | __all__ = ["ROOT"] | CODE |
| LOW | test/test_rich_text_strikethrough.py | 29 | def _set_test_font() -> None: | CODE |
| LOW⚡ | manga_translator/manga_translator.py | 1258 | def set_preloaded_load_text_payload(self, image_name: str, payload: Optional[dict]) -> None: | STRING |
| LOW | manga_translator/translators/common.py | 2596 | def _update_stream_inline(self, prefix: str, delta_text: str) -> None: | CODE |
| LOW | manga_translator/server/__init__.py | 19 | __all__ = [ | CODE |
| LOW | manga_translator/server/core/group_service.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/translation_integration.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/persistence.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/cleanup_scheduler.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ga_translator/server/core/config_management_service.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/history_service.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | …nga_translator/server/core/group_management_service.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_migration.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/quota_service.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/account_service.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_service.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/__init__.py | 110 | __all__ = [ | CODE |
| LOW | manga_translator/server/core/system_init.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/session_service.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/resource_service.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_service_v2.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/quota_scheduler.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/audit_service.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/search_service.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/env_service.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_calculator.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/middleware.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/core/permission_integration.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | …ga_translator/server/repositories/config_repository.py | 71 | def set_user_config(self, user_id: str, config: UserConfig) -> None: | CODE |
| LOW | …anslator/server/repositories/translation_repository.py | 133 | def _update_index(self, session_token: str, user_id: str) -> None: | CODE |
| LOW | manga_translator/server/repositories/__init__.py | 18 | __all__ = [ | CODE |
| LOW | …ranslator/server/repositories/permission_repository.py | 41 | def set_global_permissions(self, permissions: dict) -> None: | CODE |
| LOW | …ranslator/server/repositories/permission_repository.py | 52 | def set_group_permissions(self, group_id: str, permissions: dict) -> None: | CODE |
| LOW | …ranslator/server/repositories/permission_repository.py | 65 | def set_user_permissions(self, user_id: str, permissions: UserPermission) -> None: | CODE |
| LOW | …ranslator/server/repositories/permission_repository.py | 138 | def update_last_modified(self) -> None: | CODE |
| LOW | …nga_translator/server/repositories/quota_repository.py | 26 | def set_user_quota(self, user_id: str, quota: QuotaLimit) -> None: | CODE |
| LOW | …nga_translator/server/repositories/group_repository.py | 183 | def update_last_modified(self) -> None: | CODE |
| LOW | manga_translator/server/models/__init__.py | 14 | __all__ = [ | CODE |
| LOW | manga_translator/server/routes/quota.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/routes/__init__.py | 31 | __all__ = [ | CODE |
| LOW | manga_translator/server/routes/translation_auth.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/server/routes/resources.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | manga_translator/server/routes/history.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/utils/photoshop_export.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/utils/onnx_runtime.py | 16 | def set_onnx_gpu_disabled(disabled: bool) -> None: | CODE |
| LOW | manga_translator/utils/replace_translation.py | 35 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/utils/replace_translation.py | 1222 | __all__ = [ | CODE |
| LOW | manga_translator/utils/translation_template.py | 8 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/upscaling/realcugan_arch/__init__.py | 4 | __all__ = ['upcunet_v3'] | CODE |
| LOW | manga_translator/rendering/chinese_linebreak.py | 1101 | def set_cost(position: int, cost: int) -> None: | CODE |
| LOW | manga_translator/rendering/text_replacements.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/rendering/rich_text_sync.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | manga_translator/rendering/text_render/_fonts.py | 24 | logger = logging.getLogger(__name__) | CODE |
| LOW | …inpainting/ldm/models/diffusion/dpm_solver/__init__.py | 3 | __all__ = ["DPMSolverSampler"] | CODE |
| LOW | …r/inpainting/ldm/modules/image_degradation/__init__.py | 8 | __all__ = ["degradation_fn_bsr", "degradation_fn_bsr_light"] | CODE |
| LOW | manga_translator/detection/ctd_utils/__init__.py | 12 | __all__ = [ | CODE |
| LOW | desktop_qt_ui/ui/theme.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | desktop_qt_ui/ui/theme.py | 62 | def set_current_theme(theme: str) -> None: | CODE |
| 88 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | manga_translator/translators/common.py | 939 | 验证OpenAI API响应对象的有效性 Args: response: API返回的响应对象 logger: 日志记录器(可选) Returns: | STRING |
| HIGH | manga_translator/translators/common.py | 962 | 验证Gemini API响应对象的有效性 Args: response: API返回的响应对象 logger: 日志记录器(可选) Returns: | STRING |
| HIGH | manga_translator/server/core/account_service.py | 41 | 创建新用户 Args: username: 用户名 password: 密码(明文) role: 角色('admin | STRING |
| HIGH | manga_translator/server/core/account_service.py | 154 | 更新用户信息 Args: username: 用户名 updates: 要更新的字段字典 Returns: | STRING |
| HIGH | manga_translator/server/core/account_service.py | 218 | 删除用户 Args: username: 用户名 Returns: bool: 删除是否成功 | STRING |
| HIGH | manga_translator/server/core/account_service.py | 260 | 修改密码 Args: username: 用户名 new_password: 新密码(明文) Return | STRING |
| HIGH | manga_translator/server/core/permission_service.py | 163 | 过滤参数,只保留用户有权限的参数 Args: username: 用户名 parameters: 原始参数字典 | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 54 | 上传提示词文件 Args: user_id: 用户ID file: 上传的文件对象 (FastAPI UploadFile) | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 121 | 上传字体文件 Args: user_id: 用户ID file: 上传的文件对象 (FastAPI UploadFile) | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 218 | 删除提示词资源 Args: resource_id: 资源ID user_id: 用户ID(用于验证所有权) | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 236 | 删除字体资源 Args: resource_id: 资源ID user_id: 用户ID(用于验证所有权) | STRING |
| HIGH | manga_translator/server/core/resource_service.py | 260 | 删除资源的通用方法 Args: resource_id: 资源ID user_id: 用户ID repo: 资源仓库 | STRING |
| HIGH | manga_translator/server/core/response_utils.py | 79 | 解析用户提供的环境变量,并检查策略 如果用户没有提供 API Keys,尝试从用户选择的预设中获取 **重要**: 此函数会将用户 API Key 设置到 config.translator 中, | STRING |
| HIGH | manga_translator/server/core/middleware.py | 97 | FastAPI 依赖函数:要求用户认证(管理员或普通用户) 验证会话令牌并返回会话对象。如果令牌无效或缺失,抛出 401 错误。 Args: x_session_token: 从 | STRING |
| HIGH | manga_translator/server/core/middleware.py | 178 | FastAPI 依赖函数:要求管理员认证 验证用户是否为管理员。如果不是管理员,抛出 403 错误。 Args: session: 从 require_auth 获取的会话对象 | STRING |
| HIGH | manga_translator/server/core/middleware.py | 269 | FastAPI 依赖函数:检查并过滤参数权限 过滤用户提交的参数,只保留用户有权限调整的参数。 不会抛出错误,而是静默过滤掉未授权的参数。 Args: parameter | STRING |
| HIGH | manga_translator/server/routes/translation_auth.py | 227 | Verify authentication and permissions for translation request This function: 1. Extracts and validates | STRING |
| HIGH | manga_translator/server/routes/resources.py | 69 | 上传提示词文件 需求: 1.1, 1.5 Args: file: 上传的文件 session: 用户会话 resource_service: 资源 | STRING |
| HIGH | manga_translator/server/routes/resources.py | 152 | 删除提示词 需求: 1.4 Args: resource_id: 资源ID session: 用户会话 resource_service: 资源管 | STRING |
| HIGH | manga_translator/server/routes/resources.py | 216 | 上传字体文件 需求: 2.1, 2.5 Args: file: 上传的文件 session: 用户会话 resource_service: 资源管 | STRING |
| HIGH | manga_translator/server/routes/resources.py | 309 | 删除字体 需求: 2.4 Args: resource_id: 资源ID session: 用户会话 resource_service: 资源管理 | STRING |
| HIGH | manga_translator/server/routes/history.py | 195 | 获取用户的翻译历史(支持筛选) 需求: 3.2, 12.2 Args: start_date: 开始日期 end_date: 结束日期 statu | STRING |
| HIGH | manga_translator/server/routes/history.py | 436 | 搜索翻译历史 需求: 13.1-13.5 Args: q: 搜索查询 start_date: 开始日期 end_date: 结束日期 | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/ocr/model_48px_ctc.py | 252 | CODE | |
| LOW | manga_translator/ocr/common.py | 157 | CODE | |
| LOW | manga_translator/server/models/session_models.py | 48 | CODE | |
| LOW | manga_translator/server/routes/audit.py | 44 | CODE | |
| LOW | manga_translator/server/routes/admin.py | 134 | CODE | |
| LOW | manga_translator/server/routes/history.py | 345 | CODE | |
| LOW | manga_translator/utils/photoshop_export.py | 430 | CODE | |
| LOW | manga_translator/utils/textblock.py | 135 | CODE | |
| LOW | manga_translator/utils/replace_translation.py | 701 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 304 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 320 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 447 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 32 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 87 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 129 | CODE | |
| LOW | manga_translator/upscaling/esrgan_pytorch.py | 425 | CODE | |
| LOW | …zation/manga_colorization_v2_utils/denoising/models.py | 68 | CODE | |
| LOW | …tion/manga_colorization_v2_utils/networks/extractor.py | 71 | CODE | |
| LOW | manga_translator/rendering/auto_linebreak.py | 1292 | CODE | |
| LOW | manga_translator/rendering/text_render/_render.py | 633 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 195 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 198 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 415 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 419 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 530 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 535 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 597 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama.py | 673 | CODE | |
| LOW | manga_translator/inpainting/inpainting_attn.py | 59 | CODE | |
| LOW | manga_translator/inpainting/inpainting_attn.py | 167 | CODE | |
| LOW | manga_translator/inpainting/inpainting_aot.py | 95 | CODE | |
| LOW | manga_translator/inpainting/guided_ldm_inpainting.py | 23 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 802 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 919 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 924 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 986 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 1093 | CODE | |
| LOW | manga_translator/inpainting/inpainting_lama_mpe.py | 1158 | CODE | |
| LOW | manga_translator/inpainting/ldm/util.py | 91 | CODE | |
| LOW | manga_translator/inpainting/ldm/models/autoencoder.py | 23 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddim.py | 76 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddim.py | 144 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddim.py | 202 | CODE | |
| LOW | …translator/inpainting/ldm/models/diffusion/__init__.py | 28 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/plms.py | 62 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/plms.py | 121 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/plms.py | 181 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 63 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 541 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1031 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1062 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1118 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1169 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1226 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1470 | CODE | |
| LOW | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 1630 | CODE | |
| LOW | …painting/ldm/models/diffusion/dpm_solver/dpm_solver.py | 162 | CODE | |
| LOW | …painting/ldm/models/diffusion/dpm_solver/dpm_solver.py | 940 | CODE | |
| LOW | …/inpainting/ldm/models/diffusion/dpm_solver/sampler.py | 28 | CODE | |
| LOW | …inpainting/ldm/modules/midas/midas/midas_net_custom.py | 16 | CODE | |
| 11 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | manga_translator/utils/photoshop_export.py | 65 | if (!fontName) return null; | CODE |
| HIGH | manga_translator/utils/photoshop_export.py | 117 | return null; | CODE |
| HIGH | manga_translator/utils/photoshop_export.py | 178 | positions.push([i, i + 1]); | CODE |
| HIGH | manga_translator/utils/photoshop_export.py | 212 | var originalLayer = null; | CODE |
| HIGH | manga_translator/utils/photoshop_export.py | 225 | if (!originalLayer && doc.layers.length > 0) {{ | CODE |
| HIGH | manga_translator/utils/generic.py | 1239 | return self * (1. / self.length()) | CODE |
| HIGH | manga_translator/utils/generic.py | 1267 | da = a.length() | CODE |
| HIGH | manga_translator/utils/generic.py | 1268 | db = b.length() | CODE |
| HIGH | manga_translator/utils/generic.py | 1297 | return d.length() | CODE |
| HIGH | desktop_qt_ui/services/history_service.py | 66 | QUndoStack.push() 会立即调用 command.redo()。 | STRING |
| HIGH | desktop_qt_ui/services/history_service.py | 70 | self.undo_stack.push(command) | CODE |
| HIGH | doc/wiki/verify_phase0_ui_parameter_fields.py | 162 | fail("release font_color is no longer null; update the catalog") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | manga_translator/ocr/model_ocr_large.py | 0 | featureextractor of fan (http://openaccess.thecvf.com/content_iccv_2017/papers/cheng_focusing_attention_towards_iccv_201 | STRING |
| HIGH | manga_translator/ocr/model_48px_ctc.py | 0 | featureextractor of fan (http://openaccess.thecvf.com/content_iccv_2017/papers/cheng_focusing_attention_towards_iccv_201 | STRING |
| HIGH | manga_translator/ocr/model_32px.py | 0 | featureextractor of fan (http://openaccess.thecvf.com/content_iccv_2017/papers/cheng_focusing_attention_towards_iccv_201 | STRING |
| HIGH | …nga_translator/inpainting/ldm/models/diffusion/ddpm.py | 0 | overwrite model.train with this function to make sure train/eval mode does not change anymore. | STRING |
| HIGH | manga_translator/inpainting/ldm/modules/midas/api.py | 0 | overwrite model.train with this function to make sure train/eval mode does not change anymore. | STRING |
| HIGH | …_translator/inpainting/ldm/modules/encoders/modules.py | 0 | overwrite model.train with this function to make sure train/eval mode does not change anymore. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/mode/__init__.py | 89 | if np.max(rawmask) == 0: # Check if mask is completely black | CODE |
| LOW | manga_translator/ocr/model_48px.py | 818 | finished = (out_idx[:, -1] == end_tok) # Check if the last token is the end token | STRING |
| LOW⚡ | …ga_translator/server/core/config_management_service.py | 457 | # Check if key contains sensitive keywords | COMMENT |
| LOW | …ga_translator/server/core/config_management_service.py | 280 | # Check if preset with same name exists | COMMENT |
| LOW | …ga_translator/server/core/config_management_service.py | 443 | # Check if key contains sensitive keywords | COMMENT |
| LOW | …nga_translator/server/core/session_security_service.py | 163 | # Check if user has exceeded limit | COMMENT |
| LOW | …nga_translator/server/core/session_security_service.py | 255 | # Check if user is admin | COMMENT |
| LOW | manga_translator/server/core/search_service.py | 114 | # Check if any file matches the query | COMMENT |
| LOW | manga_translator/utils/textblock.py | 883 | # Assign panel_index to each region | COMMENT |
| LOW | manga_translator/upscaling/realcugan.py | 168 | # Check if model exists | COMMENT |
| LOW | manga_translator/mask_refinement/text_mask_utils.py | 90 | if np.max(rawmask) == 0: # Check if mask is completely black | CODE |
| LOW⚡ | manga_translator/detection/panel_finder.py | 58 | # Check if the polygon contains any of the other polygons. | COMMENT |
| LOW⚡ | manga_translator/detection/panel_finder.py | 61 | # Check if the polygon contains the other polygon and that the polygons | COMMENT |
| LOW⚡ | manga_translator/detection/panel_finder.py | 66 | # Check if rect2 is completely within rect1 | COMMENT |
| LOW | manga_translator/detection/panel_finder.py | 240 | # Check if range1 is before range2 | COMMENT |
| LOW | manga_translator/detection/panel_finder.py | 243 | # Check if range1 is after range2 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | manga_translator/translators/config_gpt.py | 11 | # Define the schema for the response | COMMENT |
| MEDIUM | …ga_translator/server/core/config_management_service.py | 215 | # Create a backup of current state before restoring | COMMENT |
| MEDIUM | manga_translator/upscaling/__init__.py | 26 | # Create a cache key that includes the upscaler type and its parameters | COMMENT |
| MEDIUM⚡ | manga_translator/detection/panel_finder.py | 53 | # Create a new list to store the filtered polygons. | COMMENT |
| MEDIUM | desktop_qt_ui/services/__init__.py | 110 | # This method is now mostly obsolete as ShortcutManager and DragDropService are removed. | COMMENT |
| MEDIUM | desktop_qt_ui/services/workflow_service.py | 201 | # Define the item_template from the first found item line | COMMENT |
| MEDIUM | dict/glossary_extraction_prompt.yaml | 43 | ## Creating a New Entry | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/translators/common.py | 2141 | # return False, f"Empty translation detected at positions: {empty_translation_errors}" | COMMENT |
| LOW | manga_translator/textline_merge/__init__.py | 321 | G.add_node(idx) | COMMENT |
| LOW | manga_translator/textline_merge/__init__.py | 341 | # if points[3][1] > points[2][1]: | COMMENT |
| LOW | manga_translator/textline_merge/__init__.py | 361 | # while v < len(bboxes) - removed_counter: | COMMENT |
| LOW | manga_translator/ocr/model_48px_ctc.py | 501 | _, preds_index = logprobs.max(2) | COMMENT |
| LOW | manga_translator/server/to_json.py | 1 | import struct | COMMENT |
| LOW | manga_translator/utils/textblock.py | 721 | # center_std = abs(np.std(((polygons[:, :, 1] + polygons[:, :, 1]) - (y2 - y1)) / 2)) | COMMENT |
| LOW | manga_translator/rendering/text_replacements.py | 21 | COMMENT | |
| LOW | manga_translator/detection/ctd.py | 181 | mask = postprocess_mask(mask) | COMMENT |
| LOW | manga_translator/detection/ctd_utils/yolov5/yolo.py | 121 | COMMENT | |
| LOW | desktop_qt_ui/ui/editor/graphics_items.py | 1561 | # ------------------------------------------------------------------ | COMMENT |
| LOW | desktop_qt_ui/services/batch_edit_schemes.py | 61 | # match.conditions[].field 见批量管理页的字段下拉;op 随字段类型变化 | COMMENT |
| LOW | .github/workflows/build-and-release.yml | 101 | # run: | | COMMENT |
| LOW | .github/workflows/build-and-release.yml | 141 | path: dist/ | COMMENT |
| LOW | .github/workflows/build-and-release.yml | 161 | # python build_packages.py ${{ github.ref_name }} --update-repo --skip-build | COMMENT |
| LOW | dict/prompt_example.yaml | 1 | # 自定义翻译提示词模板 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | manga_translator/manga_translator.py | 4382 | # Step 1: 检测 - 获取textlines(检测框)和mask_raw(原始蒙版) | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4405 | # Step 2: 填充文本 - 跳过OCR,为每个textline填充占位文本 | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4410 | # Step 3: Textline Merge - 将textlines合并成text_regions(大框) | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4486 | # Step 5: Inpainting - 使用优化后的mask进行修复 | STRING |
| LOW | manga_translator/manga_translator.py | 4463 | # Step 4: Mask Refinement - 使用text_regions和mask_raw优化蒙版 | STRING |
| LOW⚡ | doc/en/CLI_USAGE.md | 1443 | # Step 1: export original text | COMMENT |
| LOW⚡ | doc/en/CLI_USAGE.md | 1453 | # Step 2: unzip export.zip; by default it contains translation.json and original.json | COMMENT |
| LOW⚡ | doc/en/CLI_USAGE.md | 1455 | # Step 3: manually translate original.json and save it as translated.json | COMMENT |
| LOW⚡ | doc/en/CLI_USAGE.md | 1457 | # Step 4: import the translation and render | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | manga_translator/translators/common.py | 216 | api_key="your-api-key", | STRING |
| HIGH⚡ | manga_translator/translators/common.py | 541 | api_key="your-api-key", | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/translators/common.py | 1375 | # If it is a list it will simply return the language code as is. | COMMENT |
| LOW | manga_translator/server/routes/config.py | 965 | # Don't save to server, just return success (actually temporary use) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | manga_translator/manga_translator.py | 4382 | # Step 1: 检测 - 获取textlines(检测框)和mask_raw(原始蒙版) | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4405 | # Step 2: 填充文本 - 跳过OCR,为每个textline填充占位文本 | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4410 | # Step 3: Textline Merge - 将textlines合并成text_regions(大框) | STRING |
| LOW⚡ | manga_translator/manga_translator.py | 4486 | # Step 5: Inpainting - 使用优化后的mask进行修复 | STRING |
| LOW | manga_translator/manga_translator.py | 4463 | # Step 4: Mask Refinement - 使用text_regions和mask_raw优化蒙版 | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | manga_translator/utils/threading.py | 55 | async def my_function(arg): | STRING |