Importing repository

This commit is contained in:
Correl Roush 2021-06-24 10:05:10 -04:00
commit 6961550d79
258 changed files with 91469 additions and 0 deletions

1
.svn/entries Normal file
View File

@ -0,0 +1 @@
12

1
.svn/format Normal file
View File

@ -0,0 +1 @@
12

View File

@ -0,0 +1,16 @@
Sylver Update Server -- PHP
database driven?
Should be able to do the following:
Check latest version available for a specific script package
List all available script packages
Download individual files from the script package (or, perhaps, a single package file when the packaging routines for mIRC are finished)
script package specs are contained in the main addon file (.sa). Should the php engine parse this? or should it be entered into the database?
That would require an ini parser for PHP..... interesting.
On the other hand of course, the client could simply parse the .sa and get the files, needing only the base directory from the server. Quite possibly the better idea.
Whaddya know,.... $nofile() can handle relative unix paths, this can work!
The system cannot be built soley around a full-script update construct, since I still prefer to release the addons in a standalone fashion as well. Addons will have a menu option to update themselves, which can work without the full update suite.
This will most likely mean splitting the update suite into two scripts: an update "library", containing the basic functions required to perform a sa-based web update, and the full script's update client.

View File

@ -0,0 +1,10 @@
&M
$mid($1,2,$calc($len($1) - 2))
&F
$left($1,1)
&W
$1
&L
$right($1,1)
_name
nickComp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,117 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[1.40-xxxxxxxx]
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Add web updates
=Add to and update styles system
[1.393-20070809]
+Fixed a bug in the configuration dialog that was preventing the fserv find limit not to save when edited
[1.392-20060821]
+Fixed a bug in the CTCP channel config check that made ctcp not work in some cases
+Hits tracking was made more accurate (should be no more false positives on unrelated dcc chatting)
[1.391-20050103]
+Fixed a bug in formatstr.sa that caused it not to load its profiles properly
[1.39-20041217]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
+Rewrote the queue system, its much more accurate and efficient now
+!list does not respond if the fserv is inactive
+Fixed the search, now uses plain wildcard searches. Why I used regex before, I don't know.
+Fixed the channel guard checkbox, changed it to terminate all sends and clear all queues.
[1.372-20030710]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Fix channel guard
=Refine queue system
=Add to and update styles system
[1.31-20030204]
+Fixed bug -- wasn't creating the default channel configuration on startup if it wasn't there!!!! ARGH!
+Added new styles!!! (Ok, now that I have, it's YOUR turn... c'mon! Make up some cool styles and send them to me ^_^)
PoIz<49>n, xServ_Classic, SphinxScript_Saiyan, #!/bin/bash, micron
+Fixed !list bug -- wasn't properly showing ad
+Fixed advertise alias -- couldn't handle /atma.advertise *, so timed ads weren't going out right
+Oh to heck with it,..... FIXED ALL ADVERTISING BUGS!!!! CURSE THEM ALL!!!!! THEY AT LAST ARE DEAD!!!
-- if, by some obscene chance, your ads are not displaying as they should, email me what it _is_ displaying, how/where it is displaying it (channel ad, !list, etc.), what you feel is wrong, and also include your atma.dat file for debugging purposes.
+Fixed CTCP trigger bug -- it was responding to ALL CTCPs when the fserv was disabled. Annoying...
+Added &Atma.Version and &Atma.Build identifiers to the formatString profile
+Made sure all the Atma formatString identifiers are listed in the dialog.
+Made the "Start on connect" setting in Atma multi-server conscious -- that is, it won't restart everytime you connect to a new server. It will only autostart if there are no other currently active connections.
[1.30-20030131]
+Fixed !list bug -- since the 1.20 updates it was mysteriously tending to channels not being served to again.
+Fixed a queue bug -- users were able to queue one file over their limit. Not anymore.
+Clearing the queue file on Atma.Activate was moved to on:start, to keep it from deleting every time you joined a new server and had "activate on connect" checked.
+Fixed a bug in the CTCP trigger code. Nonconfigured channels were not detecting their CTCP requests properly. They are now ;o)~
+Changed how the access auditing timer was handled, so no more "ATMA.ACCESS.AUDIT Unknown command" errors
+Coded the rest of the buttons in the queue manager, also made sure they're all multiserver-compliant as well. No more buttons that don't work because the developer was lazy ;oP~
+Added a button to manually add a file to the queue. It was a useful feature some people thought would be a nice addition :)
+MULTISERVER ADDITIONS (Only basic activity, no multiserver configuration yet)
+Server ad now displays fine across multiple servers (it used to only work in the active server context, and barely at that)
+Queues now handled across multiple servers. (Stored the CID in the queue file)
+NICKCHANGE HANDLING
+When a user nickname change is detected, all of that user's queues are modified to point to the new nickname
+If a user changes their nickname with an active fserv session, that session is terminated to ensure that queues are not added using the old nick.
+Some minor tweaks to the code that I can barely even remember... mostly just to make sure everything works fine even when the $scriptdir contains spaces. Must support spaces.....
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find
[1.00-20021017]
=+= First official release =+=
[0.00-20021007]
=+= Atma project started =+=

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,66 @@
&^raw.unhandled_start^
&C00__[&C04unhandled RAW:&C15 &^$1 &C00]__
&^raw318.display_operator^
&C15.&C00&B.&B&C05IrcOP&C00[&C15 &^%whois+.operator &C00]
&^raw376.display_motd^
&C15.&C00&B.&B&C05 -&C15 &^$hget(^raw372,MOTD_ &^$+ &^%^raw376.counter)
&^raw369.display_start^
&C00______[&C04whowas information for&C15 &^%whois+.nick &C00]&C15______
&^raw.error^
&C00__[&C04Error&C15 &^$1 &^$+ : &^$regml(^sylver,1) &C00]__
&^raw4.display_created^
&C15.&C00&B.&B&C[&C15 &^$eval(&^%raw.server.created)
&^raw4.display_myinfo^
&C15.&C00&B.&B&C[&C15 &^$eval(&^%raw.server.myinfo)
&^raw318.display_user^
&C15.&C00&B.&B&C05Nick&C00[&C15 &^%whois+.nick &C00] &C05User&C00[&C15 &^%whois+.user &C00] &C05Host&C00[&C15 &^%whois+.host &C00] &C05RealName&C00[&C15 &^%whois+.realname &C00]
&^raw369.display_user^
&C15.&C00&B.&B&C05Nick&C00[&C15 &^%whois+.nick &C00] &C05User&C00[&C15 &^%whois+.user &C00] &C05Host&C00[&C15 &^%whois+.host &C00] &C05RealName&C00[&C15 &^%whois+.realname &C00]
&^raw376.display_end^
&C00__[&C04MOTD&C00]&C15______________________
&^msg^
&C4(&C &^$+ &^$me &^$+ &C4)&C &^$2-
&^raw4.display_start^
&C00______[&C04Server information for&C15 &^$server &C00]&C15______
&^raw.simplemsg^
&C05.&C04&B.&B&C00[&C15 &^$+ &^$2- &^$+ &C00]
&^raw318.display_server^
&C15.&C00&B.&B&C05Server&C00[&C15 &^%whois+.server &C00] &C05Info&C00[&C15 &^%whois+.serverinfo &C00]
&^raw318.display_signon^
&C15.&C00&B.&B&C05Sign-On time&C00[&C15 &^$asctime(&^%whois+.signon) &C00]
&^raw318.display_end^
&C00______[&C04whois information for&C15 &^%whois+.nick &C00]&C15______
&^raw366.display_end^
&C05.&C04&B.&B&C00[&C04h/ops&C15 &^%^raw366.hops ( &^$+ &^$int(&^$calc(&^%^raw366.hops / &^%^raw366.total * 100)) &^$+ &^% &^$+ )&C00]&C00[&C04ops&C15 &^%^raw366.ops ( &^$+ &^$int(&^$calc(&^%^raw366.ops / &^%^raw366.total * 100)) &^$+ &^% &^$+ )&C00]&C00[&C04voiced&C15 &^%^raw366.voice ( &^$+ &^$int(&^$calc(&^%^raw366.voice / &^%^raw366.total * 100)) &^$+ &^% &^$+ )&C00]&C00[&C04regular&C15 &^%^raw366.regular ( &^$+ &^$int(&^$calc(&^%^raw366.regular / &^%^raw366.total * 100)) &^$+ &^% &^$+ )&C00]&C15
&^raw318.display_channels^
&C15.&C00&B.&B&C05Channels&C00[&C15 &^%whois+.channels &C00]
&^raw318.display_idle^
&C15.&C00&B.&B&C05Idle for &C00[&C15 &^$duration(&^%whois+.idle) &C00]
&^raw.message^
&C00__[&C04Server Message&C15 &^$1- &C00]__
&^raw366.display_names^
&^$eval(&C15.&C00&B.&B&C15 $eval(&^% &^$+ [ ^raw353.names &^$+ [ &^%^raw366.counter ] ],2),2)
&^raw376.display_start^
&C00__[&C04MOTD&C00]&C15______________________
&^raw4.display_welcome^
&C15.&C00&B.&B&C[&C15 &^$eval(&^%raw.server.welcome)
&^raw369.display_server^
&C15.&C00&B.&B&C05Server&C00[&C15 &^%whois+.server &C00] &C05Info&C00[&C15 &^%whois+.serverinfo &C00]
&^raw4.display_end^
&C00______[&C04Server information for&C15 &^$server &C00]&C15______
&^raw.unhandled_data^
&C15.&C00&B.&B&C05Data&C00[&C15 &^$regml(^sylver,1) &C00]
_name
Phoenix Theme for SylverIRC
&^raw318.display_away^
&C15.&C00&B.&B&C05Away&C00[&C15 &^%whois+.away &C00]
&^raw369.display_end^
&C00______[&C04whowas information for&C15 &^%whois+.nick &C00]&C15______
&^raw4.display_yourhost^
&C15.&C00&B.&B&C[&C15 &^$eval(&^%raw.server.yourhost)
&^raw318.display_start^
&C00______[&C04whois information for&C15 &^%whois+.nick &C00]&C15______
&^raw318.display_extra^
&C15.&C00&B.&B&C05Extra&C00[&C15 &^$gettok(&^%whois+.extra,&^%whois+.counter,58) &C00]
&^raw366.display_start^
&C05.&C04&B.&B&C00[&C04Names for&C15 &^%^raw353.chan &C00]&C15

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,107 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[1.40-xxxxxxxx]
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Add web updates
=Add to and update styles system
[1.39-20041217]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
+Rewrote the queue system, its much more accurate and efficient now
+!list does not respond if the fserv is inactive
+Fixed the search, now uses plain wildcard searches. Why I used regex before, I don't know.
+Fixed the channel guard checkbox, changed it to terminate all sends and clear all queues.
[1.372-20030710]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Fix channel guard
=Refine queue system
=Add to and update styles system
[1.31-20030204]
+Fixed bug -- wasn't creating the default channel configuration on startup if it wasn't there!!!! ARGH!
+Added new styles!!! (Ok, now that I have, it's YOUR turn... c'mon! Make up some cool styles and send them to me ^_^)
PoIz<49>n, xServ_Classic, SphinxScript_Saiyan, #!/bin/bash, micron
+Fixed !list bug -- wasn't properly showing ad
+Fixed advertise alias -- couldn't handle /atma.advertise *, so timed ads weren't going out right
+Oh to heck with it,..... FIXED ALL ADVERTISING BUGS!!!! CURSE THEM ALL!!!!! THEY AT LAST ARE DEAD!!!
-- if, by some obscene chance, your ads are not displaying as they should, email me what it _is_ displaying, how/where it is displaying it (channel ad, !list, etc.), what you feel is wrong, and also include your atma.dat file for debugging purposes.
+Fixed CTCP trigger bug -- it was responding to ALL CTCPs when the fserv was disabled. Annoying...
+Added &Atma.Version and &Atma.Build identifiers to the formatString profile
+Made sure all the Atma formatString identifiers are listed in the dialog.
+Made the "Start on connect" setting in Atma multi-server conscious -- that is, it won't restart everytime you connect to a new server. It will only autostart if there are no other currently active connections.
[1.30-20030131]
+Fixed !list bug -- since the 1.20 updates it was mysteriously tending to channels not being served to again.
+Fixed a queue bug -- users were able to queue one file over their limit. Not anymore.
+Clearing the queue file on Atma.Activate was moved to on:start, to keep it from deleting every time you joined a new server and had "activate on connect" checked.
+Fixed a bug in the CTCP trigger code. Nonconfigured channels were not detecting their CTCP requests properly. They are now ;o)~
+Changed how the access auditing timer was handled, so no more "ATMA.ACCESS.AUDIT Unknown command" errors
+Coded the rest of the buttons in the queue manager, also made sure they're all multiserver-compliant as well. No more buttons that don't work because the developer was lazy ;oP~
+Added a button to manually add a file to the queue. It was a useful feature some people thought would be a nice addition :)
+MULTISERVER ADDITIONS (Only basic activity, no multiserver configuration yet)
+Server ad now displays fine across multiple servers (it used to only work in the active server context, and barely at that)
+Queues now handled across multiple servers. (Stored the CID in the queue file)
+NICKCHANGE HANDLING
+When a user nickname change is detected, all of that user's queues are modified to point to the new nickname
+If a user changes their nickname with an active fserv session, that session is terminated to ensure that queues are not added using the old nick.
+Some minor tweaks to the code that I can barely even remember... mostly just to make sure everything works fine even when the $scriptdir contains spaces. Must support spaces.....
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find
[1.00-20021017]
=+= First official release =+=
[0.00-20021007]
=+= Atma project started =+=

View File

@ -0,0 +1,54 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[1.30-20030131]
+Fixed !list bug -- since the 1.20 updates it was mysteriously tending to channels not being served to again.
+Fixed a queue bug -- users were able to queue one file over their limit. Not anymore.
+Clearing the queue file on Atma.Activate was moved to on:start, to keep it from deleting every time you joined a new server and had "activate on connect" checked.
+Fixed a bug in the CTCP trigger code. Nonconfigured channels were not detecting their CTCP requests properly. They are now ;o)~
+Changed how the access auditing timer was handled, so no more "ATMA.ACCESS.AUDIT Unknown command" errors
+Coded the rest of the buttons in the queue manager, also made sure they're all multiserver-compliant as well. No more buttons that don't work because the developer was lazy ;oP~
+Added a button to manually add a file to the queue. It was a useful feature some people thought would be a nice addition :)
+MULTISERVER ADDITIONS (Only basic activity, no multiserver configuration yet)
+Server ad now displays fine across multiple servers (it used to only work in the active server context, and barely at that)
+Queues now handled across multiple servers. (Stored the CID in the queue file)
+NICKCHANGE HANDLING
+When a user nickname change is detected, all of that user's queues are modified to point to the new nickname
+If a user changes their nickname with an active fserv session, that session is terminated to ensure that queues are not added using the old nick.
+Some minor tweaks to the code that I can barely even remember... mostly just to make sure everything works fine even when the $scriptdir contains spaces. Must support spaces.....
=Web-updating is well in the works, expect it in the next update. (It's actually done, but I want to be sure it'll work smoothly when it's finally released. Could probably use more error-checking code anyhow.)
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find

View File

@ -0,0 +1,9 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /irc/atma/Readme.txt was not found on this server.<P>
<HR>
<ADDRESS>Apache/1.3.26 Server at croush2.local Port 80</ADDRESS>
</BODY></HTML>

View File

@ -0,0 +1,37 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,67 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[1.31-20030206]
+Fixed bug -- wasn't creating the default channel configuration on startup if it wasn't there!!!! ARGH!
+Added new styles!!! (Ok, now that I have, it's YOUR turn... c'mon! Make up some cool styles and send them to me ^_^)
PoIzØn, xServ_Classic, SphinxScript_Saiyan, #!/bin/bash, micron
+Fixed !list bug -- wasn't properly showing ad
+Fixed advertise alias -- couldn't handle /atma.advertise *, so timed ads weren't going out right
+Oh to heck with it,..... FIXED ALL ADVERTISING BUGS!!!! CURSE THEM ALL!!!!! THEY AT LAST ARE DEAD!!!
-- if, by some obscene chance, your ads are not displaying as they should, email me what it _is_ displaying, how/where it is displaying it (channel ad, !list, etc.), what you feel is wrong, and also include your atma.dat file for debugging purposes.
+Fixed CTCP trigger bug -- it was responding to ALL CTCPs when the fserv was disabled. Annoying...
+Added &Atma.Version and &Atma.Build identifiers to the formatString profile
+Made sure all the Atma formatString identifiers are listed in the dialog.
+Made the "Start on connect" setting in Atma multi-server conscious -- that is, it won't restart everytime you connect to a new server. It will only autostart if there are no other currently active connections.
[1.30-20030131]
+Fixed !list bug -- since the 1.20 updates it was mysteriously tending to channels not being served to again.
+Fixed a queue bug -- users were able to queue one file over their limit. Not anymore.
+Clearing the queue file on Atma.Activate was moved to on:start, to keep it from deleting every time you joined a new server and had "activate on connect" checked.
+Fixed a bug in the CTCP trigger code. Nonconfigured channels were not detecting their CTCP requests properly. They are now ;o)~
+Changed how the access auditing timer was handled, so no more "ATMA.ACCESS.AUDIT Unknown command" errors
+Coded the rest of the buttons in the queue manager, also made sure they're all multiserver-compliant as well. No more buttons that don't work because the developer was lazy ;oP~
+Added a button to manually add a file to the queue. It was a useful feature some people thought would be a nice addition :)
+MULTISERVER ADDITIONS (Only basic activity, no multiserver configuration yet)
+Server ad now displays fine across multiple servers (it used to only work in the active server context, and barely at that)
+Queues now handled across multiple servers. (Stored the CID in the queue file)
+NICKCHANGE HANDLING
+When a user nickname change is detected, all of that user's queues are modified to point to the new nickname
+If a user changes their nickname with an active fserv session, that session is terminated to ensure that queues are not added using the old nick.
+Some minor tweaks to the code that I can barely even remember... mostly just to make sure everything works fine even when the $scriptdir contains spaces. Must support spaces.....
=Web-updating is well in the works, expect it in the next update. (It's actually done, but I want to be sure it'll work smoothly when it's finally released. Could probably use more error-checking code anyhow.)
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find

View File

@ -0,0 +1,20 @@
&Atma.Users
$Atma.Users.count $+ / $+ $Atma.Config(Channels. $+ $1 $+ .maxUsers)
&Atma.Triggers
$Atma.triggers($1).Formatted
&Atma.Sends
$Atma.Sends $+ / $+ $Atma(maxTSends)
&Atma.Queues
$iif($Atma.Channels($1).QueueUsing == FileSize,$bytes($calc($Atma.Queue(.*).size * 1048576),3).suf,$Atma.Queue(.*)) $+ / $+ $iif($Atma.Channels($1).QueueUsing == FileSize,$bytes($calc($Atma.Channels($1).MaxTQueues * 1048576),3).suf,$Atma.Channels($1).maxTQueues))
&Atma.InfoLine
$Atma.Config(Channels. $+ $1 $+ .InfoLine)
&Atma.LeechedFiles
$iif($hget(_/\tmaFS,LeechedFiles),$ifmatch,0)
&Atma.LeechedBytes
$iif($hget(_/\tmaFS,LeechedBytes),$bytes($ifmatch).suf,0 bytes)
&Atma.RecordSpeed
$iif($hget(_/\tmaFS,RecordSpeed),$round($calc($gettok($ifmatch,2,32) / 1024),2) $+ kb/s by $gettok($ifmatch,1,32),0kb/s)
&Atma.Hits
$iif($hget(_/\tmaFS,Hits),$ifmatch,0)
_name
Atma FileServer

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,178 @@
#formatstr.sa off
[addon]
name=FormatString parsing engine
id=formatstr
category=FileServing
version=2.2a-sa
author=Correl J. Roush
helpfile=formatStr.hlp
[dirs]
1=Profiles
[scriptfiles]
1=formatstr.sa
[miscfiles]
1=formatStr.hlp
2=Profiles\^profile_Atma.hsh
3=Profiles\^profile_away.hsh
4=Profiles\^profile_GreetZ.hsh
5=Profiles\^profile_nickComp.hsh
6=Profiles\^profile_standard.hsh
7=Profiles\^theme_phoenix.hsh
[configfiles]
[formatstr.sa]
#formatstr.sa off
on *:start:{
^formatstr.loadprofiles
}
alias ^formatstr.version { return $readini($script,addon,version) }
alias ^formatstr.help { run $scriptdirformatStr.hlp }
alias ^formatstr.loadprofiles {
$iif($hget(^formatstr.profiles),hfree ^formatstr.profiles)
;echo -s Loaded $findfile($scriptdirProfiles,*.hsh,0,0, loadprofile.appendtomaster $1-) FormatString Profile(s)
}
alias -l loadprofile.appendtomaster {
$iif(!$hget(^formatstr.profiles),hmake ^formatstr.profiles 100)
hload ^formatstr.profiles " $+ $1- $+ "
hadd ^formatstr.profiles profiles $addtok($hget(^formatstr.profiles,profiles),$hget(^formatstr.profiles,_name),44)
echo -s Loaded $hget(^formatstr.profiles,_name) profile for the Phoenix FormatString Parser
hdel ^formatstr.profiles _name
}
alias parse_formatstr {
; $1 == word to format
; $2 == format string
var %counter = 1
%formattedstr = $2
while (%counter <= $hget(^formatstr.profiles,0).item) {
%formattedstr = $replace(%formattedstr,$hget(^formatstr.profiles,%counter).item,$eval($hget(^formatstr.profiles,$hget(^formatstr.profiles,%counter).item),2))
inc %counter
}
%formattedstr = $regex_stylefn(%formattedstr)
if ($nickComp(stripcolor)) { %formattedstr = $strip(%formattedstr,c) }
return %formattedstr $+ 
}
alias -l ^R {
;RandomStyle
%counter = 1
unset %randomstyle_output
while (%counter <= $len($1-)) {
%randomstyle_code = $gettok(>>,$rand(1,3),62)
;$iif(%randomstyle_code == , %randomstyle_code = %randomstyle_code $+ $rand(0,15))
%randomstyle_output = %randomstyle_output $+ %randomstyle_code $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$mid($1-,%counter,1))
inc %counter
}
return $replace(%randomstyle_output,$chr(1),$chr(32)) $+ 
}
alias -l ^C {
;CycleStyle
%counter = 1
unset %cyclestyle_output
while (%counter <= $len($1-)) {
%cyclestyle_code = $gettok(>>,$calc((%counter % 3) + 1),62)
%cyclestyle_output = %cyclestyle_output $+ %cyclestyle_code $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$mid($1-,%counter,1))
inc %counter
}
return $replace(%cyclestyle_output,$chr(1),$chr(32)) $+ 
}
alias -l ^M {
;RandomCase
%counter = 1
unset %randomcase_output
while (%counter <= $len($1-)) {
%randomcase = $rand(1,2)
if (%randomcase == 1) {
%randomcase_output = %randomcase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$upper($mid($1-,%counter,1)))
}
else {
%randomcase_output = %randomcase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$lower($mid($1-,%counter,1)))
}
inc %counter
}
return $replace(%randomcase_output,$chr(1),$chr(32))
}
alias -l ^N {
;CycleCase
%counter = 1
unset %cyclecase_output
while (%counter <= $len($1-)) {
inc %cyclecase
if ($calc(%cyclecase % 2) == 1) {
%cyclecase_output = %cyclecase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$upper($mid($1-,%counter,1)))
}
else {
%cyclecase_output = %cyclecase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$lower($mid($1-,%counter,1)))
}
inc %counter
}
return $replace(%cyclecase_output,$chr(1),$chr(32))
}
alias -l ^U {
return $upper($1-)
}
alias -l ^L {
return $lower($1-)
}
alias -l ^E {
;l33tstyle
%leetstyle = $replacecs($1-, $&
AE,$chr(198), $&
f,F, F,ph, $&
ck,x0r, $&
cks,x0rz $&
)
%leetstyle = $replacecs(%leetstyle, $&
a,A, A,4, $&
B,$chr(223), $&
c,$chr(162), C,$chr(169), $&
d,D, D,| $+ $chr(41), $&
e,E, E,3, $&
H,$chr(124) $+ - $+ $chr(124), $&
i,I, I,1, $&
K,$chr(124) $+ $chr(139), $&
l,L, L,$chr(163), $&
M,$chr(40) $+ \/ $+ $chr(41), $&
N,$chr(124) $+ \ $+ $chr(124), $&
o,$chr(248), O,0, $&
p,P, P,$chr(182), $&
Q,$chr(40) $+ $chr(44) $+ $chr(41), $&
S,5, $&
t,+, T,7, $&
u,$chr(181), U,$chr(124) $+ _ $+ $chr(124), $&
W,`//, $&
x,$chr(215) $&
)
return %leetstyle
}
alias -l regex_stylefn {
.echo -q $regsub($1-,/\\}/g,$chr(1),%stylefn)
%stylefn = $replace(%stylefn, $chr(32),$chr(5))
while ($regex(%stylefn,/{([CRULMNE]):(.*?):\1}/i)) {
.echo -q $regsub(%stylefn,/{([CRULMNE]):(.*?):\1}/gi,$chr(32) $+ $cr $lf $+ \1(\2) $cr $+ $chr(32),%stylefn)
}
return $replace($eval($replace(%stylefn, $cr,$!+, $lf,$!^, $chr(1),$chr(125)),2),$chr(5),$chr(32))
}

View File

@ -0,0 +1,10 @@
&Away.Reason
$awaymsg
&Away.Time
$awaytime
&Away.Gone
$duration($awaytime)
&Away.State
$1
_name
Away System

View File

@ -0,0 +1,6 @@
What needs to be done to Atma to support Multiserver...
change all channel messages to use /scon -at1 msg $chan etc...
store CIDs in the queue file
store CIDs in channel configuration

View File

@ -0,0 +1,14 @@
&R

&U

&B

&C

&^$
$
&^%
%
_name
standard

View File

@ -0,0 +1,15 @@
And now, other bugs/things to add I've found:
- the server allows one more queue than specified, example if I say maximum 9 queues it allows up to 10 queues.
- if I have two or more slots open it will not send the files in the queue to two users, but only the first requested (that will be sent instantly).
- When a user changes nick the fileserver still tries to send the files to the old nick.
- I think the !list request have to be restricted only to channels where you're serving. I fixed this for me but it'll be nice if you fix it for all.
- Another useful function would be a button to add manually files to queue instead of letting only other users add them.
Another one: it's just silly that it deletes the queue file when you connect to a new server.. when I do it everything that's queued is cleared and the users have to use the fserve again. Have it delete the file on mIRC open instead.
Ok, the !list problem is fixed, but I see now that mIRC with atma fileserver 1.20 uses 95% of CPU sources!! it slows all..
sorry for bugging you but I hope this things will help you keeping good this script ^^
as I thought, the cpu resources problem was given by the timers. The script sets the timer delay default at 0, so it repeats the action infinitely and infinite times for second. Set a higher default delay and you solved it I think ^^
So, after every check, the queue +1 problem still exists, and the two features (nick change and way to manually add files) will be very nice. Maybe also a feature to requeue timed out files.. as you can ^^

View File

@ -0,0 +1,178 @@
#formatstr.sa off
[addon]
name=FormatString parsing engine
id=formatstr
category=FileServing
version=2.2a-sa
author=Correl J. Roush
helpfile=formatStr.hlp
[dirs]
1=Profiles
[scriptfiles]
1=formatstr.sa
[miscfiles]
1=formatStr.hlp
2=Profiles\^profile_Atma.hsh
3=Profiles\^profile_away.hsh
4=Profiles\^profile_GreetZ.hsh
5=Profiles\^profile_nickComp.hsh
6=Profiles\^profile_standard.hsh
7=Profiles\^theme_phoenix.hsh
[configfiles]
[formatstr.sa]
#formatstr.sa off
on *:start:{
^formatstr.loadprofiles
}
alias ^formatstr.version { return $readini($script,addon,version) }
alias ^formatstr.help { run $scriptdirformatStr.hlp }
alias ^formatstr.loadprofiles {
$iif($hget(^formatstr.profiles),hfree ^formatstr.profiles)
echo -s Loaded $findfile($scriptdirProfiles,*.hsh,0,0, loadprofile.appendtomaster $1-) FormatString Profile(s)
}
alias -l loadprofile.appendtomaster {
$iif(!$hget(^formatstr.profiles),hmake ^formatstr.profiles 100)
hload ^formatstr.profiles " $+ $1- $+ "
hadd ^formatstr.profiles profiles $addtok($hget(^formatstr.profiles,profiles),$hget(^formatstr.profiles,_name),44)
echo -s Loaded $hget(^formatstr.profiles,_name) profile for the Phoenix FormatString Parser
hdel ^formatstr.profiles _name
}
alias parse_formatstr {
; $1 == word to format
; $2 == format string
var %counter = 1
%formattedstr = $2
while (%counter <= $hget(^formatstr.profiles,0).item) {
%formattedstr = $replace(%formattedstr,$hget(^formatstr.profiles,%counter).item,$eval($hget(^formatstr.profiles,$hget(^formatstr.profiles,%counter).item),2))
inc %counter
}
%formattedstr = $regex_stylefn(%formattedstr)
if ($nickComp(stripcolor)) { %formattedstr = $strip(%formattedstr,c) }
return %formattedstr $+ 
}
alias -l ^R {
;RandomStyle
%counter = 1
unset %randomstyle_output
while (%counter <= $len($1-)) {
%randomstyle_code = $gettok(>>,$rand(1,3),62)
;$iif(%randomstyle_code == , %randomstyle_code = %randomstyle_code $+ $rand(0,15))
%randomstyle_output = %randomstyle_output $+ %randomstyle_code $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$mid($1-,%counter,1))
inc %counter
}
return $replace(%randomstyle_output,$chr(1),$chr(32)) $+ 
}
alias -l ^C {
;CycleStyle
%counter = 1
unset %cyclestyle_output
while (%counter <= $len($1-)) {
%cyclestyle_code = $gettok(>>,$calc((%counter % 3) + 1),62)
%cyclestyle_output = %cyclestyle_output $+ %cyclestyle_code $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$mid($1-,%counter,1))
inc %counter
}
return $replace(%cyclestyle_output,$chr(1),$chr(32)) $+ 
}
alias -l ^M {
;RandomCase
%counter = 1
unset %randomcase_output
while (%counter <= $len($1-)) {
%randomcase = $rand(1,2)
if (%randomcase == 1) {
%randomcase_output = %randomcase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$upper($mid($1-,%counter,1)))
}
else {
%randomcase_output = %randomcase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$lower($mid($1-,%counter,1)))
}
inc %counter
}
return $replace(%randomcase_output,$chr(1),$chr(32))
}
alias -l ^N {
;CycleCase
%counter = 1
unset %cyclecase_output
while (%counter <= $len($1-)) {
inc %cyclecase
if ($calc(%cyclecase % 2) == 1) {
%cyclecase_output = %cyclecase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$upper($mid($1-,%counter,1)))
}
else {
%cyclecase_output = %cyclecase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$lower($mid($1-,%counter,1)))
}
inc %counter
}
return $replace(%cyclecase_output,$chr(1),$chr(32))
}
alias -l ^U {
return $upper($1-)
}
alias -l ^L {
return $lower($1-)
}
alias -l ^E {
;l33tstyle
%leetstyle = $replacecs($1-, $&
AE,$chr(198), $&
f,F, F,ph, $&
ck,x0r, $&
cks,x0rz $&
)
%leetstyle = $replacecs(%leetstyle, $&
a,A, A,4, $&
B,$chr(223), $&
c,$chr(162), C,$chr(169), $&
d,D, D,| $+ $chr(41), $&
e,E, E,3, $&
H,$chr(124) $+ - $+ $chr(124), $&
i,I, I,1, $&
K,$chr(124) $+ $chr(139), $&
l,L, L,$chr(163), $&
M,$chr(40) $+ \/ $+ $chr(41), $&
N,$chr(124) $+ \ $+ $chr(124), $&
o,$chr(248), O,0, $&
p,P, P,$chr(182), $&
Q,$chr(40) $+ $chr(44) $+ $chr(41), $&
S,5, $&
t,+, T,7, $&
u,$chr(181), U,$chr(124) $+ _ $+ $chr(124), $&
W,`//, $&
x,$chr(215) $&
)
return %leetstyle
}
alias -l regex_stylefn {
.echo -q $regsub($1-,/\\}/g,$chr(1),%stylefn)
%stylefn = $replace(%stylefn, $chr(32),$chr(5))
while ($regex(%stylefn,/{([CRULMNE]):(.*?):\1}/i)) {
.echo -q $regsub(%stylefn,/{([CRULMNE]):(.*?):\1}/gi,$chr(32) $+ $cr $lf $+ \1(\2) $cr $+ $chr(32),%stylefn)
}
return $replace($eval($replace(%stylefn, $cr,$!+, $lf,$!^, $chr(1),$chr(125)),2),$chr(5),$chr(32))
}

