3.0 KiB
3.0 KiB
TODO
Current
General
- Logging
- Testing
- Any PRAW model that inherits from
praw.PRAWBasehas aparsemethod that could perhaps be used to make fake objects for testing.
- Any PRAW model that inherits from
- GUI
- Create a GUI for configuring and running the bot, and performing other jobs like adding or subtracting points for specific redditors
- Check for updates in the Github repo and prompt user to update
- Github API overview:
- https://developer.github.com/v3/
- https://developer.github.com/v4/
- It turns out that v4 might only be possible with a Github user account to authenticate with the API.
- Useful links:
- Webhooks:
- Github API overview:
- Determine whether and how to check "![Ss]olved" comments have been later
edited to remove the "![Ss]olved" string, and whether and how to remove or
reassign points
- If so, it could do that daily or something.
- This will be especially important if a "recovery mode" is implemented that crawls through the whole subreddit to rebuild the database, since the bot would only be able to see comments that haven't been removed, or the newest version of edited comments.
- This could also just be encouraged through sub rules; e.g. "don't mark as solved until you've actually tried the proposed solution"
- As mentioned in the previous section, implement a recovery mode
File-Specific
bot.py
- Allow mods and/or bot owner to add or remove points from specific users
- Make the algorithm for determining the problem solver more sophisticated
- e.g. check entire comment tree instead of just ignoring if the OP also authored the parent comment
- Ask OP for clarification only if solver cannot be sufficiently determined
- Again, this behavior could also perhaps be better enforced through subreddit rules rather than algorithmically
config.py
- Switch from
tomlpackage totomlkitpackage- Preserves style, comments, etc.
database.py
- Store date for each "!solved" comment
- This basically means storing a link to each "![Ss]olved" comment, and perhaps a link to the submission, although that can be derived as long as the comment doesn't get deleted
- Possibly refactor for a datastore type thing instead of database
- Maybe even make models like Redditor to combine data storage/access with logic, e.g. determining current level