Trail Of Light

Content:

  • XDMP, a quick intro
  • Installation Guide
  • Getting Started
  • The Main Interface
  • Adding Downloads
  • Setting Channels
  • Setting Preferences & Scheduler
  • License, Support & Shortcomings

Site Navigation:

  • Home
  • XDMP

XDMP, a quick introduction


XDMP is an XChat plugin that allows you to manage your downloads from the IRC network. XDMP is specifically tailored to work with the popular DCC file transfer protocol.


XDMP offers many features that allow you to have a good sharing experience while using the massive IRC network. Some of the features of XDMP are:

  • Internally managed queue by sender so as not to overflow sender queue
  • Scheduler to set up start and stop of downloads and even shutting down your PC
  • Ability to set mutliple download requests in one go
  • Ability to resume/redownload old files
  • History logs

Note: XDMP is a download manager and hence like all download managers is not responsible for what you choose to download with it.



UPDATE: XDMP v1.2 now always multiple formats of download commands. So in case you used the previous version run the command /upgrade_xdmp in xchat before running XDMP.

Installation Guide


UPDATE: XDMP v1.2 now always multiple formats of download commands. So in case you used the previous version run the command /upgrade_xdmp in xchat before running XDMP.


First of, to run XDMP you need to have XChat installed on your PC. XChat is a free IRC client (as in freedom and as in beer ;) ) that can be installed on either your Windows or Linux machine. To download XChat please click here.


Second, you need to extract the XDMP archive into the correct directories.

  • For Linux: extract the files xdmp.so and xdmp.glade into /<your home directory>/.xchat2
  • For Windows: extract the files xdmp.dll and xdmp.glade into C:\Documents and Settings\<your home directory>\Application Data\X-Chat 2. Also download this archive and extract it under the folder win32-support-dlls into your XChat program directory (normally C:\Program Files\xchat)

Third, you need to load the plugin into XChat in order to be able to use it. There are two options to do this.

  1. Automatic loading: This option will allow XChat to load the XDMP plugin every time you start. This is the recommended option if you choose to use XDMP on a regular basis. To allow for this option, do the following.
    • For Linux: copy the file named xdmp.so into /usr/lib/xchat/plugins
    • For Windows: copy the file named xdmp.dll into the plugin folder in your XChat program directory (normally C:\Program Files\xchat)
  2. Manual loading: This option will allow you to choose when to load XDMP for usage. The downside is that every time you want to use XDMP you have to manually do these steps again.
    1. Start XChat
    2. Go to the Window Menu
    3. Click on Plugins and Scripts
    4. Click on the Load button in the newly opened dialog
    5. Navigate to where you extracted the archive and select the file xdmp.so or xdmp.dll (depending on your OS)
    6. Now you can close the Plugins and Scripts dialog

Fourth and finally, you need to give XDMP access rights to shutdown your PC if you want to use this feature; do note that this step is optional. To give these rights you need to do the following:

  • For Linux: You need to allow your user account to run the shutdown command. This can be done either by allowing everyone execute access to this command (most would point this is not the best method) or by giving yourself access rights to execute the command. Many articles on the internet can help you achieve either.
  • For Windows: This option depends on the rights of XChat and hence may not yet work in Windows

Getting Started


It is recommended that you go through the whole help manual before using XDMP so that you are aware of how it works and what it requires as input and even of its shortcomings. However, this part will guide you through using XDMP to download your first file.


  1. Start XChat
  2. Make sure that you have enabled Auto Accpet transfers for XChat in the XChat Preferences window (under File Transfers). If you are worried about security check the Set Preferences & Scheduler section
  3. In the network tab type in /start_xdmp and click enter as shown in the image
  4. When the main interface of XDMP appears, click on the button New File
  5. In the dialog, enter the file you wish to download in the correct format. You can create formats in the advanced section. By default the following formats exist.
    • !<user nickname> <file name>.
    • /ctcp <user nickname> xdcc send <packet number>/<file name>
    • /msg <user nickname> xdcc send <packet number>/<file name>
    Also if you know the channel of the user you are requesting from it might be better to put it. Once done click Ok.
  6. Now click on the Start button on the main interface of XDMP.
  7. Depending on the size of your download and the queue at the sender's side you might want to go have a cup of tea or something :).

Once the download has started you would be able to see it in the Active Downloads tab as well as in XChat's File Transfers window. Once the file is done it will appear in today's log under Completed Downloads in the History tab.


The Main Interface


