mc5-api-client 1.0.12__tar.gz → 1.0.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/PKG-INFO +12 -7
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/README.md +11 -6
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/pyproject.toml +1 -1
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/__init__.py +1 -1
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/cli.py +1 -1
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/client.py +38 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/simple_client.py +101 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/PKG-INFO +12 -7
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/.gitignore +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/CHANGELOG.md +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/LICENSE +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/MANIFEST.in +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/admin_squad_management.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/advanced_automation.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/advanced_features.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/basic_usage.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/clan_management.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/clan_management_complete.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/events_and_tasks.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/help_system.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/message_management.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/player_stats.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/private_messaging.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/quick_help.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/simple_usage.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/squad_management.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/squad_wall_management.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/pytest.ini +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/requirements-dev.txt +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/requirements.txt +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/setup.cfg +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/setup.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/admin_client.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/auth.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/exceptions.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/help.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/py.typed +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/SOURCES.txt +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/dependency_links.txt +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/entry_points.txt +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/not-zip-safe +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/requires.txt +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/top_level.txt +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/tests/__init__.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/tests/test_auth.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/tests/test_cli.py +0 -0
- {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/tests/test_client.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mc5_api_client
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.14
|
|
4
4
|
Summary: A comprehensive Python library for interacting with the Modern Combat 5 API
|
|
5
5
|
Home-page: https://pypi.org/project/mc5-api-client/
|
|
6
6
|
Author: Chizoba
|
|
@@ -188,9 +188,12 @@ result = quick_update_player_score(
|
|
|
188
188
|
)
|
|
189
189
|
|
|
190
190
|
if result.get('success'):
|
|
191
|
-
print("✅ Player score updated successfully!")
|
|
192
|
-
print(f"New score: {result.get('
|
|
193
|
-
|
|
191
|
+
print(f"✅ Player score updated successfully!")
|
|
192
|
+
print(f"New score: {result.get('score_updated')}")
|
|
193
|
+
if result.get('xp_updated'):
|
|
194
|
+
print(f"New XP: {result.get('xp_updated')}")
|
|
195
|
+
else:
|
|
196
|
+
print(f"❌ Error: {result.get('error', 'Unknown error')}")
|
|
194
197
|
```
|
|
195
198
|
|
|
196
199
|
### **� Admin Client Usage:**
|
|
@@ -398,7 +401,9 @@ client.connect()
|
|
|
398
401
|
player = client.search_player('f55f')
|
|
399
402
|
|
|
400
403
|
# 🔹 Admin Operations
|
|
401
|
-
quick_update_player_score('user_id', 5200, xp=2037745)
|
|
404
|
+
result = quick_update_player_score('user_id', 5200, xp=2037745)
|
|
405
|
+
if result.get('success'):
|
|
406
|
+
print(f"Score updated: {result.get('score_updated')}")
|
|
402
407
|
|
|
403
408
|
# 🔹 Error Handling
|
|
404
409
|
try: except AuthenticationError:
|
|
@@ -410,10 +415,10 @@ try: except MC5APIError:
|
|
|
410
415
|
### **🚀 Install from PyPI (Recommended)**
|
|
411
416
|
|
|
412
417
|
```bash
|
|
413
|
-
pip install mc5_api_client==1.0.
|
|
418
|
+
pip install mc5_api_client==1.0.14
|
|
414
419
|
```
|
|
415
420
|
|
|
416
|
-
✅ **Published and Available!** The MC5 API Client v1.0.
|
|
421
|
+
✅ **Published and Available!** The MC5 API Client v1.0.14 is now live on PyPI with corrected documentation and working examples!
|
|
417
422
|
|
|
418
423
|
### **� Install from Local Package**
|
|
419
424
|
|
|
@@ -110,9 +110,12 @@ result = quick_update_player_score(
|
|
|
110
110
|
)
|
|
111
111
|
|
|
112
112
|
if result.get('success'):
|
|
113
|
-
print("✅ Player score updated successfully!")
|
|
114
|
-
print(f"New score: {result.get('
|
|
115
|
-
|
|
113
|
+
print(f"✅ Player score updated successfully!")
|
|
114
|
+
print(f"New score: {result.get('score_updated')}")
|
|
115
|
+
if result.get('xp_updated'):
|
|
116
|
+
print(f"New XP: {result.get('xp_updated')}")
|
|
117
|
+
else:
|
|
118
|
+
print(f"❌ Error: {result.get('error', 'Unknown error')}")
|
|
116
119
|
```
|
|
117
120
|
|
|
118
121
|
### **� Admin Client Usage:**
|
|
@@ -320,7 +323,9 @@ client.connect()
|
|
|
320
323
|
player = client.search_player('f55f')
|
|
321
324
|
|
|
322
325
|
# 🔹 Admin Operations
|
|
323
|
-
quick_update_player_score('user_id', 5200, xp=2037745)
|
|
326
|
+
result = quick_update_player_score('user_id', 5200, xp=2037745)
|
|
327
|
+
if result.get('success'):
|
|
328
|
+
print(f"Score updated: {result.get('score_updated')}")
|
|
324
329
|
|
|
325
330
|
# 🔹 Error Handling
|
|
326
331
|
try: except AuthenticationError:
|
|
@@ -332,10 +337,10 @@ try: except MC5APIError:
|
|
|
332
337
|
### **🚀 Install from PyPI (Recommended)**
|
|
333
338
|
|
|
334
339
|
```bash
|
|
335
|
-
pip install mc5_api_client==1.0.
|
|
340
|
+
pip install mc5_api_client==1.0.14
|
|
336
341
|
```
|
|
337
342
|
|
|
338
|
-
✅ **Published and Available!** The MC5 API Client v1.0.
|
|
343
|
+
✅ **Published and Available!** The MC5 API Client v1.0.14 is now live on PyPI with corrected documentation and working examples!
|
|
339
344
|
|
|
340
345
|
### **� Install from Local Package**
|
|
341
346
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mc5_api_client"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.14"
|
|
8
8
|
description = "A comprehensive Python library for interacting with the Modern Combat 5 API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {file = "LICENSE"}
|
|
@@ -447,7 +447,7 @@ class MC5CLI:
|
|
|
447
447
|
|
|
448
448
|
def _print_version(self):
|
|
449
449
|
"""Print version information."""
|
|
450
|
-
self._print("MC5 API Client v1.0.
|
|
450
|
+
self._print("MC5 API Client v1.0.14", "cyan")
|
|
451
451
|
self._print("The ultimate Modern Combat 5 API library", "green")
|
|
452
452
|
self._print("Author: Chizoba", "blue")
|
|
453
453
|
self._print("Email: chizoba2026@hotmail.com", "blue")
|
|
@@ -522,6 +522,44 @@ class MC5Client:
|
|
|
522
522
|
url = f"{self.BASE_URLS['osiris']}/accounts/me/clan-applications/{clan_id}"
|
|
523
523
|
return self._make_request("DELETE", url)
|
|
524
524
|
|
|
525
|
+
def get_clan_requests(self, request_type: str = "membership_approval") -> List[Dict[str, Any]]:
|
|
526
|
+
"""
|
|
527
|
+
Get pending clan membership requests for the current user.
|
|
528
|
+
|
|
529
|
+
Args:
|
|
530
|
+
request_type: Type of requests to retrieve (default: "membership_approval")
|
|
531
|
+
|
|
532
|
+
Returns:
|
|
533
|
+
List of clan requests
|
|
534
|
+
"""
|
|
535
|
+
url = f"{self.BASE_URLS['osiris']}/accounts/me/requests"
|
|
536
|
+
params = {
|
|
537
|
+
"request_type": request_type
|
|
538
|
+
}
|
|
539
|
+
response = self._make_request("GET", url, params=params)
|
|
540
|
+
return response if isinstance(response, list) else []
|
|
541
|
+
|
|
542
|
+
def respond_to_clan_request(self, request_id: str, action: str, message: str = "") -> Dict[str, Any]:
|
|
543
|
+
"""
|
|
544
|
+
Respond to a clan membership request (accept/reject).
|
|
545
|
+
|
|
546
|
+
Args:
|
|
547
|
+
request_id: Request ID to respond to
|
|
548
|
+
action: Action to take ("accept" or "reject")
|
|
549
|
+
message: Optional message for the response
|
|
550
|
+
|
|
551
|
+
Returns:
|
|
552
|
+
Response result
|
|
553
|
+
"""
|
|
554
|
+
url = f"{self.BASE_URLS['osiris']}/accounts/me/requests/{request_id}"
|
|
555
|
+
data = {
|
|
556
|
+
"action": action
|
|
557
|
+
}
|
|
558
|
+
if message:
|
|
559
|
+
data["message"] = message
|
|
560
|
+
|
|
561
|
+
return self._make_request("POST", url, data=data)
|
|
562
|
+
|
|
525
563
|
def get_clan_statistics(self, clan_id: str) -> Dict[str, Any]:
|
|
526
564
|
"""
|
|
527
565
|
Get clan statistics and performance data.
|
|
@@ -285,6 +285,107 @@ class SimpleMC5Client:
|
|
|
285
285
|
print(f"❌ Error sending message: {e}")
|
|
286
286
|
return False
|
|
287
287
|
|
|
288
|
+
def get_inbox_messages(self, limit: int = 20) -> List[Dict[str, Any]]:
|
|
289
|
+
"""
|
|
290
|
+
Get messages from your inbox.
|
|
291
|
+
|
|
292
|
+
Args:
|
|
293
|
+
limit: Maximum number of messages to retrieve
|
|
294
|
+
|
|
295
|
+
Returns:
|
|
296
|
+
List of inbox messages
|
|
297
|
+
"""
|
|
298
|
+
try:
|
|
299
|
+
messages = self.client.get_inbox_messages(limit=limit)
|
|
300
|
+
print(f"✅ Retrieved {len(messages)} messages from inbox")
|
|
301
|
+
return messages
|
|
302
|
+
except Exception as e:
|
|
303
|
+
print(f"❌ Error getting inbox messages: {e}")
|
|
304
|
+
return []
|
|
305
|
+
|
|
306
|
+
def delete_message(self, message_id: str) -> bool:
|
|
307
|
+
"""
|
|
308
|
+
Delete a single message from your inbox.
|
|
309
|
+
|
|
310
|
+
Args:
|
|
311
|
+
message_id: ID of the message to delete
|
|
312
|
+
|
|
313
|
+
Returns:
|
|
314
|
+
True if successful, False otherwise
|
|
315
|
+
"""
|
|
316
|
+
try:
|
|
317
|
+
result = self.client.delete_inbox_message(message_id)
|
|
318
|
+
if 'error' not in result:
|
|
319
|
+
print(f"✅ Message {message_id} deleted successfully")
|
|
320
|
+
return True
|
|
321
|
+
else:
|
|
322
|
+
print(f"❌ Failed to delete message: {result.get('error', 'Unknown error')}")
|
|
323
|
+
return False
|
|
324
|
+
except Exception as e:
|
|
325
|
+
print(f"❌ Error deleting message: {e}")
|
|
326
|
+
return False
|
|
327
|
+
|
|
328
|
+
def clear_inbox(self) -> bool:
|
|
329
|
+
"""
|
|
330
|
+
Clear all messages from your inbox.
|
|
331
|
+
|
|
332
|
+
Returns:
|
|
333
|
+
True if successful, False otherwise
|
|
334
|
+
"""
|
|
335
|
+
try:
|
|
336
|
+
result = self.client.clear_inbox()
|
|
337
|
+
if 'error' not in result:
|
|
338
|
+
print(f"✅ Inbox cleared successfully")
|
|
339
|
+
return True
|
|
340
|
+
else:
|
|
341
|
+
print(f"❌ Failed to clear inbox: {result.get('error', 'Unknown error')}")
|
|
342
|
+
return False
|
|
343
|
+
except Exception as e:
|
|
344
|
+
print(f"❌ Error clearing inbox: {e}")
|
|
345
|
+
return False
|
|
346
|
+
|
|
347
|
+
def get_clan_requests(self, request_type: str = "membership_approval") -> List[Dict[str, Any]]:
|
|
348
|
+
"""
|
|
349
|
+
Get pending clan membership requests.
|
|
350
|
+
|
|
351
|
+
Args:
|
|
352
|
+
request_type: Type of requests to retrieve
|
|
353
|
+
|
|
354
|
+
Returns:
|
|
355
|
+
List of clan requests
|
|
356
|
+
"""
|
|
357
|
+
try:
|
|
358
|
+
requests = self.client.get_clan_requests(request_type=request_type)
|
|
359
|
+
print(f"✅ Retrieved {len(requests)} clan requests")
|
|
360
|
+
return requests
|
|
361
|
+
except Exception as e:
|
|
362
|
+
print(f"❌ Error getting clan requests: {e}")
|
|
363
|
+
return []
|
|
364
|
+
|
|
365
|
+
def respond_to_clan_request(self, request_id: str, action: str, message: str = "") -> bool:
|
|
366
|
+
"""
|
|
367
|
+
Respond to a clan membership request.
|
|
368
|
+
|
|
369
|
+
Args:
|
|
370
|
+
request_id: ID of the request to respond to
|
|
371
|
+
action: Action to take ("accept" or "reject")
|
|
372
|
+
message: Optional message for the response
|
|
373
|
+
|
|
374
|
+
Returns:
|
|
375
|
+
True if successful, False otherwise
|
|
376
|
+
"""
|
|
377
|
+
try:
|
|
378
|
+
result = self.client.respond_to_clan_request(request_id, action, message)
|
|
379
|
+
if 'error' not in result:
|
|
380
|
+
print(f"✅ Clan request {action}ed successfully")
|
|
381
|
+
return True
|
|
382
|
+
else:
|
|
383
|
+
print(f"❌ Failed to {action} clan request: {result.get('error', 'Unknown error')}")
|
|
384
|
+
return False
|
|
385
|
+
except Exception as e:
|
|
386
|
+
print(f"❌ Error responding to clan request: {e}")
|
|
387
|
+
return False
|
|
388
|
+
|
|
288
389
|
def get_inactive_members(self, days_inactive: int = 30) -> List[Dict[str, Any]]:
|
|
289
390
|
"""
|
|
290
391
|
Get members who haven't been active for specified days.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mc5_api_client
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.14
|
|
4
4
|
Summary: A comprehensive Python library for interacting with the Modern Combat 5 API
|
|
5
5
|
Home-page: https://pypi.org/project/mc5-api-client/
|
|
6
6
|
Author: Chizoba
|
|
@@ -188,9 +188,12 @@ result = quick_update_player_score(
|
|
|
188
188
|
)
|
|
189
189
|
|
|
190
190
|
if result.get('success'):
|
|
191
|
-
print("✅ Player score updated successfully!")
|
|
192
|
-
print(f"New score: {result.get('
|
|
193
|
-
|
|
191
|
+
print(f"✅ Player score updated successfully!")
|
|
192
|
+
print(f"New score: {result.get('score_updated')}")
|
|
193
|
+
if result.get('xp_updated'):
|
|
194
|
+
print(f"New XP: {result.get('xp_updated')}")
|
|
195
|
+
else:
|
|
196
|
+
print(f"❌ Error: {result.get('error', 'Unknown error')}")
|
|
194
197
|
```
|
|
195
198
|
|
|
196
199
|
### **� Admin Client Usage:**
|
|
@@ -398,7 +401,9 @@ client.connect()
|
|
|
398
401
|
player = client.search_player('f55f')
|
|
399
402
|
|
|
400
403
|
# 🔹 Admin Operations
|
|
401
|
-
quick_update_player_score('user_id', 5200, xp=2037745)
|
|
404
|
+
result = quick_update_player_score('user_id', 5200, xp=2037745)
|
|
405
|
+
if result.get('success'):
|
|
406
|
+
print(f"Score updated: {result.get('score_updated')}")
|
|
402
407
|
|
|
403
408
|
# 🔹 Error Handling
|
|
404
409
|
try: except AuthenticationError:
|
|
@@ -410,10 +415,10 @@ try: except MC5APIError:
|
|
|
410
415
|
### **🚀 Install from PyPI (Recommended)**
|
|
411
416
|
|
|
412
417
|
```bash
|
|
413
|
-
pip install mc5_api_client==1.0.
|
|
418
|
+
pip install mc5_api_client==1.0.14
|
|
414
419
|
```
|
|
415
420
|
|
|
416
|
-
✅ **Published and Available!** The MC5 API Client v1.0.
|
|
421
|
+
✅ **Published and Available!** The MC5 API Client v1.0.14 is now live on PyPI with corrected documentation and working examples!
|
|
417
422
|
|
|
418
423
|
### **� Install from Local Package**
|
|
419
424
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|