Fix Bangumi rescrape proxy and keyword search#39
Conversation
📝 WalkthroughWalkthroughChangesManual metadata matching
Bangumi proxy configuration
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)Manual metadata searchsequenceDiagram
participant MetadataSearchContext
participant MetadataQueryPlanner
participant BangumiAnimeMetadataSearchProvider
participant MetadataScraper
MetadataSearchContext->>MetadataQueryPlanner: provide MANUAL_MATCH intent
MetadataQueryPlanner->>BangumiAnimeMetadataSearchProvider: return explicit query texts
BangumiAnimeMetadataSearchProvider->>MetadataScraper: search without alias fallback
MetadataScraper-->>BangumiAnimeMetadataSearchProvider: return scraper results
Bangumi proxy configurationsequenceDiagram
participant MiruPlayDesktopComposeApp
participant DesktopBangumiScraper
participant BangumiApiClient
MiruPlayDesktopComposeApp->>DesktopBangumiScraper: configureProxy(...)
DesktopBangumiScraper->>BangumiApiClient: apply normalized proxy settings
BangumiApiClient-->>DesktopBangumiScraper: use proxy for search requests
Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
desktop-app/src/main/kotlin/com/miruplay/tv/desktop/MiruPlayDesktopComposeApp.kt (1)
891-895: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider extracting the repeated proxy-configuration pattern.
All four call sites follow the same sequence: update UI state →
bangumiScraper.configureProxy(...)→cloudRssScheduler.syncPeriodicWork(...). Since aCloudDriveAutomationConfig.toBangumiHttpProxyConfig()extension already exists, adding aconfigureProxy(config: CloudDriveAutomationConfig)overload (or acceptingBangumiHttpProxyConfigdirectly) would eliminate the repeated three-argument extraction and reduce the risk of future drift.♻️ Optional: add an overload to reduce repetition
// In DesktopBangumiScraper.kt +fun configureProxy(config: BangumiHttpProxyConfig) { + api.configureProxy(config) +} + fun configureProxy(enabled: Boolean, host: String, port: Int) { api.configureProxy(BangumiHttpProxyConfig.normalize(enabled, host, port)) }Then call sites become:
- bangumiScraper.configureProxy( - config.data.rssProxyEnabled, - config.data.rssProxyHost, - config.data.rssProxyPort, - ) + bangumiScraper.configureProxy(config.data.toBangumiHttpProxyConfig())Also applies to: 948-952, 1372-1376, 1497-1501
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@desktop-app/src/main/kotlin/com/miruplay/tv/desktop/MiruPlayDesktopComposeApp.kt` around lines 891 - 895, Extract the repeated proxy setup into a shared helper or overload near the existing proxy configuration code. Use the existing CloudDriveAutomationConfig.toBangumiHttpProxyConfig() conversion, then update all four call sites to invoke the helper with the config while preserving the existing UI state update and cloudRssScheduler.syncPeriodicWork(...) behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In
`@desktop-app/src/main/kotlin/com/miruplay/tv/desktop/MiruPlayDesktopComposeApp.kt`:
- Around line 891-895: Extract the repeated proxy setup into a shared helper or
overload near the existing proxy configuration code. Use the existing
CloudDriveAutomationConfig.toBangumiHttpProxyConfig() conversion, then update
all four call sites to invoke the helper with the config while preserving the
existing UI state update and cloudRssScheduler.syncPeriodicWork(...) behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: f583d1ed-3d8e-4a1f-a06b-cc30ee6dd2a4
📒 Files selected for processing (9)
core/model/src/main/kotlin/com/miruplay/tv/model/DetailUiConventions.ktcore/model/src/test/kotlin/com/miruplay/tv/model/DetailUiConventionsTest.ktdesktop-app/src/main/kotlin/com/miruplay/tv/desktop/MiruPlayDesktopComposeApp.ktrepository-api/src/main/kotlin/com/miruplay/tv/repository/MetadataSearchAggregation.ktrepository-api/src/test/kotlin/com/miruplay/tv/repository/MetadataSearchAggregationTest.ktscraper-desktop/src/main/kotlin/com/miruplay/tv/scraper/desktop/DesktopBangumiScraper.ktscraper-desktop/src/test/kotlin/com/miruplay/tv/scraper/desktop/DesktopBangumiScraperTest.ktscraper/src/main/kotlin/com/miruplay/tv/scraper/MetadataSearchAggregators.ktscraper/src/test/kotlin/com/miruplay/tv/scraper/MetadataSearchAggregatorsTest.kt
Summary
Tests
./gradlew :scraper-desktop:test --tests "com.miruplay.tv.scraper.desktop.DesktopBangumiScraperTest"./gradlew :desktop-app:compileKotlin./gradlew :scraper:testDebugUnitTest --tests "com.miruplay.tv.scraper.MetadataSearchAggregatorsTest" :core:model:test --tests "com.miruplay.tv.model.DetailUiConventionsTest" :repository-api:test --tests "com.miruplay.tv.repository.MetadataSearchAggregationTest"./gradlew :ui-tv:testDebugUnitTest --tests "com.miruplay.tv.ui.detail.AnimeDetailViewModelTest"git diff --checkVersion
Patch-level fix. Latest stable release is
v0.10.560, localbaseAppVersionNameis already0.10.0, so no base version bump is needed.Summary by CodeRabbit
New Features
Bug Fixes
Tests