View File

@ -0,0 +1,152 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
// Confidential Developer Copy -- !!!NOT FOR DISTRIBUTION!!!
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[2.00-xxxxxxxx]
=Special trigger accts for loaded server modules, candidates listed below:
TDCC
XDCC
-- Will work as separate addons, but will require and intensely utilize Atma for all its server functionality, such as S/Q, Access, etc
-- Perhaps have spec. accts start with periods? (specifically, periods unaltered by the $trig.encode function, left invisible in atma config (optional maybe?), if visible, checkbox to set as a special acct (thus telling it to affix the leading period), or something)
Triggers..XDCC.!SylverScripts
Triggers..TDCC.!Rules
-- Maybe another serving system could be thought up.... would be great, but also difficult to come up with one
-- Use the proposed file transfer log as an atma module :)
-- Version 2 should, beyond any shadow of a doubt, justify ten-fold the arduous process of carefully coding atma for extensibility and scalability.
=Rebuild Atma dialogs using MDX in the most efficient and visually pleasing manner, perhaps adding additional dialog functionality in the process
=Multiple language support using language ini files
=Whatever else comes to mind while developing 1.xx
[1.xx-xxxxxxxx]
=New Local Setting Overrides:
{ Trigger-Specific config options [+.05]
Trigger-Specific Send/Queue limit modifications [+.05]
Channel-Specific Ad Display Settings[+.05]
Channel-Specific Send/Queue limit modifications[+.05]
} -> Advanced Trigger config.... settings based by channel, * for all other chans (add/del/pick chan or * from a list)
User-Specific relative Send/Queue limit modifications i.e. +2 sends, -2 queues, +50% queues, etc. (to be added to fserv access list, access list will be optionally exclusive from that point on) [+.10]
=Automatic web-updating [+.05-.10]
=Multiserver support (perhaps using Network:#Channel, Network:Nick, or something to that effect). [+.10]
=Make queues persistant. Shouldn't be too hard, just requires queue management on fserv activation -- and, of course, not deleting the queue file when shutting down/starting up. Maybe let the user know files are coming first, though, if the queue's been offline for a while. [+.0x]
=File Transfer logging and management dialog -- keep track of what comes and goes, what fails, and who needs what. Could be good for trades too ;) [separate]
=Transfer Forwarding -- Allow users to specify a different nick to send files to, using NickChange principles
=Auto-backup of atma.dat after successfully loading it; allow easy restoration should it be found bad. Check for defaults when testing, i.e. Channels.*,
=Complete multiserver
=optional server-specific queue management over global
=Import styles, save styles with spaces in name, save styles with author info, export stylepacks. wo0t!
[1.40-xxxxxxxx]
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Add web updates
=Add to and update styles system
[1.393-20070809]
+Fixed a bug in the configuration dialog that was preventing the fserv find limit not to save when edited
[1.392-20060821]
+Fixed a bug in the CTCP channel config check that made ctcp not work in some cases
+Hits tracking was made more accurate (should be no more false positives on unrelated dcc chatting)
[1.391-20050103]
+Fixed a bug in formatstr.sa that caused it not to load its profiles properly
[1.39-20041217]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
+Rewrote the queue system, its much more accurate and efficient now
+!list does not respond if the fserv is inactive
+Fixed the search, now uses plain wildcard searches. Why I used regex before, I don't know.
+Fixed the channel guard checkbox, changed it to terminate all sends and clear all queues.
[1.372-20030710]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Fix channel guard
=Refine queue system
=Add to and update styles system
[1.31-20030204]
+Fixed bug -- wasn't creating the default channel configuration on startup if it wasn't there!!!! ARGH!
+Added new styles!!! (Ok, now that I have, it's YOUR turn... c'mon! Make up some cool styles and send them to me ^_^)
PoIz<49>n, xServ_Classic, SphinxScript_Saiyan, #!/bin/bash, micron
+Fixed !list bug -- wasn't properly showing ad
+Fixed advertise alias -- couldn't handle /atma.advertise *, so timed ads weren't going out right
+Oh to heck with it,..... FIXED ALL ADVERTISING BUGS!!!! CURSE THEM ALL!!!!! THEY AT LAST ARE DEAD!!!
-- if, by some obscene chance, your ads are not displaying as they should, email me what it _is_ displaying, how/where it is displaying it (channel ad, !list, etc.), what you feel is wrong, and also include your atma.dat file for debugging purposes.
+Fixed CTCP trigger bug -- it was responding to ALL CTCPs when the fserv was disabled. Annoying...
+Added &Atma.Version and &Atma.Build identifiers to the formatString profile
+Made sure all the Atma formatString identifiers are listed in the dialog.
+Made the "Start on connect" setting in Atma multi-server conscious -- that is, it won't restart everytime you connect to a new server. It will only autostart if there are no other currently active connections.
[1.30-20030131]
+Fixed !list bug -- since the 1.20 updates it was mysteriously tending to channels not being served to again.
+Fixed a queue bug -- users were able to queue one file over their limit. Not anymore.
+Clearing the queue file on Atma.Activate was moved to on:start, to keep it from deleting every time you joined a new server and had "activate on connect" checked.
+Fixed a bug in the CTCP trigger code. Nonconfigured channels were not detecting their CTCP requests properly. They are now ;o)~
+Changed how the access auditing timer was handled, so no more "ATMA.ACCESS.AUDIT Unknown command" errors
+Coded the rest of the buttons in the queue manager, also made sure they're all multiserver-compliant as well. No more buttons that don't work because the developer was lazy ;oP~
+Added a button to manually add a file to the queue. It was a useful feature some people thought would be a nice addition :)
+MULTISERVER ADDITIONS (Only basic activity, no multiserver configuration yet)
+Server ad now displays fine across multiple servers (it used to only work in the active server context, and barely at that)
+Queues now handled across multiple servers. (Stored the CID in the queue file)
+NICKCHANGE HANDLING
+When a user nickname change is detected, all of that user's queues are modified to point to the new nickname
+If a user changes their nickname with an active fserv session, that session is terminated to ensure that queues are not added using the old nick.
+Some minor tweaks to the code that I can barely even remember... mostly just to make sure everything works fine even when the $scriptdir contains spaces. Must support spaces.....
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find
[1.00-20021017]
=+= First official release =+=
[0.00-20021007]
=+= Atma project started =+=

