Releases: adamyeager/PushbulletSharp
3.1.0
PushbulletSharp 3.0!
PushbulletSharp version 3 is packed with tons of updates! Full support for End-to-End Encryption, Ephemerals, Chats, and the Event Stream.
End-to-End Encryption is baked into the PushbulletSharp Client. To get encryption support there is a new PushbulletClient constructor that has an additional field for the encryption password. This will be the password you put on your devices (as outlined in Pushbullet’s API documentation this password must be the same on all devices). The new constructor will automatically generate the PBKDF2 key using HMAC-SHA256. There is a static EncryptionUtility class that you can leverage if you’d like, but it is not necessary (you can just use the client and go). Sending encrypted Ephemerals can be done by using the PushEphemeral method. It has an optional boolean parameter called “encrypt.” Setting that to true will automatically encrypt your ephemeral for you as outlined by Pushbullet’s API documentation. It’s automatic; the client takes care of the encryption.
Ephemerals are finally supported. If you look at the github repo there are example unit tests that show how to use them in your application. https://github.com/adamyeager/PushbulletSharp/blob/3.0.0/PushbulletSharp.Tests/EphemeralTests.cs
Chats are also supported. Example unit tests are posted on github. https://github.com/adamyeager/PushbulletSharp/blob/3.0.0/PushbulletSharp.Tests/ChatsTests.cs
And finally I’ve built an example console application showing how to connect to Pushbullet’s Event Stream. What you choose to do in your application with the pushes and tickles is up to you. I utilized websocket-sharp on nuget.
Thank you to the users who have been opening issues on github. It’s very helpful and pushes me to update this project.
Hotfix for PushResponseFilter's Active property
There was a bug with the PushResponseFilter's active property when converting it's value to the API query string. The bool was converted to string which had a value of "True". Pushbullet's API is expecting "true".
2.3.2
Another hotfix by github user @DriesPeeters:
I fixed a bug regarding getting pushes using the Modified attribute. In the old code, the modified unix time string was not in the correct timezone. The modified attribute for the request needs to be in UTC time. In the old code, this is not always the case.
I also added a test that will normally fail with the old code, and that will succeed in the fixed code.
The test pushes a note, waits for some time, then pushes a new note. After that, we get all pushes that are modified since we pushed the first note.
As always, thank you very much to all users who help out with this project!
Hotfix for 2.3.1
After some debugging I found that the Pushbullet API does not work with comma characters in the modified_after field. Since this field can be a double value, and in Belgium the default conversion of a double to a string contains a comma, I changed the double to string conversion code in the getPushes method.
Reproduction of the error:
- Change your laptop's region setting to 'Dutch (Belgium)'
- Use a non integer DateTime value (as I added in the unit test)
- Execute the GetPushesAllSince unit test
- You will get the error above
Done to fix the issue:
Changed the Culture of the conversion to InvariantCulture.
Limitless!
This minor update is thanks to GitHub user @DriesPeeters. Dries added a limit property to the PushResponseFilter. See the GetPushesWithLimit unit test in the PushTests class for an example on it's use. Thanks again to everyone who contributes to this project!
Hotfix 2.2.1
This fix corrects issues when trying to push via ChannelTag. Small update to the User object as well (now includes MaxUploadSize and Preferences).
Added client_iden & channel_tag fields to push requests
This update was made by @Mitch528 via a pull request. It adds ClientIden and ChannelTag properties to the push base class.
Minor update to the GetPushes
Minor update to the GetPushes method. The PushResponseFilter object now how a property of Email to filter by sender email when getting pushes. Email filtering will also work with cursors.
Client.GetPushes
This new version fixes issues with the Client.GetPushes method. The PushResponseFilter has been updated so that ModifiedDate and Active an now nullable and not reqired. PushResponseFilter also has a Cursor property. PushResponseContainer also has a Cursor property on it now. Please look at the PushbulletSharp.Tests area to see how to use the updated Client.GetPushes method. The PushTests class contains 4 tests: GetPushesAllSince, GetPushesNotesAndFilesSince, GetPushesAll, and GetPushesAllWithCursor. This should point you in the right direction to get up and running.