From 90c7e35d4a55a79b7514d67da1fbfc7188103cfc Mon Sep 17 00:00:00 2001 From: Ryan Voots Date: Fri, 24 Mar 2017 18:44:59 -0400 Subject: [PATCH] support more substituion syntax --- plugins/factoids.pm | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/plugins/factoids.pm b/plugins/factoids.pm index 4cc0c84..6701f1d 100644 --- a/plugins/factoids.pm +++ b/plugins/factoids.pm @@ -240,8 +240,13 @@ sub sub_command { #i lost the object oriented calling here, but i don't care too much, BECAUSE this avoids using strings for the calling, i might change that. $fact_string = $commandhash{$1}->($self,$subject, $said->{name}, $said); } - elsif (($subject =~ m|^\s*(.*?)\s*=~\s*s/([^/]+)/([^/]*)/([gi]*)\s*$|i) || - ($subject =~ m/^\s*(.*?)\s*=~\s*s\{(.+)\}\{(.*)\}([gi]*)\s*$/i)) + elsif ( + ($subject =~ m{\w\s*=~\s*s /.+ / .* /[gi]*\s*$}ix) || + ($subject =~ m{\w\s*=~\s*s\|.+\| .*\|[gi]*\s*$}ix) || + ($subject =~ m{\w\s*=~\s*s\{.+\}\{.*\}[gi]*\s*$}ix) || + ($subject =~ m{\w\s*=~\s*s <.+ > <.* >[gi]*\s*$}ix) || + ($subject =~ m{\w\s*=~\s*s\(.+\)\(.*\)[gi]*\s*$}ix) + ) { $fact_string = $self->get_fact_substitute( $subject, $said->{name}, $said); } @@ -534,8 +539,13 @@ sub _fact_substitute sub get_fact_substitute { my( $self, $subject, $name, $said ) = @_; - if (($said->{body} =~ m|^(?:\s*substitute)?\s*(.*?)\s*=~\s*s/([^/]+)/([^/]*)/([gi]*)\s*$|i) || - ($said->{body} =~ m/^(?:\s*substitute)?\s*(.*?)\s*=~\s*s\{(.+)\}\{(.*?)\}([gi]*)\s*$/i)) + if ( + ($said->{body} =~ m{^(?:\s*substitute)?\s*(.*?)\s*=~\s*s /([^/]+ ) /([^/]* )/([gi]*)\s*$}ix) || + ($said->{body} =~ m{^(?:\s*substitute)?\s*(.*?)\s*=~\s*s\|([^|]+ ) \|([^|]* )\|([gi]*)\s*$}ix) || + ($said->{body} =~ m{^(?:\s*substitute)?\s*(.*?)\s*=~\s*s\{([^\}]+)\}\{([^\}]*?)\}([gi]*)\s*$}ix) || + ($said->{body} =~ m{^(?:\s*substitute)?\s*(.*?)\s*=~\s*s\(([^)]+ )\)\(([^)]*? )\)([gi]*)\s*$}ix) || + ($said->{body} =~ m{^(?:\s*substitute)?\s*(.*?)\s*=~\s*s <([^>]+ ) > <([^>]*? ) >([gi]*)\s*$}ix) + ) { my ($subject, $match, $subst, $flags) = ($1, $2, $3, $4);