From 5613d57c5128b238788c848ae826d82d909c1435 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:53:41 +0000 Subject: [PATCH 1/2] Initial plan From c8921858518a7aa71aba6cf8a06868fcb7b1ac50 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:58:28 +0000 Subject: [PATCH 2/2] Fix reportLink nil handling to prevent crashes Co-authored-by: graycreate <5203798+graycreate@users.noreply.github.com> --- V2er/State/DataFlow/Actions/FeedDetailActions.swift | 8 +++++++- V2er/State/DataFlow/Model/FeedDetailInfo.swift | 2 ++ V2er/View/FeedDetail/FeedDetailPage.swift | 3 ++- V2erTests/V2erTests.swift | 12 +++++++++++- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/V2er/State/DataFlow/Actions/FeedDetailActions.swift b/V2er/State/DataFlow/Actions/FeedDetailActions.swift index 4ef2020..d7f6706 100644 --- a/V2er/State/DataFlow/Actions/FeedDetailActions.swift +++ b/V2er/State/DataFlow/Actions/FeedDetailActions.swift @@ -143,9 +143,15 @@ struct FeedDetailActions { func execute(in store: Store) async { Toast.show("举报中") let state = store.appState.feedDetailStates[id]! + + guard let reportLink = state.model.reportLink, !reportLink.isEmpty else { + Toast.show("无法举报此主题") + dispatch(ReportTopicDone(id: id, reported: false)) + return + } let result: APIResult = await APIService.shared - .htmlGet(endpoint: .general(url: state.model.reportLink!), + .htmlGet(endpoint: .general(url: reportLink), requestHeaders: Headers.TINY_REFERER) var reported = false if case let .success(result) = result { diff --git a/V2er/State/DataFlow/Model/FeedDetailInfo.swift b/V2er/State/DataFlow/Model/FeedDetailInfo.swift index f53f56e..834e1f0 100644 --- a/V2er/State/DataFlow/Model/FeedDetailInfo.swift +++ b/V2er/State/DataFlow/Model/FeedDetailInfo.swift @@ -258,6 +258,8 @@ struct FeedDetailInfo: BaseModel { let sIndex = rawReportUrl.index(of: "/report/topic/")! let eIndex = rawReportUrl.lastIndex(of: "'")! self.reportLink = String(rawReportUrl[sIndex..