mezoAgent 0.6.5__py3-none-any.whl → 0.7.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mezoAgent
3
- Version: 0.6.5
3
+ Version: 0.7.0
4
4
  Summary: A Python package for Mezo Agent transactions with LangChain tools
5
5
  Author: Dreadwulf, Duck, Digi
6
6
  Requires-Dist: python-dotenv
@@ -1,4 +1,4 @@
1
- mezo_agent/__init__.py,sha256=8QYgneMYLO5-VzBT-4YiIJ_o1rgGq1EJDVrwvLi9hsQ,707
1
+ mezo_agent/__init__.py,sha256=1UatqstSlOF8pU5-fu675ONGteB6INqyE74xMi8S1o4,752
2
2
  mezo_agent/characters.py,sha256=wub7y9BrAAdAKWwcNAdgrvhRi2zHMaZNzTr2y3qtbsw,515
3
3
  mezo_agent/chat.py,sha256=ZtNurUDV7UzJjbFyU96DNGy37hO3gl0osn19mRu7ER8,859
4
4
  mezo_agent/config.py,sha256=6xFgk80eiBLTasKGW73Ne8hNhMtx8BbQ_Ef79YOyDlc,3233
@@ -8,9 +8,11 @@ mezo_agent/token_balance_tool.py,sha256=n5xkHWGhkJdQZILN0fDe-n4NHgXSHTSloEHJfkLM
8
8
  mezo_agent/token_price_tool.py,sha256=vD-ukq0D_4zmjIy9bZ9qL44nGctf-hWzkQuTd-0wy2U,930
9
9
  mezo_agent/token_utils.py,sha256=3NH_Z_vbZ0uupuuGjEbmwsbUkubluQbL-0xR9kia7nU,1118
10
10
  mezo_agent/transaction.py,sha256=YpfWrkEaf0YGM_Kc4cFwlT9GmBGZkeJHWm0VGHs9Gks,4199
11
+ mezo_agent/twitter_client.py,sha256=yR2RE0HTieUafXLWwbxGV2hgZrYc79w_gloBWy--fO8,2924
12
+ mezo_agent/twitter_manager.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
13
  mezo_agent/utils.py,sha256=hsGtL_iXvUVGnY5aHPQ0v6Jejxd4P4qw0yOtS1omToU,1397
12
14
  mezo_agent/data/new_router.json,sha256=A8U-NVfe1F-hDyR90_SuH8jDAxmzyyHWdJW62j9TZsc,26756
13
- mezoAgent-0.6.5.dist-info/METADATA,sha256=aww4rbst9dQN-a_KYXzyKDoWTeJunsS26IagAdIs1mM,273
14
- mezoAgent-0.6.5.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
15
- mezoAgent-0.6.5.dist-info/top_level.txt,sha256=rrAci_NyTR9z6w_BrQhQrAhzMW_A0NYhVa0x2USl0nQ,11
16
- mezoAgent-0.6.5.dist-info/RECORD,,
15
+ mezoAgent-0.7.0.dist-info/METADATA,sha256=Kasssjau3C2NXCJTop0zeZOlAvq8W-R6xiTIE_Lj3Us,273
16
+ mezoAgent-0.7.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
17
+ mezoAgent-0.7.0.dist-info/top_level.txt,sha256=rrAci_NyTR9z6w_BrQhQrAhzMW_A0NYhVa0x2USl0nQ,11
18
+ mezoAgent-0.7.0.dist-info/RECORD,,
mezo_agent/__init__.py CHANGED
@@ -4,7 +4,8 @@ from .chat import mezo_character_chat
4
4
  from .characters import get_character_prompt
5
5
  from .token_balance_tool import mezo_agent_token_balance_tool
6
6
  from .token_price_tool import mezo_agent_token_price_tool
7
- from .token_utils import get_token_address_by_symbol # ✅ Expose new module
7
+ from .token_utils import get_token_address_by_symbol
8
+ from .twitter_manager import TwitterManager
8
9
 
9
10
  __all__ = [
10
11
  "mezo_agent_transaction_btc",
@@ -14,5 +15,6 @@ __all__ = [
14
15
  "mezo_agent_token_balance_tool",
15
16
  "mezo_agent_token_price_tool",
16
17
  "get_token_address_by_symbol",
18
+ "TwitterManager",
17
19
  "get_character_prompt"
18
20
  ]
@@ -0,0 +1,78 @@
1
+ import tweepy
2
+ import time
3
+ import random
4
+ from datetime import datetime, timedelta
5
+ from threading import Thread
6
+ from mezo_agent.config import load_dotenv
7
+ import os
8
+
9
+ # Load environment variables
10
+ load_dotenv()
11
+
12
+ class TwitterClient:
13
+ """
14
+ A modular Twitter client for MezoAgent that allows characters to tweet automatically.
15
+ """
16
+
17
+ def __init__(self, character_name: str, api_key: str, api_secret: str, access_token: str, access_secret: str):
18
+ """
19
+ Initializes the Twitter client for a given character.
20
+
21
+ :param character_name: Name of the AI character.
22
+ :param api_key: Twitter API Key.
23
+ :param api_secret: Twitter API Secret Key.
24
+ :param access_token: Twitter Access Token.
25
+ :param access_secret: Twitter Access Token Secret.
26
+ """
27
+ self.character_name = character_name
28
+
29
+ # Authenticate with Twitter API
30
+ auth = tweepy.OAuthHandler(api_key, api_secret)
31
+ auth.set_access_token(access_token, access_secret)
32
+ self.api = tweepy.API(auth, wait_on_rate_limit=True)
33
+
34
+ # Schedule tweets
35
+ self.schedule_tweets()
36
+
37
+ def generate_tweet(self) -> str:
38
+ """
39
+ Generates a tweet using AI for the character.
40
+ This function can be modified to pull from AI-generated content.
41
+
42
+ :return: A string containing the tweet.
43
+ """
44
+ tweet_templates = [
45
+ f"{self.character_name} is thinking about the future of DeFi... 🚀",
46
+ f"GM! {self.character_name} says stay bullish today. 🌞",
47
+ f"On-chain or it didn't happen! - {self.character_name} ⛓️",
48
+ f"{self.character_name} is stacking sats and stacking wisdom. 💡",
49
+ f"Wen moon? {self.character_name} says HODL tight! 🌙"
50
+ ]
51
+ return random.choice(tweet_templates)
52
+
53
+ def post_tweet(self):
54
+ """
55
+ Posts a tweet for the character.
56
+ """
57
+ try:
58
+ tweet_content = self.generate_tweet()
59
+ self.api.update_status(tweet_content)
60
+ print(f"✅ {self.character_name} tweeted: {tweet_content}")
61
+ except Exception as e:
62
+ print(f"❌ Failed to post tweet for {self.character_name}: {e}")
63
+
64
+ def schedule_tweets(self):
65
+ """
66
+ Schedules tweets to be sent 5 times per 24-hour period.
67
+ Runs in a separate thread to avoid blocking the main agent process.
68
+ """
69
+ def tweet_scheduler():
70
+ while True:
71
+ for _ in range(5): # Post 5 tweets per day
72
+ self.post_tweet()
73
+ sleep_time = (24 * 60 * 60) // 5 # Spread tweets across 24 hours
74
+ print(f"⏳ Next tweet in {sleep_time // 60} minutes...")
75
+ time.sleep(sleep_time)
76
+
77
+ thread = Thread(target=tweet_scheduler, daemon=True)
78
+ thread.start()
File without changes