Skip to content

Commit 689d0d0

Browse files
author
Helperhaps
committed
add zone
1 parent bd5b877 commit 689d0d0

File tree

6 files changed

+56
-33
lines changed

6 files changed

+56
-33
lines changed

jpush/common.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,31 @@
22
import logging
33
import requests
44

5-
PUSH_URL = 'https://api.jpush.cn/v3/'
6-
REPORT_URL = 'https://report.jpush.cn/v3/'
7-
DEVICE_URL = 'https://device.jpush.cn/v3/devices/'
8-
ALIAS_URL = 'https://device.jpush.cn/v3/aliases/'
9-
TAG_URL ='https://device.jpush.cn/v3/tags/'
10-
SCHEDULE_URL = 'https://api.jpush.cn/v3/schedules/'
11-
ADMIN_URL ='https://admin.jpush.cn/v1/'
5+
ZONES = {
6+
'DEFAULT': {
7+
'PUSH': 'https://api.jpush.cn/v3/',
8+
'REPORT': 'https://report.jpush.cn/v3/',
9+
'DEVICE': 'https://device.jpush.cn/v3/devices/',
10+
'ALIAS': 'https://device.jpush.cn/v3/aliases/',
11+
'TAG': 'https://device.jpush.cn/v3/tags/',
12+
'SCHEDULE': 'https://api.jpush.cn/v3/schedules/',
13+
'ADMIN': 'https://admin.jpush.cn/v1/'
14+
},
15+
'BJ':{
16+
'PUSH': 'https://bjapi.push.jiguang.cn/v3/',
17+
'REPORT': 'https://bjapi.push.jiguang.cn/v3/report/',
18+
'DEVICE': 'https://bjapi.push.jiguang.cn/v3/device/',
19+
'ALIAS': 'https://bjapi.push.jiguang.cn/v3/device/aliases/',
20+
'TAG': 'https://bjapi.push.jiguang.cn/v3/device/tags/',
21+
'SCHEDULE': 'https://bjapi.push.jiguang.cn/v3/push/schedules/',
22+
'ADMIN': 'https://admin.jpush.cn/v1/'
23+
}
24+
}
1225

1326
logger = logging.getLogger('jpush')
1427

28+
def get_url(key, zone='default'):
29+
return ZONES[zone.upper()][key.upper()]
1530

1631
class Unauthorized(Exception):
1732
"""Raised when we get a 401 from the server"""

jpush/core.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414

1515

1616
class JPush(object):
17-
def __init__(self, key, secret, timeout=30):
17+
def __init__(self, key, secret, timeout=30, zone = 'default'):
1818
self.key = key
1919
self.secret = secret
2020
self.timeout = timeout
21+
self.zone = zone
2122
self.session = requests.Session()
2223
self.session.auth = (key, secret)
2324

@@ -56,7 +57,8 @@ def push(self, payload):
5657
"JPush.push() is deprecated. See documentation on upgrading.",
5758
DeprecationWarning)
5859
body = json.dumps(payload)
59-
self._request('POST', body, common.PUSH_URL + 'push', 'application/json', version=1)
60+
url = common.get_url('push', self.zone) + 'push'
61+
self._request('POST', body, url, 'application/json', version=1)
6062

6163
def set_logging(self, level):
6264
level_list= ["CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG", "NOTSET"]

jpush/device/core.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ class Device(object):
77
"""Device info query/update..
88
99
"""
10-
def __init__(self, jpush):
10+
def __init__(self, jpush, zone = None):
1111
self._jpush = jpush
1212
self.entity = None
13+
self.zone = zone or jpush.zone
1314

