1
This commit is contained in:
@@ -117,14 +117,14 @@ func TestDoPrint(t *testing.T) {
|
||||
func TestName23(t *testing.T) {
|
||||
url := "https://www.jxc4.com/v2/store/sku/UpdateStoresSkus"
|
||||
|
||||
var storeList = []int64{100116, 100120, 100124, 100130, 100132, 100134, 100146, 100152, 100234, 100324, 100369, 100670, 100881, 100884, 100905, 100971, 101028, 101043, 101097, 101099, 101118, 102138, 102320, 102357, 102483, 102561, 102594, 102595, 102613, 102720, 102749, 102756, 102780, 102788, 102851, 102856, 102925, 102967, 102987, 102999, 103022, 103074, 103075, 103184, 103194, 103201, 666706, 666707, 666746, 666891, 666919, 666922, 666974, 666993, 666996, 667007, 667082, 667104, 667155, 667157, 667235, 667236, 667239, 667240, 667242, 667253, 667255, 667258, 667261, 667264, 667268, 667270, 667283, 667288, 667290, 667294, 667295, 667300, 667301, 667305, 667306, 667309, 667311, 667326, 667327, 667336, 667352, 667355, 667373, 667376, 667380, 667405, 667407, 667413, 667416, 667420, 667423, 667424, 667429, 667431, 667440, 667441, 667443, 667446, 667449, 667452, 667456, 667457, 667464, 667468, 667474, 667484, 667489, 667492, 667493, 667496, 667509, 667512, 667524}
|
||||
var storeList = []int64{100123, 100455, 666900, 102364, 102859, 669086, 102877, 102963, 669119, 667222, 668906, 667558, 102374, 103161, 102433, 667405, 102443, 102883, 103182, 668429, 668530, 100546, 668401, 667229, 668809, 666913, 102475, 666917, 100610, 669029, 102479, 669168, 100135, 667242, 668909, 100144, 100654, 667410, 102966, 103189, 668567, 102481, 668918, 100145, 667560, 102490, 103191, 667247, 102981, 667429, 100157, 668928, 103194, 666932, 102985, 668620, 100712, 667261, 666948, 667271, 668814, 100726, 667446, 103199, 102987, 667562, 669188, 102496, 100175, 102895, 667909, 667453, 100190, 669479, 669201, 666949, 667283, 668043, 102533, 102896, 100741, 668054, 103201, 669227, 100206, 667467, 668622, 100236, 102907, 668931, 103361, 669240, 102923, 102630, 103002, 669283, 667014, 668160, 668815, 100273, 668821, 101013, 667296, 102933, 668506, 103004, 667066, 103417, 101099, 669493, 668756, 667468, 668184, 100274, 103022, 667299, 667485, 103435, 668191, 668786, 102642, 101176, 667067, 100278, 667490, 103032, 667085, 666667, 669007, 667305, 100290, 102934, 101687, 668790, 102676, 103033, 666677, 667514, 666707, 101763, 667119, 668252, 103037, 101916, 102742, 101956, 667128, 668360, 667316, 103050, 666709, 100292, 102778, 669022, 103082, 100296, 100324, 667542, 102016, 102812, 102950, 667332, 102821, 666756, 668829, 102147, 667134, 102167, 668850, 103085, 100325, 667157, 666779, 668384, 102952, 103103, 102826, 668883, 100361, 667365, 669032, 102955, 669044, 102223, 667173, 100369, 666800, 102280, 102844, 667399, 103113, 100002, 666828, 669054, 102851, 102350, 669055, 666840, 100032, 102956, 100115, 667208, 668891, 100449, 668900, 667212, 103151, 668417, 100454, 102962}
|
||||
|
||||
for _, v := range storeList {
|
||||
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"storeIDs\"\r\n\r\n[" + utils.Int64ToStr(v) + "]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"payload\"\r\n\r\n[{\"nameID\":9125,\"unitPrice\":2000}]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"causeFlag\"\r\n\r\n16\r\n-----011000010111000001101001--\r\n\r\n")
|
||||
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"storeIDs\"\r\n\r\n[" + utils.Int64ToStr(v) + "]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"payload\"\r\n\r\n[{\"nameID\":8075899,\"unitPrice\":1600}]\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"causeFlag\"\r\n\r\n16\r\n-----011000010111000001101001--\r\n\r\n")
|
||||
|
||||
req, _ := http.NewRequest("PUT", url, payload)
|
||||
|
||||
req.Header.Add("token", "TOKEN.V2.2452A93EEB9111EC9B06525400E86DC0.20240621-164332.localpass.575AD74C2FAA11EFA239525400E86DC0.[18981810340]")
|
||||
req.Header.Add("token", "TOKEN.V2.2452A93EEB9111EC9B06525400E86DC0.20240913-144538.localpass.C9588B01719B11EF95B3525400E86DC0.[18981810340]")
|
||||
req.Header.Add("content-type", "multipart/form-data; boundary=---011000010111000001101001")
|
||||
|
||||
_, err := http.DefaultClient.Do(req)
|
||||
|
||||
@@ -5,7 +5,6 @@ import (
|
||||
"fmt"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
@@ -408,5 +407,32 @@ func TestCreateCouponAct(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestCcc(t *testing.T) {
|
||||
fmt.Println(len(strings.Split("", ",")))
|
||||
sLng := 104.037176
|
||||
sLat := 30.686648
|
||||
uLng := 103.997132
|
||||
uLat := 30.666474
|
||||
lng := utils.Str2Float64(fmt.Sprintf("%0.6f", (sLng-uLng)/float64(300)))
|
||||
lat := utils.Str2Float64(fmt.Sprintf("%0.6f", (sLat-uLat)/float64(300)))
|
||||
originalData := make([]string, 0, 0)
|
||||
originalData = append(originalData, fmt.Sprintf("%.6f,%.6f", sLng, sLat))
|
||||
var nLng float64
|
||||
var nLat float64
|
||||
for i := 1; i <= 300; i++ {
|
||||
if sLng > uLng {
|
||||
nLng = sLng - (lng * float64(i))
|
||||
} else {
|
||||
nLng = sLng + (lng * float64(i))
|
||||
}
|
||||
if sLat > uLat {
|
||||
nLat = sLat - (lat * float64(i))
|
||||
} else {
|
||||
nLat = sLat + (lat * float64(i))
|
||||
}
|
||||
fakeCourier := fmt.Sprintf("%.6f,%.6f", nLng, nLat)
|
||||
originalData = append(originalData, fakeCourier)
|
||||
}
|
||||
originalData = append(originalData, fmt.Sprintf("%.6f,%.6f", uLng, uLat))
|
||||
|
||||
fmt.Println(originalData[301])
|
||||
fmt.Println(originalData[302])
|
||||
}
|
||||
|
||||
@@ -45,56 +45,77 @@ func TestCommentAddReply(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestGetCommonList(t *testing.T) {
|
||||
var page = 1
|
||||
param := map[string]interface{}{
|
||||
"wmPoiId": -1,
|
||||
"appType": 3,
|
||||
"pageNum": 1,
|
||||
"pageNum": page,
|
||||
"rate": 0,
|
||||
"reply": -1,
|
||||
"context": -1,
|
||||
"startDate": "2024-07-30",
|
||||
"endDate": "2024-08-04",
|
||||
"startDate": "2024-09-07",
|
||||
"endDate": "2024-09-13",
|
||||
"timeType": 4,
|
||||
}
|
||||
cookie := `uuid_update=true; _lxsdk_cuid=18a8c469cebc8-0d5443d9234ef1-26021051-240000-18a8c469cebc8; uuid=19f97d5039dc40979c40.1701152326.1.0.0; device_uuid=!303ca77f-1f5c-4db9-8beb-2140b78696e2; pushToken=01YLhAxagh8b3tlBORRhDbRt9URjGhSdCG84G5-PA1w0*; WEBDFPID=29z4yy3y961959z509u92w75626y558381x7618yx56979584y00uw64-2016762763564-1701402763564QQKUMAGfd79fef3d01d5e9aadc18ccd4d0c95073707; iuuid=6150CECD00F8926053D5784EE8E108EC3F622CECA73B5042408DE46AB37C3D80; _lxsdk=6150CECD00F8926053D5784EE8E108EC3F622CECA73B5042408DE46AB37C3D80; _ga=GA1.2.2133425411.1707118186; isNewCome=1; userTicket=ABDdQinAblqsCpXDsEdtLNYrSpYSSlbRWYlhFyUm; u=893483812; n=tel1808018; lt=AgFCI__eFEzarguG6ly07rQWhiJFBEsWRgxUWRQPXLNOqeBN-U1C0hQ56pWpHL4sm50cGWeduIqVQwAAAAC4IQAAxbA-z1YAE9bBoB64Id-_ZJV3tTdf3aKBnn8v3h5o6AOWhEVtVcGjAr7ax5V84Mej; mt_c_token=AgFCI__eFEzarguG6ly07rQWhiJFBEsWRgxUWRQPXLNOqeBN-U1C0hQ56pWpHL4sm50cGWeduIqVQwAAAAC4IQAAxbA-z1YAE9bBoB64Id-_ZJV3tTdf3aKBnn8v3h5o6AOWhEVtVcGjAr7ax5V84Mej; epassport_token=rAkkpBP8rdoSPXLMTpCsXb_l9KiOTRmMcY-KJWTzi6CuT69LRfHjOplHElKObVDDpsfaXk7uBW0QTdc0DiuHtA; e_u_id_3299326472=a22cdb4f9c9a66958f72f3fe4d99aba6; wpush_server_url=wss://wpush.meituan.com; acctId=57396785; token=044jxrgPZJ-nbc_4HipZQabvwhUAuuAUNP9PmZNtjbSE*; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=true; bsid=VTjYsCinHaOl0xcRok7QVcZ57ATGo7pPLIqbaGdSI9nmXWopU7ZYZ4t8mARrM05mLjhgS7nHNi4V2RaKnK8ufg; grayPath=newRoot; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; igateApp=shangouepc; pharmacistAccount=0; timeout=2000; accessToken=VTjYsCinHaOl0xcRok7QVcZ57ATGo7pPLIqbaGdSI9nmXWopU7ZYZ4t8mARrM05mLjhgS7nHNi4V2RaKnK8ufg; cacheTimeMark=2024-08-07; signToken="KdI9fPkFKRoEnfWfUP0v+VrNpcZDvIHbwlmdRQ90Kv/Y1USBwwtEHiyRyBj/IYwX4iFRngTy97nEX6hKa4JXgGQTdRZDuvNnQ4WrC6lwAVFve73wrsx+DEPeESOZocCUjQHbEZK/Rs5P+8xo/LGHKA=="; logan_session_token=4g11sqt7505ruwmcz8i2; shopCategory=food; _lxsdk_s=19129ff4b09-07c-6d0-ab2%7C%7C592`
|
||||
result, err := api.GetComment4ShanGou(param, true, cookie)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
for _, mtwmComment := range result {
|
||||
// 商品的名称集合
|
||||
foodNameList := make(map[string]int, 0)
|
||||
// 好评商品
|
||||
for _, fn := range mtwmComment.PraiseFoodList {
|
||||
foodNameList[fn] = 1
|
||||
cookie := `uuid_update=true; _lxsdk_cuid=18a8c469cebc8-0d5443d9234ef1-26021051-240000-18a8c469cebc8; uuid=19f97d5039dc40979c40.1701152326.1.0.0; device_uuid=!303ca77f-1f5c-4db9-8beb-2140b78696e2; pushToken=01YLhAxagh8b3tlBORRhDbRt9URjGhSdCG84G5-PA1w0*; WEBDFPID=29z4yy3y961959z509u92w75626y558381x7618yx56979584y00uw64-2016762763564-1701402763564QQKUMAGfd79fef3d01d5e9aadc18ccd4d0c95073707; iuuid=6150CECD00F8926053D5784EE8E108EC3F622CECA73B5042408DE46AB37C3D80; _lxsdk=6150CECD00F8926053D5784EE8E108EC3F622CECA73B5042408DE46AB37C3D80; _ga=GA1.2.2133425411.1707118186; userTicket=ABDdQinAblqsCpXDsEdtLNYrSpYSSlbRWYlhFyUm; u=893483812; n=tel1808018; lt=AgFCI__eFEzarguG6ly07rQWhiJFBEsWRgxUWRQPXLNOqeBN-U1C0hQ56pWpHL4sm50cGWeduIqVQwAAAAC4IQAAxbA-z1YAE9bBoB64Id-_ZJV3tTdf3aKBnn8v3h5o6AOWhEVtVcGjAr7ax5V84Mej; mt_c_token=AgFCI__eFEzarguG6ly07rQWhiJFBEsWRgxUWRQPXLNOqeBN-U1C0hQ56pWpHL4sm50cGWeduIqVQwAAAAC4IQAAxbA-z1YAE9bBoB64Id-_ZJV3tTdf3aKBnn8v3h5o6AOWhEVtVcGjAr7ax5V84Mej; isNewCome=1; e_u_id_3299326472=cbee20e50a13edae555928828ac9a4e7; wpush_server_url=wss://wpush.meituan.com; acctId=62884810; token=0OURmdynYsCHmfmw_BzFZSpdMyN-NpEhy_lOf6ScMSrU*; brandId=-1; wmPoiId=-1; isOfflineSelfOpen=0; city_id=0; shopCategory=food; isChain=1; existBrandPoi=true; ignore_set_router_proxy=true; region_id=; region_version=0; newCategory=true; bsid=irU_eBSO6DWvVI9cwYaSs44aob3AdBSsGCnN2zFepz8UnDWL79GP_0eVcOP9Ll6AO3JEvwzF8hn346QXEBVTSw; grayPath=newRoot; signToken="htd1LkHCWu/j5C3Essvpr2DoTjMVQ9NP2EoUaTtqVckFzLzYngYSsLfR/lNoQdZpt4GzudRw9XVhTHnjVJZg9Jic4tdFKg5CauCYZNuoqop1j75praME5P4nx9jBSYBak8038XQGJ7goFnzmpDObYw=="; cityId=510100; provinceId=510000; city_location_id=0; location_id=0; _gw_ab_call_29945_47=TRUE; _gw_ab_29945_47=561; logan_session_token=9nuel9qirajn1ms9ax2h; gatherPoi=; cacheTimeMark=2024-09-14; set_info=%7B%22wmPoiId%22%3A-1%2C%22ignoreSetRouterProxy%22%3Atrue%7D; igateApp=shangouepc; timeout=2000; accessToken=irU_eBSO6DWvVI9cwYaSs44aob3AdBSsGCnN2zFepz8UnDWL79GP_0eVcOP9Ll6AO3JEvwzF8hn346QXEBVTSw; pharmacistAccount=0; _lxsdk_s=191ee2d02f8-967-08e-330%7C%7C256`
|
||||
|
||||
for {
|
||||
result, err := api.GetComment4ShanGou(param, true, cookie)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
// 差评商品
|
||||
for _, fn := range mtwmComment.CriticFoodList {
|
||||
foodNameList[fn] = 1
|
||||
}
|
||||
// 列表商品
|
||||
for _, fn := range mtwmComment.SpuCommentList {
|
||||
foodNameList[fn.SpuName] = 1
|
||||
}
|
||||
// 包含()中文括号的商品
|
||||
for _, fn := range mtwmComment.OrderStatus.Details {
|
||||
if len(fn.FoodName)-strings.LastIndex(fn.FoodName, ")") > 3 {
|
||||
foodNameList[strings.TrimSuffix(fn.FoodName, " ")] = 1
|
||||
} else {
|
||||
foodNameList[strings.TrimSuffix(fn.FoodName[0:strings.LastIndex(fn.FoodName, "(")], " ")] = 1
|
||||
for _, mtwmComment := range result {
|
||||
// 商品的名称集合
|
||||
foodNameList := make(map[string]int, 0)
|
||||
// 好评商品
|
||||
for _, fn := range mtwmComment.PraiseFoodList {
|
||||
foodNameList[fn] = 1
|
||||
}
|
||||
// 差评商品
|
||||
for _, fn := range mtwmComment.CriticFoodList {
|
||||
foodNameList[fn] = 1
|
||||
}
|
||||
// 列表商品
|
||||
for _, fn := range mtwmComment.SpuCommentList {
|
||||
foodNameList[fn.SpuName] = 1
|
||||
}
|
||||
// 包含()中文括号的商品
|
||||
for _, fn := range mtwmComment.OrderStatus.Details {
|
||||
if len(fn.FoodName)-strings.LastIndex(fn.FoodName, ")") > 3 {
|
||||
foodNameList[strings.TrimSuffix(fn.FoodName, " ")] = 1
|
||||
} else {
|
||||
foodNameList[strings.TrimSuffix(fn.FoodName[0:strings.LastIndex(fn.FoodName, "(")], " ")] = 1
|
||||
}
|
||||
}
|
||||
|
||||
foodName := make([]string, 0, len(foodNameList))
|
||||
for fnl, _ := range foodNameList {
|
||||
foodName = append(foodName, fnl)
|
||||
}
|
||||
|
||||
globals.SugarLogger.Debugf("vendorStoreId :%d , skuName: %s", mtwmComment.WmPoiId, strings.Join(foodName, ","))
|
||||
}
|
||||
|
||||
foodName := make([]string, 0, len(foodNameList))
|
||||
for fnl, _ := range foodNameList {
|
||||
foodName = append(foodName, fnl)
|
||||
if len(result) >= 10 {
|
||||
page += 1
|
||||
} else {
|
||||
break
|
||||
}
|
||||
|
||||
globals.SugarLogger.Debugf("vendorStoreId :%d , skuName: %s", mtwmComment.WmPoiId, strings.Join(foodName, ","))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//2024-09-14T10:54:11.724+0800 DEBUG mtwmapi/comment_test.go:94 vendorStoreId :17916252 , skuName: 【剥肉】红心柚子肉.250g,【抢鲜吃】泰国椰 子/椰肉 水果切盒-250g,【爆品】缤纷酸奶水果捞 200g
|
||||
//2024-09-14T10:54:11.725+0800 DEBUG mtwmapi/comment_test.go:94 vendorStoreId :21752676 , skuName: 【冰镇】8424西瓜半个约3斤(切块),红毛桃 1个
|
||||
//2024-09-14T10:54:11.725+0800 DEBUG mtwmapi/comment_test.go:94 vendorStoreId :17916252 , skuName: 【代餐轻食】混合水果捞.300g
|
||||
//2024-09-14T10:54:11.725+0800 DEBUG mtwmapi/comment_test.go:94 vendorStoreId :5943132 , skuName: 《力荐》超甜黄金百香果 《一盒4粒》表皮褶皱 正常现象介意勿拍160克左右,【整果】金枕榴莲1个装(约3.3-4斤)《保好》,4A麻竹山竹福 利【质量好.不好联系返差价】500g,《冰镇嘎嘎凉》{新北海不甜不要钱}甜王西瓜【3斤 左右】大小块不定按分量走
|
||||
//2024-09-14T10:54:11.725+0800 DEBUG mtwmapi/comment_test.go:94 vendorStoreId :24330787 , skuName: 超大份低脂水果捞(800g)约1005ml【免费加 伴侣】
|
||||
//2024-09-14T10:54:11.725+0800 DEBUG mtwmapi/comment_test.go:94 vendorStoreId :5943132 , skuName: 【新上市】红油桃质量一级好【嘎嘎甜】400克 左右
|
||||
//2024-09-14T10:54:11.725+0800 DEBUG mtwmapi/comment_test.go:94 vendorStoreId :2370192 , skuName: 草莓味酸奶水果捞485ml,【果切】赔本赚吆喝缤 纷水果随机切200ml盒,【果切】赔本赚吆喝缤纷水果随机切200ml盒 (200毫升),【果切】 番茄+乌梅400ml
|
||||
//2024-09-14T10:54:11.725+0800 DEBUG mtwmapi/comment_test.go:94 vendorStoreId :21490215 , skuName: 都乐(Dole) 欢乐果园 来一碗超甜凤梨切 200 克(g),【活动爆品】麒麟西瓜切盒约400g,精品海南小台切盒400g
|
||||
|
||||
func TestCommonList2(t *testing.T) {
|
||||
url := "https://shangoue.meituan.com/api/support/customer/comment/r/list"
|
||||
|
||||
|
||||
@@ -20,13 +20,13 @@ func init() {
|
||||
baseapi.Init(sugarLogger)
|
||||
|
||||
// 菜市
|
||||
//api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f", "", "")
|
||||
api = New("589", "a81eb3df418d83d6a1a4b7c572156d2f", "", "")
|
||||
|
||||
// 果园
|
||||
//api = New("4123", "df2c88338b85f830cebce2a9eab56628", "", "")
|
||||
|
||||
//商超
|
||||
api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_q3-GrKUcZmNq-l4JzH5EjQ") //token_n4TwqCntWWuvQwAawzxC0w
|
||||
//api = New("5873", "41c479790a76f86326f89e8048964739", "", "token_q3-GrKUcZmNq-l4JzH5EjQ") //token_n4TwqCntWWuvQwAawzxC0w
|
||||
//cookieStr := `
|
||||
// acctId=57396785; token=0bWbK5VbK50E2BmIhIH2zHB-am_y7mB37yXHm6RLZWx4*; wmPoiId=-1;
|
||||
//`
|
||||
|
||||
@@ -439,7 +439,7 @@ func (a *API) RetailDelete(trackInfo, poiCode, foodCode string) (err error) {
|
||||
_, err = a.AccessAPI2("retail/delete", false, map[string]interface{}{
|
||||
KeyAppPoiCode: poiCode,
|
||||
KeyAppFoodCode: foodCode,
|
||||
"is_delete_retail_cat": 2,
|
||||
"is_delete_retail_cat": 1,
|
||||
}, resultKeyData, trackInfo)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -239,7 +239,7 @@ func TestBatchSetPrice(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRetailDelete(t *testing.T) {
|
||||
poiCode := "17088914"
|
||||
poiCode := "24744708"
|
||||
|
||||
i := 0
|
||||
count := 0
|
||||
@@ -257,26 +257,12 @@ func TestRetailDelete(t *testing.T) {
|
||||
fmt.Println(err)
|
||||
}
|
||||
}
|
||||
//stockList := make([]*BareStoreFoodInfo, 0, 100)
|
||||
//for _, fl := range fromFoodList {
|
||||
// stockList = append(stockList, &BareStoreFoodInfo{
|
||||
// AppFoodCode: fl.AppFoodCode,
|
||||
// Skus: []*BareStoreSkuInfo{
|
||||
// &BareStoreSkuInfo{
|
||||
// SkuID: fl.AppFoodCode,
|
||||
// Stock: "99999",
|
||||
// },
|
||||
// },
|
||||
// })
|
||||
//}
|
||||
|
||||
i++
|
||||
|
||||
if len(fromFoodList) < 100 {
|
||||
break
|
||||
}
|
||||
//result, err := api.RetailSkuStock(utils.GetUUID(), poiCode, stockList)
|
||||
//globals.SugarLogger.Debugf("===result :-%s", utils.Format4Output(result, false))
|
||||
//globals.SugarLogger.Debugf("===result :-%v", err)
|
||||
}
|
||||
fmt.Println(count)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user