diff --git a/cli/.env.example b/cli/.env.example new file mode 100644 index 0000000..c9aaa99 --- /dev/null +++ b/cli/.env.example @@ -0,0 +1,10 @@ +# location of the local record of the book store +STORE_PATH= + +# Bluesky credentails, used for any operations with the DID +BSKY_HANDLE= +BSKY_APP_PASSWORD= + +# For GOAT, I'm just using the bluesky handles +GOAT_USERNAME=$BSKY_HANDLE +GOAT_PASSWORD=$BSKY_APP_PASSWORD diff --git a/cli/cmd/list.go b/cli/cmd/list.go index bd2f47c..4836729 100644 --- a/cli/cmd/list.go +++ b/cli/cmd/list.go @@ -43,7 +43,7 @@ var listCmd = &cobra.Command{ func printFull(books []store.Book) { for _, b := range books { - fmt.Printf("%-40.40s %-25.25s %-12.12s %-13.13s %-20.20s %-50.50s %s\n", b.Title, b.Author, lexicon.DisplayStatus(b.LexiconStatus), b.ISBN, b.OLWorkID, b.ATURI, b.StatusURI) + fmt.Printf("%-40.40s %-25.25s %-12.12s %-13.13s %-20.20s %-50.50s %s\n", b.Title, b.Author, lexicon.DisplayStatus(b.LexiconStatus), b.ISBN, b.OLWorkID, b.BookURI, b.StatusURI) } } diff --git a/cli/cmd/publish.go b/cli/cmd/publish.go index 1369726..c64fbd5 100644 --- a/cli/cmd/publish.go +++ b/cli/cmd/publish.go @@ -98,18 +98,6 @@ var publishCmd = &cobra.Command{ c, s, e = countAndPrintErrors(publishedStatuses) fmt.Printf("book.status:\t%d created, %d skipped, %d error\n", c, s, e) - - // TODO: - // **4. Print the tally** - // After both functions return, count events by outcome across both slices and print a summary like: - // ``` - // book.book: 5 created, 2 skipped, 1 error - // book.status: 5 created, 2 skipped, 0 errors - // ``` - - // **5. Remove the session debug output** - // Line 38 currently prints the DID and JWT — that's noise for a normal run. Remove it while you're in there. - }, } @@ -150,7 +138,7 @@ func publishBookRecords(session atproto.Session, books []store.Book, storePath s for i, book := range books { // guards against books that have already been published - if book.ATURI != "" { + if book.BookURI != "" { pEvents = append(pEvents, PublishEvent{ Title: book.Title, Kind: "book", @@ -192,11 +180,11 @@ func publishBookRecords(session atproto.Session, books []store.Book, storePath s continue } - books[i].ATURI = recordResponse.URI - books[i].ATCid = recordResponse.CID + books[i].BookURI = recordResponse.URI + books[i].BookCID = recordResponse.CID // **Persist immediately after each success** — - // set `book.ATURI` and `book.ATCid` on the store book, + // set `book.BookURI` and `book.BookCID` on the store book, books, err = updateStoreRecord(storePath, books, book, recordResponse.URI, recordResponse.CID, "") if err != nil { return pEvents, fmt.Errorf("saving store after %q: %s", book.Title, err) @@ -218,7 +206,7 @@ func publishStatusRecords(session atproto.Session, books []store.Book, storePath for _, book := range books { // guards against books that haven't been published - if book.ATURI == "" { + if book.BookURI == "" { pEvents = append(pEvents, PublishEvent{ Title: book.Title, Kind: "status", @@ -246,8 +234,8 @@ func publishStatusRecords(session atproto.Session, books []store.Book, storePath record := atproto.StatusRecord{ Book: atproto.StrongRef{ - URI: book.ATURI, - CID: book.ATCid, + URI: book.BookURI, + CID: book.BookCID, }, Status: book.LexiconStatus, CreatedAt: createdAt.Format(time.RFC3339), @@ -280,15 +268,15 @@ func publishStatusRecords(session atproto.Session, books []store.Book, storePath return pEvents, nil } -func updateStoreRecord(storePath string, books []store.Book, targetBook store.Book, aturi, atcid, statusURI string) ([]store.Book, error) { +func updateStoreRecord(storePath string, books []store.Book, targetBook store.Book, bookURI, bookCID, statusURI string) ([]store.Book, error) { for i, storedBook := range books { if (storedBook.OLWorkID == targetBook.OLWorkID) || (storedBook.ISBN == targetBook.ISBN) { - if aturi != "" { - books[i].ATURI = aturi + if bookURI != "" { + books[i].BookURI = bookURI } - if atcid != "" { - books[i].ATCid = atcid + if bookCID != "" { + books[i].BookCID = bookCID } if statusURI != "" { diff --git a/cli/internal/store/store.go b/cli/internal/store/store.go index 7b67879..cd7649e 100644 --- a/cli/internal/store/store.go +++ b/cli/internal/store/store.go @@ -17,8 +17,8 @@ type Book struct { storygraph.Book LexiconStatus string OLWorkID string - ATURI string //TODO: rename this to BookURI - ATCid string //TODO: rename this to BookCID + BookURI string + BookCID string StatusURI string } @@ -152,13 +152,13 @@ func NeedsSearchEnrichment() Predicate { func NeedsPublishing() Predicate { return func(book Book) bool { - return book.ATURI == "" + return book.BookURI == "" } } func IsPublished() Predicate { return func(book Book) bool { - return book.ATURI != "" + return book.BookURI != "" } }