1415
def send(self, method, url, body, content_type=None, version=3):
1516
"""Send the request
@@ -21,39 +22,39 @@ def send(self, method, url, body, content_type=None, version=3):
2122
def get_taglist(self):
2223
"""Get deviceinfo with registration id.
2324
"""
24-
url = common.TAG_URL
25+
url = common.get_url('tag', self.zone)
2526
body = None
2627
info = self.send("GET", url, body)
2728
return info
2829

2930
def get_deviceinfo(self, registration_id):
3031
"""Get deviceinfo with registration id.
3132
"""
32-
url = common.DEVICE_URL + registration_id + "/"
33+
url = common.get_url('device', self.zone) + registration_id
3334
body = None
3435
info = self.send("GET", url, body)
3536
return info
3637

3738
def set_deviceinfo(self, registration_id, entity):
3839
"""Update deviceinfo with registration id.
3940
"""
40-
url = common.DEVICE_URL + registration_id + "/"
41+
url = common.get_url('device', self.zone) + registration_id
4142
body = json.dumps(entity)
4243
info = self.send("POST", url, body)
4344
return info
4445

4546
def set_devicemobile(self, registration_id, entity):
4647
"""Update deviceinfo with registration id.
4748
"""
48-
url = common.DEVICE_URL + registration_id + "/"
49+
url = common.get_url('device', self.zone) + registration_id
4950
body = json.dumps(entity)
5051
info = self.send("POST", url, body)
5152
return info
5253

5354
def delete_tag(self, tag, platform=None):
5455
"""Delete registration id tag.
5556
"""
56-
url = common.TAG_URL + tag + "/"
57+
url = common.get_url('tag', self.zone) + tag
5758
body = None
5859
if platform:
5960
body = platform
@@ -63,23 +64,23 @@ def delete_tag(self, tag, platform=None):
6364
def update_tagusers(self, tag, entity):
6465
"""Add/Remove specified tag users.
6566
"""
66-
url = common.TAG_URL + tag + "/"
67+
url = common.get_url('tag', self.zone) + tag
6768
body = json.dumps(entity)
6869
info = self.send("POST", url, body)
6970
return info
7071

7172
def check_taguserexist(self, tag, registration_id):
7273
"""Check registration id whether in tag.
7374
"""
74-
url = common.TAG_URL + tag + "/registration_ids/" + registration_id
75+
url = common.get_url('tag', self.zone) + tag + "/registration_ids/" + registration_id
7576
body = registration_id
7677
info = self.send("GET", url, body)
7778
return info
7879

7980
def delete_alias(self, alias, platform=None):
8081
"""Delete appkey alias.
8182
"""
82-
url = common.ALIAS_URL + alias + "/"
83+
url = common.get_url('alias', self.zone) + alias
8384
body = None
8485
if platform:
8586
body = platform
@@ -89,7 +90,7 @@ def delete_alias(self, alias, platform=None):
8990
def get_aliasuser(self, alias, platform=None):
9091
"""Get appkey alias users.
9192
"""
92-
url = common.ALIAS_URL + alias + "/"
93+
url = common.get_url('alias', self.zone) + alias
9394
body = None
9495
if platform:
9596
body = platform

jpush/push/core.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
class Push(object):
99
"""A push notification. Set audience, message, etc, and send."""
1010

11-
def __init__(self, jpush, end_point = 'push'):
11+
def __init__(self, jpush, end_point = 'push', zone = None):
1212
self._jpush = jpush
1313
self.audience = None
1414
self.notification = None
@@ -18,6 +18,7 @@ def __init__(self, jpush, end_point = 'push'):
1818
self.message = None
1919
self.smsmessage=None
2020
self.end_point = end_point
21+
self.zone = zone or jpush.zone
2122

2223
@property
2324
def payload(self):
@@ -49,7 +50,7 @@ def send(self):
4950
5051
"""
5152
body = json.dumps(self.payload)
52-
url = common.PUSH_URL + self.end_point
53+
url = common.get_url('push', self.zone) + self.end_point
5354
response = self._jpush._request('POST', body, url, 'application/json', version=3)
5455
return PushResponse(response)
5556

