too much to remember, mostly refactoring/enhancing/changing/re-doing/re-writing stuff
This commit is contained in:
+7
-7
@@ -6,8 +6,8 @@ from macros import *
|
||||
import json
|
||||
|
||||
|
||||
BK_WEEKLY: Final[str] = "bk_weekly_art_posts"
|
||||
BK_WEEK: Final[str] = "bk_week"
|
||||
RE_DATA_POSTS: Final[str] = "posts"
|
||||
CFG_DATA_RE: Final[str] = "reddit"
|
||||
|
||||
|
||||
class Bot:
|
||||
@@ -22,7 +22,7 @@ class Bot:
|
||||
useragent: str =\
|
||||
f"{username} by u/RandomPersonDotExe aka u/Byte_Dice"\
|
||||
if r_id == "YmZjr4zLr2qtHdpQXtj0sBOOdJzrXQ"\
|
||||
else f"{username} (original program by u/RandomPersonDotExe aka u/Byte_Dice)"
|
||||
else f"{username} (Original program by u/RandomPersonDotExe aka u/Byte_Dice)"
|
||||
|
||||
if password is None:
|
||||
py_error("Environment variable \"ASSISTANT_R_PASS\" is null!")
|
||||
@@ -57,11 +57,11 @@ class Bot:
|
||||
|
||||
async def update_cfg_str(self, new_cfg: str) -> bool:
|
||||
json_cfg = json.loads(new_cfg)
|
||||
self.sr = await self.r.subreddit(json_cfg[BK_WEEK]["subreddits"])
|
||||
self.fetch_limit = json_cfg[BK_WEEK]["fetch_limit"]
|
||||
self.sr = await self.r.subreddit(json_cfg[CFG_DATA_RE]["subreddits"])
|
||||
self.fetch_limit = json_cfg[CFG_DATA_RE]["fetch_limit"]
|
||||
return True
|
||||
|
||||
async def update_cfg(self, new_cfg: dict) -> bool:
|
||||
self.sr = await self.r.subreddit(new_cfg[BK_WEEK]["subreddits"])
|
||||
self.fetch_limit = new_cfg[BK_WEEK]["fetch_limit"]
|
||||
self.sr = await self.r.subreddit(new_cfg[CFG_DATA_RE]["subreddits"])
|
||||
self.fetch_limit = new_cfg[CFG_DATA_RE]["fetch_limit"]
|
||||
return True
|
||||
+6
-7
@@ -6,7 +6,7 @@ import data
|
||||
import posts
|
||||
|
||||
|
||||
BOT_ACTION_POSTFIX = "\n\n^(I am not an AI, I am just a bot. This action was performed automatically by the way.)"
|
||||
BOT_ACTION_POSTFIX = "^(I am not an AI, I am just a bot. This action was performed automatically by the way. You can report bugs and view my source code [here](https://github.com/ByteDice/ByteDiceAssistant)!)"
|
||||
|
||||
|
||||
async def make_cmd(cmd: str, bot: botPy.Bot) -> str:
|
||||
@@ -29,7 +29,7 @@ async def respond_to_mention(bot: botPy.Bot) -> bool:
|
||||
|
||||
py_print(f"New mention: {truncated}")
|
||||
|
||||
if await is_cmd("bk_week_add", body, bot):
|
||||
if await is_cmd("add_post", body, bot):
|
||||
await bk_week_add(mention, bot)
|
||||
|
||||
else:
|
||||
@@ -57,17 +57,16 @@ async def bk_week_add(mention: models.Comment, bot: botPy.Bot):
|
||||
short_url = mention.submission.shortlink
|
||||
|
||||
r = ""
|
||||
bd = bot.data[botPy.BK_WEEKLY]
|
||||
# TODO: ask if the messages should be changed
|
||||
bd = bot.data[botPy.RE_DATA_POSTS]
|
||||
if short_url not in bd:
|
||||
posts.add_post_url(bot, short_url)
|
||||
r = "Successfully added this post to the data!"
|
||||
|
||||
if short_url in bd and is_mod:
|
||||
if "removed" in bd[short_url]:
|
||||
r = "(Mod action) Successfully un-removed this post from the data!"
|
||||
r = "[MOD ACTION] Successfully un-removed this post from the data!"
|
||||
else:
|
||||
r = "(Mod action) Successfully added this post to the data!"
|
||||
r = "[MOD ACTION] Successfully added this post to the data!"
|
||||
|
||||
post = await posts.from_url(bot, short_url)
|
||||
post_data = posts.get_post_details(post[1])
|
||||
@@ -77,5 +76,5 @@ async def bk_week_add(mention: models.Comment, bot: botPy.Bot):
|
||||
r = "Could not add this post to the data. Luckily, it's already there, so there's nothing to worry about!"
|
||||
|
||||
|
||||
await mention.reply(r + " Thank you for participating!" + BOT_ACTION_POSTFIX)
|
||||
await mention.reply(r + " Thank you for participating!" + "\n\n" + BOT_ACTION_POSTFIX)
|
||||
await mention.mark_read()
|
||||
+16
-16
@@ -79,8 +79,8 @@ def read_data(bot: botPy.Bot) -> bool:
|
||||
with open(os.path.join(DATA_PATH, "re_data_preset.json", "r")) as f:
|
||||
data_preset_json = json.load(f)
|
||||
|
||||
data_preset_json[botPy.BK_WEEKLY].pop("EXAMPLE VALUE", None)
|
||||
data_preset_json[botPy.BK_WEEKLY].pop("EXAMPLE VALUE DELETED", None)
|
||||
data_preset_json[botPy.RE_DATA_POSTS].pop("EXAMPLE VALUE", None)
|
||||
data_preset_json[botPy.RE_DATA_POSTS].pop("EXAMPLE VALUE DELETED", None)
|
||||
|
||||
with open(r_path, "w") as f:
|
||||
json.dump(data_preset_json, f, indent = 2)
|
||||
@@ -126,7 +126,7 @@ async def read_cfg(bot: botPy.Bot) -> bool:
|
||||
|
||||
def add_post_to_data(bot: botPy.Bot, new_data: PostData, bypass_conditions: bool = False) -> bool:
|
||||
if bypass_conditions:
|
||||
bot.data[botPy.BK_WEEKLY][new_data.url] = new_data.to_json()
|
||||
bot.data[botPy.RE_DATA_POSTS][new_data.url] = new_data.to_json()
|
||||
if bot.args["dev"]:
|
||||
py_print(f"Added post \"{new_data.url}\" (Conditions bypassed)")
|
||||
return True
|
||||
@@ -134,14 +134,14 @@ def add_post_to_data(bot: botPy.Bot, new_data: PostData, bypass_conditions: bool
|
||||
# not sure what this is for
|
||||
updated = False
|
||||
|
||||
if new_data.url not in bot.data[botPy.BK_WEEKLY] or updated:
|
||||
bot.data[botPy.BK_WEEKLY][new_data.url] = new_data.to_json()
|
||||
if new_data.url not in bot.data[botPy.RE_DATA_POSTS] or updated:
|
||||
bot.data[botPy.RE_DATA_POSTS][new_data.url] = new_data.to_json()
|
||||
if bot.args["dev"]:
|
||||
py_print(f"Added post \"{new_data.url}\"")
|
||||
return True
|
||||
|
||||
if "removed" not in bot.data[botPy.BK_WEEKLY][new_data.url]:
|
||||
updated = new_data.upvotes != bot.data[botPy.BK_WEEKLY][new_data.url]["post_data"]
|
||||
if "removed" not in bot.data[botPy.RE_DATA_POSTS][new_data.url]:
|
||||
updated = new_data.upvotes != bot.data[botPy.RE_DATA_POSTS][new_data.url]["post_data"]
|
||||
|
||||
else:
|
||||
py_print(f"Failed to add post \"{new_data.url}\": Removed flag is True.")
|
||||
@@ -149,15 +149,15 @@ def add_post_to_data(bot: botPy.Bot, new_data: PostData, bypass_conditions: bool
|
||||
|
||||
|
||||
def set_approve_post(bot: botPy.Bot, approved: bool, url: str) -> bool:
|
||||
if not hasattr(bot.data[botPy.BK_WEEKLY][url], "removed"):
|
||||
bot.data[botPy.BK_WEEKLY][url]["approved"]["by_human"] = approved
|
||||
if not hasattr(bot.data[botPy.RE_DATA_POSTS][url], "removed"):
|
||||
bot.data[botPy.RE_DATA_POSTS][url]["approved"]["by_human"] = approved
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def remove_post(bot: botPy.Bot, url: str, removed_by: str = "UNKNOWN", reason: str = "None") -> bool:
|
||||
weekly = bot.data[botPy.BK_WEEKLY]
|
||||
weekly = bot.data[botPy.RE_DATA_POSTS]
|
||||
|
||||
if url in weekly:
|
||||
weekly[url] = {
|
||||
@@ -173,7 +173,7 @@ def remove_post(bot: botPy.Bot, url: str, removed_by: str = "UNKNOWN", reason: s
|
||||
|
||||
def remove_old_posts(bot: botPy.Bot, max_age: int) -> bool:
|
||||
now = int(time.time())
|
||||
weekly = bot.data[botPy.BK_WEEKLY]
|
||||
weekly = bot.data[botPy.RE_DATA_POSTS]
|
||||
remove: list[str] = []
|
||||
|
||||
for url, post in weekly.items():
|
||||
@@ -194,10 +194,10 @@ def set_vote_post(
|
||||
from_dc: bool = False,
|
||||
remove_vote: bool = False,
|
||||
) -> bool:
|
||||
if url not in bot.data[botPy.BK_WEEKLY]:
|
||||
if url not in bot.data[botPy.RE_DATA_POSTS]:
|
||||
return False
|
||||
|
||||
votes = bot.data[botPy.BK_WEEKLY][url]["votes"]
|
||||
votes = bot.data[botPy.RE_DATA_POSTS][url]["votes"]
|
||||
re_voters: set[str] = set(votes["voters_re"])
|
||||
dc_voters: set[int] = set(votes["voters_dc"])
|
||||
mod_voters: set[int] = set(votes["mod_voters"])
|
||||
@@ -214,8 +214,8 @@ def set_vote_post(
|
||||
return False
|
||||
target_voters.add(user)
|
||||
|
||||
bot.data[botPy.BK_WEEKLY][url]["votes"]["voters_re"] = list(re_voters)
|
||||
bot.data[botPy.BK_WEEKLY][url]["votes"]["voters_dc"] = list(dc_voters)
|
||||
bot.data[botPy.BK_WEEKLY][url]["votes"]["mod_voters"] = list(mod_voters)
|
||||
bot.data[botPy.RE_DATA_POSTS][url]["votes"]["voters_re"] = list(re_voters)
|
||||
bot.data[botPy.RE_DATA_POSTS][url]["votes"]["voters_dc"] = list(dc_voters)
|
||||
bot.data[botPy.RE_DATA_POSTS][url]["votes"]["mod_voters"] = list(mod_voters)
|
||||
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user