# Umaru.md ## Roadmap - Each version will be separated into feature sets comprising of individual features that will be indicated by checkboxes. - Prefix a task/feature with an uppercase initial enclosed in parentheses to claim or indicate that you are working on it. - Remove the prefix and place an _"x"_ character in between the square brackets **or** click the checkbox on the document render preview to indicate that the task/feature is finished. ### v1.0 - [ ] Comics (manga/manhwa/manhua) chapter or anime episode release notifier - Process of obtaining updates - depending on the source site: web scraping, RSS feed scraper, API, or webhooks to a channel (like [PatchBot](https://patchbot.io/) for game updates) - How to choose a singular result for a singular query from multiple sources? Priority-based depending on site reliability, update frequency, release process? - All or selective (subscribed) updates...? - Notifications for entirely new titles...? - Ensure posting on specific channels (only where enabled) - User/role mentions - [ ] Comics updates - [ ] Manga - [ ] Manhwa - [ ] Manhua - [ ] Anime updates ### v2.0 - [ ] Reverse search image to sauce - [ ] Acquire an image from a message ID (eg. "\<prefix\> sauce -m \<ID\>" or command with image attachment..?) - [ ] Reverse image search and return a single result - [ ] Special roles for succeeding sub thresholds - [ ] Text translator ### v3.0 - [ ] Games..? Cause Umaru-chan also likes to play games, aside from reading manga - [ ] Knowledge/facts - [ ] Todo/Tasklist - [ ] Free Stuff Notifier ### v4.0 onwards - [ ] Website + support Discord - [ ] Sharding and ensuring scalability - [ ] Increasing popularity and bot users - [ ] Profit...? ## Tasks - [ ] Improve logging - [ ] Other assets? - [ ] Web update source list - [ ] Rename...? Because of [another public bot with same name](https://top.gg/bot/700856205274382337), might have implications when we decide to publicize the bot as well - [x] Choose bot command prefix - [x] Command names for features - [x] Umaru bot avatar (PNG) ## Standards and Reminders - Versioning: - _a.b.c_ - a - completed feature set - b - single implemented feature - c - patches, bugfixes, etc. - _./assets/_ - images, avatars, icons, and other media assets - _./config/_ - config files - _./config/secrets.json_ - application secrets - _./config/defaults.json_ - default configuration options, if any - _./config/\<server_ID\>/config.json - server-specific configs - _./lib/_ - custom-made libraries, reusable and helper functions - _./commands/_ - modules of bot features - **NEVER** put application secrets in source code or commit any of it to the remote repository. Request for me to regenerate the app's secret tokens if you have accidentally done so. ## Syntax ```plaintext Terms and shorthands: <> = required sub = subscription msg = message [] = optional res = respond {} = administrator-optional src = source adapt = adaptation avail = availability Basic structure: <prefix><action> [flags] [query] {(u)ser/(r)ole} {(c)hannel} {(n)ote} prefix - "!" flags category - "", "anime", "manga", "manhwa" action - "sub", "unsub" Available query types per category: * anime: words = kissanime.ru * manga: words id = mangaupdates.com (www.mangaupdates.com/authors.html?id=24697) * manhwa words ---------------------------------------------------------------------------- # Administrator only !on {u/r} {c} # enable bot (current channel if unspecified) !off {u/r} {c} # disable bot (current channel if unspecified) !mode # show bot's current mode !mode {mode} # change bot notification mode # ignore - bot won't send any notifications # subonly (default) - bot will only send notifications if # someone from the server is subbed # always - bot will always send notifications, but won't # mention anyone # alwaysplus - bot will always send notifications and # mention everyone subbed !list !list-channels !list-allows !list-subs !stats # show sub statistics !guilds # list all guilds the bot is in !status # show bot status !status {n} # change bot status !prefix # display current prefix !prefix <prefix> # change prefix !reset-all # remove all subs and disable bot (confirm by invoker required) !reset-prefix # Reset prefix to default # Person of Culture role required !mysubs # list user subs !<category> mysubs # narrow search !search # res no_query_any !search <query> # match: res src + adapt avail !<category> search # res no_query_<category> !<category> search <query> # match: res src + adapt avail !sub # same as mysubs !sub <query> # match_one: sub; match_many: react choice !<category> sub # narrow search; same as mysubs !<category> sub <query> # narrow search; same as sub <query> !unsub # same as mysubs !unsub <query> # match_one: unsub; match_many: react choice !<category> unsub # narrow search; same as mysubs !<category> unsub <query> # narrow search; same as unsub <query> !sauce # media in msg: search; else: res no_media !sauce <msg_ID> # media in msg: search; else: res no_media # All roles !help # help page !h # help page !info # bot info !uptime # bot uptime !allow-notifs {u/r} # assign Person of Culture role to access bot ``` ## Required Permissions 1. Read Messages 2. Send Messages ## Links - [Umaru Application Dashboard](https://discord.com/developers/applications/739125903002697739) (not sure if accessible outside my account) - [Discord.js Documentation](https://discord.js.org/#/docs/main/stable/general/welcome) - [Discord.js Quickstart Guide](https://discordjs.guide) - [Discord Permissions Calculator](https://discordapi.com/permissions.html) (for proper bot invite link creation) - [Discord Webhooks Intro](https://support.discord.com/hc/en-us/articles/228383668) --- - All achieved milestones will be moved accordingly to [CHANGELOG.md](https://github.com/Off-by-NaN/Umaru/blob/master/CHANGELOG.md). - This todo will be pushed to the repository every once in a while when updates and/or progress are made.