View File

@ -0,0 +1,178 @@
#formatstr.sa off
[addon]
name=FormatString parsing engine
id=formatstr
category=FileServing
version=2.2a-sa
author=Correl J. Roush
helpfile=formatStr.hlp
[dirs]
1=Profiles
[scriptfiles]
1=formatstr.sa
[miscfiles]
1=formatStr.hlp
2=Profiles\^profile_Atma.hsh
3=Profiles\^profile_away.hsh
4=Profiles\^profile_GreetZ.hsh
5=Profiles\^profile_nickComp.hsh
6=Profiles\^profile_standard.hsh
7=Profiles\^theme_phoenix.hsh
[configfiles]
[formatstr.sa]
#formatstr.sa off
on *:start:{
^formatstr.loadprofiles
}
alias ^formatstr.version { return $readini($script,addon,version) }
alias ^formatstr.help { run $scriptdirformatStr.hlp }
alias ^formatstr.loadprofiles {
$iif($hget(^formatstr.profiles),hfree ^formatstr.profiles)
.echo -q $findfile($scriptdirProfiles,*.hsh,0,0, loadprofile.appendtomaster $1-)
}
alias -l loadprofile.appendtomaster {
$iif(!$hget(^formatstr.profiles),hmake ^formatstr.profiles 100)
hload ^formatstr.profiles " $+ $1- $+ "
hadd ^formatstr.profiles profiles $addtok($hget(^formatstr.profiles,profiles),$hget(^formatstr.profiles,_name),44)
;echo -s Loaded $hget(^formatstr.profiles,_name) profile for the Phoenix FormatString Parser
hdel ^formatstr.profiles _name
}
alias parse_formatstr {
; $1 == word to format
; $2 == format string
var %counter = 1
%formattedstr = $2
while (%counter <= $hget(^formatstr.profiles,0).item) {
%formattedstr = $replace(%formattedstr,$hget(^formatstr.profiles,%counter).item,$eval($hget(^formatstr.profiles,$hget(^formatstr.profiles,%counter).item),2))
inc %counter
}
%formattedstr = $regex_stylefn(%formattedstr)
if ($nickComp(stripcolor)) { %formattedstr = $strip(%formattedstr,c) }
return %formattedstr $+ 
}
alias -l ^R {
;RandomStyle
%counter = 1
unset %randomstyle_output
while (%counter <= $len($1-)) {
%randomstyle_code = $gettok(>>,$rand(1,3),62)
;$iif(%randomstyle_code == , %randomstyle_code = %randomstyle_code $+ $rand(0,15))
%randomstyle_output = %randomstyle_output $+ %randomstyle_code $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$mid($1-,%counter,1))
inc %counter
}
return $replace(%randomstyle_output,$chr(1),$chr(32)) $+ 
}
alias -l ^C {
;CycleStyle
%counter = 1
unset %cyclestyle_output
while (%counter <= $len($1-)) {
%cyclestyle_code = $gettok(>>,$calc((%counter % 3) + 1),62)
%cyclestyle_output = %cyclestyle_output $+ %cyclestyle_code $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$mid($1-,%counter,1))
inc %counter
}
return $replace(%cyclestyle_output,$chr(1),$chr(32)) $+ 
}
alias -l ^M {
;RandomCase
%counter = 1
unset %randomcase_output
while (%counter <= $len($1-)) {
%randomcase = $rand(1,2)
if (%randomcase == 1) {
%randomcase_output = %randomcase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$upper($mid($1-,%counter,1)))
}
else {
%randomcase_output = %randomcase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$lower($mid($1-,%counter,1)))
}
inc %counter
}
return $replace(%randomcase_output,$chr(1),$chr(32))
}
alias -l ^N {
;CycleCase
%counter = 1
unset %cyclecase_output
while (%counter <= $len($1-)) {
inc %cyclecase
if ($calc(%cyclecase % 2) == 1) {
%cyclecase_output = %cyclecase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$upper($mid($1-,%counter,1)))
}
else {
%cyclecase_output = %cyclecase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$lower($mid($1-,%counter,1)))
}
inc %counter
}
return $replace(%cyclecase_output,$chr(1),$chr(32))
}
alias -l ^U {
return $upper($1-)
}
alias -l ^L {
return $lower($1-)
}
alias -l ^E {
;l33tstyle
%leetstyle = $replacecs($1-, $&
AE,$chr(198), $&
f,F, F,ph, $&
ck,x0r, $&
cks,x0rz $&
)
%leetstyle = $replacecs(%leetstyle, $&
a,A, A,4, $&
B,$chr(223), $&
c,$chr(162), C,$chr(169), $&
d,D, D,| $+ $chr(41), $&
e,E, E,3, $&
H,$chr(124) $+ - $+ $chr(124), $&
i,I, I,1, $&
K,$chr(124) $+ $chr(139), $&
l,L, L,$chr(163), $&
M,$chr(40) $+ \/ $+ $chr(41), $&
N,$chr(124) $+ \ $+ $chr(124), $&
o,$chr(248), O,0, $&
p,P, P,$chr(182), $&
Q,$chr(40) $+ $chr(44) $+ $chr(41), $&
S,5, $&
t,+, T,7, $&
u,$chr(181), U,$chr(124) $+ _ $+ $chr(124), $&
W,`//, $&
x,$chr(215) $&
)
return %leetstyle
}
alias -l regex_stylefn {
.echo -q $regsub($1-,/\\}/g,$chr(1),%stylefn)
%stylefn = $replace(%stylefn, $chr(32),$chr(5))
while ($regex(%stylefn,/{([CRULMNE]):(.*?):\1}/i)) {
.echo -q $regsub(%stylefn,/{([CRULMNE]):(.*?):\1}/gi,$chr(32) $+ $cr $lf $+ \1(\2) $cr $+ $chr(32),%stylefn)
}
return $replace($eval($replace(%stylefn, $cr,$!+, $lf,$!^, $chr(1),$chr(125)),2),$chr(5),$chr(32))
}

View File

@ -0,0 +1,91 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
// Confidential Developer Copy -- !!!NOT FOR DISTRIBUTION!!!
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[2.00-xxxxxxxx]
=Special trigger accts for loaded server modules, candidates listed below:
TDCC
XDCC
-- Will work as separate addons, but will require and intensely utilize Atma for all its server functionality, such as S/Q, Access, etc
-- Perhaps have spec. accts start with periods? (specifically, periods unaltered by the $trig.encode function, left invisible in atma config (optional maybe?), if visible, checkbox to set as a special acct (thus telling it to affix the leading period), or something)
Triggers..XDCC.!SylverScripts
Triggers..TDCC.!Rules
-- Maybe another serving system could be thought up.... would be great, but also difficult to come up with one
-- Use the proposed file transfer log as an atma module :)
-- Version 2 should, beyond any shadow of a doubt, justify ten-fold the arduous process of carefully coding atma for extensibility and scalability.
=Rebuild Atma dialogs using MDX in the most efficient and visually pleasing manner, perhaps adding additional dialog functionality in the process
=Whatever else comes to mind while developing 1.xx
[1.xx-xxxxxxxx]
=New Local Setting Overrides:
{ Trigger-Specific config options [+.05]
Trigger-Specific Send/Queue limit modifications [+.05]
Channel-Specific Ad Display Settings[+.05]
Channel-Specific Send/Queue limit modifications[+.05]
} -> Advanced Trigger config.... settings based by channel, * for all other chans (add/del/pick chan or * from a list)
User-Specific relative Send/Queue limit modifications i.e. +2 sends, -2 queues, +50% queues, etc. (to be added to fserv access list, access list will be optionally exclusive from that point on) [+.10]
=Automatic web-updating [+.05-.10]
=Multiserver support (perhaps using Network:#Channel, Network:Nick, or something to that effect). [+.10]
=Make queues persistant. Shouldn't be too hard, just requires queue management on fserv activation -- and, of course, not deleting the queue file when shutting down/starting up. Maybe let the user know files are coming first, though, if the queue's been offline for a while. [+.0x]
=File Transfer logging and management dialog -- keep track of what comes and goes, what fails, and who needs what. Could be good for trades too ;) [separate]
=Transfer Forwarding -- Allow users to specify a different nick to send files to, using NickChange principles
=Auto-backup of atma.dat after successfully loading it; allow easy restoration should it be found bad. Check for defaults when testing, i.e. Channels.*,
=Complete multiserver
=optional server-specific queue management over global
[1.30-20030131]
+Fixed !list bug -- since the 1.20 updates it was mysteriously tending to channels not being served to again.
+Fixed a queue bug -- users were able to queue one file over their limit. Not anymore.
+Clearing the queue file on Atma.Activate was moved to on:start, to keep it from deleting every time you joined a new server and had "activate on connect" checked.
+Fixed a bug in the CTCP trigger code. Nonconfigured channels were not detecting their CTCP requests properly. They are now ;o)~
+Changed how the access auditing timer was handled, so no more "ATMA.ACCESS.AUDIT Unknown command" errors
+Coded the rest of the buttons in the queue manager, also made sure they're all multiserver-compliant as well. No more buttons that don't work because the developer was lazy ;oP~
+Added a button to manually add a file to the queue. It was a useful feature some people thought would be a nice addition :)
+MULTISERVER ADDITIONS (Only basic activity, no multiserver configuration yet)
+Server ad now displays fine across multiple servers (it used to only work in the active server context, and barely at that)
+Queues now handled across multiple servers. (Stored the CID in the queue file)
+NICKCHANGE HANDLING
+When a user nickname change is detected, all of that user's queues are modified to point to the new nickname
+If a user changes their nickname with an active fserv session, that session is terminated to ensure that queues are not added using the old nick.
+Some minor tweaks to the code that I can barely even remember... mostly just to make sure everything works fine even when the $scriptdir contains spaces. Must support spaces.....
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find
[1.00-20021017]
=+= First official release =+=
[0.00-20021007]
=+= Atma project started =+=

View File

@ -0,0 +1,4 @@
CTCP not working must be related to the Default Channel Config bug
!list really shouldn't respond in channels it has not triggers for, it likely does this due to the default channel settings.
!list did NOT show the ctcp trigger properly in nonconfigured channels (i.e. def is ctcp, will show as normal in nonconfig'd chans) .... look into that
Multiserver, multiserver, multiserver. queues clear on new connects!!! can't have that!!!

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,110 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[1.40-xxxxxxxx]
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Add web updates
=Add to and update styles system
[1.391-20050103]
+Fixed a bug in formatstr.sa that caused it not to load its profiles properly
[1.39-20041217]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
+Rewrote the queue system, its much more accurate and efficient now
+!list does not respond if the fserv is inactive
+Fixed the search, now uses plain wildcard searches. Why I used regex before, I don't know.
+Fixed the channel guard checkbox, changed it to terminate all sends and clear all queues.
[1.372-20030710]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Fix channel guard
=Refine queue system
=Add to and update styles system
[1.31-20030204]
+Fixed bug -- wasn't creating the default channel configuration on startup if it wasn't there!!!! ARGH!
+Added new styles!!! (Ok, now that I have, it's YOUR turn... c'mon! Make up some cool styles and send them to me ^_^)
PoIz<49>n, xServ_Classic, SphinxScript_Saiyan, #!/bin/bash, micron
+Fixed !list bug -- wasn't properly showing ad
+Fixed advertise alias -- couldn't handle /atma.advertise *, so timed ads weren't going out right
+Oh to heck with it,..... FIXED ALL ADVERTISING BUGS!!!! CURSE THEM ALL!!!!! THEY AT LAST ARE DEAD!!!
-- if, by some obscene chance, your ads are not displaying as they should, email me what it _is_ displaying, how/where it is displaying it (channel ad, !list, etc.), what you feel is wrong, and also include your atma.dat file for debugging purposes.
+Fixed CTCP trigger bug -- it was responding to ALL CTCPs when the fserv was disabled. Annoying...
+Added &Atma.Version and &Atma.Build identifiers to the formatString profile
+Made sure all the Atma formatString identifiers are listed in the dialog.
+Made the "Start on connect" setting in Atma multi-server conscious -- that is, it won't restart everytime you connect to a new server. It will only autostart if there are no other currently active connections.
[1.30-20030131]
+Fixed !list bug -- since the 1.20 updates it was mysteriously tending to channels not being served to again.
+Fixed a queue bug -- users were able to queue one file over their limit. Not anymore.
+Clearing the queue file on Atma.Activate was moved to on:start, to keep it from deleting every time you joined a new server and had "activate on connect" checked.
+Fixed a bug in the CTCP trigger code. Nonconfigured channels were not detecting their CTCP requests properly. They are now ;o)~
+Changed how the access auditing timer was handled, so no more "ATMA.ACCESS.AUDIT Unknown command" errors
+Coded the rest of the buttons in the queue manager, also made sure they're all multiserver-compliant as well. No more buttons that don't work because the developer was lazy ;oP~
+Added a button to manually add a file to the queue. It was a useful feature some people thought would be a nice addition :)
+MULTISERVER ADDITIONS (Only basic activity, no multiserver configuration yet)
+Server ad now displays fine across multiple servers (it used to only work in the active server context, and barely at that)
+Queues now handled across multiple servers. (Stored the CID in the queue file)
+NICKCHANGE HANDLING
+When a user nickname change is detected, all of that user's queues are modified to point to the new nickname
+If a user changes their nickname with an active fserv session, that session is terminated to ensure that queues are not added using the old nick.
+Some minor tweaks to the code that I can barely even remember... mostly just to make sure everything works fine even when the $scriptdir contains spaces. Must support spaces.....
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find
[1.00-20021017]
=+= First official release =+=
[0.00-20021007]
=+= Atma project started =+=

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1 @@
There is one feature yet in Atma that I have not told anybody about yet. One feature that has been a part of the script since its creation, since its initial design, and has been growing with the script ever since. This feature will prove to be greater than any other ever added in the lifetime of the script. In version 2.0 it will reach a peak. And at that time, it shall be unveiled.

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,11 @@
; This file is maintained by HCW. Do not modify this file directly.
[OPTIONS]
COMPRESS=12 Hall Zeck
LCID=0x409 0x0 0x0 ; English (United States)
REPORT=Yes
TITLE=Atma FileServer for mIRC
HLP=Atma-Fserv.hlp
[FILES]
Atma-Fserv.rtf

View File

@ -0,0 +1,13 @@
;Simple installation script for the Atma Fileserver
on *:load:{
$iif($script(atma.mrc),unload -rs " $+ $ifmatch $+ ")
$iif($script(formatStr.mrc),unload -rs " $+ $ifmatch $+ ")
$iif($script(atma.sa),unload -rs " $+ $ifmatch $+ ")
$iif($script(formatStr.sa),unload -rs " $+ $ifmatch $+ ")
load -rs " $+ $scriptdiratma.sa $+ "
load -rs " $+ $scriptdirformatStr\formatStr.sa $+ "
unload -rs " $+ $script $+ "
}

View File

@ -0,0 +1,14 @@
Atma Fileserver v1.20.20021205
Packaged with the formatString parser
To install, you'll have to unzip the script files to its own directory,
then load the installation script:
i.e. if you extracted the script to a folder called Atma in your mIRC directory, you'd type
/load -rs Atma\atma-install.mrc
Once the installation script finishes its tasks, you're good to go :)
Type /Atma to begin configuring your file server ^_^
If you get stuck, feel free to bug me, all my contact information is available
in Atma's help file. Good luck ;o)~

View File

@ -0,0 +1,6 @@
&GreetZ.nick
$gettok($1,1,32)
&GreetZ.msg
$gettok($1,2-,32)
_name
GreetZ Welcome Back

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -0,0 +1,17 @@
Atma FileServer script for mIRC 6.02+
Basic Installation Instructions
///////////////////////////////
Unzip the atma zip file to your mIRC folder (i.e. C:\Program Files\mIRC\)
In mIRC, use the following command to run the atma installer script:
/load -rs atma/atma-install.mrc
If mIRC prompts you to run script initializations when you do this, you must select Yes.
The installer script will automatically unload any older Atma version you may have, and load the new one.
Enjoy Atma :)
(Please refer to Atma.hlp for further documentation and contact information)

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,28 @@
&Atma.Users
$Atma.Users.count $+ / $+ $Atma.Channels($Atma.Networks($networkname),$1).maxUsers
&Atma.Triggers
$Atma.triggers($1).Formatted
&Atma.Sends
$Atma.Sends $+ / $+ $Atma(maxTSends)
&Atma.Queues
$iif($Atma.Channels($Atma.Networks($networkname),$1).QueueUsing == FileSize,$bytes($calc($Atma.Queue(.*).size * 1048576),3).suf,$Atma.Queue(.*)) $+ / $+ $iif($Atma.Channels($Atma.Networks($networkname),$1).QueueUsing == FileSize,$bytes($calc($Atma.Channels($Atma.Networks($networkname),$1).MaxTQueues * 1048576),3).suf,$Atma.Channels($Atma.Networks($networkname),$1).maxTQueues))
&Atma.InfoLine
$Atma.Channels($Atma.Networks($networkname),$1).InfoLine
&Atma.LeechedFiles
$iif($hget(_/\tmaFS,LeechedFiles),$ifmatch,0)
&Atma.LeechedBytes
$iif($hget(_/\tmaFS,LeechedBytes),$bytes($ifmatch).suf,0 bytes)
&Atma.RecordSpeed
$iif($hget(_/\tmaFS,RecordSpeed),$round($calc($gettok($ifmatch,2,32) / 1024),2) $+ kb/s by $gettok($ifmatch,1,32),0kb/s)
&Atma.Hits
$iif($hget(_/\tmaFS,Hits),$ifmatch,0)
&Atma.CachedFiles
$hget(_/\tmaFS.cache,0).item
&Atma.MinCPS
$iif($Atma(MinCPS.Enabled),$Atma(MinCPS) CPS for a max of $Atma(MinCPS.secs) seconds,None)
&Atma.Version
$gettok($Atma.ver,1,$asc(-))
&Atma.Build
$gettok($Atma.ver,2-,$asc(-))
_name
Atma FileServer

BIN
.svn/wc.db Normal file

Binary file not shown.

0
.svn/wc.db-journal Normal file
View File

View File

@ -0,0 +1 @@
There is one feature yet in Atma that I have not told anybody about yet. One feature that has been a part of the script since its creation, since its initial design, and has been growing with the script ever since. This feature will prove to be greater than any other ever added in the lifetime of the script. In version 2.0 it will reach a peak. And at that time, it shall be unveiled.

BIN
contrib/1.393-cpM/Atma.hlp Executable file

Binary file not shown.

BIN
contrib/1.393-cpM/Atma.stp Executable file

Binary file not shown.

View File

@ -0,0 +1,16 @@
Sylver Update Server -- PHP
database driven?
Should be able to do the following:
Check latest version available for a specific script package
List all available script packages
Download individual files from the script package (or, perhaps, a single package file when the packaging routines for mIRC are finished)
script package specs are contained in the main addon file (.sa). Should the php engine parse this? or should it be entered into the database?
That would require an ini parser for PHP..... interesting.
On the other hand of course, the client could simply parse the .sa and get the files, needing only the base directory from the server. Quite possibly the better idea.
Whaddya know,.... $nofile() can handle relative unix paths, this can work!
The system cannot be built soley around a full-script update construct, since I still prefer to release the addons in a standalone fashion as well. Addons will have a menu option to update themselves, which can work without the full update suite.
This will most likely mean splitting the update suite into two scripts: an update "library", containing the basic functions required to perform a sa-based web update, and the full script's update client.

View File

@ -0,0 +1,13 @@
;Simple installation script for the Atma Fileserver
on *:load:{
$iif($script(atma.mrc),unload -rs " $+ $ifmatch $+ ")
$iif($script(formatStr.mrc),unload -rs " $+ $ifmatch $+ ")
$iif($script(atma.sa),unload -rs " $+ $ifmatch $+ ")
$iif($script(formatStr.sa),unload -rs " $+ $ifmatch $+ ")
load -rs " $+ $scriptdiratma.sa $+ "
load -rs " $+ $scriptdirformatStr\formatStr.sa $+ "
unload -rs " $+ $script $+ "
}

View File

@ -0,0 +1,6 @@
What needs to be done to Atma to support Multiserver...
change all channel messages to use /scon -at1 msg $chan etc...
store CIDs in the queue file
store CIDs in channel configuration

1853
contrib/1.393-cpM/atma.sa Executable file

File diff suppressed because it is too large Load Diff

15
contrib/1.393-cpM/bugs-atma.txt Executable file
View File

@ -0,0 +1,15 @@
And now, other bugs/things to add I've found:
- the server allows one more queue than specified, example if I say maximum 9 queues it allows up to 10 queues.
- if I have two or more slots open it will not send the files in the queue to two users, but only the first requested (that will be sent instantly).
- When a user changes nick the fileserver still tries to send the files to the old nick.
- I think the !list request have to be restricted only to channels where you're serving. I fixed this for me but it'll be nice if you fix it for all.
- Another useful function would be a button to add manually files to queue instead of letting only other users add them.
Another one: it's just silly that it deletes the queue file when you connect to a new server.. when I do it everything that's queued is cleared and the users have to use the fserve again. Have it delete the file on mIRC open instead.
Ok, the !list problem is fixed, but I see now that mIRC with atma fileserver 1.20 uses 95% of CPU sources!! it slows all..
sorry for bugging you but I hope this things will help you keeping good this script ^^
as I thought, the cpu resources problem was given by the timers. The script sets the timer delay default at 0, so it repeats the action infinitely and infinite times for second. Set a higher default delay and you solved it I think ^^
So, after every check, the queue +1 problem still exists, and the two features (nick change and way to manually add files) will be very nice. Maybe also a feature to requeue timed out files.. as you can ^^

4
contrib/1.393-cpM/bugs.txt Executable file
View File

@ -0,0 +1,4 @@
CTCP not working must be related to the Default Channel Config bug
!list really shouldn't respond in channels it has not triggers for, it likely does this due to the default channel settings.
!list did NOT show the ctcp trigger properly in nonconfigured channels (i.e. def is ctcp, will show as normal in nonconfig'd chans) .... look into that
Multiserver, multiserver, multiserver. queues clear on new connects!!! can't have that!!!

Binary file not shown.

View File

@ -0,0 +1,28 @@
&Atma.Users
$Atma.Users.count $+ / $+ $Atma.Channels($Atma.Networks($networkname),$1).maxUsers
&Atma.Triggers
$Atma.triggers($1).Formatted
&Atma.Sends
$Atma.Sends $+ / $+ $Atma(maxTSends)
&Atma.Queues
$iif($Atma.Channels($Atma.Networks($networkname),$1).QueueUsing == FileSize,$bytes($calc($Atma.Queue(.*).size * 1048576),3).suf,$Atma.Queue(.*)) $+ / $+ $iif($Atma.Channels($Atma.Networks($networkname),$1).QueueUsing == FileSize,$bytes($calc($Atma.Channels($Atma.Networks($networkname),$1).MaxTQueues * 1048576),3).suf,$Atma.Channels($Atma.Networks($networkname),$1).maxTQueues))
&Atma.InfoLine
$Atma.Channels($Atma.Networks($networkname),$1).InfoLine
&Atma.LeechedFiles
$iif($hget(_/\tmaFS,LeechedFiles),$ifmatch,0)
&Atma.LeechedBytes
$iif($hget(_/\tmaFS,LeechedBytes),$bytes($ifmatch).suf,0 bytes)
&Atma.RecordSpeed
$iif($hget(_/\tmaFS,RecordSpeed),$round($calc($gettok($ifmatch,2,32) / 1024),2) $+ kb/s by $gettok($ifmatch,1,32),0kb/s)
&Atma.Hits
$iif($hget(_/\tmaFS,Hits),$ifmatch,0)
&Atma.CachedFiles
$hget(_/\tmaFS.cache,0).item
&Atma.MinCPS
$iif($Atma(MinCPS.Enabled),$Atma(MinCPS) CPS for a max of $Atma(MinCPS.secs) seconds,None)
&Atma.Version
$gettok($Atma.ver,1,$asc(-))
&Atma.Build
$gettok($Atma.ver,2-,$asc(-))
_name
Atma FileServer

View File

@ -0,0 +1,6 @@
&GreetZ.nick
$gettok($1,1,32)
&GreetZ.msg
$gettok($1,2-,32)
_name
GreetZ Welcome Back

View File

@ -0,0 +1,10 @@
&Away.Reason
$awaymsg
&Away.Time
$awaytime
&Away.Gone
$duration($awaytime)
&Away.State
$1
_name
Away System

View File

@ -0,0 +1,10 @@
&M
$mid($1,2,$calc($len($1) - 2))
&F
$left($1,1)
&W
$1
&L
$right($1,1)
_name
nickComp

View File

@ -0,0 +1,14 @@
&R

&U

&B

&C

&^$
$
&^%
%
_name
standard

View File

@ -0,0 +1,66 @@
&^raw.unhandled_start^
&C00__[&C04unhandled RAW:&C15 &^$1 &C00]__
&^raw318.display_operator^
&C15.&C00&B.&B&C05IrcOP&C00[&C15 &^%whois+.operator &C00]
&^raw376.display_motd^
&C15.&C00&B.&B&C05 -&C15 &^$hget(^raw372,MOTD_ &^$+ &^%^raw376.counter)
&^raw369.display_start^
&C00______[&C04whowas information for&C15 &^%whois+.nick &C00]&C15______
&^raw.error^
&C00__[&C04Error&C15 &^$1 &^$+ : &^$regml(^sylver,1) &C00]__
&^raw4.display_created^
&C15.&C00&B.&B&C[&C15 &^$eval(&^%raw.server.created)
&^raw4.display_myinfo^
&C15.&C00&B.&B&C[&C15 &^$eval(&^%raw.server.myinfo)
&^raw318.display_user^
&C15.&C00&B.&B&C05Nick&C00[&C15 &^%whois+.nick &C00] &C05User&C00[&C15 &^%whois+.user &C00] &C05Host&C00[&C15 &^%whois+.host &C00] &C05RealName&C00[&C15 &^%whois+.realname &C00]
&^raw369.display_user^
&C15.&C00&B.&B&C05Nick&C00[&C15 &^%whois+.nick &C00] &C05User&C00[&C15 &^%whois+.user &C00] &C05Host&C00[&C15 &^%whois+.host &C00] &C05RealName&C00[&C15 &^%whois+.realname &C00]
&^raw376.display_end^
&C00__[&C04MOTD&C00]&C15______________________
&^msg^
&C4(&C &^$+ &^$me &^$+ &C4)&C &^$2-
&^raw4.display_start^
&C00______[&C04Server information for&C15 &^$server &C00]&C15______
&^raw.simplemsg^
&C05.&C04&B.&B&C00[&C15 &^$+ &^$2- &^$+ &C00]
&^raw318.display_server^
&C15.&C00&B.&B&C05Server&C00[&C15 &^%whois+.server &C00] &C05Info&C00[&C15 &^%whois+.serverinfo &C00]
&^raw318.display_signon^
&C15.&C00&B.&B&C05Sign-On time&C00[&C15 &^$asctime(&^%whois+.signon) &C00]
&^raw318.display_end^
&C00______[&C04whois information for&C15 &^%whois+.nick &C00]&C15______
&^raw366.display_end^
&C05.&C04&B.&B&C00[&C04h/ops&C15 &^%^raw366.hops ( &^$+ &^$int(&^$calc(&^%^raw366.hops / &^%^raw366.total * 100)) &^$+ &^% &^$+ )&C00]&C00[&C04ops&C15 &^%^raw366.ops ( &^$+ &^$int(&^$calc(&^%^raw366.ops / &^%^raw366.total * 100)) &^$+ &^% &^$+ )&C00]&C00[&C04voiced&C15 &^%^raw366.voice ( &^$+ &^$int(&^$calc(&^%^raw366.voice / &^%^raw366.total * 100)) &^$+ &^% &^$+ )&C00]&C00[&C04regular&C15 &^%^raw366.regular ( &^$+ &^$int(&^$calc(&^%^raw366.regular / &^%^raw366.total * 100)) &^$+ &^% &^$+ )&C00]&C15
&^raw318.display_channels^
&C15.&C00&B.&B&C05Channels&C00[&C15 &^%whois+.channels &C00]
&^raw318.display_idle^
&C15.&C00&B.&B&C05Idle for &C00[&C15 &^$duration(&^%whois+.idle) &C00]
&^raw.message^
&C00__[&C04Server Message&C15 &^$1- &C00]__
&^raw366.display_names^
&^$eval(&C15.&C00&B.&B&C15 $eval(&^% &^$+ [ ^raw353.names &^$+ [ &^%^raw366.counter ] ],2),2)
&^raw376.display_start^
&C00__[&C04MOTD&C00]&C15______________________
&^raw4.display_welcome^
&C15.&C00&B.&B&C[&C15 &^$eval(&^%raw.server.welcome)
&^raw369.display_server^
&C15.&C00&B.&B&C05Server&C00[&C15 &^%whois+.server &C00] &C05Info&C00[&C15 &^%whois+.serverinfo &C00]
&^raw4.display_end^
&C00______[&C04Server information for&C15 &^$server &C00]&C15______
&^raw.unhandled_data^
&C15.&C00&B.&B&C05Data&C00[&C15 &^$regml(^sylver,1) &C00]
_name
Phoenix Theme for SylverIRC
&^raw318.display_away^
&C15.&C00&B.&B&C05Away&C00[&C15 &^%whois+.away &C00]
&^raw369.display_end^
&C00______[&C04whowas information for&C15 &^%whois+.nick &C00]&C15______
&^raw4.display_yourhost^
&C15.&C00&B.&B&C[&C15 &^$eval(&^%raw.server.yourhost)
&^raw318.display_start^
&C00______[&C04whois information for&C15 &^%whois+.nick &C00]&C15______
&^raw318.display_extra^
&C15.&C00&B.&B&C05Extra&C00[&C15 &^$gettok(&^%whois+.extra,&^%whois+.counter,58) &C00]
&^raw366.display_start^
&C05.&C04&B.&B&C00[&C04Names for&C15 &^%^raw353.chan &C00]&C15

View File

@ -0,0 +1,178 @@
#formatstr.sa off
[addon]
name=FormatString parsing engine
id=formatstr
category=FileServing
version=2.2a-sa
author=Correl J. Roush
helpfile=formatStr.hlp
[dirs]
1=Profiles
[scriptfiles]
1=formatstr.sa
[miscfiles]
1=formatStr.hlp
2=Profiles\^profile_Atma.hsh
3=Profiles\^profile_away.hsh
4=Profiles\^profile_GreetZ.hsh
5=Profiles\^profile_nickComp.hsh
6=Profiles\^profile_standard.hsh
7=Profiles\^theme_phoenix.hsh
[configfiles]
[formatstr.sa]
#formatstr.sa off
on *:start:{
^formatstr.loadprofiles
}
alias ^formatstr.version { return $readini($script,addon,version) }
alias ^formatstr.help { run $scriptdirformatStr.hlp }
alias ^formatstr.loadprofiles {
$iif($hget(^formatstr.profiles),hfree ^formatstr.profiles)
.echo -q $findfile($scriptdirProfiles,*.hsh,0,0, loadprofile.appendtomaster $1-)
}
alias -l loadprofile.appendtomaster {
$iif(!$hget(^formatstr.profiles),hmake ^formatstr.profiles 100)
hload ^formatstr.profiles " $+ $1- $+ "
hadd ^formatstr.profiles profiles $addtok($hget(^formatstr.profiles,profiles),$hget(^formatstr.profiles,_name),44)
;echo -s Loaded $hget(^formatstr.profiles,_name) profile for the Phoenix FormatString Parser
hdel ^formatstr.profiles _name
}
alias parse_formatstr {
; $1 == word to format
; $2 == format string
var %counter = 1
%formattedstr = $2
while (%counter <= $hget(^formatstr.profiles,0).item) {
%formattedstr = $replace(%formattedstr,$hget(^formatstr.profiles,%counter).item,$eval($hget(^formatstr.profiles,$hget(^formatstr.profiles,%counter).item),2))
inc %counter
}
%formattedstr = $regex_stylefn(%formattedstr)
if ($nickComp(stripcolor)) { %formattedstr = $strip(%formattedstr,c) }
return %formattedstr $+ 
}
alias -l ^R {
;RandomStyle
%counter = 1
unset %randomstyle_output
while (%counter <= $len($1-)) {
%randomstyle_code = $gettok(>>,$rand(1,3),62)
;$iif(%randomstyle_code == , %randomstyle_code = %randomstyle_code $+ $rand(0,15))
%randomstyle_output = %randomstyle_output $+ %randomstyle_code $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$mid($1-,%counter,1))
inc %counter
}
return $replace(%randomstyle_output,$chr(1),$chr(32)) $+ 
}
alias -l ^C {
;CycleStyle
%counter = 1
unset %cyclestyle_output
while (%counter <= $len($1-)) {
%cyclestyle_code = $gettok(>>,$calc((%counter % 3) + 1),62)
%cyclestyle_output = %cyclestyle_output $+ %cyclestyle_code $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$mid($1-,%counter,1))
inc %counter
}
return $replace(%cyclestyle_output,$chr(1),$chr(32)) $+ 
}
alias -l ^M {
;RandomCase
%counter = 1
unset %randomcase_output
while (%counter <= $len($1-)) {
%randomcase = $rand(1,2)
if (%randomcase == 1) {
%randomcase_output = %randomcase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$upper($mid($1-,%counter,1)))
}
else {
%randomcase_output = %randomcase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$lower($mid($1-,%counter,1)))
}
inc %counter
}
return $replace(%randomcase_output,$chr(1),$chr(32))
}
alias -l ^N {
;CycleCase
%counter = 1
unset %cyclecase_output
while (%counter <= $len($1-)) {
inc %cyclecase
if ($calc(%cyclecase % 2) == 1) {
%cyclecase_output = %cyclecase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$upper($mid($1-,%counter,1)))
}
else {
%cyclecase_output = %cyclecase_output $+ $iif($mid($1-,%counter,1) == $chr(32),$chr(1),$lower($mid($1-,%counter,1)))
}
inc %counter
}
return $replace(%cyclecase_output,$chr(1),$chr(32))
}
alias -l ^U {
return $upper($1-)
}
alias -l ^L {
return $lower($1-)
}
alias -l ^E {
;l33tstyle
%leetstyle = $replacecs($1-, $&
AE,$chr(198), $&
f,F, F,ph, $&
ck,x0r, $&
cks,x0rz $&
)
%leetstyle = $replacecs(%leetstyle, $&
a,A, A,4, $&
B,$chr(223), $&
c,$chr(162), C,$chr(169), $&
d,D, D,| $+ $chr(41), $&
e,E, E,3, $&
H,$chr(124) $+ - $+ $chr(124), $&
i,I, I,1, $&
K,$chr(124) $+ $chr(139), $&
l,L, L,$chr(163), $&
M,$chr(40) $+ \/ $+ $chr(41), $&
N,$chr(124) $+ \ $+ $chr(124), $&
o,$chr(248), O,0, $&
p,P, P,$chr(182), $&
Q,$chr(40) $+ $chr(44) $+ $chr(41), $&
S,5, $&
t,+, T,7, $&
u,$chr(181), U,$chr(124) $+ _ $+ $chr(124), $&
W,`//, $&
x,$chr(215) $&
)
return %leetstyle
}
alias -l regex_stylefn {
.echo -q $regsub($1-,/\\}/g,$chr(1),%stylefn)
%stylefn = $replace(%stylefn, $chr(32),$chr(5))
while ($regex(%stylefn,/{([CRULMNE]):(.*?):\1}/i)) {
.echo -q $regsub(%stylefn,/{([CRULMNE]):(.*?):\1}/gi,$chr(32) $+ $cr $lf $+ \1(\2) $cr $+ $chr(32),%stylefn)
}
return $replace($eval($replace(%stylefn, $cr,$!+, $lf,$!^, $chr(1),$chr(125)),2),$chr(5),$chr(32))
}

