Skip to content

feat(scihub): add Sci-Hub search and DOI lookup adapters - #74

Open
fancywindy wants to merge 1 commit into
epiral:mainfrom
fancywindy:feat-scihub
Open

feat(scihub): add Sci-Hub search and DOI lookup adapters#74
fancywindy wants to merge 1 commit into
epiral:mainfrom
fancywindy:feat-scihub

Conversation

@fancywindy

Copy link
Copy Markdown

Summary

Add two bb-browser site adapters for sci-hub.org.cn:

  • scihub/search — Search academic papers via the Sci-Hub Google Scholar mirror. Supports keyword/title/DOI queries with configurable result count. Returns title, authors, year, source, snippet, citation count, and open-access download links.

  • scihub/doi — Lookup paper metadata by DOI. Handles DOI slash encoding issues (/ → space) to avoid URL routing problems on this mirror. Filters platform-internal links and returns structured metadata.

Features

  • Domain validation (sci-hub.org.cn)
  • Anti-bot bypass via Referer header
  • Structured error handling with actionable hints
  • CSS-selector-based DOM parsing

Testing

Tested on sci-hub.org.cn with live browser tab.

Checklist

  • Adapter follows the @meta metadata format
  • Error handling follows project conventions
  • Tested against live site
  • No destructive operations (readOnly: true)

Add two bb-browser site adapters for sci-hub.org.cn:

- scihub/search: Search academic papers via Sci-Hub Google Scholar mirror.
  Supports keyword/title/DOI queries. Returns title, authors, year,
  source, snippet, citations, and open-access download links.

- scihub/doi: Lookup paper metadata by DOI. Handles DOI slash
  encoding issues and filters platform-internal links.

Both adapters include:
- Domain validation (sci-hub.org.cn)
- Referer header for anti-bot bypass
- Structured error handling with hints
- CSS selector based DOM parsing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant