123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- package spider
- import (
- "encoding/json"
- "errors"
- e "github.com/dabory/abango-rest/etc"
- "github.com/elastic/go-elasticsearch/v7"
- )
- type SchDitem struct {
- Id string //PdplinkHash
- // PdplinkHash string
- TopUrl string
- TargetPath string // URL without scheme info
- HtmlHash string
- HubUrls string
- IgroupCode string
- IgroupName string
- Categories string
- Emails string
- ItemName string
- Tags string
- Currency string
- SalesPrice string
- Images string
- ShortDesc string
- TextDesc string
- OgMetas string
- ItemOptions string
- OriginDesc string
- Manufacturer string
- Origin string
- Language string
- DeliveryPrice string
- ModelNo string
- Sku string
- // ItemNick string
- // ModelName string
- // ModelNo string
- // BrandName string
- // MinimumQty float32
- // UserCredit float32
- // Suggest []string
- // Cats []string
- // Options []struct {
- // Name string
- // Choices []struct {
- // Name string
- // Price string
- // }
- // }
- }
- type SchDitemRow struct {
- ID string `json:"_id"`
- Index string `json:"_index"`
- Score float64 `json:"_score"`
- Source SchDitem `json:"_source"`
- Type string `json:"_type"`
- }
- func (t *SchDitem) TableName() string { // 반드시 있어야 table name을 가져올 수 있다.
- return e.TableName(*t)
- }
- func (t *SchDitem) RecordName() string { //필수
- return "Id of " + t.Id + " in " + e.TableName(*t) + " "
- }
- func (t *SchDitem) GetaRow(y *elasticsearch.Client) error {
- res, err := y.Get(e.TableName(*t), t.Id)
- defer res.Body.Close()
- if err != nil {
- return e.LogErr("qrlhbdft", "Error of index: "+t.TableName()+": ", err)
- } else {
- if res.IsError() { //NotFound
- return errors.New(e.RecNotFound("qrhbdfke4k", "in "+t.TableName()+" of Id: "+t.Id))
- }
- }
- var resJs SchDitemRow
- if err := json.NewDecoder(res.Body).Decode(&resJs); err != nil {
- return e.LogErr("qrlhbdfk", "Error decoding "+t.TableName()+": ", err)
- }
- *t = SchDitem(resJs.Source)
- // *t = resJs.Source
- return nil
- }
- // func (t *SchDitem) AddaRow(y *elasticsearch.Client) error {
- // data, _ := json.Marshal(t)
- // res, err := y.Index(
- // e.TableName(*t),
- // bytes.NewReader(data),
- // y.Index.WithDocumentID((t.Id)))
- // defer res.Body.Close()
- // if err != nil {
- // return errors.New(e.RecAddErr("jfhgytg", t.RecordName()+err.Error()))
- // }
- // return nil
- // }
- // func (t *SchDitem) DelaRow(y *elasticsearch.Client) error {
- // res, err := y.Delete(e.TableName(*t), t.Id)
- // defer res.Body.Close()
- // if err != nil {
- // return errors.New(e.RecAddErr("jfhgy4tg", t.RecordName()+err.Error()))
- // }
- // return nil
- // }
|