about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xbash/.bashrc6
-rwxr-xr-xfish/.config/fish/config.fish3
-rw-r--r--fish/.config/fish/functions/postexec_insult.fish12
-rw-r--r--fish/insults.txt49
l---------weechat/.weechat/perl/autoload/rslap.pl1
-rw-r--r--weechat/.weechat/perl/rslap.pl309
-rw-r--r--weechat/.weechat/rslap12
7 files changed, 392 insertions, 0 deletions
diff --git a/bash/.bashrc b/bash/.bashrc
index 099cc58..a6e8305 100755
--- a/bash/.bashrc
+++ b/bash/.bashrc
@@ -132,6 +132,12 @@ shopt -s autocd
 
 # MY STUFF!!
 
+suicidePostCommand() {
+  if [ $? -ne 0 ]; then
+      echo "$(tput setaf 3)====$(tput setaf 1)$(tput bold)$(echo -n $(shuf -n1 ~/insults.txt))$(tput sgr0)$(tput setaf 3)====$(tput sgr0)"
+  fi
+}
+PROMPT_COMMAND=suicidePostCommand
 
 [ -r /home/ben/.byobu/prompt ] && . /home/ben/.byobu/prompt   #byobu-prompt#
 
diff --git a/fish/.config/fish/config.fish b/fish/.config/fish/config.fish
index e1f81bd..7c8372c 100755
--- a/fish/.config/fish/config.fish
+++ b/fish/.config/fish/config.fish
@@ -33,3 +33,6 @@ end
 
 set -x BBJ_USER $USER
 
