Obsidian+ is a fserve for X-Chat, based on
Obsidian 0.9.2-pre3, but with many added/changed features.
Obsidian was originally written by Martin Persson, then by Alexander Werth. Obsidian+ is a fork by Jernej Simončič.
Obsidian+ 2.0.0-alpha is now available for testing.
Changelog
1.3.2
properly handle sends when Xchat setting dcc_send_fillspaces is
set to off
fixed command parser, which would not handle commands with no
arguments properly
fixed find_pattern, which failed to match files with spaces
1.3.1
stats can now show stats for any file
case_cmd setting removed - all commands are now case-insensitive
made clr_queue and clr_queues a synonym for dequeue, since
that's what most users expected; to clear the queue, the user must now specify ALL as parameter (this should avoid users
accidentally erasing their queue when they only intended to remove 1 file)
removed the GUI, which was only causing problems anyway
various other fixes
1.3.0
fixed the remaining problems with estimated time until send calculation
1.3.0-pre1
finer priorities control - now you can set up priorities based on nickname, channel the user is in,
trigger and file name
added limits on the number of times the user can connect to fserve per hour, and how often he can check his queues
fserve should now work better when connecting to IRC servers with /server and /newserver commands instead through
the server list (still, this is not recommended - use the servers list)
files are now cached faster (but still in the background)
got rid of the CPU peak that Obsidian+ caused every minute
1.2.1
changed the default ad
obsidian.commands is now in XML format
supports passive DCC (requires Xchat 2.4.5)
adds a menu to the main menubar (requires Xchat 2.4.5)
swapped trigger text and ID in the triggers configuration (configuration is updated automatically)
ads can now be automatically split when they're too long
fixed banning
1.2.0
fixed bug that prevented filenames with non-ASCII characters from being shown (partially; might break other scripts)
file queue and send statistics
fixed saving utf8 in config files
file cache is now built one directory at a time, so xchat shouldn't freeze while refreshing the filelist anymore
fileserver automatically uses case-insensitive matching for file and directory names when case-sensitive matching fails
1.1.10
startup errors are now reported in more user-friendly way
hopefully fixed problem with "* No such DCC" for real this time
really fixed file dequeuing
trying some workarounds to find Xchat's config directory when get_info('xchatdir') doesn't return a valid path (seems to
happen on X-Chat Aqua)
1.1.9
fixed timed out DCC chats not being detected properly
1.1.8
dequeuing single files now works again
1.1.7
even more customizations of the ad possible
note: your ad will be reset, since the format has changed slightly. See /fs help ads for more information
it's now possible to define custom ad for each channel
notes are back, now you can define them for each trigger separately
you can now preview the ad without having to look through rawlog
fixed a bug with closing users (thanks to pk for noticing it)
1.1.6
when checking ignore list, unignored masks will now be treated properly
check_send_speed didn't work properly, thanks to pk for fixes
Obsidian+ can now open additional slots when combined speed of sends is lower than min_speed (original patch by pk, though I didn't end up using it)
configuration is now saved in XML file (upgrade from old config is done automatically)
fixed a bug in get_prefixes, user priorities should now work again
fixed the GUI warning
fixed the hostmask->regexp conversion in is_banned and check_ignore functions
users who leave channels are now removed from the queue if they're away for more than 5 minutes
1.1.5
fix calculation of remaining time
delay automatic update of queues if users are on-line
1.1.4
queue wasn't displayed properly when my_queues was used as a CTCP trigger
1.1.3
another attempt at a fix for crashes related to Xchat::nickcmp
implemented tempbanning
option to automatically refresh share every X seconds
limit number of lines returned by my_queues CTCP command
automatically list directories the first time user enters them
1.1.2
possible workaround for XChat crashing related to Xchat::nickcmp
fix for setting shared directories on Windows
fix help for ctcptrigger
1.1.1
it's now possible to completely customize the fserve ad
1.1.0
fixed a bug in send_file
a space is now added after the triggers list in the ad
removed all debug_msg-related stuff, there was too much of it to be useful anyway
also removed most of output to console, since it wasn't needed anymore
1.0.1
fix bug in send_dead
fix dcc_abort_handler
1.0.0
got rid of old, confusing IRC:: interface completely, now only Xchat:: is used
redesigned serving channels settings, added support for lists to configuration - you'll have to reenter channels to
serve in
updated banning, which now also supports hosts
estimated time until send calculation should be more accurate now - average send speed is now used instead of
current speed
option to not serve hidden files & directories
total queue limit based on size
my_queues can now be used as a ctcp trigger
0.2.3
save statistics properly (patch by KingFish)
save settings on script unload
obsidian+ should now honor Xchat's ignore list
users are disconnected now when the fserve goes offline
fserve should work even if gtk2-perl is not available
configuration file name has changed, it's called obsidian+.conf now
0.2.2
changed some responses from /msg to notices
queuing a file and my_queues now display estimated times until the file will send
0.2.1
allows queuing of multiple files with same name from different directories
you can now add and remove string settings by prepending the text with +/-
most /fs commands can now be abbreviated
removed some useless stuff
fixed bug where users wouldn't receive DCC messages if server tab was closed
0.2.0
rewrote help system and configuration, now it's much easier to add and remove commands and settings
fixed notify command (still doesn't work 100% - see readme)
commands that were temporarily disabled now display a note instead of failing miserably
wrote a short getting started guide
probably broke a few things again
0.1.3
partially rewrote multiple server handling, aliases shouldn't be necessarry anymore (I removed the code anyway)
note: serve_* variables only support channel names now (without networks) - Obsidian+ will serve on all networks in specified channels
updating user's queue speed should work properly now regardless on how many channels you're serving
started replacing IRC:: interface with Xchat::
0.1.2
fixed banning
enabled strict mode, fixed a few bugs in the process
0.1.1
added support for attaching notes to files (and annoying people that use fserve browsers). To add notes, create a file .notes
in the shared dir, and add <filename>/<note> lines to it.
broke banning, will fix later
did some other stuff that I can't remember right now
0.1.0
XChat 2.0.8 or newer required (only tested with 2.4.0 though)
GUI (kind of)
shows the queue
allows some basic functions: dequeue, clear queues, update files
note: known to cause segfaults if you do /reloadall
rewrote queue to be score-based:
each user gets X points every second and when there's a free
slot, user with highest score gets it. Number of points user
gets depends on his status, and is configurable
no more failqueue, failed transfers are put in normal queue with high starting score instead
queue displays how long somebody has waited
better format for saving the queue (sorry, not compatible with the old one)
nickbanning
file and directory shortcuts (UPP-style)
per-user queue size based on size of enqueued files (user can queue up to X bytes; this limit is ignored if no
files have been queued yet, so that files which are over the queue limit can be downloaded, too)
@find shows results
cleaned the source a little, though there's still work to do (and my own coding style isn't really nice either)