xiaomi_test.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package addata
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/gomodule/redigo/redis"
  6. "github.com/stretchr/testify/assert"
  7. "miads/adslib"
  8. "miads/adslib/ads_redis"
  9. "miads/adslib/utils"
  10. "net/http"
  11. "strings"
  12. "testing"
  13. "time"
  14. "github.com/jarcoal/httpmock"
  15. "github.com/rafaeljusto/redigomock"
  16. )
  17. var dsp utils.DspParam
  18. func SetupTest() error {
  19. dspStr := "{'phone_type': '', 'advertiser': '', 'ip': '223.91.87.241', 'ad_type': 1, 'carrier_id': 0, 'imei': u'72710e3df592f07f6dbcc04b747f3653', 'dsp_city_code': 1156411300, 'num': 1, 'os_version': '6.0.1', 'ua_client': 'Mozilla/5.0 (Linux; Android 6.0.1; OPPO R9s Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36', 'real_md5_imei': u'72710e3df592f07f6dbcc04b747f3653', 'lng': 0.0, 'android_id': 'a3306c7ca6a9c2a3', 'category': '', 'city': '\\xe5\\x8d\\x97\\xe9\\x98\\xb3\\xe5\\xb8\\x82', 'source_flag': 0, 'ver': '', 'source': '', 'is_360_circle': 1, 'adspace_id': '', 'send_phone_type': 0, 'platform': 1, 'real_mi_flag': 0, 'screen_density': 3, 'channel': '', 'province': '\\xe6\\xb2\\xb3\\xe5\\x8d\\x97\\xe7\\x9c\\x81', 'real_req_source': 'kuxin', 'sup_click_flag': 1, 'screen_width': 1080, 'sup_show_flag': 1, 'brand': 'OPPO', 'screen_size': '1920x1080', 'mac': '986F60693A9F', 'idfa': '', 'lat': 0.0, 'user_id': 0, 'osVersion': '', 'model': 'OPPO R9s', 'device_id': '', 'hongtu': 0, 'sdkVersion': '', 'screen_scale': 0, 'local_ip': '__ADS_LP__', 'replace_flag': 1, 'device_id_type': 1, 'req_source': 'kuxin', 'headers': '', 'origin_imei': u'865873038260422', 'user_agent': '', 'request_id': '1592103420651_34020908', 'origin_mac': '98:6F:60:69:3A:9F', 'os_type': '', 'ua': u'Mozilla/5.0 (Linux; Android 9; Redmi 6 Pro Build/PKQ1.180917.001; wv) AppleWebKit/537.36 (KHTML like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.3', 'network_type': 9, 'placements': '', 'screen_height': 1920}"
  20. dspStr = strings.ReplaceAll(dspStr, ": u'", ": '")
  21. dspStr = strings.ReplaceAll(dspStr, "'", "\"")
  22. dspStr = strings.ReplaceAll(dspStr, "\\", "")
  23. dsp.Init()
  24. err := json.Unmarshal([]byte(dspStr), &dsp)
  25. if err != nil {
  26. fmt.Printf("unmarshal dsp failed: %s", err)
  27. return err
  28. }
  29. return nil
  30. }
  31. func TestGetAdsReqUrl(t *testing.T) {
  32. err := SetupTest()
  33. assert.Nil(t, err)
  34. reqUrl := getAdsReqUrl(&dsp)
  35. assert.Equal(t, "https://m.video.xiaomi.com/api/a3/otv_emc?_emcp=pre_play&_devid=72710e3df592f07f6dbcc04b747f3653&ref=yilin&_sn=05817a33d4210ad2c67f4b869b5eedde&__ip__=223.91.87.241&_phonetype=0", reqUrl)
  36. }
  37. func TestGetReportUrl(t *testing.T) {
  38. err := SetupTest()
  39. assert.Nil(t, err)
  40. report := getReportUrl("VIEW", &dsp)
  41. assert.Equal(t, "http://api-ads.tiantianqutao.com/ads_feedback?action=VIEW&advertiser=video&req_source=kuxin&brand=OPPO&city_code=1156411300&request_id=1592103420651_34020908&spefial_flag=0", report)
  42. }
  43. //before dsp:
  44. //after dsp: {'phone_type': '', 'advertiser': '', 'ip': '111.22.209.32', 'ad_type': 1, 'carrier_id': 0, 'imei': u'f25a9e70e339a6f64c412a569f074dbd', 'dsp_city_code': 1156431200, 'num': 1, 'os_version': '6.0', 'ua_client': 'Mozilla/5.0 (Linux; Android 6.0; DMZ V3 Build/MRA58K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/44.0.2403.119 Mobile Safari/537.36', 'real_md5_imei': u'f25a9e70e339a6f64c412a569f074dbd', 'lng': 0.0, 'android_id': '90a9674d80609ce9', 'category': '', 'city': '\xe6\x80\x80\xe5\x8c\x96\xe5\xb8\x82', 'source_flag': 0, 'ver': '', 'source': '', 'is_360_circle': 1, 'adspace_id': '', 'send_phone_type': 0, 'platform': 1, 'real_mi_flag': 0, 'screen_density': 3, 'channel': '', 'province': '\xe6\xb9\x96\xe5\x8d\x97\xe7\x9c\x81', 'real_req_source': 'kuxin', 'sup_click_flag': 1, 'screen_width': 1080, 'sup_show_flag': 1, 'brand': 'DMZ V3', 'screen_size': '1776x1080', 'mac': '00FCCDF87EAC', 'idfa': '', 'lat': 0.0, 'user_id': 0, 'osVersion': '', 'model': 'DMZ V3', 'device_id': '', 'hongtu': 0, 'sdkVersion': '', 'screen_scale': 0, 'local_ip': '__ADS_LP__', 'replace_flag': 1, 'device_id_type': 1, 'req_source': 'kuxin', 'headers': '', 'origin_imei': u'04E676CFCCAB', 'user_agent': '', 'request_id': '1592019855466_92027662', 'origin_mac': '00:FC:CD:F8:7E:AC', 'os_type': '', 'ua': u'Mozilla/5.0 (Linux; Android 5.1.1; mi 3 Build/LMY47I; wv) AppleWebKit/537.36 (KHTML like Gecko) Version/4.0 Chrome/52.0.2743.100 Mobile Safari/537.3', 'network_type': 9, 'placements': '', 'screen_height': 1920}
  45. func TestGetAdsInfos(t *testing.T) {
  46. err := SetupTest()
  47. assert.Nil(t, err)
  48. httpmock.Activate()
  49. defer httpmock.DeactivateAndReset()
  50. httpmock.RegisterResponder("GET", "https://m.video.xiaomi.com/api/a3/otv_emc",
  51. func(req *http.Request) (*http.Response, error) {
  52. body := "{\"data\":[{\"tag_id\":\"1.1.10.5\",\"emc_type\":\"pre_play\",\"display_type\":{\"name\":\"video\",\"delay\":0,\"row_count\":0},\"target\":\"mv://Linker?link_url=https%3A%2F%2Fccc-x.jd.com%2Fdsp%2Ftp%3Flog%3DQjg4m-UrTnWAWYp-Oy6S0clR4nGtNEYPoVJ1ZIACX2n459ZriJL1R8yurIpDOuAh5LIH7CWI2v2o1mO_d4cdXg%26v%3D708%26to%3Dhttps%253A%252F%252Fpro.m.jd.com%252Fwq%252Factive%252F413U2tisErrBY8RpbodBfWLSsCR1%252Findex.html%26mobiletype%3D__MOBILETYPE__%26adt%3D1%26didmd5%3D72710e3df592f07f6dbcc04b747f3653%26idfamd5%3D__IDFAMD5__%26idfa%3D__IDFA__\",\"skip_time\":0,\"target_addition\":[\"mv://LogHttp?event=VIEW\\u0026url=https%3A%2F%2Fxiaomi.m.cn.miaozhen.com%2Fx%2Fk%3D2173617%26p%3D7agXt%26dx%3D1%26rt%3D2%26pro%3Ds%26ns%3D117.59.91.57%26ni%3Dxiaomi_10215333_A%26v%3D__LOC__%26xa%3D__ADPLATFORM__%26tr%3D__REQUESTID__%26vg%3D__AUTOPLAY__%26nh%3D__AUTOREFRESH__%26mo%3D0%26m0%3D__OPENUDID__%26m0a%3D__DUID__%26m1%3D__ANDROIDID1__%26m1a%3D__ANDROIDID__%26m2%3D72710e3df592f07f6dbcc04b747f3653%26m4%3D__AAID__%26m5%3D__IDFA__%26m6%3D__MAC1__%26m6a%3D__MAC__%26m11%3D__OAID__%26mn%3D__ANAME__%26o%3D\",\"mv://LogHttp?event=VIEW\\u0026url=http%3A%2F%2Fv2.reachmax.cn%2Fcount%2Frun.php%3Fa%3D72710E3DF592F07F6DBCC04B747F3653%26ver%3D0%26cpid%3D214877%26pub%3D15%26bc%3DaP13H9eLJI%26l%3D2787172%26cid%3D22055730%26plat%3D2%26s%3D1%26meid%3Dc089abc058cb00cd%26rt%3D1592103420%26s_l%3D2787727%26t%3Ds\",\"mv://LogHttp?event=VIEW\\u0026url=http%3A%2F%2Fm.track.ad.xiaomi.com%2Ftask%2Fimp%2F47e83263d4%2Fe1bef0f1aa%2C0a__MAC__%2C0b72710e3df592f07f6dbcc04b747f3653%2C0c__OAID__%2C0d10215333%2C0e__ANDROIDVERSION__%2C0f__PLATFORM__%2C0k1.1.10.5%2C0h\",\"mv://LogHttp?event=CLICK\\u0026url=https%3A%2F%2Fxiaomi.m.cn.miaozhen.com%2Fr%2Fk%3D2173617%26p%3D7agXt%26dx%3D1%26rt%3D2%26pro%3Ds%26ns%3D117.59.91.57%26ni%3Dxiaomi_10215333%26v%3D__LOC__%26xa%3D__ADPLATFORM__%26tr%3D__REQUESTID__%26mo%3D0%26m0%3D__OPENUDID__%26m0a%3D__DUID__%26m1%3D__ANDROIDID1__%26m1a%3D__ANDROIDID__%26m2%3D72710e3df592f07f6dbcc04b747f3653%26m4%3D__AAID__%26m5%3D__IDFA__%26m6%3D__MAC1__%26m6a%3D__MAC__%26m11%3D__OAID__%26mn%3D__ANAME__%26o%3D\",\"mv://LogHttp?event=CLICK\\u0026url=http%3A%2F%2Fv2.reachmax.cn%2Fclick%2Frun.php%3Fa%3D72710E3DF592F07F6DBCC04B747F3653%26ver%3D0%26cpid%3D214877%26pub%3D15%26bc%3DaP13H9eLJI%26l%3D2787172%26cid%3D22055730%26plat%3D2%26s%3D1%26meid%3Dc089abc058cb00cd%26rt%3D1592103420%26s_l%3D2787727\",\"mv://LogHttp?event=VIEW\\u0026url=http%3A%2F%2Fapi.ad.xiaomi.com%2Fiqiyi%2FuploadLogAdSDK%3Fvalue%3DeyJCIjpbeyJCIjp7Il9hY3Rpb25fIjoiVklFVyIsIl9jYXRlZ29yeV8iOiJhZCIsImUiOiJWSUVXIiwiZXgiOiJobWJfakZiZ2tLZU9fLVJSQWxVZ3BEU0F5VXdVNnc4QjJ2WG1vSkZSOF9yYmlOdndZOTJZb1FibWFSaDJJQ2FqcWp3WklXZjVBbXVpUDhmbm5VcEh1MTI2eC11ZmxnOUtmM1pvSXQ4Ni1GUmZMSFFsV2JUMjZFRjdya2dmQnFHLXpHUTBRUmpJNllvU2diVlJ6cWNaNkJjT3VwVG5kQUJzYTVZTVI0YkJMNEVJOFl3X0U1cTdnRWEyc3B1LXlGY1R0SVBLeERZcTNuQ3RkX1k1ZWFHNEpxU3JYTjBVb1hyVE5sYlBjUW1MLXU4WTVrcnN6bVFnNmhIRTZfMXo2RDQ4ejM3dzhvUlVQcWhxZFVacHVXNjI0MldycEVwVTFUWVFKNlBVTmZfRjFJUER5cGdReGFLYzBuZ1phLUpDQ3RkN2dhSmprRGVsOGxYVEpTOUtMQ0Q4Ti13MXF1YnUyX29Tb3Z5cEZRVFgwdVdUQ3E5R05USVgzOEJ6OXFpdzBFNmV0V200SlhFOGhwWVZIOHdHZk5ReWVIT3pQaG5jaC1UdGRXQlJDM0pTcGZPUG8yeVdRRGNfeVVzTWtXMmpUWk1LaXdnTlNBdEl3WVlENG91eUZtOTR6eklsU051TWVjS1ZyNkFzdWt6amU2RkpHRzU2RW9jbHJJSFFrZTdTQU1POEtFSWQxZ2Z4S3M5eHdGNlZKRWpUWG41dzdMYUVydDRXV3NKNmhZd3lhTU1kQVdaYXJLWmJOQjBJVFJobXFqTDJxMTFWb3NvUl9LanZrbS13eUNHWVFaS2M4YUsxT0tNOHczMWd5U3BmLUZHSFVmZzMxYnNaTmloemlTYXlNY0Fyc0lDR3h4VmlGZnJsMzZuUS02eDJlVW9fMjR0OFJiVnNvUFBFYTV1MUdLcENBZkpyWlFxdWYwbzV1X01CT0VreGQ5ZGRJT25KQnlpVV9sVjZiVV83SExDbExXaGE3QkJTWFFMLVB1XzluYkxlZnp0X2g4S1pzOG1yTWI0MER0b2hVV3BUdEpZa3lZZGI1dkJZVXJvaXBOcEZVaW1WNlJxWGM4ZGdYcTBwUUtsVUNoYXVPQ1JBRDduVmZ4aUlTaEU3WlBBOUNPaVJfQUE4LUtmU3hKRzBhX3g4ZDJZLVRhU1JlckF1VUpWbm9BUlNGM0ZnX0xrRGNJbkhpZHIzY1RYemRZR1EySEZLVk1kRVZ1dVkxVkE4RUJJaldrLXZud0N5UUJUNFgxT2E0dGhxal9xMVZ6UGRFTXYwdmJFd3UzeHhfWmRQSkU1Tkd2MllORjJkLVJrU1lJemlUdGRRQkExakVsbFI1UWN6bFlMcmxqaFpZU083bHVKeG5SM2J6QzN2SDZZaU5zQUxOZEhWUFd2NWJOZi02TlVidFJEMTREeTVwLWh6YzhnNVZZMUE1aXA2TFpjNURCSUJXZG9HeHV1SDBJZkRWSUtoSm9HVWFibUVrNGEwWTdsa0llazI3OHVud0VjbDU1MUtSN3RkdXNmcm41WVBTbjkyYUNMZk92aFVYeXgwTnY5MUZuaHRaaWllNWNQTGk0OXVVVjRRZGUzNXZQX2I3U0p1Mk42aEI3RG5uVXBIdTEyNngtdWZsZzlLZjNab0l0ODYtRlJmTEhTc3VIMXlfbHMzb3ciLCJ0IjoiMTU5MjEwMzQyMCIsInYiOiIifSwiSCI6eyJldmVudFRpbWUiOiIxNTkyMTAzNDIwIiwia2V5IjoidmlkZW9fYWRsb2ciLCJwayI6ImNvbS5taXVpLnZpZGVvIiwicmV0cnlDbnQiOjAsInNpZCI6IiIsInNuIjoiIn19XSwiSCI6eyJhYWlkIjoiIiwiYW5kcm9pZCI6IiIsImJuIjoiIiwiY3YiOiIiLCJkZXZpY2UiOiIiLCJpbWVpIjoiNzI3MTBlM2RmNTkyZjA3ZjZkYmNjMDRiNzQ3ZjM2NTMiLCJsYW5nIjoiIiwibWFjIjoiIiwibWkiOiIiLCJtaXVpIjoiIiwibW9kZWwiOiIiLCJuIjoiIiwicHJvZHVjdCI6IiIsInJlZ2lvbiI6IiIsInNlbmRlciI6IiIsInN0IjoiMTU5MjEwMzQyMCIsInVzZXJpZCI6MH19%26ts%3D1592103420%26nonce%3Df509aad4c8daca25029b02edd391f8ba%26sign%3Db6d2490148d9185bb05c18f7d4aa4252\",\"mv://LogHttp?event=CLICK\\u0026url=http%3A%2F%2Fapi.ad.xiaomi.com%2Fiqiyi%2FuploadLogAdSDK%3Fvalue%3DeyJCIjpbeyJCIjp7Il9hY3Rpb25fIjoiQ0xJQ0siLCJfY2F0ZWdvcnlfIjoiYWQiLCJlIjoiQ0xJQ0siLCJleCI6ImhtYl9qRmJna0tlT18tUlJBbFVncERTQXlVd1U2dzhCMnZYbW9KRlI4X3JiaU52d1k5MllvUWJtYVJoMklDYWpxandaSVdmNUFtdWlQOGZublVwSHUxMjZ4LXVmbGc5S2YzWm9JdDg2LUZSZkxIUWxXYlQyNkVGN3JrZ2ZCcUctekdRMFFSakk2WW9TZ2JWUnpxY1o2QmNPdXBUbmRBQnNhNVlNUjRiQkw0RUk4WXdfRTVxN2dFYTJzcHUteUZjVHRJUEt4RFlxM25DdGRfWTVlYUc0SnFTclhOMFVvWHJUTmxiUGNRbUwtdThZNWtyc3ptUWc2aEhFNl8xejZENDh6Mzd3OG9SVVBxaHFkVVpwdVc2MjQyV3JwRXBVMVRZUUo2UFVOZl9GMUlQRHlwZ1F4YUtjMG5nWmEtSkNDdGQ3Z2FKamtEZWw4bFhUSlM5S0xDRDhOLXcxcXVidTJfb1NvdnlwRlFUWDB1V1RDcTlHTlRJWDM4Qno5cWl3MEU2ZXRXbTRKWEU4aHBZVkg4d0dmTlF5ZUhPelBobmNoLVR0ZFdCUkMzSlNwZk9QbzJ5V1FEY195VXNNa1cyalRaTUtpd2dOU0F0SXdZWUQ0b3V5Rm05NHp6SWxTTnVNZWNLVnI2QXN1a3pqZTZGSkdHNTZFb2NscklIUWtlN1NBTU84S0VJZDFnZnhLczl4d0Y2VkpFalRYbjV3N0xhRXJ0NFdXc0o2aFl3eWFNTWRBV1phcktaYk5CMElUUmhtcWpMMnExMVZvc29SX0tqdmttLXd5Q0dZUVpLYzhhSzFPS004dzMxZ3lTcGYtRkdIVWZnMzFic1pOaWh6aVNheU1jQXJzSUNHeHhWaUZmcmwzNm5RLTZ4MmVVb18yNHQ4UmJWc29QUEVhNXUxR0twQ0FmSnJaUXF1ZjBvNXVfTUJPRWt4ZDlkZElPbkpCeWlVX2xWNmJVXzdITENsTFdoYTdCQlNYUUwtUHVfOW5iTGVmenRfaDhLWnM4bXJNYjQwRHRvaFVXcFR0SllreVlkYjV2QllVcm9pcE5wRlVpbVY2UnFYYzhkZ1hxMHBRS2xVQ2hhdU9DUkFEN25WZnhpSVNoRTdaUEE5Q09pUl9BQTgtS2ZTeEpHMGFfeDhkMlktVGFTUmVyQXVVSlZub0FSU0YzRmdfTGtEY0luSGlkcjNjVFh6ZFlHUTJIRktWTWRFVnV1WTFWQThFQklqV2stdm53Q3lRQlQ0WDFPYTR0aHFqX3ExVnpQZEVNdjB2YkV3dTN4eF9aZFBKRTVOR3YyWU5GMmQtUmtTWUl6aVR0ZFFCQTFqRWxsUjVRY3psWUxybGpoWllTTzdsdUp4blIzYnpDM3ZINllpTnNBTE5kSFZQV3Y1Yk5mLTZOVWJ0UkQxNER5NXAtaHpjOGc1VlkxQTVpcDZMWmM1REJJQldkb0d4dXVIMElmRFZJS2hKb0dVYWJtRWs0YTBZN2xrSWVrMjc4dW53RWNsNTUxS1I3dGR1c2ZybjVZUFNuOTJhQ0xmT3ZoVVh5eDBOdjkxRm5odFppaWU1Y1BMaTQ5dVVWNFFkZTM1dlBfYjdTSnUyTjZoQjdEbm5VcEh1MTI2eC11ZmxnOUtmM1pvSXQ4Ni1GUmZMSFNzdUgxeV9sczNvdyIsInQiOiIxNTkyMTAzNDIwIiwidiI6IiJ9LCJIIjp7ImV2ZW50VGltZSI6IjE1OTIxMDM0MjAiLCJrZXkiOiJ2aWRlb19hZGxvZyIsInBrIjoiY29tLm1pdWkudmlkZW8iLCJyZXRyeUNudCI6MCwic2lkIjoiIiwic24iOiIifX1dLCJIIjp7ImFhaWQiOiIiLCJhbmRyb2lkIjoiIiwiYm4iOiIiLCJjdiI6IiIsImRldmljZSI6IiIsImltZWkiOiI3MjcxMGUzZGY1OTJmMDdmNmRiY2MwNGI3NDdmMzY1MyIsImxhbmciOiIiLCJtYWMiOiIiLCJtaSI6IiIsIm1pdWkiOiIiLCJtb2RlbCI6IiIsIm4iOiIiLCJwcm9kdWN0IjoiIiwicmVnaW9uIjoiIiwic2VuZGVyIjoiIiwic3QiOiIxNTkyMTAzNDIwIiwidXNlcmlkIjowfX0%3D%26ts%3D1592103420%26nonce%3D148fd97503f9f28afc8a151f148632ee%26sign%3D38f3ed282a4fd0a60968581bdfaee72c\",\"mv://LogHttp?event=CLOSE\\u0026url=http%3A%2F%2Fapi.ad.xiaomi.com%2Fiqiyi%2FuploadLogAdSDK%3Fvalue%3DeyJCIjpbeyJCIjp7Il9hY3Rpb25fIjoiQ0xPU0UiLCJfY2F0ZWdvcnlfIjoiYWQiLCJlIjoiQ0xPU0UiLCJleCI6ImhtYl9qRmJna0tlT18tUlJBbFVncERTQXlVd1U2dzhCMnZYbW9KRlI4X3JiaU52d1k5MllvUWJtYVJoMklDYWpxandaSVdmNUFtdWlQOGZublVwSHUxMjZ4LXVmbGc5S2YzWm9JdDg2LUZSZkxIUWxXYlQyNkVGN3JrZ2ZCcUctekdRMFFSakk2WW9TZ2JWUnpxY1o2QmNPdXBUbmRBQnNhNVlNUjRiQkw0RUk4WXdfRTVxN2dFYTJzcHUteUZjVHRJUEt4RFlxM25DdGRfWTVlYUc0SnFTclhOMFVvWHJUTmxiUGNRbUwtdThZNWtyc3ptUWc2aEhFNl8xejZENDh6Mzd3OG9SVVBxaHFkVVpwdVc2MjQyV3JwRXBVMVRZUUo2UFVOZl9GMUlQRHlwZ1F4YUtjMG5nWmEtSkNDdGQ3Z2FKamtEZWw4bFhUSlM5S0xDRDhOLXcxcXVidTJfb1NvdnlwRlFUWDB1V1RDcTlHTlRJWDM4Qno5cWl3MEU2ZXRXbTRKWEU4aHBZVkg4d0dmTlF5ZUhPelBobmNoLVR0ZFdCUkMzSlNwZk9QbzJ5V1FEY195VXNNa1cyalRaTUtpd2dOU0F0SXdZWUQ0b3V5Rm05NHp6SWxTTnVNZWNLVnI2QXN1a3pqZTZGSkdHNTZFb2NscklIUWtlN1NBTU84S0VJZDFnZnhLczl4d0Y2VkpFalRYbjV3N0xhRXJ0NFdXc0o2aFl3eWFNTWRBV1phcktaYk5CMElUUmhtcWpMMnExMVZvc29SX0tqdmttLXd5Q0dZUVpLYzhhSzFPS004dzMxZ3lTcGYtRkdIVWZnMzFic1pOaWh6aVNheU1jQXJzSUNHeHhWaUZmcmwzNm5RLTZ4MmVVb18yNHQ4UmJWc29QUEVhNXUxR0twQ0FmSnJaUXF1ZjBvNXVfTUJPRWt4ZDlkZElPbkpCeWlVX2xWNmJVXzdITENsTFdoYTdCQlNYUUwtUHVfOW5iTGVmenRfaDhLWnM4bXJNYjQwRHRvaFVXcFR0SllreVlkYjV2QllVcm9pcE5wRlVpbVY2UnFYYzhkZ1hxMHBRS2xVQ2hhdU9DUkFEN25WZnhpSVNoRTdaUEE5Q09pUl9BQTgtS2ZTeEpHMGFfeDhkMlktVGFTUmVyQXVVSlZub0FSU0YzRmdfTGtEY0luSGlkcjNjVFh6ZFlHUTJIRktWTWRFVnV1WTFWQThFQklqV2stdm53Q3lRQlQ0WDFPYTR0aHFqX3ExVnpQZEVNdjB2YkV3dTN4eF9aZFBKRTVOR3YyWU5GMmQtUmtTWUl6aVR0ZFFCQTFqRWxsUjVRY3psWUxybGpoWllTTzdsdUp4blIzYnpDM3ZINllpTnNBTE5kSFZQV3Y1Yk5mLTZOVWJ0UkQxNER5NXAtaHpjOGc1VlkxQTVpcDZMWmM1REJJQldkb0d4dXVIMElmRFZJS2hKb0dVYWJtRWs0YTBZN2xrSWVrMjc4dW53RWNsNTUxS1I3dGR1c2ZybjVZUFNuOTJhQ0xmT3ZoVVh5eDBOdjkxRm5odFppaWU1Y1BMaTQ5dVVWNFFkZTM1dlBfYjdTSnUyTjZoQjdEbm5VcEh1MTI2eC11ZmxnOUtmM1pvSXQ4Ni1GUmZMSFNzdUgxeV9sczNvdyIsInQiOiIxNTkyMTAzNDIwIiwidiI6IiJ9LCJIIjp7ImV2ZW50VGltZSI6IjE1OTIxMDM0MjAiLCJrZXkiOiJ2aWRlb19hZGxvZyIsInBrIjoiY29tLm1pdWkudmlkZW8iLCJyZXRyeUNudCI6MCwic2lkIjoiIiwic24iOiIifX1dLCJIIjp7ImFhaWQiOiIiLCJhbmRyb2lkIjoiIiwiYm4iOiIiLCJjdiI6IiIsImRldmljZSI6IiIsImltZWkiOiI3MjcxMGUzZGY1OTJmMDdmNmRiY2MwNGI3NDdmMzY1MyIsImxhbmciOiIiLCJtYWMiOiIiLCJtaSI6IiIsIm1pdWkiOiIiLCJtb2RlbCI6IiIsIm4iOiIiLCJwcm9kdWN0IjoiIiwicmVnaW9uIjoiIiwic2VuZGVyIjoiIiwic3QiOiIxNTkyMTAzNDIwIiwidXNlcmlkIjowfX0%3D%26ts%3D1592103420%26nonce%3D40e02b9b6e803f65475888bce3c88ee1%26sign%3D8d6ec8ab1093ad0e059e15ef14eb512e\",\"mv://LogHttp?event=VIDEO_FINISH\\u0026url=http%3A%2F%2Fapi.ad.xiaomi.com%2Fiqiyi%2FuploadLogAdSDK%3Fvalue%3DeyJCIjpbeyJCIjp7Il9hY3Rpb25fIjoiVklERU9fRklOSVNIIiwiX2NhdGVnb3J5XyI6ImFkIiwiZSI6IlZJREVPX0ZJTklTSCIsImV4IjoiaG1iX2pGYmdrS2VPXy1SUkFsVWdwRFNBeVV3VTZ3OEIydlhtb0pGUjhfcmJpTnZ3WTkyWW9RYm1hUmgySUNhanFqd1pJV2Y1QW11aVA4Zm5uVXBIdTEyNngtdWZsZzlLZjNab0l0ODYtRlJmTEhRbFdiVDI2RUY3cmtnZkJxRy16R1EwUVJqSTZZb1NnYlZSenFjWjZCY091cFRuZEFCc2E1WU1SNGJCTDRFSThZd19FNXE3Z0VhMnNwdS15RmNUdElQS3hEWXEzbkN0ZF9ZNWVhRzRKcVNyWE4wVW9YclRObGJQY1FtTC11OFk1a3Jzem1RZzZoSEU2XzF6NkQ0OHozN3c4b1JVUHFocWRVWnB1VzYyNDJXcnBFcFUxVFlRSjZQVU5mX0YxSVBEeXBnUXhhS2MwbmdaYS1KQ0N0ZDdnYUpqa0RlbDhsWFRKUzlLTENEOE4tdzFxdWJ1Ml9vU292eXBGUVRYMHVXVENxOUdOVElYMzhCejlxaXcwRTZldFdtNEpYRThocFlWSDh3R2ZOUXllSE96UGhuY2gtVHRkV0JSQzNKU3BmT1BvMnlXUURjX3lVc01rVzJqVFpNS2l3Z05TQXRJd1lZRDRvdXlGbTk0enpJbFNOdU1lY0tWcjZBc3VremplNkZKR0c1NkVvY2xySUhRa2U3U0FNTzhLRUlkMWdmeEtzOXh3RjZWSkVqVFhuNXc3TGFFcnQ0V1dzSjZoWXd5YU1NZEFXWmFyS1piTkIwSVRSaG1xakwycTExVm9zb1JfS2p2a20td3lDR1lRWktjOGFLMU9LTTh3MzFneVNwZi1GR0hVZmczMWJzWk5paHppU2F5TWNBcnNJQ0d4eFZpRmZybDM2blEtNngyZVVvXzI0dDhSYlZzb1BQRWE1dTFHS3BDQWZKclpRcXVmMG81dV9NQk9Fa3hkOWRkSU9uSkJ5aVVfbFY2YlVfN0hMQ2xMV2hhN0JCU1hRTC1QdV85bmJMZWZ6dF9oOEtaczhtck1iNDBEdG9oVVdwVHRKWWt5WWRiNXZCWVVyb2lwTnBGVWltVjZScVhjOGRnWHEwcFFLbFVDaGF1T0NSQUQ3blZmeGlJU2hFN1pQQTlDT2lSX0FBOC1LZlN4SkcwYV94OGQyWS1UYVNSZXJBdVVKVm5vQVJTRjNGZ19Ma0RjSW5IaWRyM2NUWHpkWUdRMkhGS1ZNZEVWdXVZMVZBOEVCSWpXay12bndDeVFCVDRYMU9hNHRocWpfcTFWelBkRU12MHZiRXd1M3h4X1pkUEpFNU5HdjJZTkYyZC1Sa1NZSXppVHRkUUJBMWpFbGxSNVFjemxZTHJsamhaWVNPN2x1SnhuUjNiekMzdkg2WWlOc0FMTmRIVlBXdjViTmYtNk5VYnRSRDE0RHk1cC1oemM4ZzVWWTFBNWlwNkxaYzVEQklCV2RvR3h1dUgwSWZEVklLaEpvR1VhYm1FazRhMFk3bGtJZWsyNzh1bndFY2w1NTFLUjd0ZHVzZnJuNVlQU245MmFDTGZPdmhVWHl4ME52OTFGbmh0WmlpZTVjUExpNDl1VVY0UWRlMzV2UF9iN1NKdTJONmhCN0RublVwSHUxMjZ4LXVmbGc5S2YzWm9JdDg2LUZSZkxIU3N1SDF5X2xzM293IiwidCI6IjE1OTIxMDM0MjAiLCJ2IjoiIn0sIkgiOnsiZXZlbnRUaW1lIjoiMTU5MjEwMzQyMCIsImtleSI6InZpZGVvX2FkbG9nIiwicGsiOiJjb20ubWl1aS52aWRlbyIsInJldHJ5Q250IjowLCJzaWQiOiIiLCJzbiI6IiJ9fV0sIkgiOnsiYWFpZCI6IiIsImFuZHJvaWQiOiIiLCJibiI6IiIsImN2IjoiIiwiZGV2aWNlIjoiIiwiaW1laSI6IjcyNzEwZTNkZjU5MmYwN2Y2ZGJjYzA0Yjc0N2YzNjUzIiwibGFuZyI6IiIsIm1hYyI6IiIsIm1pIjoiIiwibWl1aSI6IiIsIm1vZGVsIjoiIiwibiI6IiIsInByb2R1Y3QiOiIiLCJyZWdpb24iOiIiLCJzZW5kZXIiOiIiLCJzdCI6IjE1OTIxMDM0MjAiLCJ1c2VyaWQiOjB9fQ%3D%3D%26ts%3D1592103420%26nonce%3Da91a12d7ccb4e058680d38aeddd480b0%26sign%3D207c90e809d01cbbfd1646ce8fffd93c\"],\"target_addition1\":null,\"title\":\"\",\"duration\":15,\"image_url\":\"\",\"video_url\":\"https://video.market.xiaomi.com/download/AdCenter/0a22e4176db3294427bcf8d6227d27be3f8420c88/AdCenter0a22e4176db3294427bcf8d6227d27be3f8420c88.mp4\",\"id\":\"10215333\",\"detail_url\":\"\",\"settings\":{\"click_type\":\"0\",\"show_close_at\":-1,\"hide_close_at\":-1,\"log_time\":\"\",\"click_ratio\":0,\"video_finish_ratio\":0,\"video_timer_ratio\":0},\"proportion\":\"1040:467\",\"load_ext\":\"\",\"n_urls\":null,\"buttonName\":\"查看详情\",\"is_download\":\"0\"}],\"eid\":\"ab58:0,ab54:03,ab41:1,ab49:2,ab52:02,ab17:1,ab29:30,ab_feed2:4,ab_feed1:0,ab31:0||\",\"msg\":\"OK\",\"result\":1}"
  53. return httpmock.NewStringResponse(200, body), nil
  54. },
  55. )
  56. advertiser := "xiaomi"
  57. err = ads_redis.Setup()
  58. conn := redigomock.NewConn()
  59. ads_redis.RedisConn = &redis.Pool{
  60. // Return the same connection mock for each Get() call.
  61. Dial: func() (redis.Conn, error) { return conn, nil },
  62. MaxIdle: 10,
  63. }
  64. conn.Command("GET", "acfv2_{kuxin}_{ads_click}").Expect("{\"channel_flag\": 1, \"weigth\": 100}")
  65. conn.Command("GET", "acfv2_{kuxin02}_{ads_click}").Expect("{\"channel_flag\": 1, \"weigth\": 100}")
  66. conn.Command("GET", "adsv2_xiaomi_0").Expect(int64(784))
  67. conn.Command("GET", "adsv3_xiaomi_VIEW_0").Expect(int64(0))
  68. conn.Command("GET", "time_all_count_8745_2").Expect(int64(1587238))
  69. conn.Command("GET", "adsv3_xiaomi_VIDEO_TIMER_0").Expect(int64(215))
  70. conn.Command("GET", "adsv3_xiaomi_CLICK_0").Expect(int64(24))
  71. conn.Command("GET", "adsv3_xiaomi_VIDEO_FINISH_0").Expect(int64(760))
  72. conn.Command("GET", "dim2_72710e3df592f07f6dbcc04b747f3653_'223.91.87.241'").Expect(int64(time.Now().Unix()))
  73. if err != nil {
  74. fmt.Printf("setup redis failed: %s\n", err)
  75. return
  76. }
  77. adslib.GetConf()
  78. fmt.Printf("dsp: %+v", dsp)
  79. addata, err := GetAdsInfos(&dsp, advertiser)
  80. fmt.Printf("%+v %s", addata, err)
  81. }