XDMP interface has been designed to be as intuative as possible while still offering alot of features. The main interface of XDMP is show in the below image



  • Toolbar:
  • Start: The start button allows XDMP to start processing your download requests. Note that the scheduler would not work until you press the start button
  • Stop: The stop button will instantly stop all downloads that are queued in the session. This means that all active downloads will be queued and that downloads not yet requested would remain that way. Also all downloads that are queued at the sender's side would be aborted as soon as the sender attempts to send them. Note if you close XDMP then any downloads that are queued at the sender side will not be aborted once they are sent to you.
  • New File: The new file button would allow you to either add a single download to your list or to load a file containing multiple download requests. To see how to add downloads click here.
  • Channels: The channels button allows you to set the user channels. Although it is optional most users tend to prefer that you request files from them in the channel they are found at. Do respect the rules of the senders. To see how to edit the user channels click here.
  • Advanced: The advanced button takes you to a dialog where you can set the preferences for XDMP as well as set the scheduler options. To see how to set the preferences and scheduler click here.
  • About: The about button gives you some info about XDMP as a tool.

  • Current Session Files Tab:

The current session files tab shows you the files that would be scheduled during this run of XDMP once you click the Start button. Every file name has a checkbox to its left which allows you to suspend a file. Clicking suspend for a file would immediatly abort that file if it is being uploaded, take it out from the queue if it has not been requested, or abort it when it is sent from the sender. Note that all suspended files are directly found in the Unfinished Files tab.


  • Unfinished Files Tab:

XDMP saves in its configuration all the attempted downloads that were done but were unfinished. XDMP considers unfinished files to span all interrubted, queued but unrequested, requested but not served and suspended files. Every time you start up XDMP all those unfinished files would be viewable in the Unfinished Files Tab. For every file in this list you have two checkboxes to its left. The Delete checkbox would delete the file form the unfinished files list so next time when you start XDMP you will not see that file in the tab. The Download checkbox would set the file to be downloaded in this session and would add the file to the Current Session Files tab.


  • Active Downloads Tab:

The active downloads tab shows you the files that are currently being downloaded.


  • Failed Downloads Tab:

The failed downloads tab shows you the files which were requested but were not downloaded and whose sender did not respond with info about the file being queued.Note: A file is considered a failed file if it has been requested a predefined number of times (set in the preferences) and in each time the sender did not give any response or send the file. Also failed files continue to be sent requested but at a lower frequency then non-failed files.


  • History Tab:

The history tab shows you chronologically the list of files that were completed and those with errors (error files are those which the sender does not have). The list is shown as a tree structure with the most recent history at the top. Expanding a date will give you a view of the two branches which when expanded show the file names.


Adding Downloads


As mentioned earlier, in order to download an unfinished file you need to go to the Unfinished Files tab and click on the Download checkbox. On the other hand if you wish to add a new file you need to click on the New File button in the toolbar. This remainder of the section will take you through the specifities of adding a new file or files for downlaod.



  • Single File:

To add a single new file for download you have to select the Single Download radio button. Now you can enter data into the enabled text inputs. In the download command you need to enter the command that will initiate the download and which should have one of the following predefined formats (or you could define your own).

  • !<user nickname> <file name>.
  • /ctcp <user nickname> xdcc send <packet number>/<file name>
  • /msg <user nickname> xdcc send <packet number>/<file name>

The command is generally given to you by the sender. Also as previously mentioned, do respect the sender and enter a channel name especially if they prefer being asked through a channel. Note you can not yet download from users whose servers require different commands, for more info click here. Note: Do not forget the file name it is very important


  • Multiple Files:

To add multiple new files for download you have to select the Upload List radio button. Now you can use the Browse button to select the file which contains your list of downloads. The file containing should adhere to the following rules:

  1. All file download commands should have one of the previously mentioned formats or a format already defined by you in a previous session.
  2. Every download command should be on a separate line which ends with a newline
  3. The file should end at the last download command. Make sure there are no empty trailing lines.

Setting Channels


As mentioned earlier, many senders on IRC prefer it if you request files from them on a channel rather than through a private chat; some even refuse to send you the data if you ask them in a private chat. For that reason, XDMP offers you the choice of setting a channel for each sender. There are three methods by which you can set a sender's channel.

  1. As mentioned in the previous section, Adding Downloads, you can always set a sender's channel when you try to enter a single file download in the optional Channel entry.
  2. Click on the Channels button in the toolbar and use, as explained below, the dialog to enter the sender's channel.
  3. Once you click on the Start button in the toolbar, XDMP will check that all current session downloads have channels set for their senders. If it finds that a channel is empty, it will check if you would like to set the channel and if you choose to, then it would provide you the the channel's dialog.