17
contrib/1.393-cpM/readme.txt Executable file
View File

@ -0,0 +1,17 @@
Atma FileServer script for mIRC 6.02+
Basic Installation Instructions
///////////////////////////////
Unzip the atma zip file to your mIRC folder (i.e. C:\Program Files\mIRC\)
In mIRC, use the following command to run the atma installer script:
/load -rs atma/atma-install.mrc
If mIRC prompts you to run script initializations when you do this, you must select Yes.
The installer script will automatically unload any older Atma version you may have, and load the new one.
Enjoy Atma :)
(Please refer to Atma.hlp for further documentation and contact information)

View File

@ -0,0 +1,152 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
// Confidential Developer Copy -- !!!NOT FOR DISTRIBUTION!!!
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[2.00-xxxxxxxx]
=Special trigger accts for loaded server modules, candidates listed below:
TDCC
XDCC
-- Will work as separate addons, but will require and intensely utilize Atma for all its server functionality, such as S/Q, Access, etc
-- Perhaps have spec. accts start with periods? (specifically, periods unaltered by the $trig.encode function, left invisible in atma config (optional maybe?), if visible, checkbox to set as a special acct (thus telling it to affix the leading period), or something)
Triggers..XDCC.!SylverScripts
Triggers..TDCC.!Rules
-- Maybe another serving system could be thought up.... would be great, but also difficult to come up with one
-- Use the proposed file transfer log as an atma module :)
-- Version 2 should, beyond any shadow of a doubt, justify ten-fold the arduous process of carefully coding atma for extensibility and scalability.
=Rebuild Atma dialogs using MDX in the most efficient and visually pleasing manner, perhaps adding additional dialog functionality in the process
=Multiple language support using language ini files
=Whatever else comes to mind while developing 1.xx
[1.xx-xxxxxxxx]
=New Local Setting Overrides:
{ Trigger-Specific config options [+.05]
Trigger-Specific Send/Queue limit modifications [+.05]
Channel-Specific Ad Display Settings[+.05]
Channel-Specific Send/Queue limit modifications[+.05]
} -> Advanced Trigger config.... settings based by channel, * for all other chans (add/del/pick chan or * from a list)
User-Specific relative Send/Queue limit modifications i.e. +2 sends, -2 queues, +50% queues, etc. (to be added to fserv access list, access list will be optionally exclusive from that point on) [+.10]
=Automatic web-updating [+.05-.10]
=Multiserver support (perhaps using Network:#Channel, Network:Nick, or something to that effect). [+.10]
=Make queues persistant. Shouldn't be too hard, just requires queue management on fserv activation -- and, of course, not deleting the queue file when shutting down/starting up. Maybe let the user know files are coming first, though, if the queue's been offline for a while. [+.0x]
=File Transfer logging and management dialog -- keep track of what comes and goes, what fails, and who needs what. Could be good for trades too ;) [separate]
=Transfer Forwarding -- Allow users to specify a different nick to send files to, using NickChange principles
=Auto-backup of atma.dat after successfully loading it; allow easy restoration should it be found bad. Check for defaults when testing, i.e. Channels.*,
=Complete multiserver
=optional server-specific queue management over global
=Import styles, save styles with spaces in name, save styles with author info, export stylepacks. wo0t!
[1.40-xxxxxxxx]
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Add web updates
=Add to and update styles system
[1.393-20070809]
+Fixed a bug in the configuration dialog that was preventing the fserv find limit not to save when edited
[1.392-20060821]
+Fixed a bug in the CTCP channel config check that made ctcp not work in some cases
+Hits tracking was made more accurate (should be no more false positives on unrelated dcc chatting)
[1.391-20050103]
+Fixed a bug in formatstr.sa that caused it not to load its profiles properly
[1.39-20041217]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
+Rewrote the queue system, its much more accurate and efficient now
+!list does not respond if the fserv is inactive
+Fixed the search, now uses plain wildcard searches. Why I used regex before, I don't know.
+Fixed the channel guard checkbox, changed it to terminate all sends and clear all queues.
[1.372-20030710]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Fix channel guard
=Refine queue system
=Add to and update styles system
[1.31-20030204]
+Fixed bug -- wasn't creating the default channel configuration on startup if it wasn't there!!!! ARGH!
+Added new styles!!! (Ok, now that I have, it's YOUR turn... c'mon! Make up some cool styles and send them to me ^_^)
PoIz<49>n, xServ_Classic, SphinxScript_Saiyan, #!/bin/bash, micron
+Fixed !list bug -- wasn't properly showing ad
+Fixed advertise alias -- couldn't handle /atma.advertise *, so timed ads weren't going out right
+Oh to heck with it,..... FIXED ALL ADVERTISING BUGS!!!! CURSE THEM ALL!!!!! THEY AT LAST ARE DEAD!!!
-- if, by some obscene chance, your ads are not displaying as they should, email me what it _is_ displaying, how/where it is displaying it (channel ad, !list, etc.), what you feel is wrong, and also include your atma.dat file for debugging purposes.
+Fixed CTCP trigger bug -- it was responding to ALL CTCPs when the fserv was disabled. Annoying...
+Added &Atma.Version and &Atma.Build identifiers to the formatString profile
+Made sure all the Atma formatString identifiers are listed in the dialog.
+Made the "Start on connect" setting in Atma multi-server conscious -- that is, it won't restart everytime you connect to a new server. It will only autostart if there are no other currently active connections.
[1.30-20030131]
+Fixed !list bug -- since the 1.20 updates it was mysteriously tending to channels not being served to again.
+Fixed a queue bug -- users were able to queue one file over their limit. Not anymore.
+Clearing the queue file on Atma.Activate was moved to on:start, to keep it from deleting every time you joined a new server and had "activate on connect" checked.
+Fixed a bug in the CTCP trigger code. Nonconfigured channels were not detecting their CTCP requests properly. They are now ;o)~
+Changed how the access auditing timer was handled, so no more "ATMA.ACCESS.AUDIT Unknown command" errors
+Coded the rest of the buttons in the queue manager, also made sure they're all multiserver-compliant as well. No more buttons that don't work because the developer was lazy ;oP~
+Added a button to manually add a file to the queue. It was a useful feature some people thought would be a nice addition :)
+MULTISERVER ADDITIONS (Only basic activity, no multiserver configuration yet)
+Server ad now displays fine across multiple servers (it used to only work in the active server context, and barely at that)
+Queues now handled across multiple servers. (Stored the CID in the queue file)
+NICKCHANGE HANDLING
+When a user nickname change is detected, all of that user's queues are modified to point to the new nickname
+If a user changes their nickname with an active fserv session, that session is terminated to ensure that queues are not added using the old nick.
+Some minor tweaks to the code that I can barely even remember... mostly just to make sure everything works fine even when the $scriptdir contains spaces. Must support spaces.....
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find
[1.00-20021017]
=+= First official release =+=
[0.00-20021007]
=+= Atma project started =+=

