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.
Files changed (47) hide show
  1. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/PKG-INFO +12 -7
  2. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/README.md +11 -6
  3. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/pyproject.toml +1 -1
  4. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/__init__.py +1 -1
  5. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/cli.py +1 -1
  6. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/client.py +38 -0
  7. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/simple_client.py +101 -0
  8. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/PKG-INFO +12 -7
  9. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/.gitignore +0 -0
  10. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/CHANGELOG.md +0 -0
  11. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/LICENSE +0 -0
  12. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/MANIFEST.in +0 -0
  13. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/admin_squad_management.py +0 -0
  14. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/advanced_automation.py +0 -0
  15. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/advanced_features.py +0 -0
  16. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/basic_usage.py +0 -0
  17. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/clan_management.py +0 -0
  18. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/clan_management_complete.py +0 -0
  19. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/events_and_tasks.py +0 -0
  20. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/help_system.py +0 -0
  21. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/message_management.py +0 -0
  22. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/player_stats.py +0 -0
  23. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/private_messaging.py +0 -0
  24. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/quick_help.py +0 -0
  25. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/simple_usage.py +0 -0
  26. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/squad_management.py +0 -0
  27. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/examples/squad_wall_management.py +0 -0
  28. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/pytest.ini +0 -0
  29. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/requirements-dev.txt +0 -0
  30. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/requirements.txt +0 -0
  31. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/setup.cfg +0 -0
  32. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/setup.py +0 -0
  33. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/admin_client.py +0 -0
  34. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/auth.py +0 -0
  35. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/exceptions.py +0 -0
  36. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/help.py +0 -0
  37. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client/py.typed +0 -0
  38. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/SOURCES.txt +0 -0
  39. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/dependency_links.txt +0 -0
  40. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/entry_points.txt +0 -0
  41. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/not-zip-safe +0 -0
  42. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/requires.txt +0 -0
  43. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/src/mc5_api_client.egg-info/top_level.txt +0 -0
  44. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/tests/__init__.py +0 -0
  45. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/tests/test_auth.py +0 -0
  46. {mc5_api_client-1.0.12 → mc5_api_client-1.0.14}/tests/test_cli.py +0 -0
  47. {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.12
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('score')}")
193
- print(f"New XP: {result.get('xp')}")
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.12
418
+ pip install mc5_api_client==1.0.14
414
419
  ```
415
420
 
416
- ✅ **Published and Available!** The MC5 API Client v1.0.12 is now live on PyPI with accurate admin capabilities, encrypted token support, and corrected documentation!
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('score')}")
115
- print(f"New XP: {result.get('xp')}")
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.12
340
+ pip install mc5_api_client==1.0.14
336
341
  ```
337
342
 
338
- ✅ **Published and Available!** The MC5 API Client v1.0.12 is now live on PyPI with accurate admin capabilities, encrypted token support, and corrected documentation!
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.12"
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"}
@@ -15,7 +15,7 @@ messaging, and more.
15
15
 
16
16
  from typing import Optional, Dict, Any
17
17
 
18
- __version__ = "1.0.12"
18
+ __version__ = "1.0.14"
19
19
  __author__ = "Chizoba"
20
20
  __email__ = "chizoba2026@hotmail.com"
21
21
  __license__ = "MIT"
@@ -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.12", "cyan")
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.12
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('score')}")
193
- print(f"New XP: {result.get('xp')}")
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.12
418
+ pip install mc5_api_client==1.0.14
414
419
  ```
415
420
 
416
- ✅ **Published and Available!** The MC5 API Client v1.0.12 is now live on PyPI with accurate admin capabilities, encrypted token support, and corrected documentation!
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