Why this program ¶
ZigzagDownLoader is an extensible, robust and fully controllable download manager with a terminal or, through sockets, with a web interface also suitable for a smartphone format (–socket, –web-ui). It can be integrated to the most popular web browsers (Firefox, Chrome/Chromium and Opera) and to the desktop, using the extension External Application Button and a more friendly graphic interface ( –gui and –path-gui). It was born as a specific Bash script and turned into a downloader manager for Wget, Axel and Aria2 (default downloader), extending to video streaming and file hosting services. integrating with other applications. Today ZigzagDownLoader is also a downloader for IRC/XDCC: the entire download and recovery process is automatic and requires no interaction via CHAT. Moreover, thanks to the adoption of Aria2, ZigzagDownLoader also manages the TORRENT.
ZigzagDownLoader is a lot of things: a server/TCP client useful for a NAS, a command for the terminal, an alternative downloader/download manager and smart for the browser, a graphic application for the desktop ... all this simultaneously and more.
Despite its structural limitations, the language of the Bash proved to be fit for purpose, especially for the flexibility of use in the management of the processes of other programs. Progressive efficiency has been achieved through the development of monolithic scripts in the language of Awk (Gawk). The software also includes interpreters of other languages​(currently: node.js and php, necessary for processing the links of some services), providing support for further extensions and developments. ZigzagDownLoader is, in some ways, a complex example of polyglot programming.
At least four development guidelines ¶
The execution of the downloaders may require assistance: the connection may be interrupted, the IP address change, the downloads get stuck, the names of the downloaded files may not be intelligible or may coincide with others of files already saved, etc. First, ZigzagDownLoader is used to automate the management and recovery of downloads or to simplify any manual interventions. ZDL is designed, above all, for the accelerated download of large files and for the recovery of their URL from information available on the web or provided by the user.
Secondly, automatic management is extended to file hosting, video streaming, torrent and irc/xdcc services: ZDL replaces the user in useless and boring operations, reducing them to the only act of starting the program.
A third goal of the ZDL project is to provide new articulations and methods of use, in order to build interactions between programs and to make potentially unlimited automation possible. Download management can be controlled by separate terminals in different modes. For example, ZDL can be started in daemon mode and controlled in interactive mode. The default startup also offers different ways of interaction and output. Furthermore, ZDL can be integrated and connected with other programs.
Finally, a peculiarity of the ZDL project consists in the search for efficiency and portability: the use of the tools provided by Bash makes it possible to run on hardware with limited capacity and on different operating systems. Designed for GNU/Linux, ZDL is functional also on Windows via Cygwin. It is technically possible to extend its use on other operating systems that support the Bash (for example MacOSX).