@@ -63,13 +64,15 @@ def send_validate(self):
6364
6465
"""
6566
body = json.dumps(self.payload)
66-
url = common.PUSH_URL + 'push/validate'
67+
url = common.get_url('push', self.zone) + 'push/validate'
68+
6769
response = self._jpush._request('POST', body, url, 'application/json', version=3)
6870
return PushResponse(response)
6971

7072
def get_cid(self, count, type = None):
7173
body = None
72-
url = common.PUSH_URL + 'push/cid'
74+
url = common.get_url('push', self.zone) + 'push/cid'
75+
7376
params = {
7477
'count': count,
7578
'type': type

jpush/report/core.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66

77
class Report(object):
88
"""JPush Report API V3"""
9-
def __init__(self, jpush):
9+
def __init__(self, jpush, zone = None):
1010
self._jpush = jpush
11+
self.zone = zone or jpush.zone
1112

1213
def send(self, method, url, body, content_type=None, version=3, params = None):
1314
"""Send the request
@@ -16,21 +17,21 @@ def send(self, method, url, body, content_type=None, version=3, params = None):
1617
return ReportResponse(response)
1718

1819
def get_received(self,msg_ids):
19-
url = common.REPORT_URL + 'received'
20+
url = common.get_url('report', self.zone) + 'received'
2021
params = { 'msg_ids': msg_ids }
2122
body = None
2223
received = self.send("GET", url, body, params = params)
2324
return received
2425

2526
def get_messages(self, msg_ids):
26-
url = common.REPORT_URL + 'messages'
27+
url = common.get_url('report', self.zone) + 'messages'
2728
params = { 'msg_ids': msg_ids }
2829
body = None
2930
messages = self.send("GET", url, body, params = params)
3031
return messages
3132

3233
def get_users(self, time_unit,start,duration):
33-
url = common.REPORT_URL + 'users'
34+
url = common.get_url('report', self.zone) + 'users'
3435
params = {
3536
'time_unit': time_unit,
3637
'start': start,

jpush/schedule/core.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,40 +7,41 @@
77

88
class Schedule(object):
99
"""JPush Report API V3"""
10-
def __init__(self, jpush):
10+
def __init__(self, jpush, zone = None):
1111
self._jpush = jpush
12+
self.zone = zone or jpush.zone
1213

1314
def send(self, method, url, body, content_type=None, version=3, params = None):
1415
response = self._jpush._request(method, body, url, content_type, version=3, params = params)
1516
return ScheduleResponse(response)
1617

1718
def post_schedule(self, schedulepayload):
18-
url=common.SCHEDULE_URL
19+
url = common.get_url('schedule', self.zone)
1920
body = json.dumps(schedulepayload)
2021
result = self.send("POST", url, body)
2122
return result
2223

2324
def get_schedule_by_id(self, schedule_id):
24-
url=common.SCHEDULE_URL + schedule_id
25+
url = common.get_url('schedule', self.zone) + schedule_id
2526
body = None
2627
result = self.send("GET", url, body)
2728
return result
2829

2930
def get_schedule_list(self, page = 1):
30-
url = common.SCHEDULE_URL
31+
url = common.get_url('schedule', self.zone)
3132
params = { 'page': page }
3233
body = None
3334
result = self.send("GET", url, body, params = params)
3435
return result
3536

3637
def put_schedule(self, schedulepayload, schedule_id):
37-
url = common.SCHEDULE_URL + schedule_id
38+
url = common.get_url('schedule', self.zone) + schedule_id
3839
body = json.dumps(schedulepayload)
3940
result = self.send("PUT", url, body)
4041
return result
4142

4243
def delete_schedule(self,schedule_id):
43-
url = common.SCHEDULE_URL + schedule_id
44+
url = common.get_url('schedule', self.zone) + schedule_id
4445
body = None
4546
result = self.send("DELETE", url, body)
4647
return result

0 commit comments

Comments
 (0)