wip
This commit is contained in:
@@ -41,9 +41,9 @@ const GBOOKS_GBID_COVER_URL string = "https://books.google.com/books/content/ima
|
||||
|
||||
func getGBooksMetadata(metadataSearch MetadataInfo) ([]MetadataInfo, error) {
|
||||
var queryResults []gBooksQueryItem
|
||||
if metadataSearch.ID != nil {
|
||||
if metadataSearch.SourceID != nil {
|
||||
// Use GBID
|
||||
resp, err := performGBIDRequest(*metadataSearch.ID)
|
||||
resp, err := performGBIDRequest(*metadataSearch.SourceID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -83,15 +83,16 @@ func getGBooksMetadata(metadataSearch MetadataInfo) ([]MetadataInfo, error) {
|
||||
|
||||
queryResults = resp.Items
|
||||
} else {
|
||||
return nil, errors.New("Invalid Data")
|
||||
return nil, errors.New("invalid data")
|
||||
}
|
||||
|
||||
// Normalize Data
|
||||
allMetadata := []MetadataInfo{}
|
||||
var allMetadata []MetadataInfo
|
||||
for i := range queryResults {
|
||||
item := queryResults[i] // Range Value Pointer Issue
|
||||
itemResult := MetadataInfo{
|
||||
ID: &item.ID,
|
||||
SourceID: &item.ID,
|
||||
Source: SourceGoogleBooks,
|
||||
Title: &item.Info.Title,
|
||||
Description: &item.Info.Description,
|
||||
}
|
||||
@@ -130,7 +131,7 @@ func saveGBooksCover(gbid string, coverFilePath string, overwrite bool) error {
|
||||
out, err := os.Create(coverFilePath)
|
||||
if err != nil {
|
||||
log.Error("File Create Error")
|
||||
return errors.New("File Failure")
|
||||
return errors.New("file failure")
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
@@ -149,7 +150,7 @@ func saveGBooksCover(gbid string, coverFilePath string, overwrite bool) error {
|
||||
_, err = io.Copy(out, resp.Body)
|
||||
if err != nil {
|
||||
log.Error("File Copy Error")
|
||||
return errors.New("File Failure")
|
||||
return errors.New("file failure")
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -164,18 +165,13 @@ func performSearchRequest(searchQuery string) (*gBooksQueryResponse, error) {
|
||||
return nil, errors.New("API Failure")
|
||||
}
|
||||
|
||||
parsedResp := gBooksQueryResponse{}
|
||||
var parsedResp gBooksQueryResponse
|
||||
err = json.NewDecoder(resp.Body).Decode(&parsedResp)
|
||||
if err != nil {
|
||||
log.Error("Google Books Query API Decode Failure")
|
||||
return nil, errors.New("API Failure")
|
||||
}
|
||||
|
||||
if len(parsedResp.Items) == 0 {
|
||||
log.Warn("No Results")
|
||||
return nil, errors.New("No Results")
|
||||
}
|
||||
|
||||
return &parsedResp, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ func TestGBooksGBIDMetadata(t *testing.T) {
|
||||
|
||||
GBID := "ZxwpakTv_MIC"
|
||||
expectedURL := fmt.Sprintf(GBOOKS_GBID_INFO_URL, GBID)
|
||||
metadataResp, err := getGBooksMetadata(MetadataInfo{ID: &GBID})
|
||||
metadataResp, err := getGBooksMetadata(MetadataInfo{SourceID: &GBID})
|
||||
|
||||
assert.Nil(t, err, "should not have error")
|
||||
assert.Contains(t, hookDetails.URLs, expectedURL, "should have intercepted URL")
|
||||
|
||||
@@ -25,12 +25,12 @@ var extensionHandlerMap = map[DocumentType]MetadataHandler{
|
||||
type Source int
|
||||
|
||||
const (
|
||||
SOURCE_GBOOK Source = iota
|
||||
SOURCE_OLIB
|
||||
SourceGoogleBooks Source = iota
|
||||
SourceOpenLibrary
|
||||
)
|
||||
|
||||
type MetadataInfo struct {
|
||||
ID *string
|
||||
SourceID *string
|
||||
MD5 *string
|
||||
PartialMD5 *string
|
||||
WordCount *int64
|
||||
@@ -41,6 +41,7 @@ type MetadataInfo struct {
|
||||
ISBN10 *string
|
||||
ISBN13 *string
|
||||
Type DocumentType
|
||||
Source Source
|
||||
}
|
||||
|
||||
// Downloads the Google Books cover file and saves it to the provided directory.
|
||||
@@ -62,9 +63,9 @@ func CacheCover(gbid string, coverDir string, documentID string, overwrite bool)
|
||||
// Searches source for metadata based on the provided information.
|
||||
func SearchMetadata(s Source, metadataSearch MetadataInfo) ([]MetadataInfo, error) {
|
||||
switch s {
|
||||
case SOURCE_GBOOK:
|
||||
case SourceGoogleBooks:
|
||||
return getGBooksMetadata(metadataSearch)
|
||||
case SOURCE_OLIB:
|
||||
case SourceOpenLibrary:
|
||||
return nil, errors.New("not implemented")
|
||||
default:
|
||||
return nil, errors.New("not implemented")
|
||||
|
||||
Reference in New Issue
Block a user