fish2018/pansou · error

提取链接失败

Error message

提取链接失败

What it means

Extraction failure in PanyqPlugin.getFinalLink (plugin/panyq/panyq.go:1152): neither JSON parsing nor the URL regex found a pan/magnet link in the final step's response text, so no link can be returned. Indicates an unexpected or empty final response.

Solutions

  1. 记录响应文本核对提取逻辑
  2. 更新链接匹配正则覆盖新格式
  3. 该场景返回空并标记资源失效
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at plugin/panyq/panyq.go:1152 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of fish2018/pansou@beaa561337 (2026-09-07). Data as JSON: /api/errors/a8d9217e0dbb6012. Report an issue: GitHub.

Appendix: source

Thrown at plugin/panyq/panyq.go:1152

						finalLink = url
					}
				}
			}
		}
	}
	
	// 如果JSON解析失败,尝试使用正则表达式
	if finalLink == "" {
		urlRegex := regexp.MustCompile(`(https?://[^\s"'<>]+|magnet:\?[^\s"'<>]+)`)
		urlMatch := urlRegex.FindStringSubmatch(responseText)
		
		if len(urlMatch) > 0 {
			finalLink = urlMatch[0]
		}
	}
	
	if finalLink == "" {
		return "", fmt.Errorf("提取链接失败")
	}

	// 保存链接到缓存
	finalLinkCacheLock.Lock()
	finalLinkCache[linkCacheKey] = finalLink
	finalLinkCacheLock.Unlock()
	
	return finalLink, nil
}

// determineLinkType 根据URL确定链接类型
func (p *PanyqPlugin) determineLinkType(url string) string {
	lowerURL := strings.ToLower(url)
	
	switch {
	case strings.Contains(lowerURL, "pan.baidu.com"):
		return "baidu"
	case strings.Contains(lowerURL, "alipan.com") || strings.Contains(lowerURL, "aliyundrive.com"):

View on GitHub (pinned to beaa561337)