117
contrib/1.393-cpM/versioninfo.txt Executable file
View File

@ -0,0 +1,117 @@
///////////////////////////////////////////////////////////////////
// Atma FileServer for mIRC 6.02+
// Version Information
//
// KEY:
//
// + Addition
// - Removal
// = Planned Features
// [+x.xx] How much of a version change this will mean
// (at a guess)
///////////////////////////////////////////////////////////////////
[1.40-xxxxxxxx]
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Add web updates
=Add to and update styles system
[1.393-20070809]
+Fixed a bug in the configuration dialog that was preventing the fserv find limit not to save when edited
[1.392-20060821]
+Fixed a bug in the CTCP channel config check that made ctcp not work in some cases
+Hits tracking was made more accurate (should be no more false positives on unrelated dcc chatting)
[1.391-20050103]
+Fixed a bug in formatstr.sa that caused it not to load its profiles properly
[1.39-20041217]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
+Rewrote the queue system, its much more accurate and efficient now
+!list does not respond if the fserv is inactive
+Fixed the search, now uses plain wildcard searches. Why I used regex before, I don't know.
+Fixed the channel guard checkbox, changed it to terminate all sends and clear all queues.
[1.372-20030710]
+Added version check (only loads on mIRC 6.02 or higher)
+Added Multiserver Channel Configuration
You can now set different channel settings for your different IRC network groups. Very useful ;o)~
Also this is the significant code change for this version, so it's also the most likely source of bugs should any arise. So don't forget to bug me if it breaks so I can fix it!!!!
+Made sure Atma deactivates itself when mIRC closes, so it's not always on when mIRC starts. Kind of defeated the "option" of start-on-connect.
+Fixed a bug in the quicksearch caching process which ran into problems when the folder being served contained certain special characters i.e. parenthesis.
+Fixed a bug in the hit counter, wasn't counting hits when in CTCP mode
+Added the ability to have ads span MULTIPLE LINES, just use &\ to indicate what follows belongs on a new line.
=Add instasend
=Write automatic importer for older configs, add version identifier in current config system for future use
=Fix channel guard
=Refine queue system
=Add to and update styles system
[1.31-20030204]
+Fixed bug -- wasn't creating the default channel configuration on startup if it wasn't there!!!! ARGH!
+Added new styles!!! (Ok, now that I have, it's YOUR turn... c'mon! Make up some cool styles and send them to me ^_^)
PoIz<49>n, xServ_Classic, SphinxScript_Saiyan, #!/bin/bash, micron
+Fixed !list bug -- wasn't properly showing ad
+Fixed advertise alias -- couldn't handle /atma.advertise *, so timed ads weren't going out right
+Oh to heck with it,..... FIXED ALL ADVERTISING BUGS!!!! CURSE THEM ALL!!!!! THEY AT LAST ARE DEAD!!!
-- if, by some obscene chance, your ads are not displaying as they should, email me what it _is_ displaying, how/where it is displaying it (channel ad, !list, etc.), what you feel is wrong, and also include your atma.dat file for debugging purposes.
+Fixed CTCP trigger bug -- it was responding to ALL CTCPs when the fserv was disabled. Annoying...
+Added &Atma.Version and &Atma.Build identifiers to the formatString profile
+Made sure all the Atma formatString identifiers are listed in the dialog.
+Made the "Start on connect" setting in Atma multi-server conscious -- that is, it won't restart everytime you connect to a new server. It will only autostart if there are no other currently active connections.
[1.30-20030131]
+Fixed !list bug -- since the 1.20 updates it was mysteriously tending to channels not being served to again.
+Fixed a queue bug -- users were able to queue one file over their limit. Not anymore.
+Clearing the queue file on Atma.Activate was moved to on:start, to keep it from deleting every time you joined a new server and had "activate on connect" checked.
+Fixed a bug in the CTCP trigger code. Nonconfigured channels were not detecting their CTCP requests properly. They are now ;o)~
+Changed how the access auditing timer was handled, so no more "ATMA.ACCESS.AUDIT Unknown command" errors
+Coded the rest of the buttons in the queue manager, also made sure they're all multiserver-compliant as well. No more buttons that don't work because the developer was lazy ;oP~
+Added a button to manually add a file to the queue. It was a useful feature some people thought would be a nice addition :)
+MULTISERVER ADDITIONS (Only basic activity, no multiserver configuration yet)
+Server ad now displays fine across multiple servers (it used to only work in the active server context, and barely at that)
+Queues now handled across multiple servers. (Stored the CID in the queue file)
+NICKCHANGE HANDLING
+When a user nickname change is detected, all of that user's queues are modified to point to the new nickname
+If a user changes their nickname with an active fserv session, that session is terminated to ensure that queues are not added using the old nick.
+Some minor tweaks to the code that I can barely even remember... mostly just to make sure everything works fine even when the $scriptdir contains spaces. Must support spaces.....
[1.20-20021205]
+Preview window now shows your ad using YOUR default channel font and size
+Integrated the Sylver Addon (SA) format specs
+Moved trigger style configuration to the Basic Config tab, under Ad Setup
+Moved QuickSearch settings to the Advanced Configuration tab
+Added session handling for fserv access (keeps track of whos on what trigger, typed it in what channel)
+Built in Channel Profiles -- the biggest addition this time around. This allows you to set channel-specific fserv settings, like ad settings and queue limits, for specific channels that override the global settings.
-- Queue limit checks are done using channel profile settings. Queues are passed to the fserv's global queue, there are no local queues, as they would only serve to hamper outgoing bandwidth.
+Let triggers contain spaces and periods (before this would cause weird problems, since spaces are not allowed in hashtables and periods are used as property separators, thus the trigger would not be added properly.
+CTCP triggers are NOW DEPENDENT ON THE USER BEING IN A CHANNEL THEY'RE BEING SERVED TO. This is to satisfy the requirement of a channel parameter in the session database for queue limits, so the fserv checks for an adequate channel that the user is joined to and uses that. Not perfect, but the best available for CTCP-style triggers. If no channel is found, the fserv is not triggered.
+Fixed a bug when deleting triggers,.. if the trigger being deleted matched the first letters of another trigger, the other trigger would be lost as well, i.e. deleting the trigger foo would also delete foobar, foob, etc.
+Made the QuickSearch cache process report total files cached / seconds it took / files per second... mostly just to satisfy my curiosity... its fast :D. good and exact too, used $ticks ^_^
+Made an installation script
[1.10-20021107]
+ !list now works even when fserv is disabled
+ !list no longer responds on channels not being served to
+ Triggers are now sorted alphabetically in the ad (some people really cared about this)
+ @find no longer responds if no results were found. Why flood users with queries if we've got nothing to sell?
+ Added support for people who type 'cd..' instead of 'cd ..' -- It was just irritating to watch
+ Gave Statistics its own tab to make room for more Advanced Config
+ When the fserv tells you to dccallow, it gives you the proper syntax now (it was up until now missing the '+' sign)
+ Added option to enable/disable in-fserv find
+ Added result limiting for in-fserv find
[1.00-20021017]
=+= First official release =+=
[0.00-20021007]
=+= Atma project started =+=

BIN
dist/Atma-1.20-20021205.zip vendored Executable file

Binary file not shown.

BIN
dist/Atma-Fserv-0.992.rar vendored Executable file

Binary file not shown.

BIN
dist/Atma-Fserv-1.1-sa.rar vendored Executable file

Binary file not shown.

BIN
dist/Atma-Fserv-1.30.rar vendored Executable file

Binary file not shown.

BIN
dist/Atma-Fserv-1.372.zip vendored Executable file

Binary file not shown.

BIN
dist/Atma-Fserv-1.39.zip vendored Executable file

Binary file not shown.

BIN
dist/Atma-Fserv-1.391.zip vendored Executable file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More