From 92421e653a5672862e8fb89f7f3bba17d2320c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 23 Mar 2021 16:51:12 +0800 Subject: [PATCH] aa --- platformapi/jdapi/jdapi_test.go | 6 +- platformapi/jdapi/sku_test.go | 104 ++- platformapi/jdapi/store_page.go | 64 ++ platformapi/jdapi/store_page_test.go | 21 +- platformapi/jdshopapi/store_page.go | 2 +- platformapi/jdshopapi/store_page_test.go | 988 ++++++++++++++++++++++- 6 files changed, 1168 insertions(+), 17 deletions(-) diff --git a/platformapi/jdapi/jdapi_test.go b/platformapi/jdapi/jdapi_test.go index 63dee8c5..d8881ef7 100644 --- a/platformapi/jdapi/jdapi_test.go +++ b/platformapi/jdapi/jdapi_test.go @@ -23,7 +23,7 @@ func init() { // sandbox // api = New("594ab45a-9a73-4a43-82b0-a64cbd55d883", "06692746f7224695ad4788ce340bc854", "d6b42a35a7414a5490d811654d745c84") // prod - api = New("29afd5a8-f93f-4d4c-9fce-a7297340af59", "1dba76d40cac446ca500c0391a0b6c9d", "a88d031a1e7b462cb1579f12e97fe7f4") + api = New("df045085-c203-465c-87e3-e79279ecf9ed", "425a594759004dcd9b3542e3d7b47ffa", "fb33ef5f67c9423da67e470204dd3af9") // 天天果园 // api = New("c45e6510-00ba-4be2-977e-bcb9c9792cc7", "5d5577a2506f41b8b4ec520ba83490f5", "0b01b9eeb15b41dab1c3d05d95c17a26") @@ -34,8 +34,8 @@ func init() { // api.SetJdCookie(cookieValue) // api.SetCookie("user", "VCQUVHVJI4ELNGFZOYMCDYDUSHEJMPXZRZXSNBRB4MVBNENP72REAAZR3R4SGDJ5ZI4FLYLLN5EGBBMTFCWHZVESIWBNLKZPLHWD6UIBTPXOF5IXM6AVA3V6TUNZD5UJS43AROJ2IRPZWEN5AGZYBUEGD3MSKKBKBSRP3DSEQXLITYNBLFZCHXCA7L4KGOSJRMM7R5IQP7QGLGRQB27AOE4YMLRJ3UPTZADPWJOYB3UZ7UZHLBVZRREEX647O3WQUU4BYXUOFZPIPRR77W3PQV543E") api.SetCookieWithStr(` - lsp-store1.jddj.com=ZRQ5RVE32D7ZRDH2FJUG5E2D42VYH5X2TT7PEYWWKEXOKG36MFGO3IZPU2644VM3AF245ANGSYECBEH6E2NYG4RO5MMOFGWNJFIVY3Z7SIWRIHVZJQZYXVAXFD3ZALXJ7LF7IXV2EIDQKACPO2QSMLXCK4BDVECTARS7I5ZWPB6ELIAI7GMGZB2PZLDOSGLJW3RSIFQATZFJXORN62Q47W7WFNA643UOAKVGBBBS5VZ3BNPFDHBYX5DNYB3TVGLKZDFAKRRXECTQQRZFGSOTYYIE4FXN7FSC2NHYJWBRIIRMP6W44EDED2ZMUGIFYVUY5JBXDO6GUFM74; josl-privilege1.jddj.com=ZRQ5RVE32D7ZRDH2FJUG5E2D42VYH5X2TT7PEYWWKEXOKG36MFGO3IZPU2644VM3AF245ANGSYECBEH6E2NYG4RO5MMOFGWNJFIVY3Z7SIWRIHVZJQZYXVAXFD3ZALXJ7LF7IXV2EIDQKACPO2QSMLXCK4BDVECTARS7I5ZWPB6ELIAI7GML3B5KRWVANMUE6CJHQ26ZEPPPZTZMVVEU7XFAU6BZUEDYJPXO4OZS5VZ3BNPFDHBYX5DNYB3TVGLKAPQZF3RP5BL22FN742XTFXEYFEVXQ34S6GZHMC5NGAXZ7AZ4DU2LILQOALXSO3ZBU5Q2RZJH2BMPIU3CGHF22D5GNS3U7O2AN3PH5TI; store_deviceid=89a38e81dfbb776fa5f866f74ed437a3; o2o-stock1.jddj.com=ZRQ5RVE32D7ZRDH2FJUG5E2D42VYH5X2TT7PEYWWKEXOKG36MFGO3IZPU2644VM3AF245ANGSYECBEH6E2NYG4RO5MMOFGWNJFIVY3Z7SIWRIHVZJQZYXVAXFD3ZALXJ7LF7IXV2EIDQKACPO2QSMLXCK4BDVECTARS7I5ZWPB6ELIAI7GMIMHXH2NJVBANI3UEOER5UPD2A4XBKD6W7VQRYOKUOI7PJTIXBNSW5P2G2MT3U6I3527NQFMAFLHXB5OQS4MGVQTJRQMJMGHBEQ4XGJ3I3LLXBHRXRG55NZQUW72XT7LTQ; o2o-pms1.jddj.com=ZRQ5RVE32D7ZRDH2FJUG5E2D42VYH5X2TT7PEYWWKEXOKG36MFGO3IZPU2644VM3AF245ANGSYECBEH6E2NYG4RO5MMOFGWNJFIVY3Z7SIWRIHVZJQZYXVAXFD3ZALXJ7LF7IXV2EIDQKACPO2QSMLXCK4BDVECTARS7I5ZWPB6ELIAI7GMBWJVC6XWTFZEWX37V5RK7T6TGKWWM446A6EOGP3IMZQ2UJX4CHBW5P2G2MT3U6I3527NQFMAFLHXB5OQS4MGVQTJRQMJMGHBEQ4XGJ3I3LLXBHRXRG55NZQUW72XT7LTQ; jdO2OOpenPortalSessionId=9C6BAB948DCAB76BC8EA3AB81B85A3D6.s1; JSESSIONID=C030881DDFF55693563C7C78FF7D5749.s1 - + lsp-store1.jddj.com=LSQNGFCHHF25J36CP5K7IVZ7GQ3IGPWLA3UFJDLOGRJ7D5JSEQY63IZPU2644VM3AF245ANGSYECBX4YHWF7LQNI46AL3RNJUBNL46ZJP6APMSIB5S2IL44UFTUXD4ES7NJGTRND64MSP5YAUIRCUGXTR3DP2X4QGGUXUZMYYZDPZYNHFSZ2WADBZSSJK5NTIGIQPPKWULCZTFMODOZQIP3QS74RQ25D3XYAYGWXTHOKBSRIYFDGFS4MIBIGXPL4JOU24WJL4PVF3PPYDNTOLLXDABUFAZSE6C6CNOMI6L2TAK43JJIJQRQAQUQSU537ZFLVPGBYFDJYY; store_deviceid=f8dc2505cd85d22da78edb86122bead7; jdO2OOpenPortalSessionId=821701404AB5BD1C5951146C6B69B977.s1; token=dd4cc1f4859b40b4a46070632170d1ad; JSESSIONID=2249A53C59B3E9F5E9EF6335E3E95AFB.s1 + `) } diff --git a/platformapi/jdapi/sku_test.go b/platformapi/jdapi/sku_test.go index 2b8bb4da..85c49fbe 100644 --- a/platformapi/jdapi/sku_test.go +++ b/platformapi/jdapi/sku_test.go @@ -151,10 +151,108 @@ func TestAddShopCategory(t *testing.T) { } func TestDelShopCategory(t *testing.T) { - err := api.DelShopCategory(5259045) - if err != nil { - t.Fatal(err) + map1 := map[string][][]string{ + "363436": [][]string{ + []string{ + "b922658a-8f07-4932-a616-6a4b5347cf0a", "b5e6b41babba4743ab9c0896b9c6003f", "6511abe10f28405081e4f5a351457c22", + }, + []string{ + "5492150", + "5492148", + "5492146", + }, + }, + "363558": [][]string{ + []string{ + "c91173f4-567b-4bc9-a1e3-a1608407ec9d", "349b0b2156de4fd1adec4f34a5ca7247", "bee0d13695e64d13bb93ac9d50b95f94", + }, + []string{ + "5490060", + "5490053", + "5490056", + }, + }, + "363701": [][]string{ + []string{ + "3e21445d-ac39-428e-866c-69dca7b95ddc", "2148e08b14444b73bb04ee8dae4217ac", "7f541ab195934c109b8eee7a56b6f58d", + }, + []string{ + "5498539", + "5498535", + "5498536", + }, + }, + "363739": [][]string{ + []string{ + "fdb687b1-8e0a-4072-b251-04ef6d7a1a92", "218c544106e84cb08cbeed186c0d5bac", "fdd384a632354f189abce33f5a32ea14", + }, + []string{ + "5498692", + "5498688", + "5498689", + }, + }, + "363786": [][]string{ + []string{ + "098c8550-cfe7-4820-91fa-1bbf63ed9b20", "a396d930904047738dc70b6d2eb54e2d", "262f4656f16a48ed94003a1f261cd7d3", + }, + []string{ + "5499968", + "5499966", + "5499964", + }, + }, + "363788": [][]string{ + []string{ + "9b78cbb9-b956-4820-9b2f-330daaed2828", "5ecd3d4b65b44c9f9f820af232110f20", "63b0d12d32734334bf8c95d43e396035", + }, + []string{ + "5500121", + "5500123", + "5500120", + }, + }, + "363892": [][]string{ + []string{ + "163a032f-72df-44c9-a405-b7675e68d2a6", "f40e9fc714e741359c8fc4f2a1ea9e59", "e486c09cfded4fe3a15ee1cff546155f", + }, + []string{ + "5502844", + "5502840", + "5502842", + }, + }, + "363894": [][]string{ + []string{ + "840b4a7c-5b9a-40fc-95e8-e53b56573565", "fbeeef71305c46f192979ca6a00d380c", "feeec4ccf24744d892c4e892f5978847", + }, + []string{ + "5503000", + "5502996", + "5502997", + }, + }, + "363896": [][]string{ + []string{ + "064ee734-e819-455b-b4c4-cc5ee21c6b2f", "ab938148ff0444eba773a7851029d082", "8f659292e639499ca41d39476fc9c2df", + }, + []string{ + "5503152", + "5503150", + "5503151", + }, + }, } + for _, v := range map1 { + apijd := New(v[0][0], v[0][1], v[0][2]) + for _, vv := range v[1] { + apijd.DelShopCategory(utils.Str2Int64(vv)) + } + } + // err := api.DelShopCategory(5496926) + // if err != nil { + // t.Fatal(err) + // } } func TestGetSkuSaleAttrName(t *testing.T) { diff --git a/platformapi/jdapi/store_page.go b/platformapi/jdapi/store_page.go index 03e46eee..54578f42 100644 --- a/platformapi/jdapi/store_page.go +++ b/platformapi/jdapi/store_page.go @@ -328,6 +328,7 @@ var ( regexpJDStoreSkuPage = regexp.MustCompile(`共1/(.*)页`) regexpJDTbody = regexp.MustCompile(`([\s\S]*?)`) regexpJDTr = regexp.MustCompile(`([\s\S]*?)`) + regexpJDTr2 = regexp.MustCompile(``) regexpJDTdInfo = regexp.MustCompile(`([\s\S]*?)`) regexpJDSkuID = regexp.MustCompile(`sku编码:(.*)`) regexpJDSkuID2 = regexp.MustCompile(`

SKU编码:(.*)

`) @@ -336,11 +337,13 @@ var ( regexpJDStoreLevel = regexp.MustCompile(`门店分级 :(.*);`) regexpJDSkuDirectPrice = regexp.MustCompile(`([\s\S]*?)`) regexpJDStoreID = regexp.MustCompile(``) + regexpAppID = regexp.MustCompile(`onClick="backcode\((.*)\)"`) htmlResponeURLs = []string{ "login-o2o.jddj.com/jpuser/", "sta-store.jddj.com/store/", "pms-store.jddj.com/ware", "sta-store.jddj.com", + "openo2o.jddj.com", } ) @@ -382,6 +385,7 @@ func (a *API) AccessStorePage2(fullURL string, params map[string]interface{}, is request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(utils.Map2URLValues(params).Encode())) if params[KeyImgName] == nil { request.Header.Set("Content-Type", "application/x-www-form-urlencoded") + request.Header.Set("accept", "application/json, text/javascript, */*; q=0.01") } else { var b bytes.Buffer w := multipart.NewWriter(&b) @@ -1184,3 +1188,63 @@ func (a *API) ToOnline() (err error) { _, err = a.AccessStorePage2("https://openo2o.jddj.com/sandBox/toOnline.htm", nil, true, "") return err } + +//京东开放平台未授权回填验证码app的id +func (a *API) GetJdNoAuthAppID(vendorOrgCode string) (data string, err error) { + nameMap := make(map[string]string) + result, err := a.AccessStorePage2("https://openo2o.jddj.com/xmanager/listAppBaseAndAuthNoAuth.htm", nil, false, "") + if result != nil { + tbody := regexpJDTbody.FindStringSubmatch(result.(string)) + trs := regexpJDTr2.FindAllStringSubmatch(tbody[1], -1) + for _, v := range trs { + tds := regexpJDTdInfo.FindAllStringSubmatch(v[1], -1) + if len(tds) > 0 { + if tds[3][1] != "" { + if len(regexpAppID.FindStringSubmatch(tds[5][1])) > 0 { + name := strings.Map(func(r rune) rune { + switch r { + case 0x000A, 0x000B, 0x000C, 0x000D, 0x0085, 0x2028, 0x2029: + return -1 + default: + return r + } + }, tds[3][1]) + nameMap[strings.ReplaceAll(name, "\t", "")] = regexpAppID.FindStringSubmatch(tds[5][1])[1] + } + } + } + } + } + if nameMap[vendorOrgCode] != "" { + return nameMap[vendorOrgCode], err + } + return "", err +} + +type GetJdAppInfoResult struct { + CallBackURL string `json:"callBackUrl"` + OrgCode string `json:"orgCode"` + AppKey string `json:"appKey"` + AppSecret string `json:"appSecret"` + IsShowUpdateBtn string `json:"isShowUpdateBtn"` + IsIsv string `json:"isIsv"` + IsShow string `json:"isShow"` +} + +func (a *API) GetJdAppInfo() (getJdAppInfoResult *GetJdAppInfoResult, err error) { + result, err := a.AccessStorePage2("https://openo2o.jddj.com/xmanager/auto/app/appInfo.htm", nil, true, "") + if err == nil { + utils.Map2StructByJson(result.(map[string]interface{})["data"], &getJdAppInfoResult, false) + } + return getJdAppInfoResult, err +} + +// https://openo2o.jddj.com/xmanager/isv/appManage.htm + +func (a *API) SetCode(code, jdAppID string) (err error) { + _, err = a.AccessStorePage2("https://openo2o.jddj.com/xmanager/isv/app/accesstoken.htm", map[string]interface{}{ + "id": jdAppID, + "code": code, + }, true, "") + return err +} diff --git a/platformapi/jdapi/store_page_test.go b/platformapi/jdapi/store_page_test.go index 76645aa9..419b8389 100644 --- a/platformapi/jdapi/store_page_test.go +++ b/platformapi/jdapi/store_page_test.go @@ -293,12 +293,19 @@ func TestExcuteInvoking(t *testing.T) { } func TestPeiZhiJdZhangHao(t *testing.T) { - for k, v := range interfaceMap { - if err := api.UpdateInterStatus(k, v[0].(string), v[1].(int)); err == nil { - if err2 := api.SaveMsgUrl(k, "http://callback.test.jxc4.com", "http://callback.jxc4.com", v[1].(int)); err2 == nil { - if err3 := api.ExcuteInvoking(k, v[1].(int)); err3 == nil { - } - } - } + // for k, v := range interfaceMap { + // if err := api.UpdateInterStatus(k, v[0].(string), v[1].(int)); err == nil { + // if err2 := api.SaveMsgUrl(k, "http://callback.test.jxc4.com", "http://callback.jxc4.com", v[1].(int)); err2 == nil { + // if err3 := api.ExcuteInvoking(k, v[1].(int)); err3 == nil { + // } + // } + // } + // } + // result, err := api.GetJdNoAuthAppID("364131") + result, err := api.GetJdAppInfo() + // err := api.SetCode("yCpbjc", "8770") + if err != nil { + t.Fatal(err) } + t.Log(utils.Format4Output(result, false)) } diff --git a/platformapi/jdshopapi/store_page.go b/platformapi/jdshopapi/store_page.go index ee2ceae0..658b1f67 100644 --- a/platformapi/jdshopapi/store_page.go +++ b/platformapi/jdshopapi/store_page.go @@ -839,7 +839,7 @@ func (a *API) UpdateExpand(storeID int) (err error) { _, err = a.AccessStorePage2("https://o2o-stores.shop.jd.com/shop/updateExpand?version=1.0.0&source=pc&requestId="+utils.Int64ToStr(reqID), map[string]interface{}{ "storeId": storeID, "deliveryPrice": 0, - "weightLimit": 30, + "weightLimit": 3000, "version": "1.0.0", "source": "pc", "requestId": reqID, diff --git a/platformapi/jdshopapi/store_page_test.go b/platformapi/jdshopapi/store_page_test.go index 19eb76c5..0be6bf0f 100644 --- a/platformapi/jdshopapi/store_page_test.go +++ b/platformapi/jdshopapi/store_page_test.go @@ -210,9 +210,991 @@ func TestUpdateBasic(t *testing.T) { } func TestUpdateExpand(t *testing.T) { - err := api.UpdateExpand(24563694) - if err != nil { - t.Fatal(err) + s := []int{ + 1000068984, + 1000068975, + 1000068985, + 1000068976, + 1000068977, + 1000068978, + 1000068986, + 1000068979, + 1000068987, + 1000069001, + 1000069002, + 1000068992, + 1000068993, + 1000068994, + 1000069005, + 1000069006, + 1000068995, + 1000069008, + 1000069009, + 1000068996, + 1000069010, + 1000069011, + 1000068997, + 1000068998, + 1000068999, + 1000069020, + 1000069021, + 1000069012, + 1000069013, + 1000069014, + 1000069022, + 1000069015, + 1000069023, + 1000069016, + 1000069017, + 1000069018, + 1000069024, + 1000069025, + 1000069019, + 1000069030, + 1000069031, + 1000069032, + 1000069033, + 1000069034, + 1000069035, + 1000069026, + 1000069027, + 1000069028, + 1000069029, + 1000069036, + 1000069037, + 1000069038, + 1000069040, + 1000069041, + 1000069042, + 1000069039, + 1000069043, + 1000069044, + 1000069050, + 1000069045, + 1000069051, + 1000069046, + 1000069047, + 1000069052, + 1000069048, + 1000069049, + 1000069053, + 1000069060, + 1000069061, + 1000069054, + 1000069062, + 1000069063, + 1000069055, + 1000069056, + 1000069057, + 1000069064, + 1000069058, + 1000069065, + 1000069066, + 1000069059, + 1000069067, + 1000069070, + 1000069071, + 1000069072, + 1000069073, + 1000069068, + 1000069074, + 1000069075, + 1000069069, + 1000069076, + 1000069077, + 1000069080, + 1000069081, + 1000069078, + 1000069082, + 1000069079, + 1000069090, + 1000069083, + 1000069084, + 1000069085, + 1000069086, + 1000069091, + 1000069087, + 1000069088, + 1000069092, + 1000069089, + 1000069093, + 1000069094, + 1000069095, + 1000069103, + 1000069104, + 1000069096, + 1000069105, + 1000069106, + 1000069097, + 1000069107, + 1000069098, + 1000069099, + 1000069108, + 1000069109, + 1000069110, + 1000069111, + 1000069120, + 1000069112, + 1000069121, + 1000069122, + 1000069123, + 1000069124, + 1000069125, + 1000069126, + 1000069127, + 1000069113, + 1000069114, + 1000069115, + 1000069128, + 1000069129, + 1000069116, + 1000069130, + 1000069131, + 1000069132, + 1000069133, + 1000069117, + 1000069134, + 1000069141, + 1000069137, + 1000069138, + 1000069139, + 1000069142, + 1000069143, + 1000069150, + 1000069144, + 1000069145, + 1000069151, + 1000069146, + 1000069152, + 1000069153, + 1000069147, + 1000069148, + 1000069154, + 1000069155, + 1000069149, + 1000069156, + 1000069160, + 1000069161, + 1000069162, + 1000069163, + 1000069164, + 1000069157, + 1000069166, + 1000069167, + 1000069158, + 1000069159, + 1000069170, + 1000069168, + 1000069169, + 1000069180, + 1000069181, + 1000069182, + 1000069171, + 1000069172, + 1000069183, + 1000069173, + 1000069174, + 1000069175, + 1000069184, + 1000069176, + 1000069177, + 1000069178, + 1000069185, + 1000069203, + 1000069192, + 1000069204, + 1000069193, + 1000069205, + 1000069206, + 1000069207, + 1000069194, + 1000069195, + 1000069208, + 1000069196, + 1000069209, + 1000069210, + 1000069211, + 1000069197, + 1000069212, + 1000069198, + 1000069213, + 1000069199, + 1000069214, + 1000069215, + 1000069220, + 1000069221, + 1000069222, + 1000069223, + 1000069216, + 1000069217, + 1000069224, + 1000069225, + 1000069226, + 1000069218, + 1000069227, + 1000069219, + 1000069230, + 1000069228, + 1000069229, + 1000069231, + 1000069240, + 1000069241, + 1000069242, + 1000069243, + 1000069232, + 1000069244, + 1000069233, + 1000069234, + 1000069235, + 1000069236, + 1000069237, + 1000069238, + 1000069245, + 1000069239, + 1000069246, + 1000069250, + 1000069251, + 1000069247, + 1000069252, + 1000069253, + 1000069254, + 1000069255, + 1000069256, + 1000069248, + 1000069257, + 1000069258, + 1000069249, + 1000069260, + 1000069259, + 1000069261, + 1000069270, + 1000069271, + 1000069262, + 1000069263, + 1000069272, + 1000069273, + 1000069264, + 1000069265, + 1000069274, + 1000069266, + 1000069275, + 1000069267, + 1000069268, + 1000069269, + 1000069276, + 1000069277, + 1000069280, + 1000069281, + 1000069278, + 1000069282, + 1000069279, + 1000069290, + 1000069283, + 1000069291, + 1000069292, + 1000069284, + 1000069285, + 1000069293, + 1000069294, + 1000069295, + 1000069286, + 1000069287, + 1000069288, + 1000069296, + 1000069289, + 1000069300, + 1000069301, + 1000069297, + 1000069302, + 1000069298, + 1000069303, + 1000069299, + 1000069304, + 1000069305, + 1000069310, + 1000069311, + 1000069306, + 1000069312, + 1000069313, + 1000069314, + 1000069307, + 1000069315, + 1000069316, + 1000069317, + 1000069318, + 1000069319, + 1000069320, + 1000069321, + 1000069322, + 1000069308, + 1000069323, + 1000069324, + 1000069309, + 1000069325, + 1000069326, + 1000069330, + 1000069331, + 1000069328, + 1000069329, + 1000069332, + 1000069333, + 1000069340, + 1000069334, + 1000069335, + 1000069341, + 1000069342, + 1000069336, + 1000069337, + 1000069343, + 1000069338, + 1000069344, + 1000069345, + 1000069346, + 1000069351, + 1000069352, + 1000069353, + 1000069347, + 1000069354, + 1000069348, + 1000069355, + 1000069356, + 1000069349, + 1000069357, + 1000069358, + 1000069360, + 1000069359, + 1000069361, + 1000069371, + 1000069373, + 1000069374, + 1000069375, + 1000069362, + 1000069363, + 1000069364, + 1000069365, + 1000069376, + 1000069366, + 1000069367, + 1000069377, + 1000069378, + 1000069368, + 1000069369, + 1000069380, + 1000069379, + 1000069390, + 1000069381, + 1000069391, + 1000069382, + 1000069392, + 1000069383, + 1000069393, + 1000069384, + 1000069394, + 1000069385, + 1000069395, + 1000069386, + 1000069396, + 1000069387, + 1000069388, + 1000069397, + 1000069389, + 1000069398, + 1000069399, + 1000069410, + 1000069411, + 1000069412, + 1000069401, + 1000069413, + 1000069402, + 1000069403, + 1000069414, + 1000069404, + 1000069405, + 1000069406, + 1000069407, + 1000069415, + 1000069416, + 1000069417, + 1000069408, + 1000069409, + 1000069418, + 1000069420, + 1000069419, + 1000069421, + 1000069430, + 1000069422, + 1000069423, + 1000069424, + 1000069431, + 1000069425, + 1000069432, + 1000069426, + 1000069433, + 1000069427, + 1000069434, + 1000069435, + 1000069428, + 1000069429, + 1000069436, + 1000069437, + 1000069440, + 1000069438, + 1000069439, + 1000069441, + 1000069450, + 1000069451, + 1000069452, + 1000069442, + 1000069443, + 1000069453, + 1000069454, + 1000069444, + 1000069445, + 1000069455, + 1000069446, + 1000069456, + 1000069447, + 1000069457, + 1000069448, + 1000069458, + 1000069449, + 1000069459, + 1000069460, + 1000069461, + 1000069462, + 1000069463, + 1000069464, + 1000069470, + 1000069471, + 1000069465, + 1000069472, + 1000069473, + 1000069474, + 1000069466, + 1000069467, + 1000069475, + 1000069476, + 1000069468, + 1000069477, + 1000069469, + 1000069478, + 1000069480, + 1000069479, + 1000069490, + 1000069491, + 1000069481, + 1000069482, + 1000069492, + 1000069493, + 1000069494, + 1000069495, + 1000069483, + 1000069496, + 1000069484, + 1000069497, + 1000069498, + 1000069485, + 1000069499, + 1000069486, + 1000069487, + 1000069488, + 1000069489, + 1000069500, + 1000069501, + 1000069510, + 1000069511, + 1000069515, + 1000069516, + 1000069517, + 1000069518, + 1000069519, + 1000069520, + 1000069506, + 1000069521, + 1000069507, + 1000069508, + 1000069522, + 1000069509, + 1000069530, + 1000069531, + 1000069532, + 1000069523, + 1000069533, + 1000069534, + 1000069524, + 1000069525, + 1000069535, + 1000069526, + 1000069527, + 1000069536, + 1000069537, + 1000069541, + 1000069555, + 1000069570, + 1000069580, + 1000069588, + 1000069592, + 1000069579, + 1000069594, + 1000069596, + 1000069620, + 1000069621, + 1000069622, + 1000069623, + 1000069614, + 1000069624, + 1000069625, + 1000069626, + 1000069627, + 1000069628, + 1000069646, + 1000069656, + 1000069647, + 1000069648, + 1000069657, + 1000069658, + 1000069659, + 1000069660, + 1000069661, + 1000069662, + 1000069663, + 1000069664, + 1000069649, + 1000069665, + 1000069666, + 1000069670, + 1000069671, + 1000069672, + 1000069667, + 1000069674, + 1000069675, + 1000069676, + 1000069677, + 1000069668, + 1000069669, + 1000069678, + 1000069680, + 1000069679, + 1000069681, + 1000069690, + 1000069682, + 1000069683, + 1000069691, + 1000069692, + 1000069693, + 1000069684, + 1000069685, + 1000069686, + 1000069687, + 1000069694, + 1000069695, + 1000069696, + 1000069697, + 1000069698, + 1000069688, + 1000069689, + 1000069699, + 1000069700, + 1000069710, + 1000069701, + 1000069711, + 1000069702, + 1000069712, + 1000069713, + 1000069703, + 1000069704, + 1000069714, + 1000069715, + 1000069705, + 1000069706, + 1000069716, + 1000069707, + 1000069717, + 1000069708, + 1000069718, + 1000069719, + 1000069721, + 1000069722, + 1000069723, + 1000069724, + 1000069725, + 1000069726, + 1000069727, + 1000069728, + 1000069729, + 1000069730, + 1000069731, + 1000069740, + 1000069741, + 1000069742, + 1000069732, + 1000069743, + 1000069733, + 1000069734, + 1000069744, + 1000069745, + 1000069746, + 1000069735, + 1000069736, + 1000069737, + 1000069747, + 1000069748, + 1000069738, + 1000069750, + 1000069751, + 1000069752, + 1000069739, + 1000069753, + 1000069754, + 1000069760, + 1000069755, + 1000069756, + 1000069761, + 1000069757, + 1000069758, + 1000069759, + 1000069762, + 1000069770, + 1000069771, + 1000069772, + 1000069773, + 1000069763, + 1000069764, + 1000069774, + 1000069765, + 1000069766, + 1000069767, + 1000069775, + 1000069776, + 1000069768, + 1000069769, + 1000069777, + 1000069778, + 1000069779, + 1000069780, + 1000069781, + 1000069782, + 1000069790, + 1000069791, + 1000069792, + 1000069783, + 1000069793, + 1000069784, + 1000069785, + 1000069795, + 1000069786, + 1000069787, + 1000069788, + 1000069796, + 1000069797, + 1000069798, + 1000069799, + 1000069800, + 1000069789, + 1000069810, + 1000069811, + 1000069801, + 1000069812, + 1000069802, + 1000069813, + 1000069814, + 1000069803, + 1000069804, + 1000069815, + 1000069816, + 1000069805, + 1000069817, + 1000069806, + 1000069818, + 1000069819, + 1000069820, + 1000069807, + 1000069821, + 1000069822, + 1000069823, + 1000069808, + 1000069809, + 1000069830, + 1000069824, + 1000069831, + 1000069825, + 1000069826, + 1000069832, + 1000069833, + 1000069834, + 1000069835, + 1000069827, + 1000069836, + 1000069828, + 1000069837, + 1000069829, + 1000069838, + 1000069840, + 1000069841, + 1000069839, + 1000069842, + 1000069843, + 1000069844, + 1000069845, + 1000069850, + 1000069846, + 1000069847, + 1000069848, + 1000069851, + 1000069852, + 1000069853, + 1000069849, + 1000069854, + 1000069860, + 1000069862, + 1000069863, + 1000069856, + 1000069857, + 1000069858, + 1000069864, + 1000069859, + 1000069865, + 1000069866, + 1000069870, + 1000069871, + 1000069872, + 1000069873, + 1000069867, + 1000069868, + 1000069874, + 1000069869, + 1000069880, + 1000069881, + 1000069882, + 1000069883, + 1000069876, + 1000069877, + 1000069878, + 1000069879, + 1000069884, + 1000069890, + 1000069891, + 1000069885, + 1000069892, + 1000069893, + 1000069894, + 1000069886, + 1000069895, + 1000069896, + 1000069887, + 1000069888, + 1000069889, + 1000069900, + 1000069897, + 1000069901, + 1000069898, + 1000069899, + 1000069902, + 1000069903, + 1000069904, + 1000069910, + 1000069905, + 1000069906, + 1000069911, + 1000069912, + 1000069907, + 1000069913, + 1000069914, + 1000069915, + 1000069908, + 1000069909, + 1000069920, + 1000069921, + 1000069922, + 1000069916, + 1000069917, + 1000069918, + 1000069919, + 1000069923, + 1000069924, + 1000069925, + 1000069930, + 1000069931, + 1000069932, + 1000069926, + 1000069933, + 1000069934, + 1000069927, + 1000069935, + 1000069936, + 1000069937, + 1000069938, + 1000069939, + 1000069928, + 1000069940, + 1000069941, + 1000069942, + 1000069943, + 1000069944, + 1000069945, + 1000069929, + 1000069946, + 1000069950, + 1000069951, + 1000069952, + 1000069953, + 1000069954, + 1000069947, + 1000069955, + 1000069948, + 1000069949, + 1000069957, + 1000069960, + 1000069961, + 1000069962, + 1000069958, + 1000069963, + 1000069964, + 1000069965, + 1000069966, + 1000069967, + 1000069959, + 1000069970, + 1000069968, + 1000069971, + 1000069969, + 1000069980, + 1000069981, + 1000069972, + 1000069982, + 1000069973, + 1000069983, + 1000069974, + 1000069984, + 1000069975, + 1000069976, + 1000069977, + 1000069985, + 1000069978, + 1000069986, + 1000069987, + 1000069988, + 1000069979, + 1000069989, + 1000069990, + 1000069991, + 1000070000, + 1000070001, + 1000070002, + 1000069997, + 1000070005, + 1000070006, + 1000070007, + 1000069998, + 1000070008, + 1000070009, + 1000069999, + 1000070010, + 1000070020, + 1000070011, + 1000070021, + 1000070012, + 1000070022, + 1000070023, + 1000070024, + 1000070025, + 1000070013, + 1000070026, + 1000070027, + 1000070014, + 1000070028, + 1000070029, + 1000070030, + 1000070031, + 1000070015, + 1000070016, + 1000070032, + 1000070017, + 1000070018, + 1000070033, + 1000070019, + 1000070034, + 1000070035, + 1000070040, + 1000070036, + 1000070037, + 1000070038, + 1000070039, + 1000070041, + 1000070042, + 1000070043, + 1000070050, + 1000070051, + 1000070052, + 1000070053, + 1000070054, + 1000070044, + 1000070055, + 1000070045, + 1000070046, + 1000070056, + 1000070057, + 1000070058, + 1000070047, + 1000070059, + 1000070048, + 1000070060, + 1000070049, + 1000070070, + 1000070061, + 1000070075, + 1000070092, + 1000070102, + 1000070098, + 1000070099, + 1000070110, + 1000070103, + 1000070111, + 1000070105, + 1000070112, + 1000070113, + 1000070106, + 1000070114, + 1000070115, + 1000070107, + 1000070116, + 1000070108, + 1000070117, + 1000070109, + 1000070120, + 1000070118, + 1000070121, + 1000070119, + 1000070130, + 1000070122, + 1000070131, + 1000070132, + 1000070123, + 1000070133, + 1000070134, + 1000070135, + 1000070136, + 1000070124, + 1000070137, + 1000070138, + 1000070139, + 1000070140, + 1000070141, + 1000070142, + 1000070125, + 1000070143, + 1000070144, + 1000070126, + 1000070127, + 1000063128, + 1000070128, + 1000116473, + } + for _, v := range s { + err := api.UpdateExpand(v) + if err != nil { + t.Fatal(err) + } } // t.Log(utils.Format4Output(result, false)) }