Repository Analysis

babalae/better-genshin-impact

📦BetterGI · 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 | 自动烹饪 - UI Automation Testing Tools For Genshin Impact

1.7 Likely human-written View on GitHub
1.7
Adjusted Score
1.7
Raw Score
100%
Time Factor
2026-05-29
Last Push
13,694
Stars
C#
Language
190,349
Lines of Code
1511
Files
308
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 5LOW 303

Pattern Findings

308 matches across 7 categories. Click a row to expand file-level details.

Over-Commented Block281 hits · 276 pts
SeverityFileLineSnippet
LOW…/BetterGenshinImpact.Test/Dataset/AvatarClassifyGen.cs21
LOWTest/BetterGenshinImpact.Test/Simple/FeatureMatcher.cs121 return _matcherFactory[type];
LOW…BetterGenshinImpact.Test/Simple/TeyvatMapCoordinate.cs61 /// <summary>
LOW…t/BetterGenshinImpact.Test/Simple/Track/MapPathTest.cs21 // var pointsRect = Cv2.BoundingRect(points);
LOW…hinImpact.Test/Simple/MiniMap/CameraOrientationTest.cs41 var left2 = left.Zip(right, (x, y) => Math.Max(x - y, 0)).ToArray();
LOW…hinImpact.Test/Simple/MiniMap/CameraOrientationTest.cs81 return (left2, rightAfterShift, result);
LOW…terGenshinImpact.Test/Simple/AllMap/FeatureTransfer.cs21 // string kpPath = Path.Combine(rootPath, $"mainMap2048Block_SIFT.kp");
LOW…rGenshinImpact.Test/Simple/AllMap/KeyPointMatchTest.cs201 objCorners[2] = new Point2f(matSrc.Cols, matSrc.Rows);
LOW…GenshinImpact.Test/Simple/AllMap/LargeSIFTExtractor.cs21 private const int MAX_PARALLELISM = 24;
LOW…GenshinImpact.Test/Simple/AllMap/LargeSIFTExtractor.cs201 }
LOW…tterGenshinImpact.Test/Simple/AllMap/MapPuzzleOther.cs41 // {
LOW…t/GameTaskTests/AutoFightTests/PartyAvatarInitTests.cs81 }
LOW…t/GameTaskTests/AutoFightTests/PartyAvatarInitTests.cs101 // //
LOWFischless.WindowsInput/InputBuilder.cs361/// <summary>
LOWBetterGenshinImpact/App.xaml.cs141
LOW…tterGenshinImpact/ViewModel/Pages/HomePageViewModel.cs361
LOW…tterGenshinImpact/ViewModel/Pages/HomePageViewModel.cs381 //{
LOW…tterGenshinImpact/ViewModel/Pages/HomePageViewModel.cs441 }
LOWBetterGenshinImpact/ViewModel/Pages/JsListViewModel.cs321 });
LOW…erGenshinImpact/ViewModel/Pages/HotKeyPageViewModel.cs741 // // _taskSettingsPageViewModel.OnSwitchAutoTrack();
LOW…enshinImpact/ViewModel/Pages/ScriptControlViewModel.cs1541
LOW…hinImpact/ViewModel/Pages/TaskSettingsPageViewModel.cs521 // lock (_locker)
LOW…hinImpact/ViewModel/Pages/TaskSettingsPageViewModel.cs561 // _cts = new CancellationTokenSource();
LOWBetterGenshinImpact/Hutao/PipePacketHeader.cs1using System.Runtime.InteropServices;
LOWBetterGenshinImpact/Core/Config/AllConfig.cs61
LOWBetterGenshinImpact/Core/Config/AllConfig.cs101
LOWBetterGenshinImpact/Core/Config/AllConfig.cs121
LOWBetterGenshinImpact/Core/Config/AllConfig.cs141
LOWBetterGenshinImpact/Core/Config/AllConfig.cs181 /// 地图遮罩
LOWBetterGenshinImpact/Core/Config/AllConfig.cs201 /// 宏配置
LOWBetterGenshinImpact/Core/Config/AllConfig.cs221
LOWBetterGenshinImpact/Core/Config/PathingPartyConfig.cs41 [ObservableProperty]
LOWBetterGenshinImpact/Core/Config/MacroConfig.cs41 /// <summary>
LOWBetterGenshinImpact/Core/Config/CommonConfig.cs41 /// <summary>
LOWBetterGenshinImpact/Core/Config/GenshinStartConfig.cs1using CommunityToolkit.Mvvm.ComponentModel;
LOWBetterGenshinImpact/Core/Config/Global.cs41 if (File.Exists(path)) return File.ReadAllText(path);
LOW…enshinImpact/Core/Config/HardwareAccelerationConfig.cs61
LOWBetterGenshinImpact/Core/Config/MaskWindowConfig.cs21 /// </summary>
LOW…terGenshinImpact/Core/Config/PathingConditionConfig.cs181 // foreach (var avatar in combatScenes.Avatars)
LOWBetterGenshinImpact/Core/Config/KeyBindingsConfig.cs61 /// <summary>
LOWBetterGenshinImpact/Core/Config/KeyBindingsConfig.cs121 /// <summary>
LOWBetterGenshinImpact/Core/Config/KeyBindingsConfig.cs221 /// <summary>
LOWBetterGenshinImpact/Core/Config/KeyBindingsConfig.cs281 /// <summary>
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs41 /// 全局互斥锁,串行化所有对仓库目录和用户脚本目录的写操作,
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs61 /// StartGameTask 结束后会 await 此 Task,确保更新完成后再执行任务。
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs121 // {
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs141 // }
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs1241 // 克隆仓库
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs1741 // public async Task<(string, bool)> UpdateCenterRepo()
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs1761 // needDownload = true;
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs1781 //
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs2141 }
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs2221 {
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs2241 // }
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs2261 // var uiMessageBox = new Wpf.Ui.Controls.MessageBox
LOW…erGenshinImpact/Core/Script/Dependence/StrategyFile.cs21
LOW…tterGenshinImpact/Core/Script/Dependence/Dispatcher.cs101 customCts.Token,
LOW…shinImpact/Core/Script/Dependence/AutoPathingScript.cs61 /// <param name="path">在 `\User\AutoPathing` 目录下获取文件</param>
LOW…shinImpact/Core/Script/Dependence/AutoPathingScript.cs81
LOW…terGenshinImpact/Core/Script/Dependence/LimitedFile.cs221 }
221 more matches not shown…
Decorative Section Separators5 hits · 22 pts
SeverityFileLineSnippet
MEDIUMBetterGenshinImpact/Hutao/PipePacketHeader.cs7// ┌─────────┬──────┬─────────┬─────────────┐
MEDIUMBetterGenshinImpact/Hutao/PipePacketHeader.cs9// ├─────────┴──────┴─────────┴─────────────┤ 4 Bytes
MEDIUMBetterGenshinImpact/Hutao/PipePacketHeader.cs11// ├────────────────────────────────────────┤ 8 Bytes
MEDIUMBetterGenshinImpact/Hutao/PipePacketHeader.cs13// │─────────────── Checksum ───────────────│
MEDIUMBetterGenshinImpact/Hutao/PipePacketHeader.cs15// └────────────────────────────────────────┘ 16 Bytes
Verbosity Indicators7 hits · 10 pts
SeverityFileLineSnippet
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs841 // Step 1: 克隆到临时文件夹
LOWBetterGenshinImpact/Core/Script/ScriptRepoUpdater.cs855 // Step 2: 基于目录结构重合度决定存放位置
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs95 // Step 1: Get all teleport positions from current screenshot
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs154 // Step 2: find a diagonal determined by two of the teleports, let's call these two teleports reference points
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs193 // Step 3: For all diagonals determined by pairs of teleports on this map.
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs207 // Step 4: Assuming this pair corresponds to the reference points
LOW…nImpact/GameTask/Common/Map/Maps/SeaOfBygoneErasMap.cs220 // Step 5: Check how close the fit is
Excessive Try-Catch Wrapping5 hits · 5 pts
SeverityFileLineSnippet
LOW.github/workflows/github_download_and_cnb_upload.py213 except Exception as e:
LOW.github/workflows/github_download_and_cnb_upload.py493 except Exception as e:
LOW.github/workflows/github_download_and_cnb_upload.py505 except Exception as e:
LOW.github/workflows/cnb_release.py331 except Exception as e:
LOW.github/workflows/cnb_release.py445 except Exception as e:
Deep Nesting5 hits · 5 pts
SeverityFileLineSnippet
LOW.github/workflows/github_download_and_cnb_upload.py282
LOW.github/workflows/github_download_and_cnb_upload.py132
LOW.github/workflows/cnb_release.py306
LOW.github/workflows/cnb_release.py361
LOW.github/workflows/cnb_release.py120
Unused Imports4 hits · 4 pts
SeverityFileLineSnippet
LOW.github/workflows/github_download_and_cnb_upload.py31
LOW.github/workflows/github_download_and_cnb_upload.py32
LOW.github/workflows/github_download_and_cnb_upload.py34
LOW.github/workflows/cnb_release.py21
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippet
LOW.github/workflows/github_download_and_cnb_upload.py218def extract_version_from_filename(filename: str) -> Optional[str]: