retailers

package
v0.0.0-...-fec4e2b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2022 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AF_URL_PREFIX = "https://artistfirst.com.au"
	AF_SEARCH_URL = "https://artistfirst.com.au/search?q=%s+vinyl"
)
View Source
const (
	BD_URL_PREFIX   = "https://beatdisc.com.au"
	DATA_DIR        = "./retailers/data"
	EMPTY_IMAGE_URL = "https://www.freeiconspng.com/thumbs/no-image-icon/no-image-icon-6.png"
)
View Source
const (
	CR_URL_PREFIX = "https://clarityrecords.net"
	CR_SEARCH_URL = "https://clarityrecords.net/search.php?search_query=%s+vinyl&section=product"
)
View Source
const (
	DV_URL_PREFIX = "https://www.dutchvinyl.com.au"
	DV_SEARCH_URL = "https://www.dutchvinyl.com.au/a/search?type=product&q=%s+vinyl"
)
View Source
const (
	GR_URL_PREFIX = "https://grevillerecords.com.au"
	GR_SEARCH_URL = "https://grevillerecords.com.au/search?options[prefix]=last&page=%v&q=%s+vinyl"
)
View Source
const (
	MF_URL_PREFIX = "https://musicfarmers.com"
	MF_SEARCH_URL = "https://musicfarmers.com/search?q=%s"
)
View Source
const (
	OFFW_URL_PREFIX = "https://offwhiterecords.com/"
	OFFW_SEARCH_URL = "https://offwhiterecords.com/store/search_results.cfm?search_term=%s&search_sub=SEARCH"
)
View Source
const (
	OJ_URL_PREFIX = "https://www.ohjeanrecords.com"
	OJ_SEARCH_URL = "https://www.ohjeanrecords.com/apps/omega-search/?type=product&options%%5Bprefix%%5D=last&q=%s"
)
View Source
const (
	PC_URL_PREFIX = "https://poisoncityestore.com"
	PC_SEARCH_URL = "https://poisoncityestore.com/search?q=%s+vinyl"
)
View Source
const (
	RER_URL_PREFIX = "https://repressedrecords.com"
	RER_SEARCH_URL = "https://repressedrecords.com/search?q=%s+vinyl&options[prefix]=last"
)
View Source
const (
	RR_URL_PREFIX = "https://shop.resistrecords.com"
	RR_SEARCH_URL = "https://shop.resistrecords.com/search?q=%s+vinyl"
)
View Source
const (
	// enum corresponding to retailer ids in the database
	Retailer_ArtistFirst         RetailerID = 1
	Retailer_PoisonCity                     = 2
	Retailer_ResistRecords                  = 3
	Retailer_DamagedRecords                 = 4
	Retailer_RepressedRecords               = 5
	Retailer_Utopia                         = 6
	Retailer_BeatdiscRecords                = 7
	Retailer_MusicFarmers                   = 8
	Retailer_DutchVinyl                     = 9
	Retailer_ClarityRecords                 = 10
	Retailer_OhJeanRecords                  = 11
	Retailer_StrengeWorldRecords            = 12
	Retailer_GrevilleRecords                = 13
)
View Source
const (
	SW_URL_PREFIX = "https://www.strangeworldrecords.com.au"
	SW_SEARCH_URL = "https://www.strangeworldrecords.com.au/search?q=%s+vinyl"
)
View Source
const (
	UTOP_URL_PREFIX         = "https://utopia.com.au"
	UTOP_PRODUCT_URL_PREFIX = "https://utopia.com.au/collections/all/products"
	UTOP_SEARCH_INSTOCK_URL = "/search?q=%s+vinyl&_=pf&pf_st_currently_in_stock=true&pf_pt_product_type=New+Vinyl+-+12 Inch"
)
View Source
const (
	DR_SEARCH_URL = "https://damagedmusic.com.au/?s=%s+vinyl&post_type=product"
)
View Source
const (
	SOLD_OUT = "sold out"
)

Variables

This section is empty.

Functions

func FindCoverURL

func FindCoverURL(artist string, title string) (string, error)

Types

type ArtistFirst

type ArtistFirst struct{}

func (*ArtistFirst) GetArtistQueryURL

func (a *ArtistFirst) GetArtistQueryURL(artist string) string

func (*ArtistFirst) ScrapeArtistReleases

func (a *ArtistFirst) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type BeatDiscRecords

type BeatDiscRecords struct{}

func (*BeatDiscRecords) GetArtistQueryURL

func (a *BeatDiscRecords) GetArtistQueryURL(artist string) string

func (*BeatDiscRecords) ScrapeArtistReleases

func (a *BeatDiscRecords) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type ClarityRecords

type ClarityRecords struct{}

func (*ClarityRecords) GetArtistQueryURL

func (a *ClarityRecords) GetArtistQueryURL(artist string) string

func (*ClarityRecords) ScrapeArtistReleases

func (a *ClarityRecords) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type DamagedRecords

type DamagedRecords struct{}

func (*DamagedRecords) GetArtistQueryURL

func (a *DamagedRecords) GetArtistQueryURL(artist string) string

func (*DamagedRecords) ScrapeArtistReleases

func (a *DamagedRecords) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type DutchVinyl

type DutchVinyl struct{}

func (*DutchVinyl) GetArtistQueryURL

func (a *DutchVinyl) GetArtistQueryURL(artist string) string

func (*DutchVinyl) ScrapeArtistReleases

func (a *DutchVinyl) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type DutchVinylInfo

type DutchVinylInfo struct {
	Id                   int64       `json:"id"`
	Title                string      `json:"title"`
	Handle               string      `json:"handle"`
	Description          string      `json:"description"`
	PublishedAt          time.Time   `json:"published_at"`
	CreatedAt            time.Time   `json:"created_at"`
	Vendor               string      `json:"vendor"`
	Type                 string      `json:"type"`
	Tags                 []string    `json:"tags"`
	Price                int         `json:"price"`
	PriceMin             int         `json:"price_min"`
	PriceMax             int         `json:"price_max"`
	Available            bool        `json:"available"`
	PriceVaries          bool        `json:"price_varies"`
	CompareAtPrice       interface{} `json:"compare_at_price"`
	CompareAtPriceMin    int         `json:"compare_at_price_min"`
	CompareAtPriceMax    int         `json:"compare_at_price_max"`
	CompareAtPriceVaries bool        `json:"compare_at_price_varies"`
	Variants             []struct {
		Id                     int64         `json:"id"`
		Title                  string        `json:"title"`
		Option1                string        `json:"option1"`
		Option2                interface{}   `json:"option2"`
		Option3                interface{}   `json:"option3"`
		Sku                    string        `json:"sku"`
		RequiresShipping       bool          `json:"requires_shipping"`
		Taxable                bool          `json:"taxable"`
		FeaturedImage          interface{}   `json:"featured_image"`
		Available              bool          `json:"available"`
		Name                   string        `json:"name"`
		PublicTitle            interface{}   `json:"public_title"`
		Options                []string      `json:"options"`
		Price                  int           `json:"price"`
		Weight                 int           `json:"weight"`
		CompareAtPrice         interface{}   `json:"compare_at_price"`
		InventoryQuantity      int           `json:"inventory_quantity"`
		InventoryManagement    string        `json:"inventory_management"`
		InventoryPolicy        string        `json:"inventory_policy"`
		Barcode                string        `json:"barcode"`
		RequiresSellingPlan    bool          `json:"requires_selling_plan"`
		SellingPlanAllocations []interface{} `json:"selling_plan_allocations"`
	} `json:"variants"`
	Images        []string `json:"images"`
	FeaturedImage string   `json:"featured_image"`
	Options       []string `json:"options"`
	Media         []struct {
		Alt          string `json:"alt"`
		Id           int64  `json:"id"`
		Position     int    `json:"position"`
		PreviewImage struct {
			AspectRatio float32 `json:"aspect_ratio"`
			Height      int     `json:"height"`
			Width       int     `json:"width"`
			Src         string  `json:"src"`
		} `json:"preview_image"`
		AspectRatio float32 `json:"aspect_ratio"`
		Height      int     `json:"height"`
		MediaType   string  `json:"media_type"`
		Src         string  `json:"src"`
		Width       int     `json:"width"`
	} `json:"media"`
	RequiresSellingPlan bool          `json:"requires_selling_plan"`
	SellingPlanGroups   []interface{} `json:"selling_plan_groups"`
	Content             string        `json:"content"`
}

type GrevilleInfo

type GrevilleInfo struct {
	Id                   int64       `json:"id"`
	Title                string      `json:"title"`
	Handle               string      `json:"handle"`
	Description          string      `json:"description"`
	PublishedAt          time.Time   `json:"published_at"`
	CreatedAt            time.Time   `json:"created_at"`
	Vendor               string      `json:"vendor"`
	Type                 string      `json:"type"`
	Tags                 []string    `json:"tags"`
	Price                int         `json:"price"`
	PriceMin             int         `json:"price_min"`
	PriceMax             int         `json:"price_max"`
	Available            bool        `json:"available"`
	PriceVaries          bool        `json:"price_varies"`
	CompareAtPrice       interface{} `json:"compare_at_price"`
	CompareAtPriceMin    int         `json:"compare_at_price_min"`
	CompareAtPriceMax    int         `json:"compare_at_price_max"`
	CompareAtPriceVaries bool        `json:"compare_at_price_varies"`
	Variants             []struct {
		Id                     int64         `json:"id"`
		Title                  string        `json:"title"`
		Option1                string        `json:"option1"`
		Option2                interface{}   `json:"option2"`
		Option3                interface{}   `json:"option3"`
		Sku                    string        `json:"sku"`
		RequiresShipping       bool          `json:"requires_shipping"`
		Taxable                bool          `json:"taxable"`
		FeaturedImage          interface{}   `json:"featured_image"`
		Available              bool          `json:"available"`
		Name                   string        `json:"name"`
		PublicTitle            interface{}   `json:"public_title"`
		Options                []string      `json:"options"`
		Price                  int           `json:"price"`
		Weight                 int           `json:"weight"`
		CompareAtPrice         interface{}   `json:"compare_at_price"`
		InventoryManagement    string        `json:"inventory_management"`
		Barcode                string        `json:"barcode"`
		RequiresSellingPlan    bool          `json:"requires_selling_plan"`
		SellingPlanAllocations []interface{} `json:"selling_plan_allocations"`
	} `json:"variants"`
	Images        []string `json:"images"`
	FeaturedImage string   `json:"featured_image"`
	Options       []string `json:"options"`
	Media         []struct {
		Alt          interface{} `json:"alt"`
		Id           int64       `json:"id"`
		Position     int         `json:"position"`
		PreviewImage struct {
			AspectRatio float32 `json:"aspect_ratio"`
			Height      int     `json:"height"`
			Width       int     `json:"width"`
			Src         string  `json:"src"`
		} `json:"preview_image"`
		AspectRatio float32 `json:"aspect_ratio"`
		Height      int     `json:"height"`
		MediaType   string  `json:"media_type"`
		Src         string  `json:"src"`
		Width       int     `json:"width"`
	} `json:"media"`
	RequiresSellingPlan bool          `json:"requires_selling_plan"`
	SellingPlanGroups   []interface{} `json:"selling_plan_groups"`
	Content             string        `json:"content"`
}

type GrevilleRecords

type GrevilleRecords struct{}

func (*GrevilleRecords) GetArtistQueryForPageURL

func (a *GrevilleRecords) GetArtistQueryForPageURL(artist string, page int) string

func (*GrevilleRecords) GetArtistQueryURL

func (a *GrevilleRecords) GetArtistQueryURL(artist string) string

func (*GrevilleRecords) ScrapeArtistReleases

func (a *GrevilleRecords) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type MusicFarmers

type MusicFarmers struct{}

func (*MusicFarmers) GetArtistQueryURL

func (a *MusicFarmers) GetArtistQueryURL(artist string) string

func (*MusicFarmers) ScrapeArtistReleases

func (a *MusicFarmers) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type MusicFarmersInfo

