Documentation
¶
Index ¶
- func SetupLogging(debugMode bool)
- type Citation
- type FindFullTextRequest
- type FindFullTextResponse
- type GetCitationsRequest
- type GetCitationsResponse
- type GetMetricsRequest
- type HTTPResponse
- type Keyword
- type Metrics
- type ResolveDOIRequest
- type SearchParams
- type SearchResult
- type SearchWorksRequest
- type SearchWorksResponse
- type SuggestKeywordsRequest
- type SuggestKeywordsResponse
- type Work
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetupLogging ¶
func SetupLogging(debugMode bool)
SetupLogging configures zerolog based on debug mode
Types ¶
type Citation ¶
type Citation struct {
ID string `json:"id"`
DOI string `json:"doi,omitempty"`
Title string `json:"title"`
Year int `json:"year,omitempty"`
}
Citation represents a lightweight citation record
type FindFullTextRequest ¶
type FindFullTextRequest struct {
DOI string `json:"doi,omitempty"`
Title string `json:"title,omitempty"`
PreferVersion string `json:"prefer_version,omitempty"`
}
FindFullTextRequest represents parameters for finding full text
type FindFullTextResponse ¶
type FindFullTextResponse struct {
PDFURL string `json:"pdf_url"` // Can be PDF or HTML URL depending on what's available
Source string `json:"source"`
OAStatus string `json:"oa_status,omitempty"`
License string `json:"license,omitempty"`
MD5 string `json:"md5,omitempty"` // Only for LibGen
IsPDF bool `json:"is_pdf,omitempty"` // Indicates if the URL is for a PDF (false means HTML)
}
FindFullTextResponse represents the response from find_full_text
type GetCitationsRequest ¶
type GetCitationsRequest struct {
WorkID string `json:"work_id"`
Direction string `json:"direction"` // "refs" or "cited_by"
Limit int `json:"limit,omitempty"`
}
GetCitationsRequest represents parameters for getting citations
type GetCitationsResponse ¶
type GetCitationsResponse struct {
Citations []Citation `json:"citations"`
NextCursor string `json:"next_cursor,omitempty"`
}
GetCitationsResponse represents the response from get_citations
type GetMetricsRequest ¶
type GetMetricsRequest struct {
WorkID string `json:"work_id"`
}
GetMetricsRequest represents parameters for getting metrics
type HTTPResponse ¶
HTTPResponse represents a standardized HTTP response
func MakeHTTPRequest ¶
func MakeHTTPRequest(req *http.Request) *HTTPResponse
MakeHTTPRequest makes an HTTP request and returns a standardized response
type Keyword ¶
type Keyword struct {
ID string `json:"id"`
DisplayName string `json:"display_name"`
Relevance float64 `json:"relevance"`
}
Keywords represents a list of keywords with relevance scores
type Metrics ¶
type Metrics struct {
CitationCount int `json:"citation_count"`
CitedByCount int `json:"cited_by_count"`
ReferenceCount int `json:"reference_count"`
IsOA bool `json:"is_oa"`
OAStatus string `json:"oa_status,omitempty"`
Altmetrics map[string]int `json:"altmetrics,omitempty"`
}
Metrics represents quantitative metrics for a work
type ResolveDOIRequest ¶
type ResolveDOIRequest struct {
DOI string `json:"doi"`
}
ResolveDOIRequest represents parameters for resolving a DOI
type SearchParams ¶
type SearchParams struct {
Query string
MaxResults int
Filters map[string]string
Sort string
EmailAddr string
}
SearchParams contains common search parameters
type SearchResult ¶
type SearchResult struct {
Title string
Authors []string
Abstract string
Published string
DOI string
PDFURL string
SourceURL string
SourceName string
OAStatus string
License string
FileSize string
Citations int
Type string
JournalInfo string
Metadata map[string]interface{} // Additional source-specific data
Reranked bool `json:"reranked,omitempty"` // Whether this result was reranked
RerankerScore float64 `json:"reranker_score,omitempty"` // Score from the reranker
OriginalIndex int `json:"original_index,omitempty"` // Original position before reranking
}
SearchResult represents a standardized search result from any source
type SearchWorksRequest ¶
type SearchWorksRequest struct {
Query string `json:"query"`
Source string `json:"source"` // "openalex", "crossref", "arxiv"
Limit int `json:"limit,omitempty"`
Filter map[string]string `json:"filter,omitempty"`
}
SearchWorksRequest represents parameters for searching works
type SearchWorksResponse ¶
type SearchWorksResponse struct {
Works []Work `json:"works"`
}
SearchWorksResponse represents the response from a search_works function
type SuggestKeywordsRequest ¶
type SuggestKeywordsRequest struct {
Text string `json:"text"`
MaxKeywords int `json:"max_keywords,omitempty"`
}
SuggestKeywordsRequest represents parameters for suggesting keywords
type SuggestKeywordsResponse ¶
type SuggestKeywordsResponse struct {
Keywords []Keyword `json:"keywords"`
}
SuggestKeywordsResponse represents the response from suggest_keywords
type Work ¶
type Work struct {
ID string `json:"id"`
DOI string `json:"doi,omitempty"`
Title string `json:"title"`
Authors []string `json:"authors,omitempty"`
Year int `json:"year,omitempty"`
IsOA bool `json:"is_oa,omitempty"`
CitationCount int `json:"citation_count,omitempty"`
Abstract string `json:"abstract,omitempty"`
SourceName string `json:"source_name,omitempty"`
PDFURL string `json:"pdf_url,omitempty"`
}
Work represents a simplified scholarly record for search results