崩坏:星穹铁道全自动 三月七小助手
This report presents the forensic synthetic code analysis of moesnow/March7thAssistant, a Python project with 11,130 GitHub stars. SynthScan v2.0 examined 68,856 lines of code across 289 source files, recording 1352 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 24.5 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 1352 distinct pattern matches across 13 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 | build.py | 211 | except Exception as e: | STRING |
| LOW | app.py | 96 | except Exception: | CODE |
| LOW | app.py | 151 | except Exception: | CODE |
| LOW | app.py | 160 | except Exception: | CODE |
| LOW⚡ | app.py | 178 | except Exception: | CODE |
| LOW⚡ | app.py | 186 | except Exception: | CODE |
| LOW⚡ | app.py | 193 | except Exception: | CODE |
| LOW⚡ | app.py | 201 | except Exception: | CODE |
| LOW | app.py | 224 | except Exception: | CODE |
| LOW | app.py | 262 | except Exception: | CODE |
| LOW | app.py | 280 | except Exception: | CODE |
| LOW | main.py | 97 | except Exception: | CODE |
| LOW | main.py | 162 | except Exception: | CODE |
| LOW | main.py | 183 | except Exception: | CODE |
| LOW | main.py | 233 | except Exception: | CODE |
| LOW | main.py | 332 | except Exception: | CODE |
| LOW | main.py | 355 | except Exception as e: | CODE |
| LOW | tasks/power/power.py | 27 | except Exception as e: | CODE |
| LOW | tasks/power/power.py | 99 | except Exception as e: | CODE |
| LOW | tasks/power/power.py | 254 | except Exception as e: | CODE |
| MEDIUM | tasks/power/power.py | 242 | 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 | 213 | except Exception as e: | CODE |
| LOW | tasks/game/__init__.py | 236 | 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 | 66 | except Exception as e: | CODE |
| LOW | tasks/daily/redemption.py | 82 | except Exception: | CODE |
| LOW | tasks/daily/redemption.py | 105 | except Exception as e: | CODE |
| LOW | tasks/daily/redemption.py | 153 | 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 | 58 | 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 | 312 | except Exception as e: | CODE |
| LOW | tasks/weekly/currency_wars.py | 474 | except Exception as e: | CODE |
| LOW | tasks/weekly/universe.py | 293 | except Exception as e: | CODE |
| LOW | tasks/weekly/divergent_universe.py | 170 | except Exception as e: | CODE |
| LOW⚡ | tasks/base/pythonchecker.py | 50 | except Exception as e: | CODE |
| 484 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main.py | 176 | def _run_loop_task_with_telemetry(task_id, task_fn): | CODE |
| LOW | tasks/power/instance.py | 475 | 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(): | 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 | 98 | def cloud_game_check_and_enter(): | CODE |
| LOW | tasks/game/__init__.py | 313 | def _start_launcher_and_get_automation(game): | CODE |
| LOW | tasks/game/__init__.py | 336 | def _handle_launcher_self_update(launcher, launcher_auto): | CODE |
| LOW | tasks/game/__init__.py | 357 | def _click_update_game_and_wait(launcher, launcher_auto): | CODE |
| LOW | tasks/game/__init__.py | 422 | def pre_download_via_launcher(game="hkrpg_cn"): | CODE |
| LOW | tasks/game/__init__.py | 448 | def notify_after_finish_not_loop(): | CODE |
| LOW | tasks/daily/daily.py | 79 | 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 | 137 | def get_remembrance_trailblazer_name(self) -> Optional[str]: | CODE |
| LOW | tasks/weekly/currency_wars.py | 146 | def _normalize_tracked_character_name(self, name: Optional[str]) -> Optional[str]: | CODE |
| LOW | tasks/weekly/currency_wars.py | 174 | def get_character_purchase_cost(self, name: Optional[str]) -> Optional[int]: | CODE |
| LOW | tasks/weekly/currency_wars.py | 187 | def spend_character_purchase_cost(self, money: int, name: Optional[str]) -> int: | CODE |
| LOW | tasks/weekly/currency_wars.py | 204 | def find_deployed_character_position(self, target_name: str): | CODE |
| LOW | tasks/weekly/currency_wars.py | 252 | def check_currency_wars_score(self) -> bool: | CODE |
| LOW | tasks/weekly/currency_wars.py | 595 | def sell_characters_aglaea_strategy(self): | CODE |
| LOW | tasks/weekly/currency_wars.py | 607 | def sell_characters_seele_strategy(self): | CODE |
| LOW | tasks/weekly/currency_wars.py | 657 | def refresh_shop_scan_if_needed(): | CODE |
| LOW | tasks/weekly/currency_wars.py | 740 | def refresh_shop_scan_if_needed(): | CODE |
| LOW | tasks/weekly/currency_wars.py | 856 | def refresh_shop_scan_if_needed(): | CODE |
| LOW | tasks/weekly/currency_wars.py | 867 | def try_buy_strategy_characters(): | CODE |
| LOW | tasks/weekly/currency_wars.py | 1847 | def check_festival_star_popup(self): | CODE |
| LOW | tasks/weekly/currency_wars.py | 2600 | def check_investment_environment(self): | CODE |
| LOW | tasks/weekly/divergent_universe.py | 34 | def _is_count_in_current_cycle(timestamp: float, cycle: Literal["daily", "weekly"]) -> bool: | CODE |
| LOW | tasks/weekly/divergent_universe.py | 96 | def check_divergent_universe_score(self) -> bool: | CODE |
| LOW | tasks/weekly/divergent_universe.py | 774 | def process_battle_stage_finish(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 | 496 | def save_selection_screenshot(self): | CODE |
| LOW⚡ | tasks/tool/autoplot/_engine.py | 277 | def _handle_non_dialog_actions(self) -> None: | CODE |
| LOW | app/main_window.py | 238 | def _on_update_version_badge_clicked(self): | CODE |
| 300 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⚡ | app/main_window.py | 540 | # ── 轻量界面完成后清空 Windows 消息队列 ────────────────── | COMMENT |
| MEDIUM⚡ | app/main_window.py | 546 | # ── 日志界面:保留进程,只更新导航标签 ────────────────── | COMMENT |
| MEDIUM⚡ | app/main_window.py | 555 | # ── 设置界面(最重):移除旧→创建新 ────────────────────── | COMMENT |
| MEDIUM⚡ | app/main_window.py | 573 | # ── 导航栏自定义按钮文本 ────────────────────────────────── | COMMENT |
| MEDIUM | app/main_window.py | 515 | # ── 轻量 TOP 界面:逐一移除旧→添加新 ─────────────────────── | COMMENT |
| MEDIUM⚡ | app/setting_interface.py | 55 | # ── 滚轮 → 横向滚动(消费,不冒泡给外层纵向 ScrollArea)─────── | COMMENT |
| MEDIUM⚡ | app/setting_interface.py | 63 | # ── 按下 → 记录全局起点,放行(tab 正常 press/hover)──────────── | COMMENT |
| MEDIUM⚡ | app/setting_interface.py | 70 | # ── 移动 → 超阈值进入拖拽,grabMouse 接管后续事件 ─────────────── | COMMENT |
| MEDIUM | app/setting_interface.py | 84 | # ── 释放 → 拖拽:releaseMouse + 发送 Leave,清理状态 ──────────── | COMMENT |
| MEDIUM | app/setting_interface.py | 157 | # ── 选项卡滚动容器 ────────────────────────────────────────────── | COMMENT |
| MEDIUM | app/setting_interface.py | 2457 | # ── 关键修复:构造时必须给 scroll area 设置初始宽度 ────────────── | STRING |
| MEDIUM | app/setting_interface.py | 2735 | # ── pivot 尺寸与滚动过滤器 ──────────────────────────────────── | STRING |
| MEDIUM | module/update/update_engine.py | 38 | # ── 阶段与进度 ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | module/update/update_engine.py | 69 | # ── 异常 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | module/update/update_engine.py | 87 | # ── 回调类型 ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | module/update/update_engine.py | 93 | # ── 引擎 ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | module/update/update_engine.py | 143 | # ── 包配置 ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | module/update/update_engine.py | 171 | # ── 版本与更新检测 ─────────────────────────────────────────────── | COMMENT |
| 30 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | build.py | 74 | CODE | |
| LOW | build.py | 129 | CODE | |
| LOW | app.py | 155 | CODE | |
| LOW | main.py | 279 | 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 | 417 | CODE | |
| LOW | tasks/power/relicset.py | 51 | CODE | |
| LOW | tasks/power/character.py | 47 | CODE | |
| LOW | tasks/power/power.py | 39 | CODE | |
| LOW | tasks/power/power.py | 241 | CODE | |
| LOW | tasks/power/power.py | 258 | CODE | |
| LOW | tasks/activity/__init__.py | 36 | CODE | |
| LOW | tasks/game/__init__.py | 50 | CODE | |
| LOW | tasks/game/__init__.py | 479 | CODE | |
| LOW | tasks/game/__init__.py | 498 | CODE | |
| LOW | tasks/daily/tasks.py | 31 | CODE | |
| LOW | tasks/daily/fight.py | 117 | CODE | |
| LOW | tasks/daily/redemption.py | 176 | CODE | |
| LOW | tasks/daily/daily.py | 27 | CODE | |
| LOW | tasks/daily/daily.py | 110 | CODE | |
| LOW | tasks/daily/daily.py | 227 | 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/achievement.py | 8 | 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 | 284 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 298 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 401 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 501 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 607 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 644 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 833 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 967 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 1105 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 1293 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 1410 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 1847 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2054 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2181 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2353 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2477 | CODE | |
| LOW | tasks/weekly/currency_wars.py | 2497 | CODE | |
| 130 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | app/log_interface.py | 1089 | proc.setStandardInputFile(null) | CODE |
| HIGH⚡ | app/log_interface.py | 1090 | proc.setStandardOutputFile(null) | CODE |
| HIGH⚡ | app/log_interface.py | 1091 | proc.setStandardErrorFile(null) | CODE |
| HIGH⚡ | module/game/cloud.py | 597 | var w = el.width || el.videoWidth || el.clientWidth; | CODE |
| HIGH⚡ | module/game/cloud.py | 598 | var h = el.height || el.videoHeight || el.clientHeight; | CODE |
| HIGH⚡ | module/game/cloud.py | 599 | return w > 0 && h > 0; | CODE |
| HIGH⚡ | module/game/cloud.py | 678 | if (timeHide && timeHide.textContent) { | CODE |
| HIGH⚡ | module/game/cloud.py | 685 | if (valEl && valEl.textContent) { | CODE |
| HIGH⚡ | module/game/cloud.py | 689 | return null; | CODE |
| HIGH | module/game/cloud.py | 621 | else return null; | CODE |
| HIGH | module/game/cloud.py | 655 | else return null; | CODE |
| HIGH | module/game/cloud.py | 1621 | - WrappedH265 支持条件: isWrappedHevcPipelineSupported = hasHevcHardwareDecoder && hasInsertableStreams | CODE |
| HIGH⚡ | module/game/cloud.py | 1251 | const safeNumber = (value) => Number.isFinite(value) ? Number(value) : null; | STRING |
| HIGH⚡ | module/game/cloud.py | 1260 | return null; | STRING |
| HIGH⚡ | module/game/cloud.py | 1262 | const tagName = element.tagName ? element.tagName.toUpperCase() : null; | STRING |
| HIGH⚡ | module/game/cloud.py | 1268 | readyState: safeNumber('readyState' in element ? element.readyState : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1269 | networkState: safeNumber('networkState' in element ? element.networkState : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1270 | paused: 'paused' in element ? Boolean(element.paused) : null, | STRING |
| HIGH⚡ | module/game/cloud.py | 1271 | ended: 'ended' in element ? Boolean(element.ended) : null, | STRING |
| HIGH⚡ | module/game/cloud.py | 1272 | muted: 'muted' in element ? Boolean(element.muted) : null, | STRING |
| HIGH⚡ | module/game/cloud.py | 1273 | currentTime: safeNumber('currentTime' in element ? element.currentTime : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1274 | duration: safeNumber('duration' in element ? element.duration : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1275 | videoWidth: safeNumber('videoWidth' in element ? element.videoWidth : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1276 | videoHeight: safeNumber('videoHeight' in element ? element.videoHeight : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1277 | canvasWidth: safeNumber('width' in element ? element.width : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1278 | canvasHeight: safeNumber('height' in element ? element.height : null), | STRING |
| HIGH⚡ | module/game/cloud.py | 1283 | currentSrc: typeof element.currentSrc === 'string' && element.currentSrc ? element.currentSrc.sl | STRING |
| HIGH⚡ | module/game/cloud.py | 1284 | crossOrigin: 'crossOrigin' in element ? (element.crossOrigin ?? null) : null, | STRING |
| HIGH | module/game/cloud.py | 147 | return img && img.complete && img.naturalWidth > 0; | STRING |
| HIGH | module/game/cloud.py | 1333 | dataUrlLength: typeof reader.result === 'string' ? reader.result.length : null, | STRING |
| HIGH | module/game/cloud.py | 1393 | debug.isFullCrop = left == 0 && top == 0 && width == sourceWidth && height == sourceHeight; | STRING |
| HIGH | module/game/cloud.py | 1418 | debug.sampleRgba = pixel ? Array.from(pixel.data.slice(0, 4)) : null; | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main.py | 127 | CODE | |
| LOW | tasks/power/instance.py | 12 | CODE | |
| LOW | tasks/daily/redemption.py | 8 | CODE | |
| LOW | tasks/daily/photo.py | 3 | CODE | |
| LOW | tasks/version/app_update.py | 5 | 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 | app/setting_interface.py | 9 | CODE | |
| LOW | app/setting_interface.py | 10 | CODE | |
| LOW | app/setting_interface.py | 11 | CODE | |
| LOW | app/setting_interface.py | 11 | CODE | |
| LOW | app/setting_interface.py | 13 | CODE | |
| LOW | app/setting_interface.py | 24 | CODE | |
| LOW | app/tools_interface.py | 9 | 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 | 22 | 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 | 13 | 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 | 9 | CODE | |
| LOW | app/common/config.py | 6 | CODE | |
| LOW | app/common/config.py | 6 | 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 | |
| LOW | module/update/update_engine.py | 21 | CODE | |
| LOW | module/update/downloader.py | 5 | CODE | |
| LOW | module/update/helper_app.py | 1 | CODE | |
| LOW | module/update/extractor.py | 5 | CODE | |
| LOW | module/update/update_window.py | 1 | CODE | |
| 27 more matches not shown… | ||||
| 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/power/power.py | 161 | 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 | 801 | # log.info("尝试购买缇宝") | COMMENT |
| LOW | tasks/weekly/currency_wars.py | 1541 | # to_move = [] | COMMENT |
| LOW | tasks/weekly/currency_wars.py | 2501 | # 同步行动:我方小队获得行动提前效果时,随机使一名精英/首领敌人行动提前20%。 | COMMENT |
| LOW | tasks/weekly/currency_wars.py | 2621 | ] | COMMENT |
| LOW | tasks/weekly/currency_wars.py | 2681 | # 大裁员:出售场上和备战席的所有角色 | COMMENT |
| LOW | app/setting_interface.py | 121 | def __initWidget(self): | COMMENT |
| LOW | app/setting_interface.py | 141 | # border-radius: 10px; | COMMENT |
| LOW | app/setting_interface.py | 341 | # FIF.PEOPLE, | COMMENT |
| LOW | app/setting_interface.py | 901 | FIF.DATE_TIME, | COMMENT |
| LOW | app/log_interface.py | 441 | self.logTextEdit.setFont(log_font) | COMMENT |
| LOW | app/log_interface.py | 961 | tasks = cfg.get_value('scheduled_tasks', []) or [] | COMMENT |
| LOW | module/ocr/ocr.py | 701 | # image.save(image_stream, format="PNG") | COMMENT |
| LOW | module/game/cloud.py | 421 | """加载初始配置,去除初始引导,免责协议等弹窗""" | COMMENT |
| LOW | assets/config/config.example.yaml | 401 | # - 旧的单一定时配置(下面两个字段)会在程序启动时迁移为新的 `scheduled_tasks` 结构: | COMMENT |
| LOW | assets/config/config.example.yaml | 421 | scheduled_on_conflict: skip | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | build.py | 50 | def update_universe() -> None: | CODE |
| LOW⚡ | build.py | 58 | def update_fight() -> None: | CODE |
| LOW⚡ | build.py | 66 | 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 | 905 | CODE | |
| MEDIUM | tasks/weekly/divergent_universe.py | 906 | CODE | |
| 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 | module/game/cloud.py | 1539 | CODE | |
| MEDIUM | module/game/cloud.py | 1550 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 |
|---|---|---|---|---|
| HIGH | module/update/version_check.py | 347 | 检测更新的统一入口。 根据 source 参数选择更新源。mirrorchyan_fallback 控制 Mirror酱 失败时是否回退到 GitHub。 Args: source: "GitHub" 或 | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | module/automation/automation.py | 726 | CODE | |
| LOW | module/automation/automation.py | 857 | CODE | |
| LOW | module/automation/launcher_automation.py | 372 | CODE | |
| LOW | module/automation/launcher_automation.py | 452 | CODE |