type MusicFarmersInfo struct {
	Id                   int64         `json:"id"`
	Title                string        `json:"title"`
	Handle               string        `json:"handle"`
	Description          string        `json:"description"`
	PublishedAt          time.Time     `json:"published_at"`
	CreatedAt            time.Time     `json:"created_at"`
	Vendor               string        `json:"vendor"`
	Type                 string        `json:"type"`
	Tags                 []interface{} `json:"tags"`
	Price                int           `json:"price"`
	PriceMin             int           `json:"price_min"`
	PriceMax             int           `json:"price_max"`
	Available            bool          `json:"available"`
	PriceVaries          bool          `json:"price_varies"`
	CompareAtPrice       interface{}   `json:"compare_at_price"`
	CompareAtPriceMin    int           `json:"compare_at_price_min"`
	CompareAtPriceMax    int           `json:"compare_at_price_max"`
	CompareAtPriceVaries bool          `json:"compare_at_price_varies"`
	Variants             []struct {
		Id                     int64         `json:"id"`
		Title                  string        `json:"title"`
		Option1                string        `json:"option1"`
		Option2                interface{}   `json:"option2"`
		Option3                interface{}   `json:"option3"`
		Sku                    string        `json:"sku"`
		RequiresShipping       bool          `json:"requires_shipping"`
		Taxable                bool          `json:"taxable"`
		FeaturedImage          interface{}   `json:"featured_image"`
		Available              bool          `json:"available"`
		Name                   string        `json:"name"`
		PublicTitle            interface{}   `json:"public_title"`
		Options                []string      `json:"options"`
		Price                  int           `json:"price"`
		Weight                 int           `json:"weight"`
		CompareAtPrice         interface{}   `json:"compare_at_price"`
		InventoryQuantity      int           `json:"inventory_quantity"`
		InventoryManagement    string        `json:"inventory_management"`
		InventoryPolicy        string        `json:"inventory_policy"`
		Barcode                string        `json:"barcode"`
		RequiresSellingPlan    bool          `json:"requires_selling_plan"`
		SellingPlanAllocations []interface{} `json:"selling_plan_allocations"`
	} `json:"variants"`
	Images        []string `json:"images"`
	FeaturedImage string   `json:"featured_image"`
	Options       []string `json:"options"`
	Media         []struct {
		Alt          interface{} `json:"alt"`
		Id           int64       `json:"id"`
		Position     int         `json:"position"`
		PreviewImage struct {
			AspectRatio float32 `json:"aspect_ratio"`
			Height      int     `json:"height"`
			Width       int     `json:"width"`
			Src         string  `json:"src"`
		} `json:"preview_image"`
		AspectRatio float32 `json:"aspect_ratio"`
		Height      int     `json:"height"`
		MediaType   string  `json:"media_type"`
		Src         string  `json:"src"`
		Width       int     `json:"width"`
	} `json:"media"`
	RequiresSellingPlan bool          `json:"requires_selling_plan"`
	SellingPlanGroups   []interface{} `json:"selling_plan_groups"`
	Content             string        `json:"content"`
}

type OffWhiteRecords

type OffWhiteRecords struct{}

func (*OffWhiteRecords) GetArtistQueryURL

func (a *OffWhiteRecords) GetArtistQueryURL(artist string) string

func (*OffWhiteRecords) ScrapeArtistReleases

func (a *OffWhiteRecords) ScrapeArtistReleases(artist string) ([]SKU, error)

type OhJaanInfo

type OhJaanInfo struct {
	Id       int64  `json:"id"`
	Gid      string `json:"gid"`
	Vendor   string `json:"vendor"`
	Type     string `json:"type"`
	Variants []struct {
		Id          int64       `json:"id"`
		Price       int         `json:"price"`
		Name        string      `json:"name"`
		PublicTitle interface{} `json:"public_title"`
		Sku         string      `json:"sku"`
	} `json:"variants"`
}

type OhJeanRecords

type OhJeanRecords struct{}

func (*OhJeanRecords) GetArtistQueryURL

func (a *OhJeanRecords) GetArtistQueryURL(artist string) string

func (*OhJeanRecords) ScrapeArtistReleases

func (a *OhJeanRecords) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type PoisonCity

type PoisonCity struct{}

func (*PoisonCity) GetArtistQueryURL

