|
16 | 16 | # You should have received a copy of the GNU Lesser General Public License |
17 | 17 | # along with Pyrogram. If not, see <http://www.gnu.org/licenses/>. |
18 | 18 |
|
| 19 | +from typing import Tuple |
| 20 | + |
| 21 | + |
19 | 22 | class DataCenter: |
20 | 23 | TEST = { |
21 | 24 | 1: "149.154.175.10", |
22 | 25 | 2: "149.154.167.40", |
23 | 26 | 3: "149.154.175.117", |
24 | | - 121: "95.213.217.195" |
25 | 27 | } |
26 | 28 |
|
27 | 29 | PROD = { |
28 | 30 | 1: "149.154.175.53", |
29 | 31 | 2: "149.154.167.51", |
30 | 32 | 3: "149.154.175.100", |
31 | 33 | 4: "149.154.167.91", |
32 | | - 5: "91.108.56.130", |
33 | | - 121: "95.213.217.195" |
| 34 | + 5: "91.108.56.130" |
| 35 | + } |
| 36 | + |
| 37 | + PROD_MEDIA = { |
| 38 | + 2: "149.154.167.151", |
| 39 | + 4: "149.154.164.250" |
34 | 40 | } |
35 | 41 |
|
36 | 42 | TEST_IPV6 = { |
37 | 43 | 1: "2001:b28:f23d:f001::e", |
38 | 44 | 2: "2001:67c:4e8:f002::e", |
39 | 45 | 3: "2001:b28:f23d:f003::e", |
40 | | - 121: "2a03:b0c0:3:d0::114:d001" |
41 | 46 | } |
42 | 47 |
|
43 | 48 | PROD_IPV6 = { |
44 | 49 | 1: "2001:b28:f23d:f001::a", |
45 | 50 | 2: "2001:67c:4e8:f002::a", |
46 | 51 | 3: "2001:b28:f23d:f003::a", |
47 | 52 | 4: "2001:67c:4e8:f004::a", |
48 | | - 5: "2001:b28:f23f:f005::a", |
49 | | - 121: "2a03:b0c0:3:d0::114:d001" |
| 53 | + 5: "2001:b28:f23f:f005::a" |
50 | 54 | } |
51 | 55 |
|
52 | | - def __new__(cls, dc_id: int, test_mode: bool, ipv6: bool): |
53 | | - if ipv6: |
54 | | - return ( |
55 | | - (cls.TEST_IPV6[dc_id], 80) |
56 | | - if test_mode |
57 | | - else (cls.PROD_IPV6[dc_id], 443) |
58 | | - ) |
| 56 | + PROD_IPV6_MEDIA = { |
| 57 | + 2: "2001:067c:04e8:f002:0000:0000:0000:000b", |
| 58 | + 4: "2001:067c:04e8:f004:0000:0000:0000:000b" |
| 59 | + } |
| 60 | + |
| 61 | + def __new__(cls, dc_id: int, test_mode: bool, ipv6: bool, media: bool) -> Tuple[str, int]: |
| 62 | + if test_mode: |
| 63 | + if ipv6: |
| 64 | + ip = cls.TEST_IPV6[dc_id] |
| 65 | + else: |
| 66 | + ip = cls.TEST[dc_id] |
| 67 | + |
| 68 | + return ip, 80 |
59 | 69 | else: |
60 | | - return ( |
61 | | - (cls.TEST[dc_id], 80) |
62 | | - if test_mode |
63 | | - else (cls.PROD[dc_id], 443) |
64 | | - ) |
| 70 | + if ipv6: |
| 71 | + if media: |
| 72 | + ip = cls.PROD_IPV6_MEDIA.get(dc_id, cls.PROD_IPV6[dc_id]) |
| 73 | + else: |
| 74 | + ip = cls.PROD_IPV6[dc_id] |
| 75 | + else: |
| 76 | + if media: |
| 77 | + ip = cls.PROD_MEDIA.get(dc_id, cls.PROD[dc_id]) |
| 78 | + else: |
| 79 | + ip = cls.PROD[dc_id] |
| 80 | + |
| 81 | + return ip, 443 |
0 commit comments