aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/General/Signals.pod6
-rwxr-xr-xdocs/buildpod.pl6
-rwxr-xr-xdocs/buildsignals.pl51
-rw-r--r--test/irssi/config19
-rw-r--r--test/irssi/default.theme426
5 files changed, 499 insertions, 9 deletions
diff --git a/docs/General/Signals.pod b/docs/General/Signals.pod
index f12dd7f..4720bee 100644
--- a/docs/General/Signals.pod
+++ b/docs/General/Signals.pod
@@ -131,7 +131,7 @@ Arguments are passed to signal handlers in the usual way, via C<@_>.
=over
-=item C<string $command>,
+=item string C<$command>,
=item L<Irssi::Server> C<$server>,
@@ -2089,8 +2089,8 @@ B<TODO: Check ordering of arguments from/to here>
=back
-B<TODO: does this fire if you dont' change windows? (eg: send a switch commandf
-for the window you're already on)
+B<TODO: does this fire if you don't change windows? (eg: send a switch command
+for the window you're already on)>
=item C<"window changed automatic">
diff --git a/docs/buildpod.pl b/docs/buildpod.pl
index 050ea8e..dfddf54 100755
--- a/docs/buildpod.pl
+++ b/docs/buildpod.pl
@@ -28,6 +28,12 @@ sub new {
"<title>Irssi Scripting Documentation</title>\n",
"</head><body class='contentspage'>\n",
"<h1>Irssi Scripting Documentation</h1>\n",
+ q(<p><b>This is a work in progress. If you ),
+ q(find something obviously wrong, or have requests ),
+ q(for further documentation on topics not yet ),
+ q(filled out, please ),
+ q(<a href="http://github.com/shabble/shab-irssi-scripts/issues#">create an issue</a>),
+ " on my Github page, and I'll see what I can do.</b></p>",
);
$obj->contents_page_start(join("", @index_header));
diff --git a/docs/buildsignals.pl b/docs/buildsignals.pl
index 5409ae2..b2afc2a 100755
--- a/docs/buildsignals.pl
+++ b/docs/buildsignals.pl
@@ -4,8 +4,10 @@ use strict;
use warnings;
#use Pod::Simple::Debug (3);
use Data::Dumper;
+$|++;
package Pod::Simple::IrssiSignalParser;
+$|++;
use base qw/Pod::Simple::PullParser/;
use Carp qw/cluck/;
@@ -91,7 +93,8 @@ sub validate_token {
my ($self, $token, $expected, $type) = @_;
unless ($token->type eq $type && $token->is_tag($expected)) {
- cluck "Eeek. Expected $expected: $type, got $token->type";
+ cluck "Eeek. Expected $expected: $type, got "
+ . $token->dump();
# cluck("Invalid token. " # on line " . $token->attr('start_line')
# . "expected $expected $type, got " . $token->tag
@@ -174,8 +177,52 @@ sub process_def_entry {
my $token;
print "Processing definition entry\n";
while ($token = $self->get_token()) {
+ print "Token is ", $token->dump, "\n";
last if $token->is_end && $token->tag eq 'item-text';
+
+ $self->validate_token($token, 'item-text', 'start');
+ $token = $self->get_token();
+ $self->validate_token($token, 'C', 'start');
+ $token = $self->get_token();
+
+ if ($token->is_text) {
+ my $sig_name = $token->text;
+ print "Signal: $sig_name\n";
+ }
+
+ $token = $self->get_token();
+
+ $self->validate_token($token, 'C', 'end');
+ $token = $self->get_token();
+ print "matched end of code\n";
+
+ $self->validate_token($token, 'item-text', 'end');
+ $token = $self->get_token();
+
+ print "matched end of header list\n";
+
+ $self->validate_token($token, 'over-text', 'start');
+ $token = $self->get_token();
+
+ print "matched start of args list\n";
+
+ $self->validate_token($token, 'item-text', 'start');
+ $token = $self->get_token();
+
+ # consume argument list.
+ until ($token->is_end && $token->tag eq 'over-text') {
+ $token = $self->get_token();
+ print "waiting for arglist Token: " . $token->dump() . "\n";
+ }
+ print "Token now: ", $token->dump(), $/;
+
+ print "consumed arg list\n";
+ $token = $self->get_token();
+ print "Token now: ", $token->dump(), $/;
+ $self->validate_token($token, 'item-text', 'end');
+ $token = $self->get_token();
+
}
#$self->unget_token($token);
print "Done Processing definition entry\n";
@@ -184,7 +231,7 @@ sub process_def_entry {
package main;
-my $input_file = $ARGV[0] // 'Signals.pm';
+my $input_file = $ARGV[0] // 'General/Signals.pod';
my $parser = Pod::Simple::IrssiSignalParser->new;
$parser->accept_targets('irssi_signal_defs', 'irssi_signal_types');
diff --git a/test/irssi/config b/test/irssi/config
index fe39032..9156a7f 100644
--- a/test/irssi/config
+++ b/test/irssi/config
@@ -26,7 +26,14 @@ servers = (
{ address = "irc.webchat.org"; chatnet = "WebChat"; port = "6667"; },
{ address = "irc.rizon.net"; chatnet = "Rizon"; port = "6667"; },
{ address = "irc.link-net.org"; chatnet = "LinkNet"; port = "6667"; },
- { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; }
+ { address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; },
+ {
+ address = "blondu.dyndns.ws";
+ chatnet = "botnettest";
+ port = "6667";
+ use_ssl = "no";
+ ssl_verify = "no";
+ }
);
chatnets = {
@@ -92,6 +99,7 @@ chatnets = {
max_whois = "30";
};
SILC = { type = "SILC"; };
+ botnettest = { type = "IRC"; };
};
channels = (
@@ -156,6 +164,7 @@ aliases = {
detach = "eval exec - screen -X detach";
xxx = "/dump Irssi::bindings()";
showbind = "/script exec \\%foo = Irssi::UI::bindings()\\; print \\$foo{\"\\\\$0\"}\\;";
+ botaway = "/away auto-away [\002BX\002-MsgLog On] (Away since 1:43 am Mon Aug 24)";
};
statusbar = {
@@ -178,7 +187,7 @@ statusbar = {
# treated specially .. window is printed with non-empty windows,
# window_empty is printed with empty windows
- window = "{sb $winref:$tag/$itemname{sbmode $M}}";
+ window = "{sb $winref:$tag/$itemname{sbmode $M_nopass}}";
window_empty = "{sb $winref{sbservertag $tag}}";
prompt = "{prompt $[.15]itemname}";
prompt_empty = "{prompt $winname}";
@@ -266,7 +275,7 @@ statusbar = {
};
settings = {
core = {
- real_name = "shabble";
+ real_name = "fjkdlafad";
user_name = "tomfeist";
nick = "tomfeist";
timestamp_format = "%+";
@@ -278,6 +287,7 @@ settings = {
mass_hilight_threshold = "0";
};
"fe-common/core" = { bell_beeps = "yes"; };
+ "irc/core" = { ctcp_userinfo_reply = ""; };
};
keyboard = (
{
@@ -289,5 +299,6 @@ keyboard = (
{ key = "^Z"; id = "command"; data = "echo moo"; },
{ key = "^R"; id = "command"; data = "history_search_start "; },
{ key = "meta-h"; id = "command"; data = "echo moo /echo moo"; },
- { key = "meta-q"; id = "command"; data = "echo bacons"; }
+ { key = "meta-q"; id = "command"; data = "echo bacons"; },
+ { key = "meta-c"; id = "command"; data = "echo moo ; /echo bar"; }
);
diff --git a/test/irssi/default.theme b/test/irssi/default.theme
index a5471c8..b82a4eb 100644
--- a/test/irssi/default.theme
+++ b/test/irssi/default.theme
@@ -292,3 +292,429 @@ abstracts = {
# hilight with specified color, $0 = color, $1 = text
sb_act_hilight_color = "$0$1-%n";
};
+formats = {
+ "fe-common/irc/dcc" = {
+ own_dcc = "{dccownmsg dcc {dccownnick $1}}$2";
+ own_dcc_action = "{dccownaction_target $0 $1}$2";
+ own_dcc_action_query = "{dccownaction $0}$2";
+ own_dcc_ctcp = "{ownctcp ctcp $0}$1 $2";
+ dcc_msg = "{dccmsg dcc $0}$1";
+ action_dcc = "{dccaction $0}$1";
+ action_dcc_query = "{dccaction $0}$1";
+ own_dcc_query = "{ownmsgnick {dccownquerynick $0}}$2";
+ dcc_msg_query = "{privmsgnick $0}$1";
+ dcc_ctcp = "{dcc >>> DCC CTCP {hilight $1} received from {hilight $0}: $2}";
+ dcc_chat = "{dcc DCC CHAT from {nick $0} [$1 port $2]}";
+ dcc_chat_channel = "{dcc DCC CHAT from {nick $0} [$1 port $2] requested in channel {channel $3}}";
+ dcc_chat_not_found = "{dcc No DCC CHAT connection open to {nick $0}}";
+ dcc_chat_connected = "{dcc DCC CHAT connection with {nick $0} [$1 port $2] established}";
+ dcc_chat_disconnected = "{dcc DCC lost chat to {nick $0}}";
+ dcc_send = "{dcc DCC SEND from {nick $0} [$1 port $2]: $3 [$4]}";
+ dcc_send_channel = "{dcc DCC SEND from {nick $0} [$1 port $2]: $3 [$4 bytes] requested in channel {channel $5}}";
+ dcc_send_exists = "{dcc DCC already sending file {dccfile $0} for {nick $1}}";
+ dcc_send_no_route = "{dcc DCC route lost to nick {nick $0} when trying to send file {dccfile $1}}";
+ dcc_send_not_found = "{dcc DCC not sending file {dccfile $1} to {nick $0}}";
+ dcc_send_file_open_error = "{dcc DCC can't open file {dccfile $0}: $1}";
+ dcc_send_connected = "{dcc DCC sending file {dccfile $0} for {nick $1} [$2 port $3]}";
+ dcc_send_complete = "{dcc DCC sent file {dccfile $0} [{hilight $1}] for {nick $2} in {hilight $3} [{hilight $4kB/s}]}";
+ dcc_send_aborted = "{dcc DCC aborted sending file {dccfile $0} for {nick $1}}";
+ dcc_get_not_found = "{dcc DCC no file offered by {nick $0}}";
+ dcc_get_connected = "{dcc DCC receiving file {dccfile $0} from {nick $1} [$2 port $3]}";
+ dcc_get_complete = "{dcc DCC received file {dccfile $0} [$1] from {nick $2} in {hilight $3} [$4kB/s]}";
+ dcc_get_aborted = "{dcc DCC aborted receiving file {dccfile $0} from {nick $1}}";
+ dcc_get_write_error = "{dcc DCC error writing to file {dccfile $0}: {comment $1}";
+ dcc_unknown_ctcp = "{dcc DCC unknown ctcp {hilight $0} from {nick $1} [$2]}";
+ dcc_unknown_reply = "{dcc DCC unknown reply {hilight $0} from {nick $1} [$2]}";
+ dcc_unknown_type = "{dcc DCC unknown type {hilight $0}}";
+ dcc_invalid_ctcp = "{dcc DCC received CTCP {hilight $0} with invalid parameters from {nick $1}}";
+ dcc_connect_error = "{dcc DCC can't connect to {hilight $0} port {hilight $1}}";
+ dcc_cant_create = "{dcc DCC can't create file {dccfile $0}: $1}";
+ dcc_rejected = "{dcc DCC $0 was rejected by {nick $1} [{hilight $2}]}";
+ dcc_request_send = "{dcc DCC $0 request sent to {nick $1}: $2";
+ dcc_close = "{dcc DCC $0 close for {nick $1} [{hilight $2}]}";
+ dcc_lowport = "{dcc Warning: Port sent with DCC request is a lowport ({hilight $0, $1}) - this isn't normal. It is possible the address/port is faked (or maybe someone is just trying to bypass firewall)}";
+ dcc_list_header = "{dcc DCC connections}";
+ dcc_list_line_chat = "{dcc $0 $1}";
+ dcc_list_line_file = "{dcc $0 $1: %|$2 of $3 ($4%%) - $5kB/s - ETA $7 - $6}";
+ dcc_list_line_queued_send = "{dcc - $0 $2 (queued)}";
+ dcc_list_footer = "";
+ dcc_list_line_server = "{dcc $0: Port($1) - Send($2) - Chat($3) - Fserve($4)}";
+ dcc_server_started = "{dcc DCC SERVER started on port {hilight $0}}";
+ dcc_server_closed = "{dcc DCC SERVER on port {hilight $0} closed}";
+ };
+ "fe-common/irc/notifylist" = {
+ notify_join = "{nick $0} [$1@$2] [{hilight $3}] has joined to $4";
+ notify_part = "{nick $0} has left $4";
+ notify_away = "{nick $0} [$5] [$1@$2] [{hilight $3}] is now away: $4";
+ notify_unaway = "{nick $0} [$4] [$1@$2] [{hilight $3}] is now unaway";
+ notify_online = "On $0: {hilight $1}";
+ notify_offline = "Offline: $0";
+ notify_list = "$0: $1 $2";
+ notify_list_empty = "The notify list is empty";
+ };
+ "fe-common/core" = {
+ line_start = "{line_start}";
+ line_start_irssi = "{line_start}{hilight Irssi:} ";
+ timestamp = "{timestamp $Z} ";
+ servertag = "[$0] ";
+ daychange = "Day changed to %%d %%b %%Y";
+ talking_with = "You are now talking with {nick $0}";
+ refnum_too_low = "Window number must be greater than 1";
+ error_server_sticky = "Window's server is sticky and it cannot be changed without -unsticky option";
+ set_server_sticky = "Window's server set sticky";
+ unset_server_sticky = "Window's server isn't sticky anymore";
+ window_name_not_unique = "Window names must be unique";
+ window_level = "Window level is now $0";
+ window_set_immortal = "Window is now immortal";
+ window_unset_immortal = "Window isn't immortal anymore";
+ window_immortal_error = "Window is immortal, if you really want to close it, say /WINDOW IMMORTAL OFF";
+ windowlist_header = "%#Ref Name Active item Server Level";
+ windowlist_line = "%#$[3]0 %|$[20]1 $[15]2 $[15]3 $4";
+ windowlist_footer = "";
+ windows_layout_saved = "Layout of windows is now remembered";
+ windows_layout_reset = "Layout of windows reset to defaults";
+ window_info_header = "";
+ window_info_footer = "";
+ window_info_refnum = "%#Window : {hilight #$0}";
+ window_info_refnum_sticky = "%#Window : {hilight #$0 (sticky)}";
+ window_info_name = "%#Name : $0";
+ window_info_history = "%#History : $0";
+ window_info_immortal = "%#Immortal: yes";
+ window_info_size = "%#Size : $0x$1";
+ window_info_level = "%#Level : $0";
+ window_info_server = "%#Server : $0";
+ window_info_server_sticky = "%#Server : $0 (sticky)";
+ window_info_theme = "%#Theme : $0$1";
+ window_info_bound_items_header = "%#Bounds : {hilight Name Server tag}";
+ window_info_bound_item = "%# : $[!30]0 $[!15]1 $2";
+ window_info_bound_items_footer = "";
+ window_info_items_header = "%#Items : {hilight Name Server tag}";
+ window_info_item = "%# $[7]0: $[!30]1 $2";
+ window_info_items_footer = "";
+ looking_up = "Looking up {server $0}";
+ connecting = "Connecting to {server $0} [$1] port {hilight $2}";
+ reconnecting = "Reconnecting to {server $0} [$1] port {hilight $2} - use /RMRECONNS to abort";
+ connection_established = "Connection to {server $0} established";
+ cant_connect = "Unable to connect server {server $0} port {hilight $1} {reason $2}";
+ connection_lost = "Connection lost to {server $0}";
+ lag_disconnected = "No PONG reply from server {server $0} in $1 seconds, disconnecting";
+ disconnected = "Disconnected from {server $0} {reason $1}";
+ server_quit = "Disconnecting from server {server $0}: {reason $1}";
+ server_changed = "Changed to {hilight $2} server {server $1}";
+ unknown_server_tag = "Unknown server tag {server $0}";
+ no_connected_servers = "Not connected to any servers";
+ server_list = "{server $0}: $1:$2 ($3)";
+ server_lookup_list = "{server $0}: $1:$2 ($3) (connecting...)";
+ server_reconnect_list = "{server $0}: $1:$2 ($3) ($5 left before reconnecting)";
+ server_reconnect_removed = "Removed reconnection to server {server $0} port {hilight $1}";
+ server_reconnect_not_found = "Reconnection tag {server $0} not found";
+ setupserver_added = "Server {server $0} saved";
+ setupserver_removed = "Server {server $0} removed";
+ setupserver_not_found = "Server {server $0} not found";
+ your_nick = "Your nickname is {nick $0}";
+ join = "{channick_hilight $0} {chanhost_hilight $1} has joined {channel $2}";
+ part = "{channick $0} {chanhost $1} has left {channel $2} {reason $3}";
+ kick = "{channick $0} was kicked from {channel $1} by {nick $2} {reason $3}";
+ quit = "{channick $0} {chanhost $1} has quit {reason $2}";
+ quit_once = "{channel $3} {channick $0} {chanhost $1} has quit {reason $2}";
+ invite = "{nick $0} invites you to {channel $1}";
+ not_invited = "You have not been invited to a channel!";
+ new_topic = "{nick $0} changed the topic of {channel $1} to: $2";
+ topic_unset = "Topic unset by {nick $0} on {channel $1}";
+ your_nick_changed = "You're now known as {nick $1}";
+ nick_changed = "{channick $0} is now known as {channick_hilight $1}";
+ talking_in = "You are now talking in {channel $0}";
+ not_in_channels = "You are not on any channels";
+ current_channel = "Current channel {channel $0}";
+ names = "{names_users Users {names_channel $0}}";
+ names_prefix = "%#{names_prefix $0}";
+ names_nick_op = "{names_nick_op $0 $1}";
+ names_nick_halfop = "{names_nick_halfop $0 $1}";
+ names_nick_voice = "{names_nick_voice $0 $1}";
+ names_nick = "{names_nick $0 $1}";
+ endofnames = "{channel $0}: Total of {hilight $1} nicks {comment {hilight $2} ops, {hilight $3} halfops, {hilight $4} voices, {hilight $5} normal}";
+ chanlist_header = "%#You are on the following channels:";
+ chanlist_line = "%#{channel $[-10]0} %|+$1 ($2): $3";
+ chansetup_not_found = "Channel {channel $0} not found";
+ chansetup_added = "Channel {channel $0} saved";
+ chansetup_removed = "Channel {channel $0} removed";
+ chansetup_header = "%#Channel Network Password Settings";
+ chansetup_line = "%#{channel $[15]0} %|$[10]1 $[10]2 $3";
+ chansetup_footer = "";
+ own_msg = "{ownmsgnick $2 {ownnick $0}}$1";
+ own_msg_channel = "{ownmsgnick $3 {ownnick $0}{msgchannel $1}}$2";
+ own_msg_private = "{ownprivmsg msg $0}$1";
+ own_msg_private_query = "{ownprivmsgnick {ownprivnick $2}}$1";
+ pubmsg_me = "{pubmsgmenick $2 {menick $0}}$1";
+ pubmsg_me_channel = "{pubmsgmenick $3 {menick $0}{msgchannel $1}}$2";
+ pubmsg_hilight = "{pubmsghinick $0 $3 $1}$2";
+ pubmsg_hilight_channel = "{pubmsghinick $0 $4 $1{msgchannel $2}}$3";
+ pubmsg = "{pubmsgnick $2 {pubnick $0}}$1";
+ pubmsg_channel = "{pubmsgnick $3 {pubnick $0}{msgchannel $1}}$2";
+ msg_private = "{privmsg $0 $1}$2";
+ msg_private_query = "{privmsgnick $0}$2";
+ no_msgs_got = "You have not received a message from anyone yet";
+ no_msgs_sent = "You have not sent a message to anyone yet";
+ query_start = "Starting query in {server $1} with {nick $0}";
+ query_stop = "Closing query with {nick $0}";
+ no_query = "No query with {nick $0}";
+ query_server_changed = "Query with {nick $0} changed to server {server $1}";
+ hilight_header = "%#Highlights:";
+ hilight_line = "%#$[-4]0 $1 $2 $3$4";
+ hilight_footer = "";
+ hilight_not_found = "Highlight not found: $0";
+ hilight_removed = "Highlight removed: $0";
+ alias_added = "Alias $0 added";
+ alias_removed = "Alias $0 removed";
+ alias_not_found = "No such alias: $0";
+ aliaslist_header = "%#Aliases:";
+ aliaslist_line = "%#$[10]0 $1";
+ aliaslist_footer = "";
+ log_opened = "Log file {hilight $0} opened";
+ log_closed = "Log file {hilight $0} closed";
+ log_create_failed = "Couldn't create log file {hilight $0}: $1";
+ log_locked = "Log file {hilight $0} is locked, probably by another running Irssi";
+ log_not_open = "Log file {hilight $0} not open";
+ log_started = "Started logging to file {hilight $0}";
+ log_stopped = "Stopped logging to file {hilight $0}";
+ log_list_header = "%#Logs:";
+ log_list = "%#$0 $1: $2 $3$4$5";
+ log_list_footer = "";
+ windowlog_file = "Window LOGFILE set to $0";
+ windowlog_file_logging = "Can't change window's logfile while log is on";
+ no_away_msgs = "No new messages in awaylog";
+ away_msgs = "{hilight $1} new messages in awaylog:";
+ module_header = "%#Module Type Submodules";
+ module_line = "%#$[!20]0 $[7]1 $2";
+ module_footer = "";
+ module_already_loaded = "Module {hilight $0/$1} already loaded";
+ module_not_loaded = "Module {hilight $0/$1} is not loaded";
+ module_load_error = "Error loading module {hilight $0/$1}: $2";
+ module_invalid = "{hilight $0/$1} isn't Irssi module";
+ module_loaded = "Loaded module {hilight $0/$1}";
+ module_unloaded = "Unloaded module {hilight $0/$1}";
+ command_unknown = "Unknown command: $0";
+ command_ambiguous = "Ambiguous command: $0";
+ option_unknown = "Unknown option: $0";
+ option_ambiguous = "Ambiguous option: $0";
+ option_missing_arg = "Missing required argument for: $0";
+ not_enough_params = "Not enough parameters given";
+ not_connected = "Not connected to server";
+ not_joined = "Not joined to any channel";
+ chan_not_found = "Not joined to such channel";
+ chan_not_synced = "Channel not fully synchronized yet, try again after a while";
+ illegal_proto = "Command isn't designed for the chat protocol of the active server";
+ not_good_idea = "Doing this is not a good idea. Add -YES option to command if you really mean it";
+ invalid_number = "Invalid number";
+ invalid_time = "Invalid timestamp";
+ invalid_level = "Invalid message level";
+ invalid_size = "Invalid size";
+ invalid_charset = "Invalid charset: $0";
+ eval_max_recurse = "/eval hit maximum recursion limit";
+ program_not_found = "Could not find file or file is not executable";
+ theme_saved = "Theme saved to $0";
+ theme_save_failed = "Error saving theme to $0: $1";
+ theme_not_found = "Theme {hilight $0} not found";
+ theme_changed = "Now using theme {hilight $0} ($1)";
+ window_theme = "Using theme {hilight $0} in this window";
+ window_theme_default = "No theme is set for this window";
+ window_theme_changed = "Now using theme {hilight $0} ($1) in this window";
+ window_theme_removed = "Removed theme from this window";
+ format_title = "%:[{hilight $0}] - [{hilight $1}]%:";
+ format_subtitle = "[{hilight $0}]";
+ format_item = "$0 = $1";
+ ignored = "Ignoring {hilight $1} from {nick $0}";
+ ignored_options = "Ignoring {hilight $1} from {nick $0} {comment $2}";
+ unignored = "Unignored {nick $0}";
+ ignore_not_found = "{nick $0} is not being ignored";
+ ignore_no_ignores = "There are no ignores";
+ ignore_header = "%#Ignore List:";
+ ignore_line = "%#$[-4]0 $1: $2 $3 $4";
+ ignore_footer = "";
+ not_channel_or_query = "The current window is not a channel or query window";
+ conversion_added = "Added {hilight $0}/{hilight $1} to conversion database";
+ conversion_removed = "Removed {hilight $0} from conversion database";
+ conversion_not_found = "{hilight $0} not found in conversion database";
+ conversion_no_translits = "Transliterations not supported in this system";
+ recode_header = "%#Target Character set";
+ recode_line = "%#%|$[!30]0 $1";
+ unknown_chat_protocol = "Unknown chat protocol: $0";
+ unknown_chatnet = "Unknown chat network: $0 (create it with /NETWORK ADD)";
+ not_toggle = "Value must be either ON, OFF or TOGGLE";
+ perl_error = "Perl error: $0";
+ bind_header = "%#Key Action";
+ bind_list = "%#$[!20]0 $1 $2";
+ bind_command_list = "$[!30]0 $1";
+ bind_footer = "";
+ bind_unknown_id = "Unknown bind action: $0";
+ config_saved = "Saved configuration to file $0";
+ config_reloaded = "Reloaded configuration";
+ config_modified = "Configuration file was modified since irssi was last started - do you want to overwrite the possible changes?";
+ glib_error = "{error $0} $1";
+ overwrite_config = "Overwrite config (y/N)?";
+ set_title = "[{hilight $0}]";
+ set_item = "$0 = $1";
+ set_unknown = "Unknown setting $0";
+ set_not_boolean = "Setting {hilight $0} isn't boolean, use /SET";
+ no_completions = "There's no completions";
+ completion_removed = "Removed completion $0";
+ completion_header = "%#Key Value Auto";
+ completion_line = "%#$[10]0 $[!40]1 $2";
+ completion_footer = "";
+ };
+ "fe-text" = {
+ lastlog_too_long = "/LASTLOG would print $0 lines. If you really want to print all these lines use -force option.";
+ lastlog_count = "{hilight Lastlog}: $0 lines";
+ lastlog_start = "{hilight Lastlog}:";
+ lastlog_end = "{hilight End of Lastlog}";
+ lastlog_separator = "--";
+ refnum_not_found = "Window number $0 not found";
+ window_too_small = "Not enough room to resize this window";
+ cant_hide_last = "You can't hide the last window";
+ cant_hide_sticky_windows = "You can't hide sticky windows (use /WINDOW STICK OFF)";
+ cant_show_sticky_windows = "You can't show sticky windows (use /WINDOW STICK OFF)";
+ window_not_sticky = "Window is not sticky";
+ window_set_sticky = "Window set sticky";
+ window_unset_sticky = "Window is not sticky anymore";
+ window_info_sticky = "%#Sticky : $0";
+ window_info_scroll = "%#Scroll : $0";
+ window_scroll = "Window scroll mode is now $0";
+ window_scroll_unknown = "Unknown scroll mode $0, must be ON, OFF or DEFAULT";
+ statusbar_list_header = "%#Name Type Placement Position Visible";
+ statusbar_list_footer = "";
+ statusbar_list = "%#$[30]0 $[6]1 $[9]2 $[8]3 $4";
+ statusbar_info_name = "%#Statusbar: {hilight $0}";
+ statusbar_info_type = "%#Type : $0";
+ statusbar_info_placement = "%#Placement: $0";
+ statusbar_info_position = "%#Position : $0";
+ statusbar_info_visible = "%#Visible : $0";
+ statusbar_info_item_header = "%#Items : Name Priority Alignment";
+ statusbar_info_item_footer = "";
+ statusbar_info_item_name = "%# : $[35]0 $[9]1 $2";
+ statusbar_not_found = "Statusbar doesn't exist: $0";
+ statusbar_item_not_found = "Statusbar item doesn't exist: $0";
+ statusbar_unknown_command = "Unknown statusbar command: $0";
+ statusbar_unknown_type = "Statusbar type must be 'window' or 'root'";
+ statusbar_unknown_placement = "Statusbar placement must be 'top' or 'bottom'";
+ statusbar_unknown_visibility = "Statusbar visibility must be 'always', 'active' or 'inactive'";
+ paste_warning = "Pasting $0 lines to $1. Press Ctrl-K if you wish to do this or Ctrl-C to cancel.";
+ paste_prompt = "Hit Ctrl-K to paste, Ctrl-C to abort?";
+ };
+ "fe-common/perl" = {
+ script_not_found = "Script {hilight $0} not found";
+ script_not_loaded = "Script {hilight $0} is not loaded";
+ script_loaded = "Loaded script {hilight $0}";
+ script_unloaded = "Unloaded script {hilight $0}";
+ no_scripts_loaded = "No scripts are loaded";
+ script_list_header = "%#Loaded scripts:";
+ script_list_line = "%#$[!15]0 $1";
+ script_list_footer = "";
+ script_error = "{error Error in script {hilight $0}:}";
+ };
+ "fe-common/irc" = {
+ netsplit = "{netsplit Netsplit} {server $0} <-> {server $1} quits: $2";
+ netsplit_more = "{netsplit Netsplit} {server $0} <-> {server $1} quits: $2 (+$3 more, use /NETSPLIT to show all of them)";
+ netsplit_join = "{netjoin Netsplit} over, joins: $0";
+ netsplit_join_more = "{netjoin Netsplit} over, joins: $0 (+$1 more)";
+ no_netsplits = "There are no net splits";
+ netsplits_header = "%#Nick Channel Server Split server";
+ netsplits_line = "%#$[9]0 $[10]1 $[20]2 $3";
+ netsplits_footer = "";
+ network_added = "Network $0 saved";
+ network_removed = "Network $0 removed";
+ network_not_found = "Network $0 not found";
+ network_header = "%#Networks:";
+ network_line = "%#$0: $1";
+ network_footer = "";
+ setupserver_header = "%#Server Port Network Settings";
+ setupserver_line = "%#%|$[!20]0 $[5]1 $[10]2 $3";
+ setupserver_footer = "";
+ joinerror_toomany = "Cannot join to channel {channel $0} (You have joined to too many channels)";
+ joinerror_full = "Cannot join to channel {channel $0} (Channel is full)";
+ joinerror_invite = "Cannot join to channel {channel $0} (You must be invited)";
+ joinerror_banned = "Cannot join to channel {channel $0} (You are banned)";
+ joinerror_bad_key = "Cannot join to channel {channel $0} (Bad channel key)";
+ joinerror_bad_mask = "Cannot join to channel {channel $0} (Bad channel mask)";
+ joinerror_unavail = "Cannot join to channel {channel $0} (Channel is temporarily unavailable)";
+ joinerror_duplicate = "Channel {channel $0} already exists - cannot create it";
+ channel_rejoin = "Channel {channel $0} is temporarily unavailable, this is normally because of netsplits. Irssi will now automatically try to rejoin back to this channel until the join is successful. Use /RMREJOINS command if you wish to abort this.";
+ inviting = "Inviting {nick $0} to {channel $1}";
+ channel_created = "Channel {channelhilight $0} created $1";
+ url = "Home page for {channelhilight $0}: $1";
+ topic = "Topic for {channelhilight $0}: $1";
+ no_topic = "No topic set for {channelhilight $0}";
+ topic_info = "Topic set by {nick $0} {nickhost $2} {comment $1}";
+ chanmode_change = "mode/{channelhilight $0} {mode $1} by {nick $2}";
+ server_chanmode_change = "{netsplit ServerMode}/{channelhilight $0} {mode $1} by {nick $2}";
+ channel_mode = "mode/{channelhilight $0} {mode $1}";
+ bantype = "Ban type changed to {channel $0}";
+ no_bans = "No bans in channel {channel $0}";
+ banlist = "$0 - {channel $1}: ban {ban $2}";
+ banlist_long = "$0 - {channel $1}: ban {ban $2} {comment by {nick $3}, $4 secs ago}";
+ ebanlist = "{channel $0}: ban exception {ban $1}";
+ ebanlist_long = "{channel $0}: ban exception {ban $1} {comment by {nick $2}, $3 secs ago}";
+ no_invitelist = "Invite list is empty in channel {channel $0}";
+ invitelist = "{channel $0}: invite {ban $1}";
+ invitelist_long = "{channel $0}: invite {ban $1} {comment by {nick $2}, $3 secs ago}";
+ no_such_channel = "{channel $0}: No such channel";
+ channel_synced = "Join to {channel $0} was synced in {hilight $1} secs";
+ usermode_change = "Mode change {mode $0} for user {nick $1}";
+ user_mode = "Your user mode is {mode $0}";
+ away = "You have been marked as being away";
+ unaway = "You are no longer marked as being away";
+ nick_away = "{nick $0} is away: $1";
+ no_such_nick = "{nick $0}: No such nick/channel";
+ nick_in_use = "Nick {nick $0} is already in use";
+ nick_unavailable = "Nick {nick $0} is temporarily unavailable";
+ your_nick_owned = "Your nick is owned by {nick $3} {comment $1@$2}";
+ whois = "{nick $0} {nickhost $1@$2}%:{whois ircname $3}";
+ whowas = "{nick $0} {nickhost $1@$2}%:{whois was $3}";
+ whois_idle = "{whois idle %|$1 days $2 hours $3 mins $4 secs}";
+ whois_idle_signon = "{whois idle %|$1 days $2 hours $3 mins $4 secs {comment signon: $5}}";
+ whois_server = "{whois server %|$1 {comment $2}}";
+ whois_oper = "{whois {hilight $1}}";
+ whois_modes = "{whois modes $1}";
+ whois_realhost = "{whois hostname $1-}";
+ whois_usermode = "{whois usermode $1}";
+ whois_channels = "{whois channels %|$1}";
+ whois_away = "{whois away %|$1}";
+ whois_special = "{whois %|$1}";
+ whois_extra = "{whois account %|$1}";
+ end_of_whois = "End of WHOIS";
+ end_of_whowas = "End of WHOWAS";
+ whois_not_found = "There is no such nick $0";
+ who = "%#{channelhilight $[-10]0} %|{nick $[!9]1} $[!3]2 $[!2]3 $4@$5 {comment {hilight $6}}";
+ end_of_who = "End of /WHO list";
+ own_notice = "{ownnotice notice $0}$1";
+ own_action = "{ownaction $0}$1";
+ own_action_target = "{ownaction_target $0 $2}$1";
+ own_ctcp = "{ownctcp ctcp $0}$1 $2";
+ notice_server = "{servernotice $0}$1";
+ notice_public = "{notice $0{pubnotice_channel $1}}$2";
+ notice_private = "{notice $0{pvtnotice_host $1}}$2";
+ action_private = "{pvtaction $0}$2";
+ action_private_query = "{pvtaction_query $0}$2";
+ action_public = "{pubaction $0}$1";
+ action_public_channel = "{pubaction $0{msgchannel $1}}$2";
+ ctcp_reply = "CTCP {hilight $0} reply from {nick $1}: $2";
+ ctcp_reply_channel = "CTCP {hilight $0} reply from {nick $1} in channel {channel $3}: $2";
+ ctcp_ping_reply = "CTCP {hilight PING} reply from {nick $0}: $1.$[-3.0]2 seconds";
+ ctcp_requested = "{ctcp {hilight $0} {comment $1} requested CTCP {hilight $2} from {nick $4}}: $3";
+ ctcp_requested_unknown = "{ctcp {hilight $0} {comment $1} requested unknown CTCP {hilight $2} from {nick $4}}: $3";
+ online = "Users online: {hilight $0}";
+ pong = "PONG received from $0: $1";
+ wallops = "{wallop WALLOP {wallop_nick $0}} $1";
+ action_wallops = "{wallop WALLOP {wallop_action $0}} $1";
+ kill = "You were {error killed} by {nick $0} {nickhost $1} {reason $2} {comment Path: $3}";
+ kill_server = "You were {error killed} by {server $0} {reason $1} {comment Path: $2}";
+ error = "{error ERROR} $0";
+ unknown_mode = "Unknown mode character $0";
+ default_event = "$1";
+ default_event_server = "[$0] $1";
+ silenced = "Silenced {nick $0}";
+ unsilenced = "Unsilenced {nick $0}";
+ silence_line = "{nick $0}: silence {ban $1}";
+ ask_oper_pass = "Operator password:";
+ accept_list = "Accepted users: {hilight $0}";
+ };
+};