func (a *PoisonCity) GetArtistQueryURL(artist string) string

func (*PoisonCity) ScrapeArtistReleases

func (a *PoisonCity) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type PoisonCityInfo

type PoisonCityInfo struct {
	Id                   int         `json:"id"`
	Title                string      `json:"title"`
	Handle               string      `json:"handle"`
	Description          string      `json:"description"`
	PublishedAt          time.Time   `json:"published_at"`
	CreatedAt            time.Time   `json:"created_at"`
	Vendor               string      `json:"vendor"`
	Type                 string      `json:"type"`
	Tags                 []string    `json:"tags"`
	Price                int         `json:"price"`
	PriceMin             int         `json:"price_min"`
	PriceMax             int         `json:"price_max"`
	Available            bool        `json:"available"`
	PriceVaries          bool        `json:"price_varies"`
	CompareAtPrice       interface{} `json:"compare_at_price"`
	CompareAtPriceMin    int         `json:"compare_at_price_min"`
	CompareAtPriceMax    int         `json:"compare_at_price_max"`
	CompareAtPriceVaries bool        `json:"compare_at_price_varies"`
	Variants             []struct {
		Id                     int           `json:"id"`
		Title                  string        `json:"title"`
		Option1                string        `json:"option1"`
		Option2                interface{}   `json:"option2"`
		Option3                interface{}   `json:"option3"`
		Sku                    string        `json:"sku"`
		RequiresShipping       bool          `json:"requires_shipping"`
		Taxable                bool          `json:"taxable"`
		FeaturedImage          interface{}   `json:"featured_image"`
		Available              bool          `json:"available"`
		Name                   string        `json:"name"`
		PublicTitle            interface{}   `json:"public_title"`
		Options                []string      `json:"options"`
		Price                  int           `json:"price"`
		Weight                 int           `json:"weight"`
		CompareAtPrice         interface{}   `json:"compare_at_price"`
		InventoryQuantity      int           `json:"inventory_quantity"`
		InventoryManagement    string        `json:"inventory_management"`
		InventoryPolicy        string        `json:"inventory_policy"`
		Barcode                string        `json:"barcode"`
		RequiresSellingPlan    bool          `json:"requires_selling_plan"`
		SellingPlanAllocations []interface{} `json:"selling_plan_allocations"`
	} `json:"variants"`
	Images        []string `json:"images"`
	FeaturedImage string   `json:"featured_image"`
	Options       []string `json:"options"`
	Media         []struct {
		Alt          interface{} `json:"alt"`
		Id           int64       `json:"id"`
		Position     int         `json:"position"`
		PreviewImage struct {
			AspectRatio float32 `json:"aspect_ratio"`
			Height      int     `json:"height"`
			Width       int     `json:"width"`
			Src         string  `json:"src"`
		} `json:"preview_image"`
		AspectRatio float32 `json:"aspect_ratio"`
		Height      int     `json:"height"`
		MediaType   string  `json:"media_type"`
		Src         string  `json:"src"`
		Width       int     `json:"width"`
	} `json:"media"`
	RequiresSellingPlan bool          `json:"requires_selling_plan"`
	SellingPlanGroups   []interface{} `json:"selling_plan_groups"`
	Content             string        `json:"content"`
}

search for: new Shopify.OptionSelectors("product-select",{ product: { ... }, onVariantSelected: selectCallback }); we want the product json part

type RepressedRecords

type RepressedRecords struct{}

func (*RepressedRecords) GetArtistQueryURL

func (a *RepressedRecords) GetArtistQueryURL(artist string) string

func (*RepressedRecords) ScrapeArtistReleases

func (a *RepressedRecords) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type ResistRecords

type ResistRecords struct{}

func (*ResistRecords) GetArtistQueryURL

func (a *ResistRecords) GetArtistQueryURL(artist string) string

func (*ResistRecords) ScrapeArtistReleases

func (a *ResistRecords) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type RetailerID

type RetailerID int

type SKU

