marqetive-lib 0.1.15__tar.gz → 0.1.16__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 (38) hide show
  1. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/PKG-INFO +1 -1
  2. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/pyproject.toml +1 -1
  3. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/instagram/client.py +37 -7
  4. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/linkedin/client.py +10 -2
  5. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/tiktok/client.py +3 -9
  6. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/README.md +0 -0
  7. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/__init__.py +0 -0
  8. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/core/__init__.py +0 -0
  9. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/core/base.py +0 -0
  10. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/core/client.py +0 -0
  11. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/core/exceptions.py +0 -0
  12. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/core/models.py +0 -0
  13. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/factory.py +0 -0
  14. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/__init__.py +0 -0
  15. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/instagram/__init__.py +0 -0
  16. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/instagram/exceptions.py +0 -0
  17. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/instagram/media.py +0 -0
  18. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/instagram/models.py +0 -0
  19. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/linkedin/__init__.py +0 -0
  20. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/linkedin/exceptions.py +0 -0
  21. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/linkedin/media.py +0 -0
  22. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/linkedin/models.py +0 -0
  23. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/tiktok/__init__.py +0 -0
  24. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/tiktok/exceptions.py +0 -0
  25. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/tiktok/media.py +0 -0
  26. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/tiktok/models.py +0 -0
  27. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/twitter/__init__.py +0 -0
  28. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/twitter/client.py +0 -0
  29. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/twitter/exceptions.py +0 -0
  30. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/twitter/media.py +0 -0
  31. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/platforms/twitter/models.py +0 -0
  32. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/py.typed +0 -0
  33. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/utils/__init__.py +0 -0
  34. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/utils/file_handlers.py +0 -0
  35. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/utils/helpers.py +0 -0
  36. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/utils/media.py +0 -0
  37. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/utils/oauth.py +0 -0
  38. {marqetive_lib-0.1.15 → marqetive_lib-0.1.16}/src/marqetive/utils/retry.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: marqetive-lib
3
- Version: 0.1.15
3
+ Version: 0.1.16
4
4
  Summary: Modern Python utilities for web APIs
5
5
  Keywords: api,utilities,web,http,marqetive
6
6
  Requires-Python: >=3.12
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [project]
6
6
  name = "marqetive-lib"
7
- version = "0.1.15"
7
+ version = "0.1.16"
8
8
  description = "Modern Python utilities for web APIs"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -360,7 +360,16 @@ class InstagramClient(SocialMediaPlatform):
360
360
  )
361
361
 
362
362
  result = await self._media_manager.publish_container(container_ids[0])
363
- return await self.get_post(result.media_id)
363
+
364
+ # Return minimal Post object without fetching details
365
+ return Post(
366
+ post_id=result.media_id,
367
+ platform=self.platform_name,
368
+ content=request.content,
369
+ status=PostStatus.PUBLISHED,
370
+ created_at=datetime.now(),
371
+ url=cast(HttpUrl, result.permalink) if result.permalink else None,
372
+ )
364
373
 
365
374
  async def _create_carousel_post(self, request: PostCreateRequest) -> Post:
366
375
  """Create a carousel post (2-10 images).
@@ -803,8 +812,15 @@ class InstagramClient(SocialMediaPlatform):
803
812
  # Publish
804
813
  result = await self._media_manager.publish_container(container_ids[0])
805
814
 
806
- # Fetch and return post
807
- return await self.get_post(result.media_id)
815
+ # Return minimal Post object without fetching details
816
+ return Post(
817
+ post_id=result.media_id,
818
+ platform=self.platform_name,
819
+ content=caption,
820
+ status=PostStatus.PUBLISHED,
821
+ created_at=datetime.now(),
822
+ url=cast(HttpUrl, result.permalink) if result.permalink else None,
823
+ )
808
824
 
809
825
  async def create_reel(
810
826
  self,
@@ -860,8 +876,15 @@ class InstagramClient(SocialMediaPlatform):
860
876
  # Publish
861
877
  result = await self._media_manager.publish_container(container_id)
862
878
 
863
- # Fetch and return post
864
- return await self.get_post(result.media_id)
879
+ # Return minimal Post object without fetching details
880
+ return Post(
881
+ post_id=result.media_id,
882
+ platform=self.platform_name,
883
+ content=caption,
884
+ status=PostStatus.PUBLISHED,
885
+ created_at=datetime.now(),
886
+ url=cast(HttpUrl, result.permalink) if result.permalink else None,
887
+ )
865
888
 
866
889
  async def create_story(
867
890
  self,
@@ -904,8 +927,15 @@ class InstagramClient(SocialMediaPlatform):
904
927
  # Publish
905
928
  result = await self._media_manager.publish_container(container_id)
906
929
 
907
- # Fetch and return post
908
- return await self.get_post(result.media_id)
930
+ # Return minimal Post object without fetching details
931
+ return Post(
932
+ post_id=result.media_id,
933
+ platform=self.platform_name,
934
+ content=None, # Stories don't have captions
935
+ status=PostStatus.PUBLISHED,
936
+ created_at=datetime.now(),
937
+ url=cast(HttpUrl, result.permalink) if result.permalink else None,
938
+ )
909
939
 
910
940
  # ==================== Helper Methods ====================
911
941
 
@@ -426,8 +426,16 @@ class LinkedInClient(SocialMediaPlatform):
426
426
  platform=self.platform_name,
427
427
  )
428
428
 
429
- # Fetch full post details
430
- return await self.get_post(post_id)
429
+ # Return minimal Post object without fetching details
430
+ return Post(
431
+ post_id=post_id,
432
+ platform=self.platform_name,
433
+ content=request.content or "",
434
+ status=PostStatus.PUBLISHED,
435
+ created_at=datetime.now(),
436
+ author_id=self.author_urn,
437
+ raw_data=response.data,
438
+ )
431
439
 
432
440
  except httpx.HTTPError as e:
433
441
  raise PlatformError(
@@ -231,24 +231,18 @@ class TikTokClient(SocialMediaPlatform):
231
231
  wait_for_publish=True,
232
232
  )
233
233
 
234
- # 4. Return post - either fetch full details or create minimal Post
235
- if upload_result.video_id:
236
- # Fetch the created post to return full Post object
237
- return await self.get_post(upload_result.video_id)
238
-
239
- # For private/SELF_ONLY posts, TikTok may not return video_id
240
- # Return a minimal Post object with publish_id
234
+ # 4. Return minimal Post object without fetching details
241
235
  return Post(
242
- post_id=upload_result.publish_id,
236
+ post_id=upload_result.video_id or upload_result.publish_id,
243
237
  platform=self.platform_name,
244
238
  content=request.content,
245
239
  status=PostStatus.PUBLISHED,
246
240
  created_at=datetime.now(),
247
241
  raw_data={
248
242
  "publish_id": upload_result.publish_id,
243
+ "video_id": upload_result.video_id,
249
244
  "upload_status": upload_result.status,
250
245
  "privacy_level": privacy_level.value,
251
- "note": "Video published but video_id not returned (common for private posts)",
252
246
  },
253
247
  )
254
248
 
File without changes