rename book package to media

pull/2/head
David Ashby 5 months ago
parent c9b70f02e7
commit 98584bbef6
  1. 8
      cmd/manage/events.go
  2. 14
      cmd/manage/main.go
  3. 4
      cmd/serve/main.go
  4. 20
      database/memory.go
  5. 12
      database/mysql.go
  6. 8
      importer/csv.go
  7. 5
      media/media.go
  8. 8
      ui/ui.go

@ -1,7 +1,7 @@
package main
import (
"git.yetaga.in/alazyreader/library/book"
"git.yetaga.in/alazyreader/library/media"
"github.com/gdamore/tcell"
)
@ -20,16 +20,16 @@ func NewEventError(err error) *EventError {
// save change to book
type EventBookUpdate struct {
tcell.EventTime
book *book.Book
book *media.Book
}
func NewEventBookUpdate(b *book.Book) *EventBookUpdate {
func NewEventBookUpdate(b *media.Book) *EventBookUpdate {
e := &EventBookUpdate{book: b}
e.SetEventNow()
return e
}
func (e *EventBookUpdate) Book() *book.Book {
func (e *EventBookUpdate) Book() *media.Book {
return e.book
}

@ -9,10 +9,10 @@ import (
"strings"
"sync"
"git.yetaga.in/alazyreader/library/book"
"git.yetaga.in/alazyreader/library/config"
"git.yetaga.in/alazyreader/library/database"
"git.yetaga.in/alazyreader/library/importer"
"git.yetaga.in/alazyreader/library/media"
"git.yetaga.in/alazyreader/library/ui"
"github.com/gdamore/tcell"
"github.com/kelseyhightower/envconfig"
@ -120,7 +120,7 @@ func main() {
}()
// book list and options menu (left column)
l := ui.NewList(Titles(state.Get("library").([]book.Book)), 0)
l := ui.NewList(Titles(state.Get("library").([]media.Book)), 0)
menu := ui.NewBox(
"library",
[]string{"˄˅ select", "⏎ edit", "(n)ew", "(i)mport", "(q)uit"},
@ -131,7 +131,7 @@ func main() {
ui.StyleActive,
false,
)
activeBookDetails := ui.NewBookDetails(&book.Book{})
activeBookDetails := ui.NewBookDetails(&media.Book{})
// book display (right column)
activeBook := ui.NewBox(
@ -307,7 +307,7 @@ func main() {
default:
}
// repaint
l.SetMembers(Titles(state.Get("library").([]book.Book)))
l.SetMembers(Titles(state.Get("library").([]media.Book)))
container.Draw(screen)
popup.Draw(screen)
errorPopup.Draw(screen)
@ -315,7 +315,7 @@ func main() {
}
}
func Titles(lb []book.Book) []ui.ListKeyValue {
func Titles(lb []media.Book) []ui.ListKeyValue {
r := []ui.ListKeyValue{}
for i := range lb {
r = append(r, ui.ListKeyValue{
@ -326,11 +326,11 @@ func Titles(lb []book.Book) []ui.ListKeyValue {
return r
}
func GetBookByID(id int, lb []book.Book) *book.Book {
func GetBookByID(id int, lb []media.Book) *media.Book {
for i := range lb {
if lb[i].ID == id {
return &lb[i]
}
}
return &book.Book{}
return &media.Book{}
}

@ -8,10 +8,10 @@ import (
"net/http"
"strings"
"git.yetaga.in/alazyreader/library/book"
"git.yetaga.in/alazyreader/library/config"
"git.yetaga.in/alazyreader/library/database"
"git.yetaga.in/alazyreader/library/frontend"
"git.yetaga.in/alazyreader/library/media"
"github.com/kelseyhightower/envconfig"
)
@ -23,7 +23,7 @@ func max(a, b int) int {
}
type Library interface {
GetAllBooks(context.Context) ([]book.Book, error)
GetAllBooks(context.Context) ([]media.Book, error)
}
type Router struct {

@ -5,43 +5,43 @@ import (
"fmt"
"sync"
"git.yetaga.in/alazyreader/library/book"
"git.yetaga.in/alazyreader/library/media"
)
type Memory struct {
lock sync.Mutex
shelf []book.Book
shelf []media.Book
}
func (m *Memory) GetAllBooks(_ context.Context) ([]book.Book, error) {
func (m *Memory) GetAllBooks(_ context.Context) ([]media.Book, error) {
m.lock.Lock()
defer m.lock.Unlock()
if m.shelf == nil {
m.shelf = []book.Book{}
m.shelf = []media.Book{}
}
return m.shelf, nil
}
func (m *Memory) AddBook(_ context.Context, b *book.Book) error {
func (m *Memory) AddBook(_ context.Context, b *media.Book) error {
m.lock.Lock()
defer m.lock.Unlock()
if m.shelf == nil {
m.shelf = []book.Book{}
m.shelf = []media.Book{}
}
m.shelf = append(m.shelf, *b)
return nil
}
func (m *Memory) UpdateBook(_ context.Context, old, new *book.Book) error {
func (m *Memory) UpdateBook(_ context.Context, old, new *media.Book) error {
m.lock.Lock()
defer m.lock.Unlock()
if m.shelf == nil {
m.shelf = []book.Book{}
m.shelf = []media.Book{}
return fmt.Errorf("book does not exist")
}
@ -58,12 +58,12 @@ func (m *Memory) UpdateBook(_ context.Context, old, new *book.Book) error {
return fmt.Errorf("book does not exist")
}
func (m *Memory) DeleteBook(_ context.Context, b *book.Book) error {
func (m *Memory) DeleteBook(_ context.Context, b *media.Book) error {
m.lock.Lock()
defer m.lock.Unlock()
if m.shelf == nil {
m.shelf = []book.Book{}
m.shelf = []media.Book{}
return fmt.Errorf("book does not exist")
}

@ -10,7 +10,7 @@ import (
"strings"
"time"
"git.yetaga.in/alazyreader/library/book"
"git.yetaga.in/alazyreader/library/media"
_ "github.com/go-sql-driver/mysql"
)
@ -142,12 +142,12 @@ func (m *MySQL) RunMigrations(ctx context.Context) (int, int, error) {
return latestMigrationRan, migrationsRun, err
}
func (m *MySQL) GetAllBooks(ctx context.Context) ([]book.Book, error) {
func (m *MySQL) GetAllBooks(ctx context.Context) ([]media.Book, error) {
if m.connection == nil {
return nil, fmt.Errorf("uninitialized mysql client")
}
books := []book.Book{}
books := []media.Book{}
rows, err := m.connection.QueryContext(ctx, `
SELECT id,
title,
@ -173,7 +173,7 @@ func (m *MySQL) GetAllBooks(ctx context.Context) ([]book.Book, error) {
defer rows.Close()
for rows.Next() {
b := book.Book{}
b := media.Book{}
var authors string
err := rows.Scan(
&b.ID, &b.Title, &authors,
@ -192,7 +192,7 @@ func (m *MySQL) GetAllBooks(ctx context.Context) ([]book.Book, error) {
return books, nil
}
func (m *MySQL) AddBook(ctx context.Context, b *book.Book) error {
func (m *MySQL) AddBook(ctx context.Context, b *media.Book) error {
if m.connection == nil {
return fmt.Errorf("uninitialized mysql client")
}
@ -232,7 +232,7 @@ func (m *MySQL) AddBook(ctx context.Context, b *book.Book) error {
return nil
}
func (m *MySQL) UpdateBook(ctx context.Context, old, new *book.Book) error {
func (m *MySQL) UpdateBook(ctx context.Context, old, new *media.Book) error {
if m.connection == nil {
return fmt.Errorf("uninitialized mysql client")
}

@ -5,17 +5,17 @@ import (
"io"
"strings"
"git.yetaga.in/alazyreader/library/book"
"git.yetaga.in/alazyreader/library/media"
)
func CSVToBooks(r io.Reader) ([]book.Book, error) {
func CSVToBooks(r io.Reader) ([]media.Book, error) {
reader := csv.NewReader(r)
header, err := reader.Read()
if err != nil {
return nil, err
}
hmap := parseHeader(header)
books := []book.Book{}
books := []media.Book{}
for {
row, err := reader.Read()
@ -25,7 +25,7 @@ func CSVToBooks(r io.Reader) ([]book.Book, error) {
if err != nil {
return books, err
}
b := book.Book{
b := media.Book{
Title: row[hmap["title"]],
Authors: parseAuthors(row[hmap["author"]]),
SortAuthor: row[hmap["authorlast"]],

@ -1,4 +1,4 @@
package book
package media
type Book struct {
ID int `json:"-"`
@ -19,3 +19,6 @@ type Book struct {
OnLoan string `json:"onLoan"`
CoverURL string `json:"coverURL"`
}
type Record struct {
}

@ -4,7 +4,7 @@ import (
"strconv"
"strings"
"git.yetaga.in/alazyreader/library/book"
"git.yetaga.in/alazyreader/library/media"
"github.com/gdamore/tcell"
)
@ -361,19 +361,19 @@ func (l *List) SetMembers(lkv []ListKeyValue) {
type BookDetails struct {
x, y int
h, w int
book *book.Book
book *media.Book
style tcell.Style
visible bool
}
func NewBookDetails(b *book.Book) *BookDetails {
func NewBookDetails(b *media.Book) *BookDetails {
return &BookDetails{
book: b,
visible: true,
}
}
func (l *BookDetails) SetBook(b *book.Book) {
func (l *BookDetails) SetBook(b *media.Book) {
l.book = b
}

Loading…
Cancel
Save