h-message-bus 0.0.35__py3-none-any.whl → 0.0.37__py3-none-any.whl

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.
@@ -56,6 +56,9 @@ class RequestMessageTopic(str, Enum):
56
56
  TWITTER_QUOTE_RETWEET= "hai.twitter.quote.retweet"
57
57
  TWITTER_QUOTE_RETWEET_RESPONSE = "hai.twitter.quote.retweet.response"
58
58
 
59
+ TWITTER_GET_TWEET= "hai.twitter.get.tweet"
60
+ TWITTER_GET_TWEET_RESPONSE = "hai.twitter.get.tweet.response"
61
+
59
62
  # tools
60
63
  WEB_SEARCH = "hai.tools.web.search"
61
64
  WEB_SEARCH_RESPONSE = "hai.tools.web.search.response"
@@ -0,0 +1,40 @@
1
+ from dataclasses import dataclass
2
+ from typing import Type, Dict, Any, TypeVar
3
+
4
+ from ..models.request_message_topic import RequestMessageTopic
5
+ from ...domain.models.hai_message import HaiMessage
6
+
7
+ T = TypeVar('T', bound='TwitterGetTweetRequestMessage')
8
+
9
+ @dataclass
10
+ class TwitterGetTweetRequestMessage(HaiMessage):
11
+ """Message to request getting a tweet by its ID"""
12
+
13
+ @classmethod
14
+ def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
15
+ """Create a message - inherited from HaiMessage"""
16
+ return super().create(topic=topic, payload=payload)
17
+
18
+ @classmethod
19
+ def create_message(cls, tweet_id: str) -> 'TwitterGetTweetRequestMessage':
20
+ """Create a message requesting to get a tweet by its ID"""
21
+ return cls.create(
22
+ topic=RequestMessageTopic.TWITTER_GET_TWEET, # You'll need to add this to RequestMessageTopic
23
+ payload={
24
+ "tweet_id": tweet_id
25
+ },
26
+ )
27
+
28
+ @property
29
+ def tweet_id(self) -> str:
30
+ """Get the tweet ID from the payload"""
31
+ return self.payload.get("tweet_id", "")
32
+
33
+ @classmethod
34
+ def from_hai_message(cls, message: HaiMessage) -> 'TwitterGetTweetRequestMessage':
35
+ """Create a TwitterGetTweetRequestMessage from a HaiMessage"""
36
+ payload = message.payload
37
+
38
+ return cls.create_message(
39
+ tweet_id=payload.get("tweet_id", "")
40
+ )
@@ -0,0 +1,54 @@
1
+ from dataclasses import dataclass
2
+ from typing import Type, Dict, Any, TypeVar, Optional
3
+
4
+ from ..models.request_message_topic import RequestMessageTopic
5
+ from ...domain.models.hai_message import HaiMessage
6
+
7
+ T = TypeVar('T', bound='TwitterGetTweetResponseMessage')
8
+
9
+
10
+ @dataclass
11
+ class TwitterGetTweetResponseMessage(HaiMessage):
12
+ """Message to respond to a request to get a tweet by its ID"""
13
+
14
+ @classmethod
15
+ def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
16
+ """Create a message - inherited from HaiMessage"""
17
+ return super().create(topic=topic, payload=payload)
18
+
19
+ @classmethod
20
+ def create_message(cls,
21
+ tweet_id: str,
22
+ success: bool,
23
+ tweet: Optional[Dict[str, Any]] = None,
24
+ error_message: str = "") -> 'TwitterGetTweetResponseMessage':
25
+ """Create a response message for a request to get a tweet"""
26
+ return cls.create(
27
+ topic=RequestMessageTopic.TWITTER_GET_TWEET_RESPONSE, # You'll need to add this to ResponseMessageTopic
28
+ payload={
29
+ "tweet_id": tweet_id,
30
+ "success": success,
31
+ "tweet": tweet,
32
+ "error_message": error_message
33
+ },
34
+ )
35
+
36
+ @property
37
+ def tweet_id(self) -> str:
38
+ """Get the tweet ID that was requested"""
39
+ return self.payload.get("tweet_id", "")
40
+
41
+ @property
42
+ def success(self) -> bool:
43
+ """Get whether the get tweet operation was successful"""
44
+ return self.payload.get("success", False)
45
+
46
+ @property
47
+ def tweet(self) -> Optional[Dict[str, Any]]:
48
+ """Get the tweet data if the operation was successful"""
49
+ return self.payload.get("tweet", None)
50
+
51
+ @property
52
+ def error_message(self) -> str:
53
+ """Get the error message if the get tweet operation failed"""
54
+ return self.payload.get("error_message", "")
@@ -73,7 +73,7 @@ class TwitterUserTweetsResponseMessage(HaiMessage):
73
73
  tweet_data = {
74
74
  "tweet_id": str(message.tweet_id),
75
75
  "message": message.message,
76
- "created_at": message.created_at.isoformat() if message.created_at else None,
76
+ "created_at": message.created_at,
77
77
  "view_count": message.view_count,
78
78
  "retweet_count": message.retweet_count,
79
79
  "reply_count": message.reply_count,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: h_message_bus
3
- Version: 0.0.35
3
+ Version: 0.0.37
4
4
  Summary: Message bus integration for HAI
5
5
  Author-email: shoebill <shoebill.hai@gmail.com>
6
6
  Classifier: Programming Language :: Python :: 3
@@ -13,7 +13,7 @@ h_message_bus/domain/event_messages/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
13
13
  h_message_bus/domain/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  h_message_bus/domain/models/event_message_topic.py,sha256=fSjRMBwMD2RE9GBUud38XMrgLZcngURERrbuoAhQ0Hk,717
15
15
  h_message_bus/domain/models/hai_message.py,sha256=b5CfX7hi5uNq77IVnZzEi9iotc4b_U2MNYwV6JY7JcU,2146
16
- h_message_bus/domain/models/request_message_topic.py,sha256=uXc3F68WU7O813QQARmObcBrlJ-PODs_259fq7OStuw,3883
16
+ h_message_bus/domain/models/request_message_topic.py,sha256=JuSCMlm1hc6lrw-zu7oR5RuOGAOKsI-4NThO4BUiiwo,4000
17
17
  h_message_bus/domain/models/twitter_message_metadata.py,sha256=Cj0dSVQi0Com9nPlJeEM0c-ZAQKGqIq_txvdzYg0myw,1203
18
18
  h_message_bus/domain/models/twitter_user_metadata.py,sha256=N7GVyn2txmlMQ19aatNh7lvzO6FNSj4dKVujestha9o,2827
19
19
  h_message_bus/domain/models/vector_collection_metadata.py,sha256=fSy3ZQ-zkYISTpc-_M6XWf1JkufVAlzlS2ZT60TzA2s,891
@@ -40,6 +40,8 @@ h_message_bus/domain/request_messages/tg_user_message_reply_request_message.py,s
40
40
  h_message_bus/domain/request_messages/tg_user_message_request_message.py,sha256=pHmmGJpMEnwzbTVVvoD6UOMflQOuQKgErZA9MyRwWt8,3121
41
41
  h_message_bus/domain/request_messages/twitter_follow_user_request_message.py,sha256=6qQ1zkqL3efHn4Asmkjqlne3YAdKCyDEjWhAUdnvj3I,1446
42
42
  h_message_bus/domain/request_messages/twitter_follow_user_response_message.py,sha256=4t1NucWuDgKXI6-cTJ69B3mBDG8aoY5WuSZF5zalXrM,1633
43
+ h_message_bus/domain/request_messages/twitter_get_tweet_request_message.py,sha256=AVL-ativiwbB9ftwXp9MKezonqPYtdSf1stJg0zf2S0,1443
44
+ h_message_bus/domain/request_messages/twitter_get_tweet_response_message.py,sha256=x8pr34SZHeH73TEJN6QiXd-tqW3FNdhN9FzlFW2qEKQ,1991
43
45
  h_message_bus/domain/request_messages/twitter_get_user_request_message.py,sha256=OfC93X1M0vgMU26BBrpA7AdlY32IFdVG_vRT8BdhQOc,1209
44
46
  h_message_bus/domain/request_messages/twitter_get_user_response_message.py,sha256=dXhK_JN3Sz6hN8EpDcj7gq6htJ8Yu5G-Cal73XXcEng,3299
45
47
  h_message_bus/domain/request_messages/twitter_get_users_request_message.py,sha256=y2Bh77py9RPtKfdPrPi0mv3LVIujne107y8vkPydirs,1545
@@ -55,7 +57,7 @@ h_message_bus/domain/request_messages/twitter_reply_response_message.py,sha256=6
55
57
  h_message_bus/domain/request_messages/twitter_retweet_request_message.py,sha256=UHnLrgnqgZixb2q5ugFEHcCJxNkuTzrToGCEVoXm4gU,1423
56
58
  h_message_bus/domain/request_messages/twitter_retweet_response_message.py,sha256=OGanRbX7AcKJ35H01wvp0XvuL-Chhm7f5J6NSpGq7uQ,1616
57
59
  h_message_bus/domain/request_messages/twitter_user_tweets_request_message.py,sha256=9vAhRxbCCDTqQNNKgp5cDIkiGIsnHwRSOwc6PK6TmcA,2397
58
- h_message_bus/domain/request_messages/twitter_user_tweets_response_message.py,sha256=DAQauYnUEnKX6AGKF6-zFd0X-j4BNfAMwBMLr5JLEwI,3243
60
+ h_message_bus/domain/request_messages/twitter_user_tweets_response_message.py,sha256=2oygt0Ow_xx0NOdPUViiqeAKh9NmYl8kJILOqHQbKgI,3199
59
61
  h_message_bus/domain/request_messages/vector_query_collection_request_message.py,sha256=x1J8SLVBlNS4TFzVJY9UG7mo94l9i4azndwzAlyktZw,1800
60
62
  h_message_bus/domain/request_messages/vector_query_collection_response_message.py,sha256=Q589JT_QE-oVsTh1GEmK__3Hct7ijfM1UTcPi0YTGn8,1767
61
63
  h_message_bus/domain/request_messages/vector_read_metadata_request_message.py,sha256=P9t6pcynS112F9_Jmbvw8wlfXhs5NOnV48SUVq92xt8,873
@@ -66,7 +68,7 @@ h_message_bus/domain/request_messages/web_search_request_message.py,sha256=ZoB4i
66
68
  h_message_bus/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
69
  h_message_bus/infrastructure/nats_client_repository.py,sha256=bhaWRK94h2EmFIef2DALnoBJKnuTnx6-iU7IXO2S_EU,3642
68
70
  h_message_bus/infrastructure/nats_config.py,sha256=Yzqqd1bCfmUv_4FOnA1dvqIpakzV0BUL2_nXQcndWvo,1304
69
- h_message_bus-0.0.35.dist-info/METADATA,sha256=IsK8LwYq_OgBL1ut9W0-4Bm2dp5uKbkR4UesiNQ7490,8834
70
- h_message_bus-0.0.35.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
71
- h_message_bus-0.0.35.dist-info/top_level.txt,sha256=BArjhm_lwFR9yJJEIf-LT_X64psuLkXFdbpQRJUreFE,23
72
- h_message_bus-0.0.35.dist-info/RECORD,,
71
+ h_message_bus-0.0.37.dist-info/METADATA,sha256=yM3f3SNB6PWyNJXHzN09h11c74jTuSfZcOdetKOP1E4,8834
72
+ h_message_bus-0.0.37.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
73
+ h_message_bus-0.0.37.dist-info/top_level.txt,sha256=BArjhm_lwFR9yJJEIf-LT_X64psuLkXFdbpQRJUreFE,23
74
+ h_message_bus-0.0.37.dist-info/RECORD,,