Short: Get rid of most of CTorrent's limitations Author: Hubert Maier (Raziel_Nosgoth@web.de) Uploader: Raziel Type: util/rexx Version: 1.34 (05.12.2007) Replaces: comm/tcp/ProcessTorrent.lha Requires: CTorrent 1.3.4-dnh2, REXX running, AWeb (optional), a Torrent Architecture: generic Usage: From CLI/Shell (rx) ProcessTorrent.rx (name-of-the).torrent (Mark "ProcessTorrent.rx" as S for script to save the "RX"!) From within AWeb as pseudo-plugin: Go to Settings/Browser settings/Viewer Add: WITHOUT the "", of course Type "APPLICATION / X-BITTORRENT" Extensions "torrent" Action "Extl. Program (E)" Name "path-to/ProcessTorrent.rx" (ProcessTorrent.rx must be executeable) Arguments "%f" May as well run from any other browser, did not test, though. *** NEW *** Bugfix release! *** INFORMATION ! *** If you choose to set deletetorrent to YES, than EVERY Break-C will delete the .torrent descriptor aswell! HOW-TO: CON: Output Rather simple to understand ... IF someone explains it to you! ;-) Redirect any output to a defineable window: Your Command >"CON:100/200/300/400/Name the Window/CLOSE" conx="115" Start of window position from the right cony="230" Start of window position from the top conlength="720" Length of the window conheigth="74" Heigth of the window (Will also be used as the value to move the window down) Name the Window: Call me buddy! :-) CLOSE: Makes the close button available on the window (There are many more arguments to give, justcheck your OS manual for it!) Features: - Introduced a new satellite system for the Resume part. Little scripts sent out as soon as a torrent is to be downloaded, sitting in WBStartup, waiting impatiently for a reboot. The first time, they will be called from within ProcessTorrent.rx, all the following instances (crash/reboot), they'll be performed through WBStartup automatically ... and will kill themselves when the download is done! Neat, eh? :-) - Automatic Resume: With help of a little script in WBStartup you are now able to automatically resume a torrent after a reboot (without dealing with the cli/shell everytime!) - The file name length is user defineable. The script will subtract 8 from the given length, so that the descriptor ".torrent" will fit and not cause trouble later on! Minimum would be a length of 13 due to the scripts design. e.g 30 = OFS&FFS; 107 = FFS2; 255 = PFS; 32.000 = SFS - Rips the name from the torrent descriptor and names the file (if there's only one) - Creates (if not available) a subdir (name ripped from the torrent descriptor) if there is more than one file inside the archive. (Path is User definable!) - User definable Torrent(Save)-path, Save-Path, Recovery-Path (lets you resume the download after a crash or pause!), CON:-output defineable Options for CTorrent (stick to the CTorrent manual for this!) - Torrent recovering: Saves the .torrent descriptor, so one don't have to go back to the download site everytime a crash happened or a Break-C was performed. Rips the right name from the .torrent descriptor and saves it with that specific name. (Path is User definable) - Deletes Bad Characters from the file name or dir name, such as :/[]()*?#'|, as they would break the Amiga file/dir structure and the torrent couldn't be saved to disk. (User enhanceable!) - Checks for "printable" ASCII chars, so no ESC commands will remain in Directory or File names. - Respects the descriptor length of single files. i.e. .DivX, .mov etc. are written as is and a second descriptor as in .tar.gz works aswell! - Displays the actual processed torrent's name (dir's name) in the torrent window bar, so the user can see which torrent is being downloaded. The ones that are finished will automatically be closed (and all the garbage that came with ProcessTorrent's script will be deleted aswell) Displays the tracker the torrent comes from in the window bar Displays the size of the tracker as reported by the torrent descriptor - Uses unique port numbers (user definable space) whenever another torrent is started. The Port number stays unique and will be saved for this torrent until it's finished or cancelled. - Automatically moves the window down (the size of user define conheight), if another download is running. The window position stays unique and will be saved for this torrent until it's finished or cancelled. (Windows won't be overdrawn afterwards, rather the already open window will be avoided). (User defineable!) - Pops up a warning requester, if a torrent is processed which doesn't hold any useable data, or in short - a broken torrent ;-) - Deletion of the .torrent descriptor on a user decidable base (ON by default!) TODO: - Suggestions welcome! - Rewrite the HASHTABLECHECK macro (maybe ... i mean, it works) :-) Requests? Known bugs / Missing features: Misc Bugs i can't really do something about: - I stumbled over some rather nasty torrents, which are both big (~60k and up) and VERY slow when it comes to "seeder search". I actually had one where i was searching ages for the bug in my script. Then i tried it without the script, and it drove my system as unuseable sluggish as before. So, if you come across those "buggy" torrents, hands off! (You can easily unveil this torrents, when your CPU load goes up to 100%!) - Files that are wrongly named inside the archives, i.e. DivX as .mpg or vice versa shouldn't be a problem. MPlayer plays them all anyway ;-) - If one presses CTRL-C to cancel a download twice too fast, the commands to delete the .torrent file and the script from WBStartup will BREAK too and thus both files will stay until the next reboot (Although annoying, it's "normal" behaviour due to AREXX not being fast enough) History 1.34 - FIXED: .torrent descriptor wasn't deleted on a resumed torrent - FIXED: Name not passed with single files - FIXED: File name length wasn't calculated correctly - CHANGED: File name length differences handled in the script 1.33 - CHANGED: 32 Bit Icon used (PNG dropped for backwards compatibility) (thanks to ZeroG for pointing it out and for the icon) - CHANGED: Default Tool set to "C:rx" (thanks to Jack for pointing it out) - ADDED: User defineable file name length (OFS, FFS(2), PFS, SFS) - ADDED: | to the Bad Chars for known reasons (it's amazing what some people put in a torrent file/dir name, it's as if they WANT you to get problems afterwards) :-) - ADDED: Displays the Size of the torrent in the window header - FIXED: Possible bug with the WBStartup script (it used the torrent descriptor from the browser's cache - changed to the resumetorrent one) 1.32 - ADDED: ' to the Bad Chars as it would break AREXX's structure and cripple file / directory names - ADDED: Pathetic looking (Glow)Icon for non-PNG users (thanks to ZeroG for pointing it out) - ADDED: Displays the name of the tracker the torrent comes from 1.31 - CHANGED: Reduced x/y start positions of the torrent windows to be "lower resolution" friendly - ADDED: Unique window positions (the window will be moved down it's own height to avoid drawing over earlier incarnations) - ADDED: Checks for screen size to avoid drawing windows "out-of-sight" - FIXED: Unique port numbers now work correctly (it was still possible to end up with two torrents sharing the same port) 1.3 - CHANGED: Switched to CTorrent 1.3.4-dnh2 (http://os4depot.net/share/network/p2p/ctorrent.lha) AmiTorrent may still run (if it features the same set of commands as CTorrent, but i urge everyone to update to the latest available CTorrent port for OS4 - ADDED: A check for already running CTorrent incarnations and the use of a unique port number for every incarnation - ADDED: #, ? and * to the Bad Chars as they break the Amiga DOS COPY command 1.21 - FIXED: Automatic Resume - works with more than one torrent now - FIXED: Bad misbehaviour where one could start the same torrent twice or more and therefore overwrite it's data (leading to a start over again) 1.2 - ADDED: Automatic Resume - Torrent download starts automatically after a crash/reboot - ADDED: Fancy PNG icons both for the script and for WBStartup - CHANGED: Reduced the file/dir name length to 95 + descriptor due to loosing files after download which had too long names (backwards compatibility!) - Made it even more hard to read - say "CLEANING UP" :-) 1.14 - ADDED: () to the BadChars - ADDED: Deletion of a .torrent on a user defined base - ADDED: Check for "printable" ASCII characters - Again CLEANUP (Can't believe how unREADable AREXX can grow) :-) 1.13 - ADDED: ProcessTorrent's own CON: output (finally!) (Thanks to zerohero for pointing it out!) - ADDED: Detection routine and pop-up window for broken torrents - More CLEANUP 1.12 - Some minor CLEANUP 1.11 - FIXED: Descriptor of single files 1.1 - ADDED: New subdir naming - ADDED: BadChar checking and removing - ADDED: Recovery-Path and .torrent saving 1.0 - CHANGED: Completely rewritten AREXX structure 0.1 Internal buggy pre-release