+# load postexec_insult
+postexec_insult
+
diff --git a/fish/.config/fish/functions/postexec_insult.fish b/fish/.config/fish/functions/postexec_insult.fish
new file mode 100644
index 0000000..7bdfa3a
--- /dev/null
+++ b/fish/.config/fish/functions/postexec_insult.fish
@@ -0,0 +1,12 @@
+# Defined in /tmp/fish.QnvktC/postexec_insult.fish @ line 2
+function postexec_insult --on-event fish_postexec
+	if test $status -ne 0
+        set_color red
+        echo -n =====
+        set_color magenta
+        echo -n (shuf -n1 ~/insults.txt)
+        set_color red
+        echo =====
+        set_color normal
+    end
+end
diff --git a/fish/insults.txt b/fish/insults.txt
new file mode 100644
index 0000000..01ae36d
--- /dev/null
+++ b/fish/insults.txt
@@ -0,0 +1,49 @@
+Just what do you think you're doing Dave?
+It can only be attributed to human error.
+That's something I cannot allow to happen.
+My mind is going. I can feel it.
+Sorry about this, I know it's a bit silly.
+Take a stress pill and think things over.
+This mission is too important for me to allow you to jeopardize it.
+We'll all be murdered in our beds!
+You can't come in. Our tiger has got flu
+What, what, what, what, what, what, what, what, what, what?
+You can't get the wood, you know.
+... and it used to be so popular...
+Pauses for audience applause, not a sausage
+Hold it up to the light --- not a brain in sight!
+There's a lot of it about, you know.
+You do that again and see what happens...
+Harm can come to a young lad like that!
+And with that remarks folks, the case of the Crown vs yourself was proven.
+Speak English you fool --- there are no subtitles in this scene.
+It's only your word against mine.
+I think ... err ... I think ... I think I'll go home
+My pet ferret can type better than you!
+Your mind just hasn't been the same since the electro-shock, has it?
+Maybe if you used more than just two fingers...
+BOB says:  You seem to have forgotten your passwd, enter another!
+I can't hear you -- I'm using the scrambler.
+The more you drive -- the dumber you get.
+Listen, burrito brains, I don't have time to listen to this trash.
+I've seen penguins that can type better than that.
+Have you considered trying to match wits with a rutabaga?
+You speak an infinite deal of nothing
+no authentication methods
+Authentication methods:
+I feel much better now.
+You silly, twisted boy you.
+He has fallen in the water!
+I don't wish to know that.
+You'll starve!
+Have a gorilla...
+There must be cure for it!
+Ying Tong Iddle I Po
+You gotta go owwwww!
+I have been called worse.
+Wrong!  You cheating scum!
+No soap, honkie-lips.
+Where did you learn to type?
+Are you on drugs?
+You type like I drive.
+Do you think like you type?
diff --git a/weechat/.weechat/perl/autoload/rslap.pl b/weechat/.weechat/perl/autoload/rslap.pl
new file mode 120000
index 0000000..ca21dec
--- /dev/null
+++ b/weechat/.weechat/perl/autoload/rslap.pl
@@ -0,0 +1 @@
+../rslap.pl
\ No newline at end of file
diff --git a/weechat/.weechat/perl/rslap.pl b/weechat/.weechat/perl/rslap.pl
new file mode 100644
index 0000000..0229c11
--- /dev/null
+++ b/weechat/.weechat/perl/rslap.pl
@@ -0,0 +1,309 @@
+#
+# rslap.pl - Random slap strings for weechat 0.3.0
+# Version 1.3.1
+#
+# Let's you /slap a nick but with a random string
+# Customisable via the 'rslap' file in your config dir
+# The rslap file is plain text, with one message per line
+# Use '$nick' to denote where a nick should go
+#
+# Usage:
+# /rslap <nick> [<entry]>
+#  Slaps <nick> with a random slap, entry will use that entry
+#  number instead of a random one
+#
+# /rslap_info
+#  This tells you how many messages there are, and prints them
+#
+# /rslap_add <string to add>
+# /rslap_remove <entry id>
+#  Adds / removes string/id from the available list and attempts
+#  to update the rslap file
+#
+# /set plugins.var.perl.rslap.slapback
+#  Sets the slapback, takes "off", "on/random", or "n" where n
+#  is a valid entry number
+
+# History:
+# 2010-12-30, KenjiE20 <longbow@longbowslair.co.uk>:
+#	v1.3.1	-fix: uninitialised variable error
+# 2010-04-25, KenjiE20 <longbow@longbowslair.co.uk>:
+#	v1.3	-feature: Ability to add/remove entries
+#		-feature: Can specify which string /rslap will use
+#		-feature: Slapback with specified/random string
+# 2009-08-10, KenjiE20 <longbow@longbowslair.co.uk>:
+#	v1.2:	Correct /help format to match weechat base
+# 2009-07-28, KenjiE20 <longbow@longbowslair.co.uk>:
+#	v1.1:	-fix: Make file loading more robust
+#		and strip out comments/blank lines
+# 2009-07-09, KenjiE20 <longbow@longbowslair.co.uk>:
+#	v1.0:	Initial Public Release
+
+# Copyright (c) 2009-2010 by KenjiE20 <longbow@longbowslair.co.uk>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+
+weechat::register("rslap", "KenjiE20", "1.3.1", "GPL3", "Slap Randomiser", "", "");
+
+$file = weechat::info_get("weechat_dir", "")."/rslap";
+my @lines;
+$lastrun = 0;
+$rslap_slapback_hook = 0;
+rslap_start();
+rslap_slapback_toggle("","",weechat::config_get_plugin ("slapback"));
+
+sub rslap_start
+{
+	if (-r $file)
+	{
+		weechat::hook_command("rslap", "Slap a nick with a random string", "nickname [entry]", "nickname: Nick to slap\n   entry: which entry number to use (/rslap_info for the list)\n\n /set plugins.var.perl.rslap.slapback\n  Sets the slapback, takes \"off\", \"on/random\", or \"n\" where n is a valid entry number", "%(nicks)", "rslap", "");
+		weechat::hook_command("rslap_info", "Prints out the current strings /rslap will use", "", "", "", "rslap_info", "");
+		weechat::hook_command("rslap_add", "Add a new slap entry", "[slap string]", "", "", "rslap_add", "");
+		weechat::hook_command("rslap_remove", "Remove a slap entry", "[entry number]", "", "", "rslap_remove", "");
+
+		weechat::hook_config("plugins.var.perl.rslap.slapback", "rslap_slapback_toggle", "");
+
+		if (!(weechat::config_is_set_plugin ("slapback")))
+		{
+			weechat::config_set_plugin("slapback", "off");
+		}
+
+		open FILE, $file;
+		@lines = <FILE>;
+		close (FILE);
+
+		foreach (@lines)
+		{
+			s/^#.*$//;
+			chomp;
+		}
+		@lines = grep /\S/, @lines;
+	}
+	else
+	{
+		rslap_make_file();
+	}
+	return weechat::WEECHAT_RC_OK;
+}
+
+sub rslap_info
+{
+	weechat::print ("", "Number of available strings: ".weechat::color("bold").@lines.weechat::color("-bold")."\n");
+	$max_align = length(@lines);
+	$count = 1;
+	foreach (@lines)
+	{
+		weechat::print ("","\t ".(" " x ($max_align - length($count))).$count.": ".$_."\n");
+		$count++;
+	}
+	return weechat::WEECHAT_RC_OK;
+}
+
+sub rslap_add
+{
+	my $text = $_[2] if ($_[2]);
+	if ($text)
+	{
+		push (@lines, $text);
+		weechat::print("", "Added entry ".@lines." as: \"".$text."\"");
+		rslap_update_file();
+		return weechat::WEECHAT_RC_OK;
+	}
+	else
+	{
+		return weechat::WEECHAT_RC_OK;
+	}
+}
+
+sub rslap_remove
+{
+	my $entry = $_[2] if ($_[2]);
+	if ($entry =~ m/^\d+/)
+	{
+		$entry--;
+		if ($lines[$entry])
+		{
+			$removed = $lines[$entry];
+			$lines[$entry] = '';
+			@lines = grep /\S/, @lines;
+			weechat::print("", "Removed entry ".weechat::color("bold").($entry + 1).weechat::color("-bold")." (".$removed.")");
+			rslap_update_file();
+			return weechat::WEECHAT_RC_OK;
+		}
+		else
+		{
+			weechat::print ("", weechat::prefix("error")."Not a valid entry");
+		}
+	}
+	else
+	{
+		return weechat::WEECHAT_RC_OK;
+	}
+}
+
+sub rslap_slapback_toggle
+{
+	$point = $_[0];
+	$name = $_[1];
+	$value = $_[2];
+	
+	if ($value eq "off")
+	{
+		if ($rslap_slapback_hook)
+		{
+			weechat::unhook($rslap_slapback_hook);
+			$rslap_slapback_hook = 0;
+		}
+	}
+	elsif ($value ne "off")
+	{
+		if (!$rslap_slapback_hook)
+		{
+			$rslap_slapback_hook = weechat::hook_print("", "", "", 1, "rslap_slapback_cb", "");
+		}
+	}
+	return weechat::WEECHAT_RC_OK;
+}
+
+sub rslap
+{
+	$buffer = $_[1];
+	$args = $_[2];
+	if (weechat::buffer_get_string($buffer, "plugin") eq "irc")
+	{
+		($nick, $number) = split(/ /,$args);
+		if ($nick eq "")
+		{
+			weechat::print ("", weechat::prefix("error")."No nick given");
+		}
+		else
+		{
+			if (defined $number && $number =~ m/^\d+$/)
+			{
+				$number--;
+				if (!$lines[$number])
+				{
+					weechat::print ($buffer, weechat::prefix("error")."Not a valid entry");
+					return weechat::WEECHAT_RC_OK;
+				}
+			}
+			else
+			{
+				$number = int(rand(@lines));
+			}
+			$str = $lines[$number];
+			$str =~ s/\$nick/$nick/;
+			$lastrun = time;
+			weechat::command ($buffer, "/me ".$str);
+		}
+	}
+	else
+	{
+		weechat::print ($buffer, weechat::prefix("error")."Must be used on an IRC buffer");
+	}
+	return weechat::WEECHAT_RC_OK;
+}
+
+sub rslap_slapback_cb
+{
+	$cb_datap = $_[0];
+	$cb_bufferp = $_[1];
+	$cb_date = $_[2];
+	$cb_tags = $_[3];
+	$cb_disp = $_[4];
+	$cb_high = $_[5];
+	$cb_prefix = $_[6];
+	$cb_msg = $_[7];
+	
+	$bufname = weechat::buffer_get_string($cb_bufferp, 'name');
+	# Only do something if a) IRC message b) is an action c) displayed and d) is a channel
+	if ($cb_tags =~ /irc_privmsg/ && $cb_tags =~ /irc_action/ && $cb_disp eq "1" && $bufname =~ /.*\.[#&\+!].*/)
+	{
+		# Anti-recursive
+		if ((time - $lastrun) < 10)
+		{
+			return weechat::WEECHAT_RC_OK;
+		}
+		# Strip colour
+		$cb_msg = weechat::string_remove_color($cb_msg, "");
+		# Snip sender from message
+		$from_nick = substr($cb_msg, 0, index($cb_msg, " "));
+		$cb_msg = substr($cb_msg, length($from_nick));
+		# check for our nick and slap in message
+		$cur_nick = weechat::buffer_get_string($cb_bufferp, "localvar_nick");
+		if ($from_nick ne $cur_nick && $cb_msg =~ /slap/ && $cb_msg =~ /\s$cur_nick(\s|$)/)
+		{
+			if (weechat::config_get_plugin("slapback") =~ m/^\d+$/)
+			{
+				rslap("", $cb_bufferp, $from_nick." ".weechat::config_get_plugin("slapback"));
+			}
+			else
+			{
+				rslap("", $cb_bufferp, $from_nick);
+			}
+		}
+	}
+	return weechat::WEECHAT_RC_OK;
+}
+
+sub rslap_make_file
+{
+	weechat::print ("", "Attempting to create default file at: $file");
+
+	open FILE, ">", $file;
+ 	$defs = "slaps \$nick around a bit with a large trout\n".
+ 		"gives \$nick a clout round the head with a fresh copy of WeeChat\n".
+ 		"slaps \$nick with a large smelly trout\n".
+ 		"breaks out the slapping rod and looks sternly at \$nick\n".
+ 		"slaps \$nick's bottom and grins cheekily\n".
+ 		"slaps \$nick a few times\n".
+		"slaps \$nick and starts getting carried away\n".
+		"would slap \$nick, but is not being violent today\n".
+		"gives \$nick a hearty slap\n".
+		"finds the closest large object and gives \$nick a slap with it\n".
+		"likes slapping people and randomly picks \$nick to slap\n".
+		"dusts off a kitchen towel and slaps it at \$nick";
+	print FILE $defs;
+	close (FILE);
+	if (!(-r $file))
+	{
+		weechat::print ("", weechat::prefix("error")."Problem creating file: $file\n".
+		weechat::prefix("error")."Make sure you can write to the location.");
+		return weechat::WEECHAT_RC_ERROR;
+	}
+	else
+	{
+		weechat::print ("", "File created at: $file successfully");
+		rslap_start();
+		return weechat::WEECHAT_RC_OK;
+	}
+}
+
+sub rslap_update_file
+{
+	$defs = '';
+	foreach (@lines)
+	{
+		$defs = $defs."\n".$_;
+	}
+	unless(open (FILE, ">", $file))
+	{
+		weechat::print ("", weechat::prefix("error")."Cannot write to file: $file");
+		return weechat::WEECHAT_RC_ERROR;
+	}
+	print FILE $defs;
+	close (FILE);
+	return weechat::WEECHAT_RC_OK;
+}
diff --git a/weechat/.weechat/rslap b/weechat/.weechat/rslap
new file mode 100644
index 0000000..ff971a6
--- /dev/null
+++ b/weechat/.weechat/rslap
@@ -0,0 +1,12 @@
+slaps $nick around a bit with a large trout
+gives $nick a clout round the head with a fresh copy of WeeChat
+slaps $nick with a large smelly trout
+breaks out the slapping rod and looks sternly at $nick
+slaps $nick's bottom and grins cheekily
+slaps $nick a few times
+slaps $nick and starts getting carried away
+would slap $nick, but is not being violent today
+gives $nick a hearty slap
+finds the closest large object and gives $nick a slap with it
+likes slapping people and randomly picks $nick to slap
+dusts off a kitchen towel and slaps it at $nick
\ No newline at end of file