h-message-bus 0.0.39__py3-none-any.whl → 0.0.41__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.
- h_message_bus/infrastructure/nats_client_repository.py +70 -54
- h_message_bus/infrastructure/nats_config.py +1 -1
- {h_message_bus-0.0.39.dist-info → h_message_bus-0.0.41.dist-info}/METADATA +106 -85
- h_message_bus-0.0.41.dist-info/RECORD +20 -0
- {h_message_bus-0.0.39.dist-info → h_message_bus-0.0.41.dist-info}/WHEEL +1 -1
- h_message_bus/domain/event_messages/__init__.py +0 -0
- h_message_bus/domain/models/event_message_topic.py +0 -20
- h_message_bus/domain/models/request_message_topic.py +0 -100
- h_message_bus/domain/models/twitter_message_metadata.py +0 -31
- h_message_bus/domain/models/twitter_user_metadata.py +0 -76
- h_message_bus/domain/models/vector_collection_metadata.py +0 -30
- h_message_bus/domain/models/vector_query_answer.py +0 -22
- h_message_bus/domain/request_messages/__init__.py +0 -0
- h_message_bus/domain/request_messages/graph_clear_request_message.py +0 -26
- h_message_bus/domain/request_messages/graph_get_all_request_message.py +0 -27
- h_message_bus/domain/request_messages/graph_get_all_result_response_message.py +0 -45
- h_message_bus/domain/request_messages/graph_node_add_request_message.py +0 -64
- h_message_bus/domain/request_messages/graph_node_added_response_message.py +0 -69
- h_message_bus/domain/request_messages/graph_node_get_request_message.py +0 -39
- h_message_bus/domain/request_messages/graph_node_get_result_response_message.py +0 -70
- h_message_bus/domain/request_messages/graph_node_update_request_message.py +0 -56
- h_message_bus/domain/request_messages/graph_node_update_response_message.py +0 -69
- h_message_bus/domain/request_messages/graph_nodes_by_property_request_message.py +0 -45
- h_message_bus/domain/request_messages/graph_nodes_by_property_response_message.py +0 -80
- h_message_bus/domain/request_messages/graph_query_operation_request_message.py +0 -114
- h_message_bus/domain/request_messages/graph_query_operation_response_message.py +0 -85
- h_message_bus/domain/request_messages/graph_query_request_message.py +0 -48
- h_message_bus/domain/request_messages/graph_relationship_added_request_message.py +0 -63
- h_message_bus/domain/request_messages/init_knowledgebase_request.py +0 -26
- h_message_bus/domain/request_messages/tg_message_request_message.py +0 -48
- h_message_bus/domain/request_messages/tg_user_message_reply_request_message.py +0 -56
- h_message_bus/domain/request_messages/tg_user_message_request_message.py +0 -93
- h_message_bus/domain/request_messages/twitter_follow_user_request_message.py +0 -40
- h_message_bus/domain/request_messages/twitter_follow_user_response_message.py +0 -43
- h_message_bus/domain/request_messages/twitter_get_tweet_request_message.py +0 -40
- h_message_bus/domain/request_messages/twitter_get_tweet_response_message.py +0 -54
- h_message_bus/domain/request_messages/twitter_get_user_request_message.py +0 -35
- h_message_bus/domain/request_messages/twitter_get_user_response_message.py +0 -96
- h_message_bus/domain/request_messages/twitter_get_users_request_message.py +0 -42
- h_message_bus/domain/request_messages/twitter_get_users_response_message.py +0 -44
- h_message_bus/domain/request_messages/twitter_home_timeline_request_message.py +0 -56
- h_message_bus/domain/request_messages/twitter_home_timeline_response_message.py +0 -74
- h_message_bus/domain/request_messages/twitter_post_tweet_request_message.py +0 -40
- h_message_bus/domain/request_messages/twitter_post_tweet_response_message.py +0 -47
- h_message_bus/domain/request_messages/twitter_quote_retweet_request_message.py +0 -48
- h_message_bus/domain/request_messages/twitter_quote_retweet_response_message.py +0 -55
- h_message_bus/domain/request_messages/twitter_reply_request_message.py +0 -48
- h_message_bus/domain/request_messages/twitter_reply_response_message.py +0 -54
- h_message_bus/domain/request_messages/twitter_retweet_request_message.py +0 -40
- h_message_bus/domain/request_messages/twitter_retweet_response_message.py +0 -43
- h_message_bus/domain/request_messages/twitter_search_request_message.py +0 -73
- h_message_bus/domain/request_messages/twitter_search_response_message.py +0 -73
- h_message_bus/domain/request_messages/twitter_user_tweets_request_message.py +0 -63
- h_message_bus/domain/request_messages/twitter_user_tweets_response_message.py +0 -89
- h_message_bus/domain/request_messages/vector_query_collection_request_message.py +0 -51
- h_message_bus/domain/request_messages/vector_query_collection_response_message.py +0 -47
- h_message_bus/domain/request_messages/vector_read_metadata_request_message.py +0 -25
- h_message_bus/domain/request_messages/vector_read_metadata_response_message.py +0 -45
- h_message_bus/domain/request_messages/vector_save_request_message.py +0 -66
- h_message_bus/domain/request_messages/web_get_docs_request_message.py +0 -46
- h_message_bus/domain/request_messages/web_search_request_message.py +0 -32
- h_message_bus-0.0.39.dist-info/RECORD +0 -76
- {h_message_bus-0.0.39.dist-info → h_message_bus-0.0.41.dist-info}/top_level.txt +0 -0
@@ -1,80 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type, List
|
2
|
-
|
3
|
-
from ...domain.models.hai_message import HaiMessage
|
4
|
-
from ..models.request_message_topic import RequestMessageTopic
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphNodesByPropertyResponseMessage(HaiMessage):
|
9
|
-
"""Response message containing nodes with a specific property value and their relationships"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, property_name: str, property_value: any,
|
18
|
-
nodes: List[Dict], relationships: List[Dict],
|
19
|
-
success: bool = True) -> 'GraphNodesByPropertyResponseMessage':
|
20
|
-
"""
|
21
|
-
Create a response message with nodes having a specific property value and their relationships
|
22
|
-
|
23
|
-
Args:
|
24
|
-
property_name: The property name that was queried
|
25
|
-
property_value: The property value that was queried
|
26
|
-
nodes: List of node dictionaries
|
27
|
-
relationships: List of relationship dictionaries
|
28
|
-
success: Whether the operation was successful
|
29
|
-
|
30
|
-
Returns:
|
31
|
-
A response message with the query results
|
32
|
-
"""
|
33
|
-
return cls.create(
|
34
|
-
topic=RequestMessageTopic.GRAPH_NODES_BY_PROPERTY_RESPONSE,
|
35
|
-
payload={
|
36
|
-
"property_name": property_name,
|
37
|
-
"property_value": property_value,
|
38
|
-
"nodes": nodes,
|
39
|
-
"relationships": relationships,
|
40
|
-
"success": success
|
41
|
-
},
|
42
|
-
)
|
43
|
-
|
44
|
-
@property
|
45
|
-
def property_name(self) -> str:
|
46
|
-
"""Get the property name from the payload"""
|
47
|
-
return self.payload.get("property_name")
|
48
|
-
|
49
|
-
@property
|
50
|
-
def property_value(self) -> any:
|
51
|
-
"""Get the property value from the payload"""
|
52
|
-
return self.payload.get("property_value")
|
53
|
-
|
54
|
-
@property
|
55
|
-
def nodes(self) -> List[Dict]:
|
56
|
-
"""Get the list of nodes from the payload"""
|
57
|
-
return self.payload.get("nodes", [])
|
58
|
-
|
59
|
-
@property
|
60
|
-
def relationships(self) -> List[Dict]:
|
61
|
-
"""Get the list of relationships from the payload"""
|
62
|
-
return self.payload.get("relationships", [])
|
63
|
-
|
64
|
-
@property
|
65
|
-
def success(self) -> bool:
|
66
|
-
"""Check if the query was successful"""
|
67
|
-
return self.payload.get("success", False)
|
68
|
-
|
69
|
-
@classmethod
|
70
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphNodesByPropertyResponseMessage':
|
71
|
-
# Extract the necessary fields from the message payload
|
72
|
-
payload = message.payload
|
73
|
-
|
74
|
-
return cls.create_message(
|
75
|
-
property_name=payload.get("property_name", ''),
|
76
|
-
property_value=payload.get("property_value"),
|
77
|
-
nodes=payload.get("nodes", []),
|
78
|
-
relationships=payload.get("relationships", []),
|
79
|
-
success=payload.get("success", False)
|
80
|
-
)
|
@@ -1,114 +0,0 @@
|
|
1
|
-
import json
|
2
|
-
from typing import Dict, Any, Type, TypeVar
|
3
|
-
|
4
|
-
from ..models.request_message_topic import RequestMessageTopic
|
5
|
-
from ...domain.models.hai_message import HaiMessage
|
6
|
-
|
7
|
-
T = TypeVar('T', bound='HaiMessage')
|
8
|
-
|
9
|
-
|
10
|
-
class GraphQueryOperationRequestMessage(HaiMessage):
|
11
|
-
"""Message to request graph query operations"""
|
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,
|
20
|
-
operation_type: str,
|
21
|
-
anchor_node: str,
|
22
|
-
relationship_direction: str = None,
|
23
|
-
relationship_type: str = None,
|
24
|
-
limit: int = None,
|
25
|
-
traversal_depth: int = None) -> 'GraphQueryOperationRequestMessage':
|
26
|
-
"""
|
27
|
-
Create a message requesting a graph query operation
|
28
|
-
|
29
|
-
Args:
|
30
|
-
operation_type: One of 'FIND_RELATED_NODES', 'GET_NODE_INFO', 'COUNT_RELATIONSHIPS'
|
31
|
-
anchor_node: The central node in the query (e.g., 'hyperliquid')
|
32
|
-
relationship_direction: One of 'INCOMING', 'OUTGOING', or 'BOTH'
|
33
|
-
relationship_type: The relationship type to traverse (e.g., 'BUILDS_ON')
|
34
|
-
limit: Numerical limit of results to return
|
35
|
-
traversal_depth: How many relationship hops to traverse
|
36
|
-
|
37
|
-
Returns:
|
38
|
-
A new GraphQueryOperationRequestMessage
|
39
|
-
"""
|
40
|
-
# Build the query operation dictionary
|
41
|
-
query_operation = {
|
42
|
-
"operation_type": operation_type,
|
43
|
-
"anchor_node": anchor_node,
|
44
|
-
}
|
45
|
-
|
46
|
-
# Add optional parameters if provided
|
47
|
-
if relationship_direction is not None:
|
48
|
-
query_operation["relationship_direction"] = relationship_direction
|
49
|
-
|
50
|
-
if relationship_type is not None:
|
51
|
-
query_operation["relationship_type"] = relationship_type
|
52
|
-
|
53
|
-
if limit is not None:
|
54
|
-
query_operation["limit"] = f"{limit}"
|
55
|
-
|
56
|
-
if traversal_depth is not None:
|
57
|
-
query_operation["traversal_depth"] = f"{traversal_depth}"
|
58
|
-
|
59
|
-
return cls.create(
|
60
|
-
topic=RequestMessageTopic.GRAPH_QUERY_OPERATION,
|
61
|
-
payload={"query_operation": json.dumps(query_operation)},
|
62
|
-
)
|
63
|
-
|
64
|
-
@property
|
65
|
-
def query_operation(self) -> Dict[str, Any]:
|
66
|
-
"""Get the query operation from the payload"""
|
67
|
-
query_operation_payload = self.payload.get("query_operation", "{}")
|
68
|
-
return json.loads(query_operation_payload)
|
69
|
-
|
70
|
-
@property
|
71
|
-
def operation_type(self) -> str:
|
72
|
-
"""Get the operation type from the query operation"""
|
73
|
-
return self.query_operation.get("operation_type", "")
|
74
|
-
|
75
|
-
@property
|
76
|
-
def anchor_node(self) -> str:
|
77
|
-
"""Get the anchor node from the query operation"""
|
78
|
-
return self.query_operation.get("anchor_node", "")
|
79
|
-
|
80
|
-
@property
|
81
|
-
def relationship_direction(self) -> str:
|
82
|
-
"""Get the relationship direction from the query operation"""
|
83
|
-
return self.query_operation.get("relationship_direction", "BOTH")
|
84
|
-
|
85
|
-
@property
|
86
|
-
def relationship_type(self) -> str:
|
87
|
-
"""Get the relationship type from the query operation"""
|
88
|
-
return self.query_operation.get("relationship_type", "")
|
89
|
-
|
90
|
-
@property
|
91
|
-
def limit(self) -> int:
|
92
|
-
"""Get the limit from the query operation"""
|
93
|
-
return int(self.query_operation.get("limit", 10))
|
94
|
-
|
95
|
-
@property
|
96
|
-
def traversal_depth(self) -> int:
|
97
|
-
"""Get the traversal depth from the query operation"""
|
98
|
-
return int(self.query_operation.get("traversal_depth", 1))
|
99
|
-
|
100
|
-
@classmethod
|
101
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphQueryOperationRequestMessage':
|
102
|
-
"""Create a GraphQueryOperationRequestMessage from a HaiMessage"""
|
103
|
-
payload = message.payload
|
104
|
-
query_operation_str = payload.get("query_operation", "{}")
|
105
|
-
query_operation = json.loads(query_operation_str)
|
106
|
-
|
107
|
-
return cls.create_message(
|
108
|
-
operation_type=query_operation.get("operation_type", ""),
|
109
|
-
anchor_node=query_operation.get("anchor_node", ""),
|
110
|
-
relationship_direction=query_operation.get("relationship_direction"),
|
111
|
-
relationship_type=query_operation.get("relationship_type"),
|
112
|
-
limit=query_operation.get("limit"),
|
113
|
-
traversal_depth=query_operation.get("traversal_depth")
|
114
|
-
)
|
@@ -1,85 +0,0 @@
|
|
1
|
-
import json
|
2
|
-
from typing import Dict, Any, TypeVar, Type
|
3
|
-
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
from ..models.request_message_topic import RequestMessageTopic
|
6
|
-
|
7
|
-
T = TypeVar('T', bound='HaiMessage')
|
8
|
-
|
9
|
-
class GraphQueryOperationResponseMessage(HaiMessage):
|
10
|
-
"""Message with results from graph query operations"""
|
11
|
-
|
12
|
-
@classmethod
|
13
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
14
|
-
"""Create a message - inherited from HaiMessage"""
|
15
|
-
return super().create(topic=topic, payload=payload)
|
16
|
-
|
17
|
-
@classmethod
|
18
|
-
def create_message(cls,
|
19
|
-
operation_type: str,
|
20
|
-
result: Dict[str, Any],
|
21
|
-
success: bool = True,
|
22
|
-
error_message: str = None) -> 'GraphQueryOperationResponseMessage':
|
23
|
-
"""
|
24
|
-
Create a response message with graph query operation results
|
25
|
-
|
26
|
-
Args:
|
27
|
-
operation_type: The type of operation that was performed
|
28
|
-
result: Dictionary containing the operation results
|
29
|
-
success: Whether the operation was successful
|
30
|
-
error_message: Error message if the operation failed
|
31
|
-
|
32
|
-
Returns:
|
33
|
-
A new GraphQueryOperationResponseMessage
|
34
|
-
"""
|
35
|
-
payload = {
|
36
|
-
"operation_type": operation_type,
|
37
|
-
"result": json.dumps(result),
|
38
|
-
"success": success
|
39
|
-
}
|
40
|
-
|
41
|
-
if error_message:
|
42
|
-
payload["error_message"] = error_message
|
43
|
-
|
44
|
-
return cls.create(
|
45
|
-
topic=RequestMessageTopic.GRAPH_QUERY_OPERATION_RESPONSE,
|
46
|
-
payload=payload,
|
47
|
-
)
|
48
|
-
|
49
|
-
@property
|
50
|
-
def operation_type(self) -> str:
|
51
|
-
"""Get the operation type from the payload"""
|
52
|
-
return self.payload.get("operation_type", "")
|
53
|
-
|
54
|
-
@property
|
55
|
-
def result(self) -> Dict[str, Any]:
|
56
|
-
"""Get the result from the payload"""
|
57
|
-
result_str = self.payload.get("result", "{}")
|
58
|
-
return json.loads(result_str)
|
59
|
-
|
60
|
-
@property
|
61
|
-
def success(self) -> bool:
|
62
|
-
"""Get the success status from the payload"""
|
63
|
-
return self.payload.get("success", False)
|
64
|
-
|
65
|
-
@property
|
66
|
-
def error_message(self) -> str:
|
67
|
-
"""Get the error message from the payload"""
|
68
|
-
return self.payload.get("error_message", "")
|
69
|
-
|
70
|
-
@classmethod
|
71
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphQueryOperationResponseMessage':
|
72
|
-
"""Create a GraphQueryOperationResponseMessage from a HaiMessage"""
|
73
|
-
payload = message.payload
|
74
|
-
operation_type = payload.get("operation_type", "")
|
75
|
-
result_str = payload.get("result", "{}")
|
76
|
-
result = json.loads(result_str)
|
77
|
-
success = payload.get("success", False)
|
78
|
-
error_message = payload.get("error_message")
|
79
|
-
|
80
|
-
return cls.create_message(
|
81
|
-
operation_type=operation_type,
|
82
|
-
result=result,
|
83
|
-
success=success,
|
84
|
-
error_message=error_message
|
85
|
-
)
|
@@ -1,48 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphQueryRequestMessage(HaiMessage):
|
9
|
-
"""Message to perform a custom query on the graph"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, query: str, parameters: dict = None) -> 'GraphQueryRequestMessage':
|
18
|
-
"""Create a message requesting to perform a custom query on the graph"""
|
19
|
-
if parameters is None:
|
20
|
-
parameters = {}
|
21
|
-
|
22
|
-
return cls.create(
|
23
|
-
topic=RequestMessageTopic.GRAPH_QUERY,
|
24
|
-
payload={
|
25
|
-
"query": query,
|
26
|
-
"parameters": parameters
|
27
|
-
},
|
28
|
-
)
|
29
|
-
|
30
|
-
@property
|
31
|
-
def query(self) -> str:
|
32
|
-
"""Get the query from the payload"""
|
33
|
-
return self.payload.get("query")
|
34
|
-
|
35
|
-
@property
|
36
|
-
def parameters(self) -> dict:
|
37
|
-
"""Get the query parameters from the payload"""
|
38
|
-
return self.payload.get("parameters", {})
|
39
|
-
|
40
|
-
@classmethod
|
41
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphQueryRequestMessage':
|
42
|
-
# Extract the necessary fields from the message payload
|
43
|
-
payload = message.payload
|
44
|
-
|
45
|
-
return cls.create_message(
|
46
|
-
query=payload.get("query", ''),
|
47
|
-
parameters=payload.get("parameters", {})
|
48
|
-
)
|
@@ -1,63 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type
|
2
|
-
|
3
|
-
from ...domain.models.hai_message import HaiMessage
|
4
|
-
from ..models.request_message_topic import RequestMessageTopic
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphRelationshipAddRequestMessage(HaiMessage):
|
9
|
-
"""Message to add a relationship between nodes in the graph"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, source_node_id: str, target_node_id: str,
|
18
|
-
relationship_type: str, properties: dict = None) -> 'GraphRelationshipAddRequestMessage':
|
19
|
-
"""Create a message requesting to add a relationship to the graph"""
|
20
|
-
if properties is None:
|
21
|
-
properties = {}
|
22
|
-
|
23
|
-
return cls.create(
|
24
|
-
topic=RequestMessageTopic.GRAPH_RELATIONSHIP_ADD,
|
25
|
-
payload={
|
26
|
-
"source_node_id": source_node_id,
|
27
|
-
"target_node_id": target_node_id,
|
28
|
-
"relationship_type": relationship_type,
|
29
|
-
"properties": properties
|
30
|
-
},
|
31
|
-
)
|
32
|
-
|
33
|
-
@property
|
34
|
-
def source_node_id(self) -> str:
|
35
|
-
"""Get the source node ID from the payload"""
|
36
|
-
return self.payload.get("source_node_id")
|
37
|
-
|
38
|
-
@property
|
39
|
-
def target_node_id(self) -> str:
|
40
|
-
"""Get the target node ID from the payload"""
|
41
|
-
return self.payload.get("target_node_id")
|
42
|
-
|
43
|
-
@property
|
44
|
-
def relationship_type(self) -> str:
|
45
|
-
"""Get the relationship type from the payload"""
|
46
|
-
return self.payload.get("relationship_type")
|
47
|
-
|
48
|
-
@property
|
49
|
-
def properties(self) -> dict:
|
50
|
-
"""Get the properties from the payload"""
|
51
|
-
return self.payload.get("properties", {})
|
52
|
-
|
53
|
-
@classmethod
|
54
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphRelationshipAddRequestMessage':
|
55
|
-
# Extract the necessary fields from the message payload
|
56
|
-
payload = message.payload
|
57
|
-
|
58
|
-
return cls.create_message(
|
59
|
-
source_node_id=payload.get("source_node_id", ''),
|
60
|
-
target_node_id=payload.get("target_node_id", ''),
|
61
|
-
relationship_type=payload.get("relationship_type", ''),
|
62
|
-
properties=payload.get("properties", {})
|
63
|
-
)
|
@@ -1,26 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class InitKnowledgeBaseRequestMessage(HaiMessage):
|
9
|
-
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls) -> 'InitKnowledgeBaseRequestMessage':
|
18
|
-
"""Create a message requesting to clear the graph"""
|
19
|
-
return cls.create(
|
20
|
-
topic=RequestMessageTopic.INIT_KNOWLEDGE_BASE,
|
21
|
-
payload={}
|
22
|
-
)
|
23
|
-
|
24
|
-
@classmethod
|
25
|
-
def from_hai_message(cls, message: HaiMessage) -> 'InitKnowledgeBaseRequestMessage':
|
26
|
-
return cls.create_message()
|
@@ -1,48 +0,0 @@
|
|
1
|
-
from typing import Type, TypeVar, Dict, Any
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
|
9
|
-
class TelegramMessageRequestMessage(HaiMessage):
|
10
|
-
"""Message containing user message data"""
|
11
|
-
|
12
|
-
@classmethod
|
13
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
14
|
-
"""Create a message - inherited from HaiMessage"""
|
15
|
-
return super().create(topic=topic, payload=payload)
|
16
|
-
|
17
|
-
@classmethod
|
18
|
-
def create_message(cls, message: str, chat_id: int) -> 'TelegramMessageRequestMessage':
|
19
|
-
|
20
|
-
payload = {
|
21
|
-
"message": message,
|
22
|
-
"chat_id": chat_id,
|
23
|
-
}
|
24
|
-
|
25
|
-
return cls.create(
|
26
|
-
topic=RequestMessageTopic.TG_CHAT_SEND,
|
27
|
-
payload=payload
|
28
|
-
)
|
29
|
-
|
30
|
-
@property
|
31
|
-
def message(self) -> str:
|
32
|
-
"""Get the message content from the payload"""
|
33
|
-
return self.payload.get("message", "")
|
34
|
-
|
35
|
-
@property
|
36
|
-
def chat_id(self) -> int:
|
37
|
-
"""Get the Telegram chat ID from the payload"""
|
38
|
-
return self.payload.get("chat_id", 0)
|
39
|
-
|
40
|
-
@classmethod
|
41
|
-
def from_hai_message(cls, message: HaiMessage) -> 'TelegramMessageRequestMessage':
|
42
|
-
payload = message.payload
|
43
|
-
|
44
|
-
return cls.create_message(
|
45
|
-
message=payload.get("message", ""),
|
46
|
-
chat_id=payload.get("chat_id")
|
47
|
-
)
|
48
|
-
|
@@ -1,56 +0,0 @@
|
|
1
|
-
from typing import Type, TypeVar, Dict, Any
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
|
9
|
-
class TelegramUserMessageReplyRequestMessage(HaiMessage):
|
10
|
-
"""Message containing user message data"""
|
11
|
-
|
12
|
-
@classmethod
|
13
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
14
|
-
"""Create a message - inherited from HaiMessage"""
|
15
|
-
return super().create(topic=topic, payload=payload)
|
16
|
-
|
17
|
-
@classmethod
|
18
|
-
def create_message(cls, message: str, chat_id: int,
|
19
|
-
message_id: int) -> 'TelegramUserMessageReplyRequestMessage':
|
20
|
-
|
21
|
-
payload = {
|
22
|
-
"message": message,
|
23
|
-
"chat_id": chat_id,
|
24
|
-
"message_id": message_id,
|
25
|
-
}
|
26
|
-
|
27
|
-
return cls.create(
|
28
|
-
topic=RequestMessageTopic.TG_CHAT_REPLY,
|
29
|
-
payload=payload
|
30
|
-
)
|
31
|
-
|
32
|
-
@property
|
33
|
-
def message(self) -> str:
|
34
|
-
"""Get the message content from the payload"""
|
35
|
-
return self.payload.get("message", "")
|
36
|
-
|
37
|
-
@property
|
38
|
-
def chat_id(self) -> int:
|
39
|
-
"""Get the Telegram chat ID from the payload"""
|
40
|
-
return self.payload.get("chat_id", 0)
|
41
|
-
|
42
|
-
@property
|
43
|
-
def message_id(self) -> int:
|
44
|
-
"""Get the Telegram message ID from the payload"""
|
45
|
-
return self.payload.get("message_id", 0)
|
46
|
-
|
47
|
-
@classmethod
|
48
|
-
def from_hai_message(cls, message: HaiMessage) -> 'TelegramUserMessageReplyRequestMessage':
|
49
|
-
payload = message.payload
|
50
|
-
|
51
|
-
return cls.create_message(
|
52
|
-
message=payload.get("message", ""),
|
53
|
-
chat_id=payload.get("chat_id"),
|
54
|
-
message_id=payload.get("message_id")
|
55
|
-
)
|
56
|
-
|
@@ -1,93 +0,0 @@
|
|
1
|
-
from typing import Type, TypeVar, Dict, Any, Optional
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
|
9
|
-
class TelegramUserMessageRequestMessage(HaiMessage):
|
10
|
-
"""Message containing user message data"""
|
11
|
-
|
12
|
-
@classmethod
|
13
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
14
|
-
"""Create a message - inherited from HaiMessage"""
|
15
|
-
return super().create(topic=topic, payload=payload)
|
16
|
-
|
17
|
-
@classmethod
|
18
|
-
def create_message(cls, message: str, user_id: str, username: str,
|
19
|
-
chat_id: str,
|
20
|
-
message_id: str,
|
21
|
-
replied_to_text: Optional[str] = None) -> 'TelegramUserMessageRequestMessage':
|
22
|
-
"""Create a message with user message data
|
23
|
-
|
24
|
-
Args:
|
25
|
-
message: The cleaned message content
|
26
|
-
user_id: The ID of the user
|
27
|
-
username: The username of the user
|
28
|
-
replied_to_text: The text being replied to, if any
|
29
|
-
chat_id: The Telegram chat ID
|
30
|
-
message_id: The Telegram message ID
|
31
|
-
|
32
|
-
Returns:
|
33
|
-
A new TelegramUserMessageRequestMessage instance
|
34
|
-
"""
|
35
|
-
payload = {
|
36
|
-
"message": message,
|
37
|
-
"user_id": user_id,
|
38
|
-
"username": username,
|
39
|
-
"chat_id" : chat_id,
|
40
|
-
"message_id" : message_id
|
41
|
-
}
|
42
|
-
|
43
|
-
if replied_to_text:
|
44
|
-
payload["replied_to_text"] = replied_to_text
|
45
|
-
|
46
|
-
return cls.create(
|
47
|
-
topic=RequestMessageTopic.TG_USER_CHAT_SEND,
|
48
|
-
payload=payload
|
49
|
-
)
|
50
|
-
|
51
|
-
@property
|
52
|
-
def message(self) -> str:
|
53
|
-
"""Get the message content from the payload"""
|
54
|
-
return self.payload.get("message", "")
|
55
|
-
|
56
|
-
@property
|
57
|
-
def user_id(self) -> str:
|
58
|
-
"""Get the user ID from the payload"""
|
59
|
-
return self.payload.get("user_id", "")
|
60
|
-
|
61
|
-
@property
|
62
|
-
def username(self) -> str:
|
63
|
-
"""Get the username from the payload"""
|
64
|
-
return self.payload.get("username", "")
|
65
|
-
|
66
|
-
@property
|
67
|
-
def replied_to_text(self) -> str:
|
68
|
-
"""Get the replied to text from the payload"""
|
69
|
-
return self.payload.get("replied_to_text", "")
|
70
|
-
|
71
|
-
@property
|
72
|
-
def chat_id(self) -> int:
|
73
|
-
"""Get the Telegram chat ID from the payload"""
|
74
|
-
return self.payload.get("chat_id", 0)
|
75
|
-
|
76
|
-
@property
|
77
|
-
def message_id(self) -> int:
|
78
|
-
"""Get the Telegram message ID from the payload"""
|
79
|
-
return self.payload.get("message_id", 0)
|
80
|
-
|
81
|
-
@classmethod
|
82
|
-
def from_hai_message(cls, message: HaiMessage) -> 'TelegramUserMessageRequestMessage':
|
83
|
-
payload = message.payload
|
84
|
-
|
85
|
-
return cls.create_message(
|
86
|
-
message=payload.get("message", ""),
|
87
|
-
user_id=payload.get("user_id", ""),
|
88
|
-
username=payload.get("username", ""),
|
89
|
-
replied_to_text=payload.get("replied_to_text", ""),
|
90
|
-
chat_id=payload.get("chat_id"),
|
91
|
-
message_id=payload.get("message_id")
|
92
|
-
)
|
93
|
-
|
@@ -1,40 +0,0 @@
|
|
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='TwitterFollowUserRequestMessage')
|
8
|
-
|
9
|
-
@dataclass
|
10
|
-
class TwitterFollowUserRequestMessage(HaiMessage):
|
11
|
-
"""Message to request following a Twitter user"""
|
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, user_id: str) -> 'TwitterFollowUserRequestMessage':
|
20
|
-
"""Create a message requesting to follow a Twitter user"""
|
21
|
-
return cls.create(
|
22
|
-
topic=RequestMessageTopic.TWITTER_FOLLOW_USER, # You'll need to add this to RequestMessageTopic
|
23
|
-
payload={
|
24
|
-
"user_id": user_id
|
25
|
-
},
|
26
|
-
)
|
27
|
-
|
28
|
-
@property
|
29
|
-
def user_id(self) -> str:
|
30
|
-
"""Get the user ID from the payload"""
|
31
|
-
return self.payload.get("user_id", "")
|
32
|
-
|
33
|
-
@classmethod
|
34
|
-
def from_hai_message(cls, message: HaiMessage) -> 'TwitterFollowUserRequestMessage':
|
35
|
-
"""Create a TwitterFollowUserRequestMessage from a HaiMessage"""
|
36
|
-
payload = message.payload
|
37
|
-
|
38
|
-
return cls.create_message(
|
39
|
-
user_id=payload.get("user_id", "")
|
40
|
-
)
|