@@ -57,13 +57,21 @@ def send_messages(self, request, queryset, bulk=False):
57
57
if "error" in r ["results" ][0 ]:
58
58
errors .append (r ["results" ][0 ]["error" ])
59
59
else :
60
- try :
61
- errors = [r ["error" ] for r in ret [0 ][0 ]["results" ] if "error" in r ]
62
- except TypeError :
63
- for entry in ret [0 ][0 ]:
64
- errors = errors + [r ["error" ] for r in entry ["results" ] if "error" in r ]
65
- except IndexError :
66
- pass
60
+ if "results" in ret [0 ][0 ]:
61
+ try :
62
+ errors = [r ["error" ] for r in ret [0 ][0 ]["results" ] if "error" in r ]
63
+ except TypeError :
64
+ for entry in ret [0 ][0 ]:
65
+ errors = errors + [r ["error" ] for r in entry ["results" ] if "error" in r ]
66
+ except IndexError :
67
+ pass
68
+ else :
69
+ # different format, e.g.:
70
+ # [{'some_token1': 'Success',
71
+ # 'some_token2': 'BadDeviceToken'}]
72
+ for key , value in ret [0 ][0 ].items ():
73
+ if value .lower () != "success" :
74
+ errors .append (value )
67
75
if errors :
68
76
self .message_user (
69
77
request , _ ("Some messages could not be processed: %r" % (", " .join (errors ))),
@@ -73,14 +81,24 @@ def send_messages(self, request, queryset, bulk=False):
73
81
if bulk :
74
82
# When the queryset exceeds the max_recipients value, the
75
83
# send_message method returns a list of dicts, one per chunk
76
- try :
77
- success = ret [0 ][0 ]["success" ]
78
- except TypeError :
79
- success = 0
80
- for entry in ret [0 ][0 ]:
81
- success = success + entry ["success" ]
82
- if success == 0 :
83
- return
84
+ if "results" in ret [0 ][0 ]:
85
+ try :
86
+ success = ret [0 ][0 ]["success" ]
87
+ except TypeError :
88
+ success = 0
89
+ for entry in ret [0 ][0 ]:
90
+ success = success + entry ["success" ]
91
+ if success == 0 :
92
+ return
93
+ else :
94
+ # different format, e.g.:
95
+ # [{'some_token1': 'Success',
96
+ # 'some_token2': 'BadDeviceToken'}]
97
+ success = []
98
+ for key , value in ret [0 ][0 ].items ():
99
+ if value .lower () == "success" :
100
+ success .append (key )
101
+
84
102
elif len (errors ) == len (ret ):
85
103
return
86
104
if errors :
0 commit comments