As is seen from the image above, the channels dialog is pretty straight forward. In order to edit/set a sender's channel, simply write the IRC Channel Name (ie it has the format #<whatever>) and then click on the Add Channel? checkbox.


Setting Preferences & Scheduler


XDMP tries to provide you with as much flexibility as possible by giving you the chance to set the internal parameters used by it. To keep XDMP user-friendly, the options were grouped into two categories: Scheduler and Preferences. To be able to set these options, you need to click on the Advanced button in the toolbar


  • Preferences tab

    The options that are found in this tab are as follows:

    • Number of times a file is retried: This defines the number of times a file is retried before it is considered a failed file. Note failed files are still requested but at a much lower frequency than files that have not failed.
    • Wait time in minutes before retrying a file: Since some sender's take some time to respond (fewer still choose not to respond and directly send you the file) it is important you keep enough tolerance in this value which is why the lowest value here is 5.
    • Number of simultanously requested files per user: This defines the limit number of files to be put at the sender's queue. Note if the sender's own queue limit is less than this value than XDMP will take into account the sender's queue limit and bypass this value. Also if the sender's queue is larger than this limit and no more downloads from other senders are left in XDMP, then XDMP will go over this limit and queue more file for that sender.
    • Number of active downloads: This is a very soft parameter due to the nature of queueing on both the sender and reciever sides. This number will attempt to keep the number of active downloads below the specified number.
    • Period in seconds to check status: This parameter defines the period at which XDMP will check whether to add new downloads, save data to file and do general status checking.
    • Period in seconds to check status: This parameter defines the period at which XDMP will check whether to add new downloads, save data to file and do general status checking.

  • Scheduler tab

    The options that are found in this tab are as follows:

    • Shutdwon PC when all downloads are done: This would allow XDMP to shutdown your PC when all current session files have either been downloaded or found not to exist at the sender's side.
    • Set a start time: This will allow you to set a time when XDMP will start to download the files set in its current session. Note you need to click the Start button in the toolbar in order for XDMP to be able to use this feature.
    • Set a stop time: This will allow you to set a time where XDMP will abort all active downloads, flush the current session queue and make sure that any files that have been requested but not yet sent will be aborted once the sender initiates the send. Note XDMP needs to be running if you want it to abort the files that might be sent.
    • Shutdown PC at stop time: This option will shutdown the PC when the stop time is recieved. Obviously this option is only available if you choose to set a stop time.

    Note: Once you choose to set the start/stop time the respective date and time settings will become enabled. To change the date click on the button beside it and then double click on the date that you want. To change the time, you need to click on the left-side arrows if you wish to increase/decrease the hours and on the right-side arrows if you wish to increase/decrease the minutes.

  • Download Commands tab
    Help data will be added shortly.

License, Support & Shortcomings


XDMP is a tool that was built primarily for a personal need. I made the choice to write it in a way that is extendible, understandable and user-friendly, however I do not make the claim that I have succeeded. So The section offers some explanations of how I tend to try and get to those goals.


  • License

    Copyright ©2008 Mackram G. Raydan.

    This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    Of course, you know what that means you are free (as you should be) to modify, upgrade and use XDMP the way you want.


  • Support

    To ask for help, to send feedback or to ask for features you can always send me an email to support(@-noSpam-)trailoflight.net. Please make sure that in the subject line you put something like [xdmp] so that I can tell projects apart ;)


    If you would like to support me and my work there are several ways that I would highly appreciate. They are all mentioned below in no order of preference

    • You can offer some word of mouth regarding my work and site.
    • You can offer me a project to work on.
    • You can choose to write a free piece of software for the community (do let me know).
    • You can donate some money (helps pay the bills ;)) through Moneybookers to my account donation@trailoflight.net.

      Note I do not use PayPal because I do not like their service nor do they offer services in my country.



  • Shortcoming

    XDMP is far from perfect and has several shortcomings. Following is the list of them which I intend to fix as time goes by depending mainly on requests and my time. Note the list would change in size accordingly :)

    • If you load XDMP use it in XChat and then unload and try to load it again you get an error.
    • There is no way you can fix the name of the user or the file once entered.
    • You are limited to the format that is currently presented (the !user filename format)
    • Windows shutdown process is not yet clearly usable.


Creative Commons License by Mackram Raydan