type SKU struct {
	Name        string `db:"name" json:"name"`
	Artist      string `db:"artist" json:"artist"`
	Url         string `db:"item_url" json:"itemUrl"`
	Image       string `db:"image_url" json:"imageUrl"`
	Price       string `db:"price" json:"price"`
	Retailer    string `db:"retailer" json:"retailer"`
	RetailerUrl string `db:"retailer_url" json:"retailerUrl"`
}

type StrangeWorldRecords

type StrangeWorldRecords struct{}

func (*StrangeWorldRecords) GetArtistQueryURL

func (a *StrangeWorldRecords) GetArtistQueryURL(artist string) string

func (*StrangeWorldRecords) ScrapeArtistReleases

func (a *StrangeWorldRecords) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type Utopia

type Utopia struct{}

func (*Utopia) GetArtistQueryURL

func (a *Utopia) GetArtistQueryURL(artist string) string

func (*Utopia) ScrapeArtistReleases

func (a *Utopia) ScrapeArtistReleases(artist string) (findings []SKU, err error)

type UtopiaSKUEntry

type UtopiaSKUEntry struct {
	Id                   int64       `json:"id"`
	Title                string      `json:"title"`
	Handle               string      `json:"handle"`
	Description          string      `json:"description"`
	PublishedAt          time.Time   `json:"published_at"`
	CreatedAt            time.Time   `json:"created_at"`
	Vendor               string      `json:"vendor"`
	Type                 string      `json:"type"`
	Tags                 []string    `json:"tags"`
	Price                int         `json:"price"`
	PriceMin             int         `json:"price_min"`
	PriceMax             int         `json:"price_max"`
	Available            bool        `json:"available"`
	PriceVaries          bool        `json:"price_varies"`
	CompareAtPrice       interface{} `json:"compare_at_price"`
	CompareAtPriceMin    int         `json:"compare_at_price_min"`
	CompareAtPriceMax    int         `json:"compare_at_price_max"`
	CompareAtPriceVaries bool        `json:"compare_at_price_varies"`
	Variants             []struct {
		Id                     int64         `json:"id"`
		Title                  string        `json:"title"`
		Option1                string        `json:"option1"`
		Option2                interface{}   `json:"option2"`
		Option3                interface{}   `json:"option3"`
		Sku                    string        `json:"sku"`
		RequiresShipping       bool          `json:"requires_shipping"`
		Taxable                bool          `json:"taxable"`
		FeaturedImage          interface{}   `json:"featured_image"`
		Available              bool          `json:"available"`
		Name                   string        `json:"name"`
		PublicTitle            interface{}   `json:"public_title"`
		Options                []string      `json:"options"`
		Price                  int           `json:"price"`
		Weight                 int           `json:"weight"`
		CompareAtPrice         interface{}   `json:"compare_at_price"`
		InventoryManagement    string        `json:"inventory_management"`
		Barcode                string        `json:"barcode"`
		RequiresSellingPlan    bool          `json:"requires_selling_plan"`
		SellingPlanAllocations []interface{} `json:"selling_plan_allocations"`
	} `json:"variants"`
	Images        []string `json:"images"`
	FeaturedImage string   `json:"featured_image"`
	Options       []string `json:"options"`
	Media         []struct {
		Alt          interface{} `json:"alt"`
		Id           int64       `json:"id"`
		Position     int         `json:"position"`
		PreviewImage struct {
			AspectRatio float64 `json:"aspect_ratio"`
			Height      int     `json:"height"`
			Width       int     `json:"width"`
			Src         string  `json:"src"`
		} `json:"preview_image"`
		AspectRatio float64 `json:"aspect_ratio"`
		Height      int     `json:"height"`
		MediaType   string  `json:"media_type"`
		Src         string  `json:"src"`
		Width       int     `json:"width"`
	} `json:"media"`
	RequiresSellingPlan bool          `json:"requires_selling_plan"`
	SellingPlanGroups   []interface{} `json:"selling_plan_groups"`
	Content             string        `json:"content"`
}

type VinylRetailer

type VinylRetailer interface {
	GetArtistQueryURL(artist string) string
	ScrapeArtistReleases(artist string) ([]SKU, error)
}

func VinylRetailerFactory

func VinylRetailerFactory(retailerId RetailerID) (VinylRetailer, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL