bchanudet / OctoPrint-Octorant

Discord plugin for OctoPrint
MIT License
26 stars 14 forks source link

Add a full discordbot, which allows using commands to control the printer. #27

Closed cameroncros closed 6 years ago

cameroncros commented 6 years ago

Implement a full discord bot, with ability to control printer from discord. Also done:

Addresses issue #21

cameroncros commented 6 years ago

I understand that you are hesitant to expand the scope of this plugin, to avoid additional load for you. I am happy to help maintain the discordbot and command classes. I havent done any documentation updates yet, but will if you decide you want to merge this in.

bchanudet commented 6 years ago

Hello

First of all, I would like to say I truly appreciate you working on this feature. I will take some time to review the commits, as it seems to be a major overhaul of the plugin.

After a quick glance, I see this going in two different ways:

We merge it into the plugin

I'll make you an official contributor of the plugin and more importantly responsible for the feature and all that goes around it. Supporting it myself is more than what I can do considering the free time I can dedicate to this plugin. However, I am not fond of the proverb "go fast and break things", and I don't want to break people's configurations over an update of the plugin. The new version will need to fully support the current way via the Webhook, whereas your PR suggests removing this configuration to only use the bot way. Also, I think we would need to check the security about it, maybe by adding a setting to make the bot consider commands only if it's coming from an assigned user handle in Discord. To avoid that a channel with 10+ "chatty" people makes the printer confused as to which command it should respond to.

Or you publish your own plugin

After all, this is what the MIT License on this plugin is for. :) It would allow you to quickly gain some users, including the previous users of OctoRant that were disappointed by the lack of such feature, as your plugin will appear in the annoucements on each OctoPrint instances. I can really see having two separate plugin as a good thing, mine is more of a one-way Notifier where yours is more of a full interface between OctoPrint and Discord. This ways, neither of us will feel "under the burden" to support the other way for further evolution and support. And the considerations for security, would you feel a need to it, would be totally up to you. And it will increase the number of plugins for OctoPrint, which is a good thing I think as this software is truly wonderful for managing 3D Printers. If you prefer this way, we can still see if a collaboration on creating like a "core component" that we could both use, even if our outputs are different. But as I don't think there will be a lot more evolution on my side (besides #20 and #11 that I will work on at some point), I don't know if it's truly necessary to over-engineer it.

In the end, I guess it's more up to you to decide if you still want to merge the PR or not. Given the work you accomplished, I'd feel a little ashamed to take implicit credit for it (as it would be in this repository under my name)

I would very much like to hear your feelings on this and how you see it from your side. :)

Cheers!

cameroncros commented 6 years ago

I am happy to do either, and will do whatever you prefer, it is your plugin after all.

cameroncros commented 6 years ago

Im moving forward with releasing it separately as a separate plugin. How would you like to be credited?

bchanudet commented 6 years ago

Hello and sorry for replying so late, work has been crushing me :(

I'm sincerely glad you decided to release it as you own plugin. Seeing the work done, it would have been sad to be restricted to support the simpler way via the WebHook :)

I've seen you already put This is forked from https://github.com/bchanudet/OctoPrint-Octorant. on your readme, and that's all I could ever ask. :)

Please tell me when you publish (well if you decide to) your plugin, I think I'll put a link in my readme so that if people look here for a Discord plugin accepting commands, they'll know where to go.

Wishing you all the best, and thanks for your work!

Cheers

cameroncros commented 6 years ago

Plugin is published: https://plugins.octoprint.org/plugins/DiscordRemote/. I will try to contribute any common changes back as things go.