AI butler Jarvis

This commit is contained in:
fiatrete
2023-06-05 13:21:34 +08:00
parent 41578de486
commit c01b07e61e
68 changed files with 4451 additions and 0 deletions
@@ -0,0 +1,39 @@
import os
from jarvis.functional_modules.functional_module import functional_module, CallerContext
from jarvis.utils.asynchttp import do_get, do_post
from jarvis.logger import logger
def reg_or_not():
twitter_service_address = os.getenv('DEMO_TWITTER_SERVICE_ADDRESS')
if twitter_service_address is None or twitter_service_address.strip() == '':
logger.warn("'DEMO_TWITTER_SERVICE_ADDRESS' is not provided, posting twitter function will not available")
return
@functional_module(
name="post_tweet",
description="post a tweet",
signature={"content": "the content of the tweet"}
)
async def post_tweet(context: CallerContext, content: str):
response = await do_post(twitter_service_address + "/twitter/tweet_post", '', {"content": content})
logger.info(f"response: {response}")
if response["type"] == 0:
await context.reply_text(f"Failed to post, duplicate tweets cannot be sent.")
elif response["type"] == 1:
await context.reply_text(f"You have not authorized twitter yet, please use the link below to authorize.")
await context.reply_text(response["authorize_url"])
elif response["type"] == 2:
await context.reply_text(f"Your twitter authorization has expired, please use the link below to authorize.")
await context.reply_text(response["authorize_url"])
elif response["type"] == 3:
await context.reply_text(f"The tweet has been sent successfully: {response['tweet']['url']}")
elif response["type"] == 4:
await context.reply_text(f"Failed to post due to an unknown error.")
else:
pass
return "Success"
reg_or_not()