diff --git a/Development_Contribution.md b/Development_Contribution.md index c81b9b4..d65a67a 100644 --- a/Development_Contribution.md +++ b/Development_Contribution.md @@ -10,7 +10,6 @@ The following should get you all set up: pip install --requirement requirements.txt --requirement dev-requirements.txt ``` - # Testing There is a few tools that work right out of the box in the root of any branch you're working in. These tools allow you to clone the Apprise branch and immediately test your changes without having to install anything into your environment. @@ -114,5 +113,10 @@ It basically boils down to this: Just avoid conflicting with any function written in `NotifyBase()` and `URLBase()` If your service is really complex (and requires a lot of code), maybe it's easier to split your code into multiple files. This is how i handled the [NotifyFCM plugin i wrote](https://github.com/caronc/apprise/tree/master/apprise/plugins/NotifyFCM) which was based on Google's version. +- Don't be afraid to just copy and paste another already created service and update it for your own usage. + - [plugins/NotifyJSON.py](https://github.com/caronc/apprise/blob/master/apprise/plugins/NotifyJSON.py) is a simple reference you use (not too complicated). + - [plugins/NotifyGitter.py](https://github.com/caronc/apprise/blob/master/apprise/plugins/NotifyGitter.py) is a bit more complicated, but introduces an upstream API interface with attachments. + - [plugin/NotifyFCM](https://github.com/caronc/apprise/tree/master/apprise/plugins/NotifyFCM) is a much more complex design but illustrates how you can build your notification into smaller components. + - All in all.... just have a look at the [plugins directory](https://github.com/caronc/apprise/tree/master/apprise/plugins) and feel free to use this as a reference to help structure and solve your own notification service you might be building You can have a look at the NotifyBase object and see all of the other entries you can define that Apprise can look after for you (such as restricting the message length, title length, handling TEXT -> Markdown, etc). You can also look at how other classes were built.