AI butler Jarvis
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user