Short: GUI HTTP search/download, ADF/DMS writer Author: Timm S. Müller Uploader: tmueller@neoscientists.org Type: comm/www Version: 1.5 Architecture: m68k-amigaos Lubricator [Webdiskwriter] --------------------------------------------------------------------- Author: Timm S. Müller See copyright notices for httpclient.library and xdms below. Lubricator is a combined GUI and command-line tool that allows you to search, download and unarchive files, and to write disk images directly from the internet via HTTP to disks on your Amiga. It works fine on machines with just a 68000 CPU and very little memory. Supported disk image formats are ADF and DMS. Also supported is the unpacking of LHA and ZIP archives, and the creation of bootable disks for running executables. Included in the GUI is an Aminet and Pouët search facility. Lubricator can deal with simple HTML files and display the links e.g. from a web server's directory listing. This tool's primary goal is to make it as convenient as possible to watch demos (including trackmos) from the real machine, so you can easier resist the temptation of clicking on internet videos, or ending up in an emulator. The idea is to eliminate the need for a 'companion PC' for downloading and unpacking files even on very small Amigas. Requirements: 68000 CPU, Kickstart 2.x (v37), bsdsocket.library v3, httpclient.library v4 (included) Every Amiga can be connected to the network: - Use for example a PCMCIA network adapter (A600, A1200), - or Plipbox or an ACA500/X-Surf-500 for the Amiga 500, - or a Zorro-II/III network card on an A2000/3000/4000. Good TCP/IP stacks for 68000 Amigas are Roadshow and AmiTCP. AmiTCPv4 is also part of the X-Surf-500 software package. Lubricator should also work with the demo version of Roadshow, and the freely downloadable AmiTCPv3 from Aminet. HTTPS and FTP downloads (as well as Pouët and Aminet searches) are redirected to a web application running on a server in my vestibule. So if you download from an URL with the https:// scheme, the download is not really encrypted all the way to your computer, I am man-in-the-middle. But you can set up your own search and download server - see below. Installation: Not strictly required - can run with httpclient.library in the current directory. To install, copy httpclient.library to LIBS:, and Lubricator whereever you want. For the unpacking feature, the commands lha and unzip are expected in the path. Note on Unzip: I tried unz550xA.lha from Aminet. Unzip reports errors for no other reason than an unset timezone (TZ) env variable. See timezone.doc in the Unzip archive. TL;DR: to silence errors from Unzip, set e.g. central european time as follows: # setenv TZ "MET-1MEST" # copy ENV:TZ ENVARC: GUI usage: Self-explanatory, unless noted otherwise. Small button captions: "R" - Reload "H" - Homepage (see below for specifying a homepage) Click the cycle button by default showing 'Index' to get to the 'Pouët' and 'Aminet' search facilities. Doubleclick on items in the list to invoke their default action (e.g. Unarchive, Write, Download). Menus: - "Run Executable..." allows you to quickly launch an executable from the download directory. This was also necessary because unzip doesn't seem to set the executable bit - this function does it automatically for you. - "Suggest Random Demos..." uses the Pouët search to suggest a random bunch of demos. - "Open Index file..." - to open a local 'amindex' file (see below). - "Make Disk from Executable..." - this function performs a quick format on a disk, copies an executable on it, and makes it bootable. This can greatly improve the chances to get a filedemo running. - Bookmarks: Up to nine bookmark entries (edited in icon tooltypes). Command-line usage: Writing a disk image to disk: # lubricator WRITE http://some.host/some.adf TO df0: (Warning: Disk writing starts immediately!) Downloading a file: # lubricator GET http://some.host/some.file # lubricator GET http://some.host/some.file TO filename Writing a local DMS file: # lubricator WRITEDMS hallo.dms to df0: Icon Tooltypes: - The startpage URL can be changed in the icon tooltype 'STARTPAGE'. - There are two devices for writing disk images, by default df0: and df1:. These can be changed using the icon tooltypes 'DEVICE0' and 'DEVICE1'. It might be a good idea to assign a virtual floppy to the second device. See for example fmsdisk.device from Aminet. RAD: works too. - 'DOWNLOADDIR' - default location for saving files. - 'CREATEICONS' - Enable this tooltype to create drawer icons for unpacked archives. - 'NUMLINES' - Number of lines in the main listview. Default: 12 - 'NOAGA' - Specify this option to remove AGA-only releases from search results. - 'BOOKMARK1' ... 'BOOKMARK9' - Bookmarks available through the bookmarks menu. - 'SEARCHPROXY' - set the search proxy. - 'DOWNLOADPROXY' - set the download proxy. - 'HTTPPROXY' - set the HTTP proxy (rarely needed nowadays). Default: none - 'FACILITIES' - list of search facilities, separated by commas, default: "Pouët=pouet,Aminet". A search facility is an arbitrary name sent to the search proxy as an additional argument. It is up to the search proxy to ignore or implement it. Each facility can be preceded by an alias delimited by an equal sign, to be shown in the GUI. In any case, the facility name will be turned to lowercase when sent to the search proxy. With 'SEARCHPROXY' and 'FACILITIES' you can set up your own search server. For example, you could append the facility ",gAMEZ=games" to the client's facilities and let your server implement the "games" facility to perform a specialized search. HTML and index files: Lubricator can deal with simple HTML files and display links e.g. from a web server's directory listing. Special index files (dubbed 'amindex') use a simplified format that can contain downloads and links to other addresses, so you can build a web. If you are interested in writing your own indexes, download an index file as an example, edit it, and save it locally or upload it to your webserver. Changelog --------------------------------------------------------------------- 1.5 - Did not use the download proxy in command-line, corrected; improved documentation; random demo suggestion did not select the 'pouet', but the first search facility, corrected; added doubleclick on mainlist actions; added 'Accept' header, added Lubricator as User-Agent; now requires httpclient.library v4 1.4 - Added FACILITIES 1.3 - Corrections in handling of the URL field; configurable search, download and http proxies; when NOAGA is specified, caches are always disabled when starting an executable, otherwise prompts user; "Suggest Random Demos" improved; more meaningful error messages for connection and proxy failures; more verbose executable disks 1.2 - Corrected handling of URI paths without trailing slashes; dramatically improved compatibility when running executables, especially from disk; running executables and making bootable disks from executables with spaces in their filenames corrected; now correctly reports disk errors on read/write/download disk images 1.0 - Improved documentation, some minor bugs fixed 0.93 - Added bookmarks menu; fixed possible illegal memory access during tooltype parsing; improved filetype and html content detection; link texts are now shortened if necessary; passing an URL in the command-line works (again) 0.92 - Fixed crash when clicking 'Cancel' on unpacking DMS to disk; reduced memory consumption; improved path handling, improved error reporting; file downloads can be aborted 0.91 - Added Iconify function; added NUMLINES and NOAGA tooltypes, removed NOASYNC tooltype 0.90 - Bugfix in devicename handling; reduced memory consumption; cleanup 0.89 - Added 'suggest random demos' function; DMS unpacker in 'heavy' mode slightly optimized in assembler 0.88 - Added CREATEICONS tooltype; DMS unpacker optimized in assembler a bit; some fixes and cleanup 0.87 - DMS archives can now be unpacked directly from HTTP to disk, without downloading before. httpclient.library updated to v3.0. 0.86 - Added a function to create a bootable disk for running an executable 0.85 - The DMS unpacker is now integrated, faster, and requires less memory. xdms and the PIPE: handler are no longer needed. 0.84 - Added support for downloading from https and ftp. 0.83 - Added async disk writing and NOASYNC tool type option. 0.82 - For known archives, the default action is now "Unarchive". Progress displays no longer overwrite the link field, but are now shown in the former Type field. Many minor bugs and quirks fixed. 0.81 - added support for writing ADF and DMS from menu and command-line. 0.80 - added unpacking lha, zip, and dms. 0.79 - added rudimentary HTML browsing capabilities. 0.73 - you can now enter an URL in the link field directly, too 0.72 - added VERBOSE option, fixed a crash in property management, link field is now editable, allowing the user to change the link. Added autorewrite to http in search proxy for scene.org servers 0.7 - added proxy support; added httpclient.library 2.1, which fixes some proxy issues 0.6 - added device tooltypes, home button 0.5 - added some Pouët and Aminet search support 0.4 - added some command-line support, added icon, icon tooltype, progress display, abort writing 0.3 - initial version xDMS --------------------------------------------------------------------- Maintainer: Heikki Orsila Author: Andre Rodrigues de la Rocha xDMS is released as public domain software. You can spread it, modify it and do anything with it without even asking first. But the author(s) would like to know if you do something cool with it. httpclient.library - HTTP client Amiga shared library --------------------------------------------------------------------- (c) 2018-2021 individual Computers Jens Schoenfeld GmbH Based on HTTPClient 1.1 by Eitan Michaelson. HTTPClient's original MIT License is reproduced below: Copyright (c) 2006 Eitan Michaelson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.