add translate
This commit is contained in:
@@ -243,8 +243,10 @@ const SERVICE_MAP: Record<string, { domain: string; icon?: string }> = {
|
||||
|
||||
// Search Bluesky posts mentioning a URL
|
||||
export async function searchPostsForUrl(url: string): Promise<any[]> {
|
||||
// Search ALL endpoints and merge results (different networks have different indexes)
|
||||
const endpoints = [getBsky(), ...FALLBACK_ENDPOINTS.filter(e => e !== getBsky())]
|
||||
// Only use current network's endpoint - don't cross-search other networks
|
||||
// This avoids CORS issues with public.api.bsky.app when using different PDS
|
||||
const currentBsky = getBsky()
|
||||
const endpoints = [currentBsky]
|
||||
|
||||
// Extract search-friendly patterns from URL
|
||||
// e.g., "https://syui.ai/post/abc123/" -> ["syui.ai/post/abc123", "syui.ai/post"]
|
||||
@@ -270,9 +272,15 @@ export async function searchPostsForUrl(url: string): Promise<any[]> {
|
||||
const searchPromises = endpoints.flatMap(endpoint =>
|
||||
searchQueries.map(async query => {
|
||||
try {
|
||||
const controller = new AbortController()
|
||||
const timeoutId = setTimeout(() => controller.abort(), 5000) // 5s timeout
|
||||
|
||||
const res = await fetch(
|
||||
`${endpoint}/xrpc/app.bsky.feed.searchPosts?q=${encodeURIComponent(query)}&limit=20`
|
||||
`${endpoint}/xrpc/app.bsky.feed.searchPosts?q=${encodeURIComponent(query)}&limit=20`,
|
||||
{ signal: controller.signal }
|
||||
)
|
||||
clearTimeout(timeoutId)
|
||||
|
||||
if (!res.ok) return []
|
||||
const data = await res.json()
|
||||
// Filter posts that actually link to the target URL
|
||||
@@ -282,6 +290,7 @@ export async function searchPostsForUrl(url: string): Promise<any[]> {
|
||||
return embedUri === url || text.includes(url) || embedUri?.includes(url.replace(/\/$/, ''))
|
||||
})
|
||||
} catch {
|
||||
// Silently fail for CORS/network/timeout errors
|
||||
return []
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user