|
@@ -2,10 +2,12 @@ package controllers_scraper
|
|
|
|
|
|
import (
|
|
import (
|
|
"encoding/json"
|
|
"encoding/json"
|
|
|
|
+ "fmt"
|
|
"kkscrap-go/controllers/scraper/cafe24"
|
|
"kkscrap-go/controllers/scraper/cafe24"
|
|
"kkscrap-go/controllers/scraper/godo"
|
|
"kkscrap-go/controllers/scraper/godo"
|
|
"kkscrap-go/controllers/scraper/magento"
|
|
"kkscrap-go/controllers/scraper/magento"
|
|
"kkscrap-go/controllers/scraper/shopify"
|
|
"kkscrap-go/controllers/scraper/shopify"
|
|
|
|
+ "kkscrap-go/locals"
|
|
|
|
|
|
"kkscrap-go/controllers/scraper/wordpress"
|
|
"kkscrap-go/controllers/scraper/wordpress"
|
|
"kkscrap-go/controllers/scraper/young"
|
|
"kkscrap-go/controllers/scraper/young"
|
|
@@ -22,6 +24,70 @@ import (
|
|
"github.com/labstack/echo"
|
|
"github.com/labstack/echo"
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+type SolutionTypeGetReq struct {
|
|
|
|
+ Url string
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func SolutionTypeGet(c echo.Context) error {
|
|
|
|
+
|
|
|
|
+ v := c.Get("receiver").(SolutionTypeGetReq)
|
|
|
|
+
|
|
|
|
+ retv := &struct {
|
|
|
|
+ SolutionType string
|
|
|
|
+ ThemeType string
|
|
|
|
+ }{}
|
|
|
|
+
|
|
|
|
+ fmt.Println(v.Url)
|
|
|
|
+ // (1) function 공유될 수 있도록 해서 작업요
|
|
|
|
+ // v.SolutionType, v.ThemeType = solType(&kkk)
|
|
|
|
+ retv.SolutionType = "Wordpress"
|
|
|
|
+ retv.ThemeType = "Avada"
|
|
|
|
+ // ret, _ := json.MarshalIndent(itemInfo, "", "\t")
|
|
|
|
+ ret, _ := json.Marshal(retv)
|
|
|
|
+ return c.JSONBlob(http.StatusOK, ret)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ProductPageGetReq struct {
|
|
|
|
+ SolutionType string
|
|
|
|
+ ThemeType string
|
|
|
|
+ Products []ProductUri
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ProductUri struct {
|
|
|
|
+ Uri string
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// 오리지널 웹사이트 전체를 업테이트 하는 경우 Uri를 하나씩 보내면 비효율적이므로 하나의 배치로
|
|
|
|
+// 묶어서 요청할 수 있도록 한다. 주로 product-page-get를 쓰고 item-url-scrap은 deprecate 예정임.
|
|
|
|
+
|
|
|
|
+func ProductPageGet(c echo.Context) error {
|
|
|
|
+
|
|
|
|
+ v := c.Get("receiver").(ProductPageGetReq)
|
|
|
|
+
|
|
|
|
+ var vRet locals.ProductPage // Row(개별레코드)->Page(Row의 집합)->Book(Page의 집합)의 개념
|
|
|
|
+ for _, row := range v.Products {
|
|
|
|
+
|
|
|
|
+ // (1)Url 의 HTML를 2번 가져오는데 아래와 같이 1번만 가져와서 처리할 수 있도록 수정요.
|
|
|
|
+ // kkk := htmlGet(row.Uri)
|
|
|
|
+
|
|
|
|
+ // 전체 웹사이트가 아니라 개별 상품페이지(1개페이지)의 경우 SolutionType 없이 request됨
|
|
|
|
+ if v.SolutionType == "" {
|
|
|
|
+ // v.SolutionType, v.ThemeType = solType(&kkk)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ prodInfo, err := parse(row.Uri)
|
|
|
|
+ if err != nil {
|
|
|
|
+ prodInfo.ItemNick = "Parsing Failed"
|
|
|
|
+ }
|
|
|
|
+ // 개별 prodInfo가 계속 추가될 수 있도록 코드를 변경요.
|
|
|
|
+ // vRet.ProductPage = append(vRet.ProductPage, *prodInfo)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // ret, _ := json.MarshalIndent(itemInfo, "", "\t")
|
|
|
|
+ ret, _ := json.Marshal(vRet)
|
|
|
|
+ return c.JSONBlob(http.StatusOK, ret)
|
|
|
|
+}
|
|
|
|
+
|
|
type ItemUrlScrapReq struct {
|
|
type ItemUrlScrapReq struct {
|
|
ItemUrl string
|
|
ItemUrl string
|
|
}
|
|
}
|