mc5-api-client 1.0.12__tar.gz → 1.0.13__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.13}/PKG-INFO +1 -1
  2. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/pyproject.toml +1 -1
  3. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client/__init__.py +1 -1
  4. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client/cli.py +1 -1
  5. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client/client.py +38 -0
  6. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client/simple_client.py +101 -0
  7. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client.egg-info/PKG-INFO +1 -1
  8. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/.gitignore +0 -0
  9. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/CHANGELOG.md +0 -0
  10. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/LICENSE +0 -0
  11. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/MANIFEST.in +0 -0
  12. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/README.md +0 -0
  13. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/admin_squad_management.py +0 -0
  14. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/advanced_automation.py +0 -0
  15. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/advanced_features.py +0 -0
  16. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/basic_usage.py +0 -0
  17. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/clan_management.py +0 -0
  18. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/clan_management_complete.py +0 -0
  19. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/events_and_tasks.py +0 -0
  20. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/help_system.py +0 -0
  21. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/message_management.py +0 -0
  22. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/player_stats.py +0 -0
  23. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/private_messaging.py +0 -0
  24. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/quick_help.py +0 -0
  25. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/simple_usage.py +0 -0
  26. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/squad_management.py +0 -0
  27. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/examples/squad_wall_management.py +0 -0
  28. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/pytest.ini +0 -0
  29. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/requirements-dev.txt +0 -0
  30. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/requirements.txt +0 -0
  31. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/setup.cfg +0 -0
  32. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/setup.py +0 -0
  33. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client/admin_client.py +0 -0
  34. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client/auth.py +0 -0
  35. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client/exceptions.py +0 -0
  36. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client/help.py +0 -0
  37. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client/py.typed +0 -0
  38. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client.egg-info/SOURCES.txt +0 -0
  39. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client.egg-info/dependency_links.txt +0 -0
  40. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client.egg-info/entry_points.txt +0 -0
  41. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client.egg-info/not-zip-safe +0 -0
  42. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client.egg-info/requires.txt +0 -0
  43. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/src/mc5_api_client.egg-info/top_level.txt +0 -0
  44. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/tests/__init__.py +0 -0
  45. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/tests/test_auth.py +0 -0
  46. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/tests/test_cli.py +0 -0
  47. {mc5_api_client-1.0.12 → mc5_api_client-1.0.13}/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.13
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
@@ -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.13"
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.13"
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.13", "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.13
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
File without changes