Error: Macro TracNav(MainNav) failed
not all arguments converted during string formatting

Appendix: Future Possibilities

The described application structure allows endless possibilities for future improvements without the fear of feature/code bloat. Below are few ideas which features could the additional modules provide, to give an example of the future possibilities:

  • A remote central database which collects metadata and hashes extracted by the hasher classes of the main core application. The module would scan the local extracted hash/metadata lists on certain intervals, and submit the data to a central remote database. From there, the same plugin would be able to retrieve the hashsets. This would eventually allow retrieval of a checksum of any file from any network, provided that a checksum of the file on one network is known. Additionally, this would allow easier retrieval of metadata, decreasing the amount of fakes floating around on file-sharing networks.
  • General purpose plugin that fetches data and inserts them into the Hydranode core with new downloads. The plugin first stores a list of RSS feeds in the form of URLs and a timer on how often to check them. No RSS feeds need checks more often then every 30 minutes, for most, 1 hour is enough, 6 hours is more appropriate. An RSS feed contains list of links, which can be any kind of links used throughout various P2P networks, but can also be HTTP or FTP links. The plugin could also have a list of filters, which can be used to select in or select out different content. For example, the plugin could select out anything containing "sex" and "xxx", but select in anything containing "Linux". The filters should be fully configurable, with regex searches and so on. Filters could be arranged in groups, contain (if possible) also filters for file sizes, and detection if the file in question had already been downloaded previously. These filter groups can then be activated and deactivated on a per feed basis or for all feeds together. Possible extensions could be for series recognizing if an episode was found already and so on.
  • E-mail/ICQ/SMS notifications on various events, like completed downloads, out of disk space errors and similar. Could be configured to send the entire list of downloaded files during past X hours/days to given email address, mailing list, ICQ account or similar.
  • A plugin for "regular" downloading protocols, like HTTP and FTP. This way the users can use the same application for all of their downloads, no matter whether they come from filesharing networks, FTP or HTTP protocols. Since the application features smart bandwidth sharing functionality, it would be highly useful to also use it for other downloads to more fairly distribute the available network bandwidth.
  • A feature that would allow remotely downloading files originally downloaded to host computer by Hydranode. While the files are already shared and uploaded to the connected file-sharing networks, this feature would act more like a built-in FTP server - you could remotely connect to your connect through some interface, and directly download the file from the computer running Hydranode. The uploading bandwidth required for sending the file in question could be fully configurable, either to full available bandwidth, or to some segment of the bandwidth, depending on users preference.
  • Related to the above, a module could provide an IRC interface for controlling the Hydranode core. Basically it could be an IRC bot, which would allow the user to monitor their downloads by messages over IRC. Likewise, new downloads could be added through the same IRC bot. Also, the bot could provide feature to send the files completed on host computer to the user over DCC send.
  • With the plugins above, one could set up the Hydranode core to be fully automatic - except one missing thing. Sooner or later, the host computer will run out of disk space. Thus one additional plugin is needed: CD/DVD burner plugin, which would be capable of detecting incoming directories size and content, organize the downloaded files to similar content (mp3's from same artist, episode of same season/series) and so on, and then burn those files to CD's or DVD's. This would naturally require an external CD/DVD-ROM feeder which inserts the disks as necessary. This way, could set up the application with a bunch of blank disks and automatically selecting lists of which content the application downloads, and leave the host computer for several months. You could have a pickup guy gather the burned disks every time the amount reaches 30 disks (the SMS-notification plugin could send the required notification), and have them delivered to your actual physical location!

<prev|next>