_/\tma FileServer Addon for mIRC

Programmed by Correl J. Roush of www.phoenixinquis.net
Some feature ideas by {v_v} and Chance` of Dalnet IRC
Original code and concept for the dialog preview alias by ZeeG of evilcoder.net

Phoenix Inquisitors Network -- 2002

Introduction

Using Atma

•	Finding your way around Atma

•	Basic configuration

•	Advanced configuration

•	Statistics

•	Trigger setup

•	Setting up access permissions

•	Changing your ad’s style

•	Managing queues

Credits/Contact Information


Introduction

Atma is a script loadable by mIRC versions 6.0 and higher that allows you to run highly configurable fileservers in multiple IRC chat rooms. It has been carefully designed to be both very powerful and very easy to use, and should appeal to novice and experienced users alike.

For those of you unfamiliar with what a fileserver is and does, some basic explanation will be required before diving on into the script. A file server allows different users in channels you specify access different folders on your computer that you decide to permit them access to, and only those folders, and download any files within them. Atma will allow you to specify who can access your server, what they will be able to access, how many files they will be permitted to get at a time, and much, much more. And you can even choose different settings for the different channels you serve to!

More advanced users will be delighted at the vast collection of various features supported by Atma, such as filecount and MB-based queue systems, trigger-specific and global hostmask allow/deny lists, powerful cached search engine, and channel profiles. And of course, suggestions for new features are always welcome.

I sincerely hope you enjoy using Atma. Feel free to contact me with any comments/suggestions/complaints you may have, and be sure to stop by the website @ www.phoenixinquis.net for script updates and a public forum ;o)~


Finding your way around Atma

Now that you’ve loaded Atma into your copy of mIRC, you’re probably thinking, “OK. So,…….. where is everything, and, well heck, what’s there?” Well, this section is your answer.

Atma adds a submenu labeled “Atma FileServer” to the commands menu at the top of your mIRC screen, as well as most all of your context menus (the ones that come up when you right-click inside a mIRC status/chat window (see below).

Configure will bring up the main Atma configuration dialog box

Manage Queues will bring up the queue manager dialog

Rebuild QuickSearch Cache will scan through your fileservers, saving the information it finds to a file, which the search engine  uses to quickly run its queries. This must be done in order for the find functions to work for the user; without a QuickSearch cache, searches will return 0 results.

Preview Ad will do exactly what it says it will… it will echo to the current window what your fserv ad looks like. If you right click in a channel window, you will also see the selection Show to channelname, where channelname is the name of the current channel window. This will display the ad to the entire channel.

Reload and Unload reloads and unloads the Atma fileserver script.

For those who prefer to type, you may reach the Atma configuration dialog simply by typing /Atma.


Basic Configuration

When you first open the Atma configuration dialog, you can expect to see this:

Fserv Limits

Here, you can change how many simultaneous sends there can be at any time and the maximum number of queues, both on a per-user and global scope. Since any one user can only possibly have one session, you can only change the global session maximum. At this time, sends are global and therefore are only editable in the default (*) profile.

Configuration

Set various channel options. You may decide whether or not you want your server to respond to @find/@locator and !list requests for each channel profile.

Queue System Selection

Atma has two queuing systems: one that queues files based on the number of files requested by the user (FileCount), and another that queues files based on how many megabytes of files the user has queued (MB Queues).

Ad Setup

You have the ability to change the frequency of channel advertisements, select the trigger type, or disable ads altogether for the selected profile.

Server Info String

This text is shown in your FServ ads and is displayed to people when they first enter your file server, and is useful for letting people know whats in there before they jump in.

FServ controls

You can turn your file server on and off from here, as well as setting it to turn on automatically when you get online. These controls are visible on every screen in the Config dialog.

Credits / Website link

My name (after all, why not =D), when this beast entered existence, and a handy link to the website. This part of the form is visible in all sections of the dialog. After all, why not. ;o)~


Advanced Configuration

The advanced configuration tab gives you even more control over how the server operates, this time the settings are more policy-oriented:

FileServer Chat

When enabled, users on the fserv at the same time will be able to converse with each other as though in a normal chatroom. When disabled, anything not an fserv command will be balked at with a suggestion to view the fserv help command.

Channel Enforcer

When enabled, there shall be no mercy to the sends and queues of any user who  parts from all the channels that you are in. (In other words, their sends/queues are canceled, if they have any).

Enable FServ find command

Denotes whether or not the fileserver’s search engine will respond to users typing find within an fserv session, and imposes a limit upon the maximum number of results that will be sent back to the user.

Respond to @find/@locator

Sets a limit on the maximum number of results that will be sent back to the user on @find/@locator channel requests.

DCCAllow Enforcement

On some irc servers (particularly those that comprise DALnet), certain filetypes such as .zip and .exe files will be blocked by the IRC server itself. On these irc servers, users must first /dccallow you, thus telling the server that they trust files of these types from you. This setting allows you to choose an action to take if a send fails due to dccallow noncompliance. You may choose to simply notify the user of their error and cancel the send (which won’t really be going anyway), or to clear all their sends and queues, and temporarily ban them from using the fileserver (this tempban is global, i.e. banned from all fserv triggers).

Minimum CPS

You can set your fserv to halt sends that have been going at speeds slower than the one you specify for a certain period of time. For example, you can use this to keep people with slow connections from tying up your outgoing send slots.

Maximum CPS

To keep things “fair”, you can opt to limit all outgoing sends to a maximum CPS. Versatile this server is.

QuickSearch Cache

Rebuilding the QuickSearch Cache will scan through your fileservers, saving the information it finds to a file, which the search engine uses to quickly run its queries. This must be done in order for the find functions to work for the user – without a QuickSearch cache, searches will return 0 results. Rebuilding the QuickSearch may take a few minutes if you have a lot of files on your server, but it works very fast and should be barely noticeable in most cases, sometimes capable of scanning up to a thousand files per second. It is suggested, though, that you only rebuild it while you are offline. Otherwise, you risk being disconnected due to a ping timeout while the cache is being rebuilt. (The speed of the caching process is heavily dependant on the speed of your computer and may vary a lot from machine to machine.)


Statistics

Atma keeps track of how much it has been accessed and at what speed – a handy resource for bragging rights ;).  You are welcome to reset them as you wish. These statistics can be shown in your fileserver’s ad if you want.


Trigger Setup

This section will allow you to configure multiple fileserver “triggers”, which will act as your servers and permit people to access the files and folders you specify. It is laid out as follows:

The Triggers

Use these buttons to add, rename, remove, and enable/disable your various triggers. You can select between them using the handy drop-down box.

Root Directory

This is the base folder of the selected trigger. This is where users accessing that trigger will start out. They will not be able to move outside this folder; they can only move through its subfolders.

Message of the Day File

You may optionally select a text file to serve as a MOTD that will be displayed to users when they enter your fserv. You can use the Unset button to remove the MOTD, and use the Edit File button to open the file in your system’s text editor (usually notepad).

Channel Setup

You may set up your triggers to either be normal triggers (the user says them in the channel you are serving them to), or CTCP triggers (the user sends the trigger to your client in a CTCP message, thus keeping the clutter of various triggers out of a channel’s conversation). The fserv ad will automatically change to show a trigger as CTCP if set as such.


Setting up Access Permissions

Atma has been built with a powerful, flexible user access system that, used properly, can allow you to build virtually any sort of user permission scenario that you could think of.

Permissions can be set globally, and for each individual trigger. Use the dropdown box to choose between the different access scopes. Each scope has two lists: an Allow List, and a Deny List. These lists work using user hostmasks, i.e. CoolGuy!*@*.myisp.com. Wildcards can be used to specify any matching text. You use the following dialog to add and edit permissions:

You add a user by his/her hostmask, which can be any combination of wildcards so long as it fits the pattern *!*@*

You may specify whether this hostmask will be added to the Access or Deny list, optionally set an expiration, and put in a comment to help you remember why you put it there. All this information, of course, can be edited later.

When checking a user’s access, the Deny list comes first. If the user is denied, he/she gains no access. If an Allow List is in place, the user must be in the Allow List to be permitted entry. Thus, having an allow list creates a trigger that is exclusive to people matching the hostmasks you enter into the allow list. It’s a simple system, but a flexible one and a powerful one. Just as it should be.


Changing Your Ad’s Style

Atma makes use of another fine creation of mine: the FormatString parser. This allows its visual style to be enormously configurable, allowing for infinite possibilities. This section of the configuration dialog should look familiar from other scripts using the FormatString parser:

For help with the formatting strings and for more information regarding their use, see the help file included with the FormatString library. A link to it has been placed on this dialog for your convenience.


Managing Queues

Managing user queues in Atma is tremendously easy, just go to your menu, under “Atma FileServer”, and choose “Manage Queues”. You will see the following dialog:

Using this dialog, you will be able to view all currently active queues, who queued them, and how big the file is. You may re-order the queues as you see fit, clear them, and force them to be sent immediately. Simple. Efficient. Works just perfect. After all, that’s what you expected, right? ;o)~


Credits / Contact Information

Correl Roush

AIM: phoenixinquis

ICQ: 163032643

YIM: phoenixinquis

MSN: correlr@hotmail.com

IRC: PhoenixInquisitorNet (Dalnet, #pinet, #DayDreams, #NewRoms)

URL: www.phoenixinquis.net

E-Mail: correlr@phoenixinquis.net

Special thanks to {v_v} for his MB Queue feature idea and Chance` for coming up with dccallow enforcement, not to mention being a great friend too :). Credit is due to ZeeG of evilcoder.net, for the original code in the dialog preview alias, which I’ve modified to better suit Atma. Also, thanks to everyone on IRC who have been leeching off my fserve, all the while serving as beta testers :D. My gratitude to all the other scripters out there who work hard to make it difficult (and thus more interesting) to compete ;D. And, of course, special thanks go out to Khaled and the rest of the mIRC community for making mIRC the excellent IRC client that it is today.