Complete change of Found Content Window system to use listview object (could be a while off, see how the current system goes)
DCC stat tracking to analyze which bots give you the fastest transfers
Create media library database - make Hush know what user wants to get, and get the next item for them - did this, but will change to use sqlite database instead
Click and drag to highlight text in KVIrc then select "Add to Hush Searches" from context menu - don't know how to achieve this
Searches Import Related
Timer to periodically look at external sources for new titles
Library Related
Automated extraction of files from TAR/RAR archives on download completion
Add auto extract/move support for Linux systems
Create database of "past items" so that you can delete media from your hard drive and it will not be downloaded again, mostly for when you have watched stuff and want to delete it but don't want the [planned] automated acquisition system to grab it again.
Instant Search Related
Idea: options for when you dont know what to look for, kind of like Google "I'm feeling lucky". Or something to show "hot packs"
Transfer Management
Add a timer that periodically checks the current and/or average speed of active downloads and decides whether or not to terminate them
Create a system that tracks and displays stats about active transfers
Similar to above, create widget that lets you see the download hash or the download queue. This will probably progress into a whole new UI for Hush.
xdcc object class
xdcc object needs a timer in the constructor so that it can keep monitoring the transfer progress, update values, echo stuff to user etc.
Create option for Hush to ignore DCC file transfers. This will make it possible to request packs from multiple systems [slaves], but have them sent to one particular system [master]. Slaves will ignore DCC file transfers and the master will recieve them all.
UI
Create a widget somewhere for active transfers to see % complete and file category in drop down box
Complete UI redo
Revisit all the ZNC and FCW messages and possibly construct an option that lets you select which messages you want to see.
Known Issues:
DCC avatar transfers will send a "XDCC CANCEL" message to remote user if "Stop download if filename is wrong" option is ticked - this is normal behaviour for what the script is meant to do. If you want to be able to catch when a bot sends an incorrect file (because it has changed the pack number of the file you want) this option does that. THe down side is that there's no way for me to determine if a DCC is related to Hush or not so Hush will act on all DCC transfers if this option is ticked.
There is a bug where an xdccobject's status disappears. (ie: the xdccobject::info{"status"} key and value doesn't exist) Not sure what causes this. So far I've found it happened to a file that had a 'Connection reset by peer' failure and then a retry attempt. The auto download system got stuck there and the xdccobject's status value was gone.
Some ZNC Push messages don't go through. Don't know why? Maybe it's too many, too fast.
Seems to start more transfers than the maximum limit - Many of the conditions that cause this to happen have been addressed but there are so many possibilities that can lead to either too many downloads or the download system stopping incorrectly that the fixes for this are an ongoing bug hunt.
If you upgrade Hush, it always seems to throw a red error of some variety saying "The left side of the scope operator evaluated to a null object reference"
Pretty sure this is because the main Hush object gets destroyed and the upgrade procedure doesn't create a new Hush object. If you get this happening, just
press Ctrl+Alt+H and it should be fine.
KVIrc will "freeze" or got to "Not Responding", mouse inputs are halted etc. when Hush triggers its passive search. This is most noticable if you have a lot of passive searches and I can't find any way to prevent this. You can increase the time between passive searches in Options to reduce how often it occurs.
Bugfix - Auto downloads greater than 1 now looks for a transfer from a different searchTerm to prevent auto downloading multiple copies of the same file at the same time. (experimental and in testing)
Media Library - Added support to tell Plex Media Server to scan its media library manually through settings, or automatically after new content is moved into the local media library location.
v0.3.6 - 20181017
Bugfix - Fixed silence watched channels option, wasn't working correctly
Bugfix - Fixed a few option toggles that weren't implemented in code
Media Centre - Added ability to update media centre device video library. Only works for Kodi devices up to version Krypton. Untested with Kodi Leia version but the wiki says the HTTP update method doesn't work for Leia.
Passive Search - altered code so that items found by passive search shown in the FCW log can be clicked later on even if an automatic download that matches those files took place and succeeded
Transfer Management - handle requests to offline bots (RAW401 handler))
Transfer Management - improved handling of onQueryNotice messages from bots when request gets queued or rejected etc.
Transfer Management - added toggle option for all automatic downloads to use SSL or not
Transfer Management - added toggle option for automatic Media Centre update on completed download
v0.3.5 - 20181003
Instant Search - tried using external sqlite client but makes minimal difference to UI freezes on database write. Up to 1500 announce entries is where UI lag begins. Altered Instant Search settings in Options to make max value 500 entries, 50 step increments for spinbox.
Instant Search - changed harvester code to reduce CPU usage. Substantial improvements
Instant Search - added zerofilling of packSize and packGets columns so that sorting works correctly
Media Library - added code to automatically identify which category a file most likely should be, category is tagged onto the end of particular messages in the FCW
Media Library - added code to automatically move video files to appropriate media library folder based on category (tested OK)
Media Library - completed Library Options widget. Access via Media Library button on main window.
Media Library - scan to find names of movies and TV shows already existing in user's collection
Media Library - auto scan of media library on KVIrc startup
Options - Bugfix: fixed import and export of settings to file. These weren't working properly.
Options - Removed Smart Mode toggle option - if you want to refind items using passive search you should press the Clear Haystack button in Options -> Basic
Passive Search - Changed passive search code to use Hush SQLite database and timer to improve performance and lower system load.
Passive Search - "Smart mode" (doesn't repeatedly show the same packs) is always employed for passive searching now and passive searching always obeys search exceptions. Instant searching can ignore search exceptions.
Passive Search - Conversion of passive searching, automated downloads and automated file move into media library locations (TV and Movies only) code to new "hushDownloadHash" system instead of the old "xdccObs" array system.
Searches - Searches list is now sorted alphabetically so it's easier to find a search term.
Searches Import - added feature to import passive searches from an external source.
Searches Import - added IMDB Advanced Search/List as an external source type
Searches Import - added IMDB Calendar as an external source type
Searches Import - import compares sourced titles against those found in the media library to prevent finding and auto-downloading content we already have
Startup - Bugfix: fixed red error tripped by onDCCTransferSuccess when hush::searches object is not created on KVIrc start up
Transfer Management - Additional message when transfers finish (fail or success). Added ZNC Push of transfer complete messages
Transfer Management - Attempts to realize when a bot sends an incorrect pack to you. This is currently a crude implementation which will probably block any transfers that aren't initiated by Hush (that can be a good thing though), so needs more work later. (experimental)
Transfer Management - Automatic cancel of passive DCC transfers (detected by port 0) option added (experimental))
Transfer Management - Automatic increment of TV show episode value in Searches list on successful download
Transfer Management - Automatic removal of non-TV episode searches (movies, music, software, files etc.) from Searches list on successful download
Transfer Management - Bugfix: adjust conditions for logic flow so auto transfers dont get stuck with queued item waiting
Transfer Management - Bugfix: added onDCCSession* event handlers to deal with incoming transfer of a file that already exists and is fully downloaded (tested Good)
Transfer Management - Bugfix: added code to create all hush objects when toolbar icon is clicked to prevent red error on DCC transfer success event after code has been modified and rebuilt
UI - Added options to toggle new features
UI - Added incoming DCC directory setting to Media Library interface
UI - General UI tweaks/changes
v0.3.4 - skipped
This version was never released.
v0.3.3 - 20180421
Instant Search - fixed Age values to show in local time
Instant Search - Added Search Exception obedience to status bar. Small animation in status bar if a search returns 0 results while search exception obedience is on to suggest the user might want to search again with it turned off for broader results.
Bugfix - install process creates hush::main object to prevent red error after upgrade of Hush
Transfer Management - Handle failed DCC transfers (invoked by Hush only) and decide whether to retry download of file. If user cancels transfer, retries are not done.
Transfer Management - Queue requests if maximum number of Hush transfers already happening. Automatically request next queued request when file transfer completes.
Transfer Management - Automatically request file when a passive search is found. Deals with filenames that differ but match the search term and decides what to do looking at file transfer status. (In testing)
UI - Added new Options tab 'Transfers'. Allows user to configure transfer options.
v0.3.2 - 20180313
Added a couple more onQueryNotice handling values for when you get queued for a transfer.
Instant Search will obey search exceptions, toggle added in Options
Added an instant search query box on the main Hush window so you can instant search from there
Instant search query box on main window will disappear/appear depending on the option to disable/enable instant search
Bugfixes - Options windget wouldn't open, Instant Search database wouldn't get records saved in it on Windows
v0.3.1 - 20180306
Added Instant Search - search for content [very close to] instantly and locally. Transmits nothing to the IRC server when you search, but allows you to find and request content quickly compared to the original passive search.
Started Media Library - hidden at the moment but the base elements are there. Probably needs a rewrite already to use database instead.
DCC Event Handlers - Adjusted some code in the DCC event handlers for the Instant Search.
Added Instant Search Options - tabs now split options into categories.
UI tweaks - adjusted the size and properties of some widgets to try to make them display a little better by default.
v0.3.0 - 20170517
Added ZNC Push support - you can now have your search matches pushed as a notification to your mobile device (requires ZNC and configured ZNC Push module)
Added ZNC *push query window prevention - stops the *push query window from appearing in the channel tree. (Note: this stops it from appearing all the time! If you want to use the *pusy query window, disable the option in Hush Options)
Improved search and search exception alteration code - search and search exception changes are applied immediately instead of when the searches window is closed.
Added episode value reset button on Searches window - click the reset episode button to set the episode value in highlighted search items back to 01. Useful when a season ticks over.
v0.2.9 (Bourbon Release) - 20170414
Debug toggle added - go to Options window and press 4444 to toggle debug mode on and off
Make main window slightly bigger vertically (50 pixels) - because Hush works on various platforms, you may want to resize the windows to make them look better.
Make Options window slightly bigger vertically (30 pixels)
Add season/episode value de/increment buttons on Searches window
Changed functions that display Hush child widgets (Channels, Searches, Options windows) so that windows' sizes and positions are remembered
Update Help file
Hush object is created on KVIrc startup now so you don't need to click the toolbar button to get Hush going in the background after restarting KVIrc
Added option to silence watched channels - hides all messages shown in watched channels (most users block these messages)
If something doesn't work for this release, it's the bourbon's fault!
Prevent Hush from outputting messages if there are no searches or channels in its settings (hopefully)
Added search exceptions - prevent false positives appearing in the FCW by setting search exception strings
Added Enter/Return key support for channel, search and exception input fields. You can press enter to add your channels etc. now
Added Delete & Backspace key support for channel, search and exception list boxes. You can highlight items and press Delete or Backspace key to remove them now.
Fixed bug when removing multiple items from channels/searches lists
Changed hush::xdccObject to hush::xdccobject - perhaps capitalization is creating the second xdccobject class?
Disabled all onQueryNotice handlers (all slots full, bot not online message handling) until the xdccobject system works better
Added more debug code
v0.2.7 - 20170219
Added handling of "all slots full" from bot on pack request - better user feedback
Added handling of "bot is not online" notice - better user feedback
Changed minimum required version of KVIrc to 4.9.2 - required for $dcc.currentSpeed() function
User prompted option to not remove config file on script uninstall
Upgrading script now will preserve existing config file if user chooses to
Changed source filenames to default filename on export
v0.2.6 - 20170207
Added handling of "invalid pack number" from bot on pack request - better user feedback (only for channels that send invalid pack message)
Improved request tracking in case of DCC timeouts, failures etc. User is given feedback about DCC transfers in the FCW.
v0.2.5 - 20170121
Fixed icon error generated by onChannelMessage event handler 'hilights'
Unset haystack array and close Found Content Window on uninstall
Aesthetic improvements of GUI
Improve readability in Found Content Window - changed layout, improved hilights code for more flexible layout
Use SSL DCC option shows both regular DCC and SSL DCC request link in Found Content window
v0.2.4 - 20170108
Added ability to export your settings to a file on disk (if you want to back up all your settings, move to another machine etc.)
Make clear haystack button give some feedback
Added ability to load your settings from a file on disk - note that Hush doesn't bother verifying if the file you import is a proper KVC (KVIrc Config) file. If the file is no formatted correctly, the config load function just won't change any settings in Hush.
Fixed Linux compatibility issues - fixed toolbar icon not loading, fixed help files not installing
v0.2.3 - 20161231
This version:
Improved compatibility with KVIrc Addons system
About, Help and Change Log buttons do not load an external HTML page via http any more (some users considered this a security risk), moved to local copies and integrated into the KVIrc internal help system (F1 in KVIrc)
Added default config file (required for uninstaller)
Uninstall of Hush via Settings -> Manage Addons (Ctrl+Shift+N in KVIrc) addon manager will remove entirely all of Hush content and variables from memory. NOTE! If you uninstall Hush, it will remove your config file and you lose all watched channels and search settings.
v0.2.2 - 20161228
This was the initial release of Hush.
This version:
Added Smart Mode
Added SSL Send support - static for all channels/networks, needs to recognize which channels support SSLDCC