no longer load extension if upload disabled
This commit is contained in:
parent
123ff9c4ae
commit
e906b9da1d
1 changed files with 91 additions and 92 deletions
|
|
@ -11,7 +11,6 @@ class PhixxyCom(commands.Cog):
|
||||||
|
|
||||||
def __init__(self, bot):
|
def __init__(self, bot):
|
||||||
self.bot = bot
|
self.bot = bot
|
||||||
self.upload_enabled = os.getenv('upload_phixxy')
|
|
||||||
self.SERVER = os.getenv('ftp_server')
|
self.SERVER = os.getenv('ftp_server')
|
||||||
self.USERNAME = os.getenv('ftp_username')
|
self.USERNAME = os.getenv('ftp_username')
|
||||||
self.PASSWORD = os.getenv('ftp_password')
|
self.PASSWORD = os.getenv('ftp_password')
|
||||||
|
|
@ -46,11 +45,10 @@ class PhixxyCom(commands.Cog):
|
||||||
return "Unknown Prompt"
|
return "Unknown Prompt"
|
||||||
|
|
||||||
async def upload_sftp(self, local_filename, server_folder, server_filename):
|
async def upload_sftp(self, local_filename, server_folder, server_filename):
|
||||||
if self.upload_enabled.lower() == "true":
|
remotepath = server_folder + server_filename
|
||||||
remotepath = server_folder + server_filename
|
async with asyncssh.connect(self.SERVER, username=self.USERNAME, password=self.PASSWORD) as conn:
|
||||||
async with asyncssh.connect(self.SERVER, username=self.USERNAME, password=self.PASSWORD) as conn:
|
async with conn.start_sftp_client() as sftp:
|
||||||
async with conn.start_sftp_client() as sftp:
|
await sftp.put(local_filename, remotepath=remotepath)
|
||||||
await sftp.put(local_filename, remotepath=remotepath)
|
|
||||||
|
|
||||||
async def delete_local_pngs(self, local_folder):
|
async def delete_local_pngs(self, local_folder):
|
||||||
for filename in os.listdir(local_folder):
|
for filename in os.listdir(local_folder):
|
||||||
|
|
@ -158,33 +156,32 @@ class PhixxyCom(commands.Cog):
|
||||||
|
|
||||||
async def upload_ftp_ai_images(self, ai_dict):
|
async def upload_ftp_ai_images(self, ai_dict):
|
||||||
try:
|
try:
|
||||||
if self.upload_enabled.lower() == "true":
|
for folder in ai_dict:
|
||||||
for folder in ai_dict:
|
for filename in os.listdir(folder):
|
||||||
for filename in os.listdir(folder):
|
if filename[-4:] == '.png':
|
||||||
if filename[-4:] == '.png':
|
filepath = folder + filename
|
||||||
filepath = folder + filename
|
self.bot.logger.info(f"Found file = {filename}")
|
||||||
self.bot.logger.info(f"Found file = {filename}")
|
prompt = self.find_prompt_from_filename(ai_dict[folder], filename)
|
||||||
prompt = self.find_prompt_from_filename(ai_dict[folder], filename)
|
self.bot.logger.info(f"Found prompt = {prompt}")
|
||||||
self.bot.logger.info(f"Found prompt = {prompt}")
|
html_file = f"{self.data_dir}ai-images/index.html"
|
||||||
html_file = f"{self.data_dir}ai-images/index.html"
|
html_insert = '''<!--REPLACE THIS COMMENT-->
|
||||||
html_insert = '''<!--REPLACE THIS COMMENT-->
|
<div>
|
||||||
<div>
|
<img src="<!--filename-->" loading="lazy">
|
||||||
<img src="<!--filename-->" loading="lazy">
|
<p class="image-description"><!--description--></p>
|
||||||
<p class="image-description"><!--description--></p>
|
</div>'''
|
||||||
</div>'''
|
server_folder = (os.getenv('ftp_public_html') + 'ai-images/')
|
||||||
server_folder = (os.getenv('ftp_public_html') + 'ai-images/')
|
new_filename = str(time.time_ns()) + ".png"
|
||||||
new_filename = str(time.time_ns()) + ".png"
|
await self.upload_sftp(filepath, server_folder, new_filename)
|
||||||
await self.upload_sftp(filepath, server_folder, new_filename)
|
self.bot.logger.info(f"Uploaded {new_filename}")
|
||||||
self.bot.logger.info(f"Uploaded {new_filename}")
|
with open(html_file, 'r') as f:
|
||||||
with open(html_file, 'r') as f:
|
html_data = f.read()
|
||||||
html_data = f.read()
|
html_insert = html_insert.replace("<!--filename-->", new_filename)
|
||||||
html_insert = html_insert.replace("<!--filename-->", new_filename)
|
html_insert = html_insert.replace("<!--description-->", prompt)
|
||||||
html_insert = html_insert.replace("<!--description-->", prompt)
|
html_data = html_data.replace("<!--REPLACE THIS COMMENT-->", html_insert)
|
||||||
html_data = html_data.replace("<!--REPLACE THIS COMMENT-->", html_insert)
|
with open(html_file, "w") as f:
|
||||||
with open(html_file, "w") as f:
|
f.writelines(html_data)
|
||||||
f.writelines(html_data)
|
await self.upload_sftp(html_file, server_folder, "index.html")
|
||||||
await self.upload_sftp(html_file, server_folder, "index.html")
|
os.rename(filepath, f"tmp/{new_filename}")
|
||||||
os.rename(filepath, f"tmp/{new_filename}")
|
|
||||||
except:
|
except:
|
||||||
self.bot.logger.exception("Something went wrong in upload_ftp_ai_images")
|
self.bot.logger.exception("Something went wrong in upload_ftp_ai_images")
|
||||||
|
|
||||||
|
|
@ -235,63 +232,62 @@ class PhixxyCom(commands.Cog):
|
||||||
return last_5_messages
|
return last_5_messages
|
||||||
|
|
||||||
async def generate_blog(self):
|
async def generate_blog(self):
|
||||||
if True:#self.upload_enabled.lower() == "true":
|
start_time = time.time()
|
||||||
start_time = time.time()
|
topic = ''
|
||||||
topic = ''
|
filename = f"{self.data_dir}ai-blog/index.html"
|
||||||
filename = f"{self.data_dir}ai-blog/index.html"
|
with open(filename, 'r', encoding="utf-8") as f:
|
||||||
with open(filename, 'r', encoding="utf-8") as f:
|
html_data = f.read()
|
||||||
html_data = f.read()
|
current_time = time.time()
|
||||||
current_time = time.time()
|
current_struct_time = time.localtime(current_time)
|
||||||
current_struct_time = time.localtime(current_time)
|
date = time.strftime("%B %d, %Y", current_struct_time)
|
||||||
date = time.strftime("%B %d, %Y", current_struct_time)
|
if date in html_data:
|
||||||
if date in html_data:
|
return
|
||||||
return
|
blogpost_file = f"{self.data_dir}blog_topics.txt"
|
||||||
blogpost_file = f"{self.data_dir}blog_topics.txt"
|
if os.path.isfile(blogpost_file):
|
||||||
if os.path.isfile(blogpost_file):
|
with open(blogpost_file, 'r') as f:
|
||||||
with open(blogpost_file, 'r') as f:
|
blogpost_topics = f.read()
|
||||||
blogpost_topics = f.read()
|
f.seek(0)
|
||||||
f.seek(0)
|
topic = f.readline()
|
||||||
topic = f.readline()
|
blogpost_topics = blogpost_topics.replace(topic, '')
|
||||||
blogpost_topics = blogpost_topics.replace(topic, '')
|
with open(blogpost_file, 'w') as f:
|
||||||
with open(blogpost_file, 'w') as f:
|
f.write(blogpost_topics)
|
||||||
f.write(blogpost_topics)
|
if topic != '':
|
||||||
if topic != '':
|
self.bot.logger.info("Writing blogpost")
|
||||||
self.bot.logger.info("Writing blogpost")
|
else:
|
||||||
else:
|
messages = self.get_last_5_messages()
|
||||||
messages = self.get_last_5_messages()
|
question = f"you have a blog and you are inspired based on this short text chat interaction:\n{messages}\nwhat will the topic of your next blog be? just tell me the topic and a one sentence description"
|
||||||
question = f"you have a blog and you are inspired based on this short text chat interaction:\n{messages}\nwhat will the topic of your next blog be? just tell me the topic and a one sentence description"
|
self.bot.logger.info("No topic given for blogpost, generating one.")
|
||||||
self.bot.logger.info("No topic given for blogpost, generating one.")
|
topic = await self.answer_question(question)
|
||||||
topic = await self.answer_question(question)
|
post_div = '''<!--replace this with a post-->
|
||||||
post_div = '''<!--replace this with a post-->
|
<div class="post">
|
||||||
<div class="post">
|
<h2 class="post-title"><!--POST_TITLE--></h2>
|
||||||
<h2 class="post-title"><!--POST_TITLE--></h2>
|
<p class="post-date"><!--POST_DATE--></p>
|
||||||
<p class="post-date"><!--POST_DATE--></p>
|
<div class="post-content">
|
||||||
<div class="post-content">
|
<!--POST_CONTENT-->
|
||||||
<!--POST_CONTENT-->
|
</div>
|
||||||
</div>
|
</div>'''
|
||||||
</div>'''
|
title_prompt = 'generate an absurd essay title about ' + topic
|
||||||
title_prompt = 'generate an absurd essay title about ' + topic
|
title = await self.answer_question(title_prompt, model="gpt-3.5-turbo")
|
||||||
title = await self.answer_question(title_prompt, model="gpt-3.5-turbo")
|
prompt = 'Write a satirical essay with a serious tone titled: "' + title + '". Do not label parts of the essay.'
|
||||||
prompt = 'Write a satirical essay with a serious tone titled: "' + title + '". Do not label parts of the essay.'
|
content = await self.answer_question(prompt, model="gpt-4-turbo-preview")
|
||||||
content = await self.answer_question(prompt, model="gpt-4-turbo-preview")
|
if title in content[:len(title)]:
|
||||||
if title in content[:len(title)]:
|
content = content.replace(title, '', 1)
|
||||||
content = content.replace(title, '', 1)
|
content = f"<p>{content}</p>"
|
||||||
content = f"<p>{content}</p>"
|
content = content.replace('\n\n', "</p><p>")
|
||||||
content = content.replace('\n\n', "</p><p>")
|
content = content.replace("<p></p>", '')
|
||||||
content = content.replace("<p></p>", '')
|
|
||||||
|
|
||||||
post_div = post_div.replace("<!--POST_TITLE-->", title)
|
post_div = post_div.replace("<!--POST_TITLE-->", title)
|
||||||
post_div = post_div.replace("<!--POST_DATE-->", date)
|
post_div = post_div.replace("<!--POST_DATE-->", date)
|
||||||
post_div = post_div.replace("<!--POST_CONTENT-->", content)
|
post_div = post_div.replace("<!--POST_CONTENT-->", content)
|
||||||
|
|
||||||
html_data = html_data.replace("<!--replace this with a post-->", post_div)
|
html_data = html_data.replace("<!--replace this with a post-->", post_div)
|
||||||
with open(filename, 'w', encoding="utf-8") as f:
|
with open(filename, 'w', encoding="utf-8") as f:
|
||||||
f.write(html_data)
|
f.write(html_data)
|
||||||
await self.upload_sftp(filename, (os.getenv('ftp_public_html') + 'ai-blog/'), "index.html")
|
await self.upload_sftp(filename, (os.getenv('ftp_public_html') + 'ai-blog/'), "index.html")
|
||||||
run_time = time.time() - start_time
|
run_time = time.time() - start_time
|
||||||
self.bot.logger.debug("It took " + str(run_time) + " seconds to generate the blog post!")
|
self.bot.logger.debug("It took " + str(run_time) + " seconds to generate the blog post!")
|
||||||
output = "Blog Updated! (" + str(run_time) + " seconds) https://ai.phixxy.com/ai-blog"
|
output = "Blog Updated! (" + str(run_time) + " seconds) https://ai.phixxy.com/ai-blog"
|
||||||
return output
|
return output
|
||||||
|
|
||||||
@commands.command()
|
@commands.command()
|
||||||
async def force_blog(self, ctx):
|
async def force_blog(self, ctx):
|
||||||
|
|
@ -371,6 +367,9 @@ class PhixxyCom(commands.Cog):
|
||||||
await ctx.send(output)
|
await ctx.send(output)
|
||||||
|
|
||||||
async def setup(bot):
|
async def setup(bot):
|
||||||
asyncssh.set_log_level(30)
|
if os.getenv("upload_phixxy") == "true":
|
||||||
asyncssh.set_sftp_log_level(30)
|
asyncssh.set_log_level(30)
|
||||||
await bot.add_cog(PhixxyCom(bot))
|
asyncssh.set_sftp_log_level(30)
|
||||||
|
await bot.add_cog(PhixxyCom(bot))
|
||||||
|
else:
|
||||||
|
pass
|
||||||
Loading…
Add table
Add a link
Reference in a new issue