|
2 | 2 | const format = require("string-format"); |
3 | 3 | const Constants = require("./Constants"); |
4 | 4 |
|
5 | | -// vol = Math.floor(nm_id / 100000); basket number = index + 1 (zero-padded). |
| 5 | +// vol = Math.floor(nm_id / 100000); верхняя граница корзины (индекс + 1). |
6 | 6 | // Source: WB JS volHostV2() in product_dist JS (staticbasket_route_map). |
7 | 7 | const BASKETS = [ |
8 | | - [0, 143], // basket-01 |
9 | | - [144, 287], // basket-02 |
10 | | - [288, 431], // basket-03 |
11 | | - [432, 719], // basket-04 |
12 | | - [720, 1007], // basket-05 |
13 | | - [1008, 1061], // basket-06 |
14 | | - [1062, 1115], // basket-07 |
15 | | - [1116, 1169], // basket-08 |
16 | | - [1170, 1313], // basket-09 |
17 | | - [1314, 1601], // basket-10 |
18 | | - [1602, 1655], // basket-11 |
19 | | - [1656, 1919], // basket-12 |
20 | | - [1920, 2045], // basket-13 |
21 | | - [2046, 2189], // basket-14 |
22 | | - [2190, 2405], // basket-15 |
23 | | - [2406, 2621], // basket-16 |
24 | | - [2622, 2837], // basket-17 |
25 | | - [2838, 3053], // basket-18 |
26 | | - [3054, 3269], // basket-19 |
27 | | - [3270, 3485], // basket-20 |
28 | | - [3486, 3701], // basket-21 |
29 | | - [3702, 3917], // basket-22 |
30 | | - [3918, 4133], // basket-23 |
31 | | - [4134, 4349], // basket-24 |
32 | | - [4350, 4565], // basket-25 |
33 | | - [4566, 4877], // basket-26 |
34 | | - [4878, 5189], // basket-27 |
35 | | - [5190, 5501], // basket-28 |
36 | | - [5502, 5813], // basket-29 |
37 | | - [5814, 6125], // basket-30 |
38 | | - [6126, 6437], // basket-31 |
39 | | - [6438, 6749], // basket-32 |
40 | | - [6750, 7061], // basket-33 |
41 | | - [7062, 7373], // basket-34 |
42 | | - [7374, 7685], // basket-35 |
43 | | - [7686, 7997], // basket-36 |
44 | | - [7998, 8309], // basket-37 |
45 | | - [8310, 8741], // basket-38 |
46 | | - [8742, 9173], // basket-39 |
47 | | - [9174, 9605], // basket-40 |
48 | | - [9606, 10373], // basket-41 |
49 | | - [10374, 11141], // basket-42 |
50 | | - [11142, 11909], // basket-43 |
51 | | - [11910, Infinity], // basket-44 |
| 8 | + 143, // basket-01 |
| 9 | + 287, // basket-02 |
| 10 | + 431, // basket-03 |
| 11 | + 719, // basket-04 |
| 12 | + 1007, // basket-05 |
| 13 | + 1061, // basket-06 |
| 14 | + 1115, // basket-07 |
| 15 | + 1169, // basket-08 |
| 16 | + 1313, // basket-09 |
| 17 | + 1601, // basket-10 |
| 18 | + 1655, // basket-11 |
| 19 | + 1919, // basket-12 |
| 20 | + 2045, // basket-13 |
| 21 | + 2189, // basket-14 |
| 22 | + 2405, // basket-15 |
| 23 | + 2621, // basket-16 |
| 24 | + 2837, // basket-17 |
| 25 | + 3053, // basket-18 |
| 26 | + 3269, // basket-19 |
| 27 | + 3485, // basket-20 |
| 28 | + 3701, // basket-21 |
| 29 | + 3917, // basket-22 |
| 30 | + 4133, // basket-23 |
| 31 | + 4349, // basket-24 |
| 32 | + 4565, // basket-25 |
| 33 | + 4877, // basket-26 |
| 34 | + 5189, // basket-27 |
| 35 | + 5501, // basket-28 |
| 36 | + 5813, // basket-29 |
| 37 | + 6125, // basket-30 |
| 38 | + 6437, // basket-31 |
| 39 | + 6749, // basket-32 |
| 40 | + 7061, // basket-33 |
| 41 | + 7373, // basket-34 |
| 42 | + 7685, // basket-35 |
| 43 | + 7997, // basket-36 |
| 44 | + 8309, // basket-37 |
| 45 | + 8741, // basket-38 |
| 46 | + 9173, // basket-39 |
| 47 | + 9605, // basket-40 |
| 48 | + 10373, // basket-41 |
| 49 | + 11141, // basket-42 |
| 50 | + 11909, // basket-43 |
| 51 | + 12677, // basket-44 |
| 52 | + 13445, // basket-45 |
| 53 | + 14213, // basket-46 |
| 54 | + Infinity, // basket-47 |
52 | 55 | ]; |
53 | 56 |
|
54 | | -// vol = nm_id % 144; basket number = index + 1 (zero-padded). |
| 57 | +// vol = nm_id % 144; верхняя граница корзины (индекс + 1). |
55 | 58 | // Source: WB JS videonme_route_map switch statement in volVideoHost(). |
56 | 59 | const VIDEO_BASKETS = [ |
57 | | - [0, 11], // basket-01 |
58 | | - [12, 23], // basket-02 |
59 | | - [24, 35], // basket-03 |
60 | | - [36, 47], // basket-04 |
61 | | - [48, 59], // basket-05 |
62 | | - [60, 71], // basket-06 |
63 | | - [72, 83], // basket-07 |
64 | | - [84, 95], // basket-08 |
65 | | - [96, 107], // basket-09 |
66 | | - [108, 119], // basket-10 |
67 | | - [120, 131], // basket-11 |
68 | | - [132, 143], // basket-12 |
| 60 | + 11, // basket-01 |
| 61 | + 23, // basket-02 |
| 62 | + 35, // basket-03 |
| 63 | + 47, // basket-04 |
| 64 | + 59, // basket-05 |
| 65 | + 71, // basket-06 |
| 66 | + 83, // basket-07 |
| 67 | + 95, // basket-08 |
| 68 | + 107, // basket-09 |
| 69 | + 119, // basket-10 |
| 70 | + 131, // basket-11 |
| 71 | + 143, // basket-12 |
| 72 | + Infinity, // basket-13 (default) |
69 | 73 | ]; |
70 | 74 |
|
71 | 75 | const getBasketNumber = (productId) => { |
72 | 76 | const vol = Math.floor(productId / 100000); |
73 | | - const index = BASKETS.findIndex(([from, to]) => vol >= from && vol <= to); |
74 | | - return String(index + 1).padStart(2, "0"); |
| 77 | + return String(BASKETS.findIndex(top => vol <= top) + 1).padStart(2, "0"); |
75 | 78 | }; |
76 | 79 |
|
77 | 80 | const getVideoBasket = (vol) => { |
78 | | - const index = VIDEO_BASKETS.findIndex(([from, to]) => vol >= from && vol <= to); |
79 | | - return String(index >= 0 ? index + 1 : VIDEO_BASKETS.length + 1).padStart(2, "0"); |
| 81 | + return String(VIDEO_BASKETS.findIndex(top => vol <= top) + 1).padStart(2, "0"); |
80 | 82 | }; |
81 | 83 |
|
82 | 84 | const imageURL = (productId, imageType = "SMALL", order = 1) => { |
|
0 commit comments