崩坏:星穹铁道全自动 三月七小助手
This report summarizes scanner evidence for moesnow/March7thAssistant, a Python project with 11,649 GitHub stars. SynthScan examined 78,756 lines of code across 363 source files, recording 2098 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 41.0 (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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 999 finding(s).
Are imports declared and package/API names verified? 130 finding(s).
Are wrappers, guards, and repeated structures necessary? 1735 finding(s).
Which changes need focused human review? 2098 finding(s).
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.
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.
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.
The scanner identified 2098 distinct pattern matches across 15 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app.py | 127 | except Exception: | CODE |
| HIGH | app.py | 290 | except Exception: | CODE |
| HIGH | app.py | 191 | except Exception: | CODE |
| HIGH | app.py | 312 | except Exception: | CODE |
| HIGH | app.py | 224 | except Exception: | CODE |
| HIGH | app.py | 217 | except Exception: | CODE |
| HIGH | main.py | 390 | except Exception: | CODE |
| HIGH | tasks/daily/buildtarget.py | 554 | except: | CODE |
| HIGH | tasks/version/__init__.py | 28 | except Exception: | CODE |
| HIGH | tasks/base/fastest_mirror.py | 45 | except Exception: | CODE |
| HIGH | tasks/tool/screenshot.py | 260 | except Exception: | CODE |
| HIGH | tools/i18n/__init__.py | 321 | except Exception: | CODE |
| HIGH | tools/i18n/__init__.py | 375 | except Exception: | CODE |
| HIGH | tools/i18n/__init__.py | 359 | except Exception: | CODE |
| HIGH | tools/i18n/po.py | 320 | except Exception: | CODE |
| HIGH | app/main_window.py | 61 | except Exception: | CODE |
| HIGH | app/main_window.py | 415 | except Exception: | CODE |
| HIGH | app/main_window.py | 435 | except Exception: | CODE |
| HIGH | app/main_window.py | 784 | except Exception: | CODE |
| HIGH | app/main_window.py | 265 | except Exception: | CODE |
| HIGH | app/main_window.py | 375 | except Exception: | CODE |
| HIGH | app/main_window.py | 535 | except Exception: | CODE |
| HIGH | app/main_window.py | 590 | except Exception: | CODE |
| HIGH | app/main_window.py | 600 | except Exception: | CODE |
| HIGH | app/main_window.py | 608 | except Exception: | CODE |
| HIGH | app/main_window.py | 623 | except Exception: | CODE |
| HIGH | app/main_window.py | 703 | except Exception: | CODE |
| HIGH | app/main_window.py | 795 | except Exception: | CODE |
| HIGH | app/main_window.py | 802 | except Exception: | CODE |
| HIGH | app/main_window.py | 575 | except Exception: | CODE |
| HIGH | app/main_window.py | 617 | except Exception: | CODE |
| HIGH | app/main_window.py | 832 | except Exception: | CODE |
| HIGH | app/main_window.py | 569 | except Exception: | CODE |
| HIGH | app/warp_interface.py | 297 | except: | CODE |
| HIGH | app/setting_interface.py | 3280 | except Exception: | CODE |
| HIGH | app/setting_interface.py | 3218 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 116 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 661 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 722 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 727 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 748 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 757 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 425 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 435 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 506 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 447 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 504 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 1013 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 467 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 477 | except Exception: | CODE |
| HIGH | app/schedule_dialog.py | 1019 | except Exception: | CODE |
| HIGH | app/log_interface.py | 75 | except Exception: | CODE |
| HIGH | app/log_interface.py | 236 | except Exception: | CODE |
| HIGH | app/log_interface.py | 273 | except Exception: | CODE |
| HIGH | app/log_interface.py | 1105 | except Exception: | CODE |
| HIGH | app/log_interface.py | 1421 | except Exception: | CODE |
| HIGH | app/log_interface.py | 1429 | except Exception: | CODE |
| HIGH | app/log_interface.py | 1543 | except Exception: | CODE |
| HIGH | app/log_interface.py | 1670 | except Exception: | CODE |
| HIGH | app/log_interface.py | 1727 | except Exception: | CODE |
| 155 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main.py | 217 | def _run_loop_task_with_telemetry(task_id, task_fn): | CODE |
| LOW | tasks/power/instance.py | 472 | def get_current_instance_name(instance_type): | CODE |
| LOW | tasks/power/relicset.py | 51 | def prepare_break_down_relicset(): | CODE |
| LOW | tasks/power/relicset.py | 65 | def start_break_down_relicset(use_ocr=False): | CODE |
| LOW | tasks/power/character.py | 118 | def process_support_selection_result(result): | CODE |
| LOW | tasks/activity/journey_highlights_notification.py | 12 | def take_journey_highlights_screenshot(): | CODE |
| LOW | tasks/activity/journey_highlights_notification.py | 50 | def send_journey_highlights_notification(): | CODE |
| LOW | tasks/activity/activitytemplate.py | 33 | def get_build_target_instance(default_type, default_name): | CODE |
| LOW | tasks/game/__init__.py | 119 | def cloud_game_check_and_enter(): | CODE |
| LOW | tasks/game/__init__.py | 334 | def _start_launcher_and_get_automation(game): | CODE |
| LOW | tasks/game/__init__.py | 357 | def _handle_launcher_self_update(launcher, launcher_auto): | CODE |
| LOW | tasks/game/__init__.py | 378 | def _click_update_game_and_wait(launcher, launcher_auto): | CODE |
| LOW | tasks/game/__init__.py | 443 | def pre_download_via_launcher(game="hkrpg_cn"): | CODE |
| LOW | tasks/game/__init__.py | 469 | def notify_after_finish_not_loop(): | CODE |
| LOW | tasks/daily/daily.py | 83 | def _run_scheduled_divergent_universe(divergent: DivergentUniverse): | CODE |
| LOW | tasks/daily/buildtarget.py | 224 | def _parse_ornament_instance_info() -> str | None: | CODE |
| LOW | tasks/daily/buildtarget.py | 236 | def _parse_calyx_instance_info() -> tuple[str | None, str | None]: | CODE |
| LOW | tasks/daily/buildtarget.py | 282 | def _parse_standard_instance_info() -> tuple[str | None, str | None]: | CODE |
| LOW | tasks/daily/ember_exchange.py | 123 | def _navigate_to_ember_exchange(cls): | CODE |
| LOW | tasks/daily/ember_exchange.py | 191 | def _select_ember_exchange_tab(cls): | CODE |
| LOW | tasks/daily/ember_exchange.py | 268 | def _extract_exchange_count_match(cls, texts): | CODE |
| LOW | tasks/daily/ember_exchange.py | 308 | def _wait_for_purchase_dialog(cls): | CODE |
| LOW | tasks/daily/ember_exchange.py | 319 | def _increase_purchase_quantity(cls, item_name, remaining_count): | CODE |
| LOW | tasks/daily/ember_exchange.py | 380 | def _scroll_to_bottom_for_retry(cls): | CODE |
| LOW | tasks/daily/synthesis.py | 287 | # def asset_special_pass_exchange(): | COMMENT |
| LOW | tasks/reward/dispatch.py | 53 | # def perform_dispatch_and_check(self, crop): | COMMENT |
| LOW | tasks/reward/__init__.py | 45 | def check_and_collect_rewards(self): | CODE |
| LOW | tasks/reward/__init__.py | 57 | def check_and_collect_specific_reward(self, reward_type): | CODE |
| LOW | tasks/challenge/purefiction.py | 60 | def save_timestamp_into_config(self): | CODE |
| LOW | tasks/challenge/apocalyptic.py | 62 | def save_timestamp_into_config(self): | CODE |
| LOW | tasks/challenge/memoryofchaos.py | 53 | def save_timestamp_into_config(self): | CODE |
| LOW | tasks/challenge/basechallenge.py | 54 | def check_star_in_ocr_results(self, ocr_results): | CODE |
| LOW | tasks/challenge/basechallenge.py | 114 | def use_technique_and_attack_monster(self, team): | CODE |
| LOW | tasks/weekly/currency_wars.py | 138 | def get_remembrance_trailblazer_name(self) -> Optional[str]: | CODE |
| LOW | tasks/weekly/currency_wars.py | 147 | def _normalize_tracked_character_name(self, name: Optional[str]) -> Optional[str]: | CODE |
| LOW | tasks/weekly/currency_wars.py | 175 | def get_character_purchase_cost(self, name: Optional[str]) -> Optional[int]: | CODE |
| LOW | tasks/weekly/currency_wars.py | 188 | def spend_character_purchase_cost(self, money: int, name: Optional[str]) -> int: | CODE |
| LOW | tasks/weekly/currency_wars.py | 205 | def find_deployed_character_position(self, target_name: str): | CODE |
| LOW | tasks/weekly/currency_wars.py | 253 | def check_currency_wars_score(self) -> bool: | CODE |
| LOW | tasks/weekly/currency_wars.py | 683 | def sell_characters_aglaea_strategy(self): | CODE |
| LOW | tasks/weekly/currency_wars.py | 695 | def sell_characters_seele_strategy(self): | CODE |
| LOW | tasks/weekly/currency_wars.py | 745 | def refresh_shop_scan_if_needed(): | CODE |
| LOW | tasks/weekly/currency_wars.py | 828 | def refresh_shop_scan_if_needed(): | CODE |
| LOW | tasks/weekly/currency_wars.py | 944 | def refresh_shop_scan_if_needed(): | CODE |
| LOW | tasks/weekly/currency_wars.py | 955 | def try_buy_strategy_characters(): | CODE |
| LOW | tasks/weekly/currency_wars.py | 1935 | def check_festival_star_popup(self): | CODE |
| LOW | tasks/weekly/currency_wars.py | 2700 | def check_investment_environment(self): | CODE |
| LOW | tasks/weekly/divergent_universe.py | 35 | def _is_count_in_current_cycle(timestamp: float, cycle: Literal["daily", "weekly"]) -> bool: | CODE |
| LOW | tasks/weekly/divergent_universe.py | 97 | def check_divergent_universe_score(self) -> bool: | CODE |
| LOW | tasks/weekly/divergent_universe.py | 776 | def process_battle_stage_finish(self): | CODE |
| LOW | tasks/weekly/divergent_universe.py | 1118 | def process_talent_management(self): | CODE |
| LOW | tasks/base/tasks.py | 7 | def is_windows_terminal_available(): | CODE |
| LOW | tasks/base/tasks.py | 14 | def execute_command_in_new_environment(command, use_windows_terminal=False): | CODE |
| LOW | tasks/base/base.py | 9 | def send_notification_with_screenshot(message, level=NotificationLevel.ERROR, screenshot=None): | CODE |
| LOW | tasks/tool/__init__.py | 100 | def _show_screenshot_window_slot(self, screenshot_image): | CODE |
| LOW | tasks/tool/__init__.py | 208 | def start_screenshot_from_file(file_path: str): | CODE |
| LOW | tasks/tool/screenshot.py | 235 | def _build_workflow_capture_buttons(self): | CODE |
| LOW | tasks/tool/screenshot.py | 388 | def copy_coordinate_result_to_clipboard(self): | CODE |
| LOW | tasks/tool/screenshot.py | 499 | def save_selection_screenshot(self): | CODE |
| LOW⚡ | tasks/tool/autoplot/_engine.py | 277 | def _handle_non_dialog_actions(self) -> None: | CODE |
| 702 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | build.py | 215 | except Exception as e: | STRING |
| LOW | app.py | 110 | except Exception: | CODE |
| LOW | app.py | 127 | except Exception: | CODE |
| LOW | app.py | 182 | except Exception: | CODE |
| LOW | app.py | 191 | except Exception: | CODE |
| LOW⚡ | app.py | 209 | except Exception: | CODE |
| LOW⚡ | app.py | 217 | except Exception: | CODE |
| LOW⚡ | app.py | 224 | except Exception: | CODE |
| LOW⚡ | app.py | 232 | except Exception: | CODE |
| LOW | app.py | 260 | except Exception: | CODE |
| LOW | app.py | 290 | except Exception: | CODE |
| LOW | app.py | 312 | except Exception: | CODE |
| LOW | main.py | 132 | except Exception: | CODE |
| LOW | main.py | 203 | except Exception: | CODE |
| LOW | main.py | 224 | except Exception: | CODE |
| LOW | main.py | 274 | except Exception: | CODE |
| LOW | main.py | 390 | except Exception: | CODE |
| LOW | main.py | 413 | except Exception as e: | CODE |
| LOW | tasks/power/power.py | 31 | except Exception as e: | CODE |
| LOW | tasks/power/power.py | 115 | except Exception as e: | CODE |
| LOW | tasks/power/power.py | 270 | except Exception as e: | CODE |
| MEDIUM | tasks/power/power.py | 258 | def get_power(crop, type="trailblaze_power"): | CODE |
| LOW | tasks/activity/journey_highlights_notification.py | 56 | except Exception as e: | CODE |
| MEDIUM | tasks/activity/journey_highlights_notification.py | 50 | def send_journey_highlights_notification(): | CODE |
| LOW | tasks/activity/activitytemplate.py | 58 | except Exception as e: | CODE |
| LOW | tasks/activity/__init__.py | 84 | except Exception as e: | CODE |
| LOW | tasks/game/__init__.py | 234 | except Exception as e: | CODE |
| LOW | tasks/game/__init__.py | 257 | except Exception as e: | CODE |
| LOW | tasks/game/starrailcontroller.py | 35 | except Exception as e: | CODE |
| LOW | tasks/game/starrailcontroller.py | 44 | except Exception as e: | CODE |
| LOW | tasks/game/starrailcontroller.py | 57 | except Exception as e: | CODE |
| LOW | tasks/game/starrailcontroller.py | 67 | except Exception as e: | CODE |
| LOW | tasks/daily/redemption.py | 65 | except Exception as e: | CODE |
| LOW | tasks/daily/redemption.py | 81 | except Exception: | CODE |
| LOW | tasks/daily/redemption.py | 104 | except Exception as e: | CODE |
| LOW | tasks/daily/redemption.py | 152 | except Exception as e: | CODE |
| LOW | tasks/daily/photo.py | 23 | except Exception as e: | CODE |
| MEDIUM | tasks/daily/photo.py | 10 | def photograph(): | CODE |
| LOW | tasks/daily/buildtarget.py | 341 | except Exception as e: | CODE |
| LOW | tasks/daily/ember_exchange.py | 115 | except Exception as e: | CODE |
| LOW | tasks/daily/ember_exchange.py | 387 | except Exception as e: | CODE |
| LOW | tasks/daily/ember_exchange.py | 415 | except Exception as e: | CODE |
| MEDIUM | tasks/daily/ember_exchange.py | 380 | def _scroll_to_bottom_for_retry(cls): | CODE |
| LOW | tasks/daily/synthesis.py | 42 | except Exception as e: | CODE |
| LOW | tasks/daily/synthesis.py | 82 | except Exception as e: | CODE |
| LOW | tasks/daily/synthesis.py | 109 | except Exception as e: | CODE |
| LOW | tasks/daily/synthesis.py | 146 | except Exception as e: | CODE |
| LOW | tasks/daily/synthesis.py | 282 | except Exception as e: | CODE |
| MEDIUM | tasks/daily/synthesis.py | 47 | def self_molding_resin(): | CODE |
| MEDIUM | tasks/daily/synthesis.py | 87 | def consumables(): | CODE |
| MEDIUM | tasks/daily/synthesis.py | 114 | def use_consumables(recursion=True): | CODE |
| MEDIUM | tasks/daily/synthesis.py | 151 | def lc3star_superimpose(): | CODE |
| LOW | tasks/version/__init__.py | 28 | except Exception: | CODE |
| LOW | tasks/version/app_update.py | 70 | except Exception as e: | CODE |
| LOW | tasks/weekly/echoofwar.py | 45 | except Exception as e: | CODE |
| MEDIUM | tasks/weekly/echoofwar.py | 13 | def start(): | CODE |
| LOW | tasks/weekly/currency_wars.py | 313 | except Exception as e: | CODE |
| LOW | tasks/weekly/currency_wars.py | 501 | except Exception as e: | CODE |
| LOW | tasks/weekly/currency_wars.py | 575 | except Exception as exc: | CODE |
| LOW | tasks/weekly/universe.py | 289 | except Exception as e: | CODE |
| 564 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tasks/tool/autoplot/_detector.py | 26 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 28 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 70 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 72 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 107 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 109 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 126 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 128 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 166 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 168 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 185 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 187 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 219 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_detector.py | 221 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | tasks/tool/autoplot/_engine.py | 134 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | tasks/tool/autoplot/_engine.py | 136 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | tasks/tool/autoplot/_engine.py | 273 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | tasks/tool/autoplot/_engine.py | 275 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 61 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 63 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 100 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 102 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 161 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 163 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 189 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 191 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 209 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 211 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 228 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 230 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 300 | # ======================================================================== | COMMENT |
| MEDIUM | tasks/tool/autoplot/_engine.py | 302 | # ======================================================================== | COMMENT |
| MEDIUM⚡ | tasks/tool/autoplot/_config.py | 13 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tasks/tool/autoplot/_config.py | 15 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tasks/tool/autoplot/_config.py | 25 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tasks/tool/autoplot/_config.py | 28 | # ============================================================================ | COMMENT |
| MEDIUM | tasks/tool/autoplot/_config.py | 95 | # ============================================================================ | COMMENT |
| MEDIUM | tasks/tool/autoplot/_config.py | 97 | # ============================================================================ | COMMENT |
| MEDIUM | tasks/tool/autoplot/_config.py | 149 | # ============================================================================ | COMMENT |
| MEDIUM | tasks/tool/autoplot/_config.py | 151 | # ============================================================================ | COMMENT |
| MEDIUM | tasks/tool/autoplot/_config.py | 187 | # ============================================================================ | COMMENT |
| MEDIUM | tasks/tool/autoplot/_config.py | 189 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | tools/i18n/__init__.py | 69 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/i18n/__init__.py | 71 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/i18n/__init__.py | 331 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/i18n/__init__.py | 333 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/i18n/__init__.py | 388 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/i18n/__init__.py | 390 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/i18n/__init__.py | 400 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tools/i18n/__init__.py | 402 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/__init__.py | 231 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/__init__.py | 233 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/__init__.py | 526 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/__init__.py | 528 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/po.py | 82 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/po.py | 84 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/po.py | 189 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/po.py | 191 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/po.py | 260 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tools/i18n/po.py | 262 | # --------------------------------------------------------------------------- | COMMENT |
| 49 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | build.py | 78 | CODE | |
| LOW | build.py | 133 | CODE | |
| LOW | app.py | 186 | CODE | |
| LOW | main.py | 335 | CODE | |
| LOW | tasks/power/instance.py | 18 | CODE | |
| LOW | tasks/power/instance.py | 87 | CODE | |
| LOW | tasks/power/instance.py | 199 | CODE | |
| LOW | tasks/power/instance.py | 414 | CODE | |
| LOW | tasks/power/relicset.py | 51 | CODE | |
| LOW | tasks/power/character.py | 47 | CODE | |
| LOW | tasks/power/power.py | 55 | CODE | |
| LOW | tasks/power/power.py | 257 | CODE | |
| LOW | tasks/power/power.py | 274 | CODE | |
| LOW | tasks/activity/__init__.py | 36 | CODE | |
| LOW | tasks/game/__init__.py | 71 | CODE | |
| LOW | tasks/game/__init__.py | 500 | CODE | |
| LOW | tasks/game/__init__.py | 519 | CODE | |
| LOW | tasks/daily/tasks.py | 31 | CODE | |
| LOW | tasks/daily/fight.py | 117 | CODE | |
| LOW | tasks/daily/redemption.py | 175 | CODE | |
| LOW | tasks/daily/daily.py | 27 | CODE | |
| LOW | tasks/daily/daily.py | 114 | CODE | |
| LOW | tasks/daily/daily.py | 231 | CODE | |
| LOW | tasks/daily/buildtarget.py | 29 | CODE | |
| LOW | tasks/daily/buildtarget.py | 236 | CODE | |
| LOW | tasks/daily/ember_exchange.py | 57 | CODE | |
| LOW | tasks/daily/synthesis.py | 13 | CODE | |
| LOW | tasks/daily/synthesis.py | 47 | CODE | |
| LOW | tasks/daily/synthesis.py | 87 | CODE | |
| LOW | tasks/daily/synthesis.py | 114 | CODE | |
| LOW | tasks/daily/synthesis.py | 151 | CODE | |
| LOW | tasks/reward/message.py | 22 | CODE | |
| LOW | tasks/challenge/purefiction.py | 153 | CODE | |
| LOW | tasks/challenge/purefiction.py | 184 | CODE | |
| LOW | tasks/challenge/apocalyptic.py | 193 | CODE | |
| LOW | tasks/challenge/apocalyptic.py | 228 | CODE | |
| LOW | tasks/challenge/apocalyptic.py | 268 | CODE | |
| LOW | tasks/challenge/memoryofchaos.py | 80 | CODE | |
| LOW | tasks/challenge/memoryofchaos.py | 176 | CODE | |
| LOW | tasks/challenge/basechallenge.py | 70 | CODE | |
| LOW | tasks/challenge/memoryone.py | 100 | CODE | |
| LOW | tasks/weekly/echoofwar.py | 13 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 285 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 299 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 424 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 456 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 588 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 695 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 732 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 921 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 1055 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 1193 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 1381 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 1498 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 1935 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2142 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2269 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2441 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2566 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2589 | CODE | |
| 146 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | app/log_interface.py | 1247 | proc.setStandardInputFile(null) | CODE |
| HIGH⚡ | app/log_interface.py | 1248 | proc.setStandardOutputFile(null) | CODE |
| HIGH⚡ | app/log_interface.py | 1249 | proc.setStandardErrorFile(null) | CODE |
| HIGH⚡ | module/game/cloud.py | 659 | var w = el.width || el.videoWidth || el.clientWidth; | CODE |
| HIGH⚡ | module/game/cloud.py | 660 | var h = el.height || el.videoHeight || el.clientHeight; | CODE |
| HIGH⚡ | module/game/cloud.py | 661 | return w > 0 && h > 0; | CODE |
| HIGH⚡ | module/game/cloud.py | 740 | if (timeHide && timeHide.textContent) { | CODE |
| HIGH⚡ | module/game/cloud.py | 747 | if (valEl && valEl.textContent) { | CODE |
| HIGH⚡ | module/game/cloud.py | 751 | return null; | CODE |
| HIGH | module/game/cloud.py | 60 | if (document.pointerLockElement && document.exitPointerLock) { | CODE |
| HIGH | module/game/cloud.py | 683 | else return null; | CODE |
| HIGH | module/game/cloud.py | 717 | else return null; | CODE |
| HIGH | module/game/cloud.py | 1704 | - WrappedH265 支持条件: isWrappedHevcPipelineSupported = hasHevcHardwareDecoder && hasInsertableStreams | CODE |
| HIGH⚡ | module/game/cloud.py | 1324 | const safeNumber = (value) => Number.isFinite(value) ? Number(value) : null; | STRING |
| HIGH⚡ | module/game/cloud.py | 1333 | return null; | STRING |
| HIGH⚡ | module/game/cloud.py | 1335 | const tagName = element.tagName ? element.tagName.toUpperCase() : null; | STRING |
| HIGH⚡ | module/game/cloud.py | 1341 | readyState: safeNumber('readyState' in element ? element.readyState : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1342 | networkState: safeNumber('networkState' in element ? element.networkState : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1343 | paused: 'paused' in element ? Boolean(element.paused) : null, | STRING |
| HIGH⚡ | module/game/cloud.py | 1344 | ended: 'ended' in element ? Boolean(element.ended) : null, | STRING |
| HIGH⚡ | module/game/cloud.py | 1345 | muted: 'muted' in element ? Boolean(element.muted) : null, | STRING |
| HIGH⚡ | module/game/cloud.py | 1346 | currentTime: safeNumber('currentTime' in element ? element.currentTime : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1347 | duration: safeNumber('duration' in element ? element.duration : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1348 | videoWidth: safeNumber('videoWidth' in element ? element.videoWidth : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1349 | videoHeight: safeNumber('videoHeight' in element ? element.videoHeight : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1350 | canvasWidth: safeNumber('width' in element ? element.width : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1351 | canvasHeight: safeNumber('height' in element ? element.height : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1356 | currentSrc: typeof element.currentSrc === 'string' && element.currentSrc ? element.currentSrc.sl | STRING |
| HIGH⚡ | module/game/cloud.py | 1357 | crossOrigin: 'crossOrigin' in element ? (element.crossOrigin ?? null) : null, | STRING |
| HIGH | module/game/cloud.py | 166 | return img && img.complete && img.naturalWidth > 0; | STRING |
| HIGH | module/game/cloud.py | 1406 | dataUrlLength: typeof reader.result === 'string' ? reader.result.length : null, | STRING |
| HIGH | module/game/cloud.py | 1466 | debug.isFullCrop = left == 0 && top == 0 && width == sourceWidth && height == sourceHeight; | STRING |
| HIGH | module/game/cloud.py | 1491 | debug.sampleRgba = pixel ? Array.from(pixel.data.slice(0, 4)) : null; | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main.py | 167 | CODE | |
| LOW | tasks/power/instance.py | 12 | CODE | |
| LOW | tasks/daily/photo.py | 3 | CODE | |
| LOW | tasks/version/app_update.py | 5 | CODE | |
| LOW | tasks/version/app_update.py | 13 | CODE | |
| LOW | tasks/reward/rewardtemplate.py | 3 | CODE | |
| LOW | tasks/reward/message.py | 5 | CODE | |
| LOW | tasks/reward/quest.py | 2 | CODE | |
| LOW | tasks/weekly/divergent_universe.py | 9 | CODE | |
| LOW | tasks/weekly/divergent_universe.py | 12 | CODE | |
| LOW | tasks/base/genshin_starRail_fps_unlocker.py | 5 | CODE | |
| LOW | tasks/tool/autoplot/_detector.py | 8 | CODE | |
| LOW | tasks/tool/autoplot/_detector.py | 11 | CODE | |
| LOW | tasks/tool/autoplot/_detector.py | 14 | CODE | |
| LOW | tasks/tool/autoplot/__init__.py | 7 | CODE | |
| LOW | tasks/tool/autoplot/__init__.py | 8 | CODE | |
| LOW | tasks/tool/autoplot/_engine.py | 21 | CODE | |
| LOW | tasks/tool/autoplot/_config.py | 8 | CODE | |
| LOW | tools/i18n/__init__.py | 21 | CODE | |
| LOW | tools/i18n/__init__.py | 45 | CODE | |
| LOW | tools/i18n/__init__.py | 50 | CODE | |
| LOW | tools/i18n/po.py | 10 | CODE | |
| LOW | app/help_interface.py | 1 | CODE | |
| LOW | app/help_interface.py | 73 | CODE | |
| LOW | app/setting_interface.py | 10 | CODE | |
| LOW | app/setting_interface.py | 11 | CODE | |
| LOW | app/setting_interface.py | 12 | CODE | |
| LOW | app/setting_interface.py | 12 | CODE | |
| LOW | app/setting_interface.py | 15 | CODE | |
| LOW | app/setting_interface.py | 27 | CODE | |
| LOW | app/tools_interface.py | 10 | CODE | |
| LOW | app/schedule_dialog.py | 2 | CODE | |
| LOW | app/schedule_dialog.py | 7 | CODE | |
| LOW | app/schedule_dialog.py | 7 | CODE | |
| LOW | app/log_interface.py | 8 | CODE | |
| LOW | app/log_interface.py | 8 | CODE | |
| LOW | app/log_interface.py | 8 | CODE | |
| LOW | app/home_interface.py | 21 | CODE | |
| LOW | app/tools/check_update.py | 1 | CODE | |
| LOW | app/tools/warp_export.py | 2 | CODE | |
| LOW | app/tools/warp_export.py | 2 | CODE | |
| LOW | app/card/comboboxsettingcard2.py | 1 | CODE | |
| LOW | app/card/comboboxsettingcard2.py | 1 | CODE | |
| LOW | app/card/samplecardview1.py | 5 | CODE | |
| LOW | app/card/samplecardview1.py | 5 | CODE | |
| LOW | app/card/samplecardview1.py | 5 | CODE | |
| LOW | app/card/messagebox_custom.py | 15 | CODE | |
| LOW | app/card/card_edit_dialog.py | 4 | CODE | |
| LOW | app/card/pushsettingcard1.py | 11 | CODE | |
| LOW | app/card/pushsettingcard1.py | 14 | CODE | |
| LOW | app/card/rangesettingcard1.py | 6 | CODE | |
| LOW | app/card/rangesettingcard1.py | 6 | CODE | |
| LOW | app/card/rangesettingcard1.py | 6 | CODE | |
| LOW | app/sub_interfaces/accounts_interface.py | 3 | CODE | |
| LOW | app/sub_interfaces/accounts_interface.py | 3 | CODE | |
| LOW | app/sub_interfaces/accounts_interface.py | 8 | CODE | |
| LOW | app/sub_interfaces/accounts_interface.py | 10 | CODE | |
| LOW | app/common/style_sheet.py | 4 | CODE | |
| LOW | module/update/update_handler.py | 5 | CODE | |
| LOW | module/update/update_engine.py | 6 | CODE | |
| 28 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL⚡ | tests/test_tasks/test_currency_wars_watchdog.py | 45 | self.module.auto.screenshot.save.assert_called_once() | CODE |
| CRITICAL⚡ | tests/test_tasks/test_currency_wars_watchdog.py | 70 | self.module.auto.screenshot.save.assert_not_called() | CODE |
| CRITICAL⚡ | tests/test_tasks/test_currency_wars_watchdog.py | 84 | self.module.auto.screenshot.save.assert_not_called() | CODE |
| CRITICAL⚡ | tests/test_tasks/test_currency_wars_watchdog.py | 114 | self.module.auto.screenshot.save.assert_not_called() | CODE |
| CRITICAL | assets/docsify/docsify.min.js | 1 | !function(){function c(i){var o=Object.create(null);return function(e){var n=f(e)?e:JSON.stringify(e);return o[n]||(o[n] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose.yml | 21 | # command: ["python", "main.py", "notify"] | COMMENT |
| LOW | tasks/power/instance.py | 101 | COMMENT | |
| LOW | tasks/power/instance.py | 321 | else: | COMMENT |
| LOW | tasks/daily/synthesis.py | 281 | COMMENT | |
| LOW | tasks/reward/dispatch.py | 41 | # log.info(f"正在进行第{i + 1}次委托") | COMMENT |
| LOW | tasks/reward/dispatch.py | 61 | # # width, height = auto.get_image_info("./assets/images/share/base/RedExclamationMark.png") | COMMENT |
| LOW | tasks/weekly/currency_wars.py | 881 | # if money >= 2 and auto.click_element("风堇", "text", crop=shop_crop): | COMMENT |
| LOW | tasks/weekly/currency_wars.py | 1621 | if self.has_tracked_character("希儿"): | COMMENT |
| LOW | tasks/weekly/currency_wars.py | 2581 | if auto.click_element("下一步", 'text', None, include=True): | COMMENT |
| LOW | tasks/weekly/currency_wars.py | 2721 | ] | COMMENT |
| LOW | tasks/weekly/currency_wars.py | 2781 | # 大裁员:出售场上和备战席的所有角色 | COMMENT |
| LOW | tasks/weekly/divergent_universe.py | 1101 | # result = auto.get_single_line_text(crop=pos) | COMMENT |
| LOW | tools/i18n/legacy_keys.txt | 1 | # 死键白名单:一行一个 msgid,'#' 起始为注释。 | COMMENT |
| LOW | app/main_window.py | 141 | # https://github.com/zhiyiYo/PyQt-Frameless-Window/pull/186 | COMMENT |
| LOW | app/setting_interface.py | 161 | # self.title_area.setMinimumSize(800, 50) | COMMENT |
| LOW | app/setting_interface.py | 221 | ) | COMMENT |
| LOW | app/setting_interface.py | 361 | ) | COMMENT |
| LOW | app/setting_interface.py | 381 | # self.borrowCharacterInfoCard = PrimaryPushSettingCard( | COMMENT |
| LOW | app/setting_interface.py | 961 | self.cloudGameLoginTimeoutCard = RangeSettingCard1( | COMMENT |
| LOW | app/log_interface.py | 501 | # 根据操作系统选择合适的等宽字体 | COMMENT |
| LOW | app/log_interface.py | 1121 | # return | COMMENT |
| LOW | module/ocr/ocr.py | 761 | def run(self, img, max_retries=3): | COMMENT |
| LOW | module/game/cloud.py | 481 | COMMENT | |
| LOW | module/automation/automation.py | 241 | COMMENT | |
| LOW | assets/config/config.example.yaml | 401 | # 图形界面快捷键设置 | COMMENT |
| LOW | assets/config/config.example.yaml | 421 | # - args: 启动参数(可选),当 program 为 'self' 时填写任务ID(如 main/daily) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | build.py | 54 | def update_universe() -> None: | CODE |
| LOW⚡ | build.py | 62 | def update_fight() -> None: | CODE |
| LOW⚡ | build.py | 70 | def update_fps_unlocker() -> None: | CODE |
| LOW | tasks/tool/autoplot/__init__.py | 10 | __all__ = ["AutoPlot", "EngineState"] | CODE |
| LOW⚡ | tasks/tool/autoplot/_engine.py | 138 | def update_options(self, options: dict) -> None: | CODE |
| LOW⚡ | module/game/base.py | 191 | def set_foreground_window_with_retry(hwnd) -> None: | CODE |
| LOW⚡ | utils/registry/star_rail_setting.py | 56 | def set_auto_battle_open_setting(value: bool) -> None: | CODE |
| LOW⚡ | utils/registry/star_rail_setting.py | 60 | def set_is_save_battle_speed_setting(value: bool) -> None: | CODE |
| LOW⚡ | utils/registry/star_rail_setting.py | 64 | def set_user_speed_up_open_setting(uid: str, value: bool) -> None: | CODE |
| LOW | utils/registry/star_rail_setting.py | 177 | def set_game_resolution(width: int, height: int, is_fullscreen: bool) -> None: | CODE |
| LOW | utils/registry/star_rail_setting.py | 217 | def set_game_fps(fps: int) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | app/help_interface.py | 0 | <style> a { color: #f18cb9; font-weight: bold; } </style> | STRING |
| HIGH | app/changelog_interface.py | 0 | <style> a { color: #f18cb9; font-weight: bold; } </style> | STRING |
| HIGH | app/tools/disclaimer.py | 0 | <style> a { color: #f18cb9; font-weight: bold; } </style> | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tasks/weekly/divergent_universe.py | 907 | CODE | |
| MEDIUM | tasks/weekly/divergent_universe.py | 908 | CODE | |
| MEDIUM | tasks/weekly/divergent_universe.py | 909 | CODE | |
| MEDIUM | tasks/weekly/divergent_universe.py | 910 | CODE | |
| MEDIUM | tasks/weekly/divergent_universe.py | 911 | CODE | |
| MEDIUM | module/game/cloud.py | 1622 | CODE | |
| MEDIUM | module/game/cloud.py | 1633 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | module/update/version_check.py | 347 | 检测更新的统一入口。 根据 source 参数选择更新源。mirrorchyan_fallback 控制 Mirror酱 失败时是否回退到 GitHub。 Args: source: "GitHub" 或 | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_module/test_ui_i18n_conventions.py | 38 | UI_INFO_KW = {"text", "title", "content", "caption", "label", "placeholder", | CODE |
| LOW | tests/test_module/test_notification/test_notifiers.py | 60 | "user": "user@example.com", | CODE |
| LOW | tests/test_module/test_notification/test_notifiers.py | 82 | "user": "user@example.com", | CODE |
| LOW | tests/test_module/test_notification/test_notifiers.py | 114 | "user": "user@example.com", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | module/automation/automation.py | 739 | CODE | |
| LOW | module/automation/automation.py | 894 | CODE | |
| LOW | module/automation/launcher_automation.py | 375 | CODE | |
| LOW | module/automation/launcher_automation.py | 455 | CODE |