Why was PostyBirb Rewritten?
At the beginning of 2019 I decided to completely rewrite PostyBirb. Most of the coding was finished in three months, and has been in bug testing thanks to the help of individuals in the community Discord.
My reasoning for rewriting the application entirely was spurred on by a few reasons.
My reasoning for rewriting the application entirely was spurred on by a few reasons.
- More people were hoping to contribute, but I felt that it required too much knowledge of the file structure for outsiders to be able to help easily.
- There were many features that users wanted to see implemented, but due to the way PostyBirb was originally implemented some features were practically impossible to do. With a better understanding of Electron, I was able to better support these features, as well as improve on old ones.
- The structure of PostyBirb had changed so many times that it caused there to be lots of patchwork code. This also brought on some hard to fix bugs that only happened to a few users.
- There were features that I personally wanted to add that were not easy to do with the existing code.
How To Upgrade
Upgrading is easy. All you have to do is manually install v2.x.x. Eventually all v1.x.x versions of PostyBirb will try to update to v2.x.x, but I want to give users time to update manually.
Templates and Pending Submissions
Unfortunately, the data structures between v1.x.x and v2.x.x are incompatible. This means that any templates you have will be lost.
I know that this sucks, especially for long time users who may have experienced this a few times already in the past, but creating templates is now easier so hopefully it shouldn't take too long to replace the old ones.
This also means that any Pending Submissions will also no longer share so I suggest clearing your queue before updating.
I know that this sucks, especially for long time users who may have experienced this a few times already in the past, but creating templates is now easier so hopefully it shouldn't take too long to replace the old ones.
This also means that any Pending Submissions will also no longer share so I suggest clearing your queue before updating.
So What is Different?
You may be asking if it is worth updating.
My hope is that the changes listed below will be enticing enough to convince you to update!
Note: Some features may be missing below if I forgot about it.
My hope is that the changes listed below will be enticing enough to convince you to update!
Note: Some features may be missing below if I forgot about it.
New Websites
Two new websites have been added to PostyBirb's ever-growing list.
Ko-fi
Support has not been added for Gold member features yet.
Piczel
Ko-fi
Support has not been added for Gold member features yet.
Piczel
User Interface Changes
The user interface has been changed (long term users might be groaning since this is UI change #4 I think). The UI still has a similar format to the old one so it shouldn't be too hard to pick up.
Performance
Some users reported experiencing lag, especially when preparing lots of submissions at once. While the testing that I have done is a bit limited, PostyBirb should experience less laggy input overall.
Login Profiles
To be honest, when I implemented the ability to create account profiles in v1.x.x it was poorly thought out, and more of a proof of concept. You couldn't even really rename them because of how limited they were. And to add to the awkwardness you had to manage multiple windows. Now, you can manage, create, update, set as default, and delete profiles more easily within one application window.
Filter Websites
You can filter out websites that you don't care about from the list of visible websites.
Saved Submissions / Submission Queue Removed
The intermediate step of saving a submission has been removed. In general, this feature was awkward at best, and seemed to cause confusion. Now all changes that you make to a submission form are immediately saved. From there you can schedule it or tell it to post immediately. The posting queue now shows up below your list of editable submissions.
Performance
Some users reported experiencing lag, especially when preparing lots of submissions at once. While the testing that I have done is a bit limited, PostyBirb should experience less laggy input overall.
Login Profiles
To be honest, when I implemented the ability to create account profiles in v1.x.x it was poorly thought out, and more of a proof of concept. You couldn't even really rename them because of how limited they were. And to add to the awkwardness you had to manage multiple windows. Now, you can manage, create, update, set as default, and delete profiles more easily within one application window.
Filter Websites
You can filter out websites that you don't care about from the list of visible websites.
Saved Submissions / Submission Queue Removed
The intermediate step of saving a submission has been removed. In general, this feature was awkward at best, and seemed to cause confusion. Now all changes that you make to a submission form are immediately saved. From there you can schedule it or tell it to post immediately. The posting queue now shows up below your list of editable submissions.
Submission Form Changes and Updates
Vertical Forms
Users expressed that they preferred a more vertical layout to the forms, so it has been made vertical once more. No more janky stepper for you!
Form Validation
A big mistake that existed throughout v1.x.x is that validation was 100% tied to the forms themselves. This caused issues, and made it hard to directly specify why the form wouldn't let you save for some edge cases (e.g. tag requirements). Forms should now be more explicit as to why the submission is not yet ready to post.
Selecting a Profile
You can now select a login profile for a submissions, letting you specify exactly which set of accounts it will post to.
Thumbnails
The file size limit has been increased on thumbnails. Additionally, selecting a thumbnail now lets you manually crop it if you want.
Also, you can specify websites to ignore the thumbnail you set.
Templates
You can now apply templates to individual sections of a submission form! This means that if you want the websites from Template 1, and the description from Template 2 you can easily do this! All old template functionality also still exists.
Website Selection
The old design decision to not allow a website to not be removed when it is offline/not logged in was actually a very poor decision. This caused many submissions to fail to post because users could not remove these offline websites from the list... unless you were me and knew some tricks to get around it.
Now, you can select/deselect a website in the submission forms regardless of login status! While you still won't be able to set options and such due to reasons, users will no longer get stuck with submissions that are tied to down websites (I'm looking at you SoFurry).
Users expressed that they preferred a more vertical layout to the forms, so it has been made vertical once more. No more janky stepper for you!
Form Validation
A big mistake that existed throughout v1.x.x is that validation was 100% tied to the forms themselves. This caused issues, and made it hard to directly specify why the form wouldn't let you save for some edge cases (e.g. tag requirements). Forms should now be more explicit as to why the submission is not yet ready to post.
Selecting a Profile
You can now select a login profile for a submissions, letting you specify exactly which set of accounts it will post to.
Thumbnails
The file size limit has been increased on thumbnails. Additionally, selecting a thumbnail now lets you manually crop it if you want.
Also, you can specify websites to ignore the thumbnail you set.
Templates
You can now apply templates to individual sections of a submission form! This means that if you want the websites from Template 1, and the description from Template 2 you can easily do this! All old template functionality also still exists.
Website Selection
The old design decision to not allow a website to not be removed when it is offline/not logged in was actually a very poor decision. This caused many submissions to fail to post because users could not remove these offline websites from the list... unless you were me and knew some tricks to get around it.
Now, you can select/deselect a website in the submission forms regardless of login status! While you still won't be able to set options and such due to reasons, users will no longer get stuck with submissions that are tied to down websites (I'm looking at you SoFurry).
Journals / Status Updates
Inkbunny Removed
Inkbunny was removed from allowing Journals. I know this is lame, but the way it was working before only worked half of the time, and really wasn't a supported way of doing it. Once it is supported by their official API it will be added back in. If you really want it, try poking them on their support page and maybe it'll come out faster.
Hentai Foundry Added
Hentai Foundry was added to the list of supported websites for journals.
Scheduling
Yes! By popular demand, scheduling of journal posts is now supported.
More Visible
Journal submission forms are much more similar to how Submission forms look.
They also show up in the same sidebar now so managing them should be much easier.
Inkbunny was removed from allowing Journals. I know this is lame, but the way it was working before only worked half of the time, and really wasn't a supported way of doing it. Once it is supported by their official API it will be added back in. If you really want it, try poking them on their support page and maybe it'll come out faster.
Hentai Foundry Added
Hentai Foundry was added to the list of supported websites for journals.
Scheduling
Yes! By popular demand, scheduling of journal posts is now supported.
More Visible
Journal submission forms are much more similar to how Submission forms look.
They also show up in the same sidebar now so managing them should be much easier.
Description Formatting
New Format: BBCode to HTML
The new default description format is no longer BBCode. It is now HTML. If you want, the text editor still lets you customize it yourself.
Description Templates
The new text editor (TinyMCE) supports saving of custom description blocks that you can insert into descriptions.
Currently you cannot delete these, but an effort will be made in the future to try and support this.
Font Size Removed
Unfortunately, I opted to remove font-size selecting. I had to write a custom BBCode converter, and having a font-size made it more complicated.
Better Website Compatibility
An effort has been made to support each website's custom encoding.
Markdown is now better supported for websites that use it (FurryNetwork).
Derpibooru and e621 now use some of their custom description stuff (e.g. links).
More Username Shortcuts
More websites now support username shortcuts (e.g. :twminnownade: for Twitter).
Newgrounds
Newgrounds now uses HTML.
The new default description format is no longer BBCode. It is now HTML. If you want, the text editor still lets you customize it yourself.
Description Templates
The new text editor (TinyMCE) supports saving of custom description blocks that you can insert into descriptions.
Currently you cannot delete these, but an effort will be made in the future to try and support this.
Font Size Removed
Unfortunately, I opted to remove font-size selecting. I had to write a custom BBCode converter, and having a font-size made it more complicated.
Better Website Compatibility
An effort has been made to support each website's custom encoding.
Markdown is now better supported for websites that use it (FurryNetwork).
Derpibooru and e621 now use some of their custom description stuff (e.g. links).
More Username Shortcuts
More websites now support username shortcuts (e.g. :twminnownade: for Twitter).
Newgrounds
Newgrounds now uses HTML.
Posting
No More Double Posts
In theory, it should no longer be possible for PostyBirb to post the same file two or more times to a website.
Failure Messages
Some websites should now provide more explicit reasons as to why they failed to post.
Failed Posts
A post should no longer immediately fail for all websites if one in the middle fails.
Post Logs
Post logs are now easier to read.
Tracking Posted URLs
Although not all websites support this, PostyBirb will try to track the list of URLs that are associated with successful posts. These can be found listed in the Logs section.
Additionally, websites that use Source URLs will try to use these links when available if they have not been explicitly set by the user (I think this only applies to Derpibooru and e621 right now).
In theory, it should no longer be possible for PostyBirb to post the same file two or more times to a website.
Failure Messages
Some websites should now provide more explicit reasons as to why they failed to post.
Failed Posts
A post should no longer immediately fail for all websites if one in the middle fails.
Post Logs
Post logs are now easier to read.
Tracking Posted URLs
Although not all websites support this, PostyBirb will try to track the list of URLs that are associated with successful posts. These can be found listed in the Logs section.
Additionally, websites that use Source URLs will try to use these links when available if they have not been explicitly set by the user (I think this only applies to Derpibooru and e621 right now).
Dedicated Template Form
There is now a tab where you can create, update, and compose templates without having to do it from a submission.
Bulk Submission Editing
There is now a tab where you can edit one form and bulk apply it to submissions.
This only works for non-journal submissions.
This only works for non-journal submissions.
Miscellaneous Updates
This section details minor changes and updates to portions of PostyBirb that don't quite fall into a definable category.
DeviantArt
The category select in DeviantArt options now will list the past 5 unique categories that you have selected underneath it. You can click on it to automatically choose it.
Mastodon
Setting spoiler text now marks the image (if provided) as a spoiler too.
Patreon
Patreon now supports Additional Images.
Websites That Don't Support Multi-image Submissions
PostyBirb will now provide a button than you can press for submissions that have additional images selected. This will create new submissions for you that will post to the websites you have selected that do not support additional images.
Independent Submission File References
PostyBirb now saves a copy of any file you are posting. This means that you can now move, update, rename a file you used in the application without it breaking things when the application cannot find the file.
Default Titles
A newly created submission will have its title set to the file name.
Sleep Mode Posting
Although completely untested, PostyBirb should work a bit better when posting scheduled submissions while the computer is in sleep mode. This uses a feature in Electron that tries to stop the operating system from suspending the application process when in sleep mode.
OAuth Code Encryption
Website OAuth codes such as Twitter, which are only stored locally on the machine are now encrypted. The encryption isn't super strong, but it is better than just having them be visible as plain text like they were before. This only would matter if someone stole your computer.
Framework Updates
Angular has been updated.
Electron has been updated. These updates patch out security vulnerabilities that have been found in Chrome.
DeviantArt
The category select in DeviantArt options now will list the past 5 unique categories that you have selected underneath it. You can click on it to automatically choose it.
Mastodon
Setting spoiler text now marks the image (if provided) as a spoiler too.
Patreon
Patreon now supports Additional Images.
Websites That Don't Support Multi-image Submissions
PostyBirb will now provide a button than you can press for submissions that have additional images selected. This will create new submissions for you that will post to the websites you have selected that do not support additional images.
Independent Submission File References
PostyBirb now saves a copy of any file you are posting. This means that you can now move, update, rename a file you used in the application without it breaking things when the application cannot find the file.
Default Titles
A newly created submission will have its title set to the file name.
Sleep Mode Posting
Although completely untested, PostyBirb should work a bit better when posting scheduled submissions while the computer is in sleep mode. This uses a feature in Electron that tries to stop the operating system from suspending the application process when in sleep mode.
OAuth Code Encryption
Website OAuth codes such as Twitter, which are only stored locally on the machine are now encrypted. The encryption isn't super strong, but it is better than just having them be visible as plain text like they were before. This only would matter if someone stole your computer.
Framework Updates
Angular has been updated.
Electron has been updated. These updates patch out security vulnerabilities that have been found in Chrome.
Public Code
All code has been made 100% public.
The repository that is used to build the application for releases is from the public Github repo.
The authentication server code has been rewritten and can also be found on Github.
The repository that is used to build the application for releases is from the public Github repo.
The authentication server code has been rewritten and can also be found on Github.
Removed Features
Some of the features listed below that have been removed from PostyBirb may be added back in the future.
Inkbunny Journal Posts
As stated above, this was removed because it isn't directly supported by their API.
Title Truncation Warnings
A submission form will no longer show that a title will be truncated if a selected website has a max size requirement less than the given title length.
Inkbunny Journal Posts
As stated above, this was removed because it isn't directly supported by their API.
Title Truncation Warnings
A submission form will no longer show that a title will be truncated if a selected website has a max size requirement less than the given title length.