48 lines · 2.1 KB · Swift
RawDownload
import Foundation // MARK: - OpenAI web error messaging extension UsageStore {    func openAIDashboardFriendlyError(        body: String,        targetEmail: String?,        cookieImportStatus: String?) -> String?    {        let trimmed = body.trimmingCharacters(in: .whitespacesAndNewlines)        let status = cookieImportStatus?.trimmingCharacters(in: .whitespacesAndNewlines)        if trimmed.isEmpty {            return [                "OpenAI web dashboard returned an empty page.",                "Sign in to chatgpt.com and update OpenAI cookies in Providers → Codex.",            ].joined(separator: " ")        }         let lower = trimmed.lowercased()        let looksLikePublicLanding = lower.contains("skip to content")            && (lower.contains("about") || lower.contains("openai") || lower.contains("chatgpt"))        let looksLoggedOut = lower.contains("sign in")            || lower.contains("log in")            || lower.contains("create account")            || lower.contains("continue with google")            || lower.contains("continue with apple")            || lower.contains("continue with microsoft")         guard looksLikePublicLanding || looksLoggedOut else { return nil }        let emailLabel = targetEmail?.trimmingCharacters(in: .whitespacesAndNewlines)        let targetLabel = (emailLabel?.isEmpty == false) ? emailLabel! : "your OpenAI account"        if let status, !status.isEmpty {            if status.contains("cookies do not match Codex account")                || status.localizedCaseInsensitiveContains("cookie import failed")            {                return [                    status,                    "Sign in to chatgpt.com as \(targetLabel), then update OpenAI cookies in Providers → Codex.",                ].joined(separator: " ")            }        }        return [            "OpenAI web dashboard returned a public page (not signed in).",            "Sign in to chatgpt.com as \(targetLabel), then update OpenAI cookies in Providers → Codex.",        ].joined(separator: " ")    }}