diff --git a/PlexRequests.Api.Interfaces/IPushbulletApi.cs b/PlexRequests.Api.Interfaces/IPushbulletApi.cs
new file mode 100644
index 000000000..647280aaf
--- /dev/null
+++ b/PlexRequests.Api.Interfaces/IPushbulletApi.cs
@@ -0,0 +1,43 @@
+#region Copyright
+// /************************************************************************
+// Copyright (c) 2016 Jamie Rees
+// File: IPushbulletApi.cs
+// Created By: Jamie Rees
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ************************************************************************/
+#endregion
+using PlexRequests.Api.Models.Notifications;
+
+namespace PlexRequests.Api.Interfaces
+{
+ public interface IPushbulletApi
+ {
+ ///
+ /// Pushes the specified message.
+ ///
+ /// The access token.
+ /// The title.
+ /// The message.
+ /// The device identifier.
+ ///
+ PushbulletResponse Push(string accessToken, string title, string message, string deviceIdentifier = default(string));
+ }
+}
\ No newline at end of file
diff --git a/PlexRequests.Api.Interfaces/PlexRequests.Api.Interfaces.csproj b/PlexRequests.Api.Interfaces/PlexRequests.Api.Interfaces.csproj
index 42a2cfe0c..b76996490 100644
--- a/PlexRequests.Api.Interfaces/PlexRequests.Api.Interfaces.csproj
+++ b/PlexRequests.Api.Interfaces/PlexRequests.Api.Interfaces.csproj
@@ -48,6 +48,7 @@
+
diff --git a/PlexRequests.Api.Models/Movie/CouchPotatoAdd.cs b/PlexRequests.Api.Models/Movie/CouchPotatoAdd.cs
index 2e98a415f..5a2e228b9 100644
--- a/PlexRequests.Api.Models/Movie/CouchPotatoAdd.cs
+++ b/PlexRequests.Api.Models/Movie/CouchPotatoAdd.cs
@@ -19,65 +19,65 @@ public class Rating
-public class Images
-{
- public List disc_art { get; set; }
- public List poster { get; set; }
- public List extra_thumbs { get; set; }
- public List poster_original { get; set; }
- public List landscape { get; set; }
- public string[] actors { get; set; }
- public List backdrop_original { get; set; }
- public List clear_art { get; set; }
- public List logo { get; set; }
- public List banner { get; set; }
- public List backdrop { get; set; }
- public List extra_fanart { get; set; }
-}
+ public class Images
+ {
+ public List disc_art { get; set; }
+ public List poster { get; set; }
+ public List extra_thumbs { get; set; }
+ public List poster_original { get; set; }
+ public List landscape { get; set; }
+ public string[] actors { get; set; }
+ public List backdrop_original { get; set; }
+ public List clear_art { get; set; }
+ public List logo { get; set; }
+ public List banner { get; set; }
+ public List backdrop { get; set; }
+ public List extra_fanart { get; set; }
+ }
-public class Info
-{
- public Rating rating { get; set; }
- public List genres { get; set; }
- public int tmdb_id { get; set; }
- public string plot { get; set; }
- public string tagline { get; set; }
- public string original_title { get; set; }
- public string[] actor_roles { get; set; }
- public bool via_imdb { get; set; }
- public string mpaa { get; set; }
- public bool via_tmdb { get; set; }
- public List directors { get; set; }
- public List titles { get; set; }
- public string imdb { get; set; }
- public int year { get; set; }
- public Images images { get; set; }
- public List actors { get; set; }
- public List writers { get; set; }
- public int runtime { get; set; }
- public string type { get; set; }
- public string released { get; set; }
-}
+ public class Info
+ {
+ public Rating rating { get; set; }
+ public List genres { get; set; }
+ public int tmdb_id { get; set; }
+ public string plot { get; set; }
+ public string tagline { get; set; }
+ public string original_title { get; set; }
+ public string[] actor_roles { get; set; }
+ public bool via_imdb { get; set; }
+ public string mpaa { get; set; }
+ public bool via_tmdb { get; set; }
+ public List directors { get; set; }
+ public List titles { get; set; }
+ public string imdb { get; set; }
+ public int year { get; set; }
+ public Images images { get; set; }
+ public List actors { get; set; }
+ public List writers { get; set; }
+ public int runtime { get; set; }
+ public string type { get; set; }
+ public string released { get; set; }
+ }
-public class Identifiers
-{
- public string imdb { get; set; }
-}
+ public class Identifiers
+ {
+ public string imdb { get; set; }
+ }
-public class Movie
-{
- public string status { get; set; }
- public Info info { get; set; }
- public string _t { get; set; }
- public List releases { get; set; }
- public string title { get; set; }
- public string _rev { get; set; }
- public string profile_id { get; set; }
- public string _id { get; set; }
- public object category_id { get; set; }
- public string type { get; set; }
- public Identifiers identifiers { get; set; }
-}
+ public class Movie
+ {
+ public string status { get; set; }
+ public Info info { get; set; }
+ public string _t { get; set; }
+ public List releases { get; set; }
+ public string title { get; set; }
+ public string _rev { get; set; }
+ public string profile_id { get; set; }
+ public string _id { get; set; }
+ public object category_id { get; set; }
+ public string type { get; set; }
+ public Identifiers identifiers { get; set; }
+ }
}
diff --git a/PlexRequests.Api.Models/Notifications/PushbulletPush.cs b/PlexRequests.Api.Models/Notifications/PushbulletPush.cs
new file mode 100644
index 000000000..d2f63efd1
--- /dev/null
+++ b/PlexRequests.Api.Models/Notifications/PushbulletPush.cs
@@ -0,0 +1,38 @@
+#region Copyright
+// /************************************************************************
+// Copyright (c) 2016 Jamie Rees
+// File: PushbulletPush.cs
+// Created By: Jamie Rees
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ************************************************************************/
+#endregion
+using Newtonsoft.Json;
+
+namespace PlexRequests.Api.Models.Notifications
+{
+ public class PushbulletPush
+ {
+ public string body { get; set; }
+ public string title { get; set; }
+ public string type { get; set; }
+ public string device_iden { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/PlexRequests.Api.Models/Notifications/PushbulletResponse.cs b/PlexRequests.Api.Models/Notifications/PushbulletResponse.cs
new file mode 100644
index 000000000..eda3c41c7
--- /dev/null
+++ b/PlexRequests.Api.Models/Notifications/PushbulletResponse.cs
@@ -0,0 +1,48 @@
+#region Copyright
+// /************************************************************************
+// Copyright (c) 2016 Jamie Rees
+// File: PushbulletResponse.cs
+// Created By: Jamie Rees
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// ************************************************************************/
+#endregion
+namespace PlexRequests.Api.Models.Notifications
+{
+ public class PushbulletResponse
+ {
+ public bool active { get; set; }
+ public string iden { get; set; }
+ public double created { get; set; }
+ public double modified { get; set; }
+ public string type { get; set; }
+ public bool dismissed { get; set; }
+ public string direction { get; set; }
+ public string sender_iden { get; set; }
+ public string sender_email { get; set; }
+ public string sender_email_normalized { get; set; }
+ public string sender_name { get; set; }
+ public string receiver_iden { get; set; }
+ public string receiver_email { get; set; }
+ public string receiver_email_normalized { get; set; }
+ public string title { get; set; }
+ public string body { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/PlexRequests.Api.Models/PlexRequests.Api.Models.csproj b/PlexRequests.Api.Models/PlexRequests.Api.Models.csproj
index 2255291fe..402d1192a 100644
--- a/PlexRequests.Api.Models/PlexRequests.Api.Models.csproj
+++ b/PlexRequests.Api.Models/PlexRequests.Api.Models.csproj
@@ -31,6 +31,10 @@
4
+
+ ..\packages\Newtonsoft.Json.8.0.2\lib\net45\Newtonsoft.Json.dll
+ True
+
@@ -43,6 +47,8 @@
+
+
@@ -58,6 +64,9 @@
+
+
+