handle non-ascii strings properly
This commit is contained in:
parent
d0c30f9634
commit
53865b20a5
|
@ -11,6 +11,7 @@ use lib $Bin;
|
||||||
|
|
||||||
use MarkovBot::Config;
|
use MarkovBot::Config;
|
||||||
use MarkovBot::Redis;
|
use MarkovBot::Redis;
|
||||||
|
use Encode qw(encode);
|
||||||
|
|
||||||
sub learn( $ ) {
|
sub learn( $ ) {
|
||||||
# input - line to be learned
|
# input - line to be learned
|
||||||
|
@ -19,7 +20,7 @@ sub learn( $ ) {
|
||||||
my $redis = redis();
|
my $redis = redis();
|
||||||
my $redis_prefix = config("redis_prefix");
|
my $redis_prefix = config("redis_prefix");
|
||||||
|
|
||||||
$_ = shift;
|
$_ = encode("UTF-8", shift);
|
||||||
|
|
||||||
# learn - add a line of text to the brain
|
# learn - add a line of text to the brain
|
||||||
$_ = $_." ___end___";
|
$_ = $_." ___end___";
|
||||||
|
|
|
@ -11,14 +11,17 @@ use lib $Bin;
|
||||||
|
|
||||||
use MarkovBot::Config;
|
use MarkovBot::Config;
|
||||||
use MarkovBot::Redis;
|
use MarkovBot::Redis;
|
||||||
|
use Encode qw(decode encode);
|
||||||
|
|
||||||
sub markov( $ ) {
|
sub markov( $ ) {
|
||||||
# markov - given two starting words, returns a markov chain result
|
# markov - given two starting words, returns a markov chain result
|
||||||
|
|
||||||
my $redis = redis;
|
my $redis = redis;
|
||||||
my $p = config "redis_prefix";
|
my $p = config "redis_prefix";
|
||||||
|
|
||||||
my $s = shift;
|
my $s = shift;
|
||||||
my @s = @{$s};
|
my @s = @{$s};
|
||||||
|
@s = map {encode("UTF-8", $_)} @s;
|
||||||
|
|
||||||
if (!$redis->llen("$p:chains:$s[0],$s[1]")) {
|
if (!$redis->llen("$p:chains:$s[0],$s[1]")) {
|
||||||
# Phrase is not known
|
# Phrase is not known
|
||||||
|
@ -34,6 +37,7 @@ sub markov( $ ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pop @s;
|
pop @s;
|
||||||
|
@s = map {decode("UTF-8", $_)} @s;
|
||||||
return join " ", @s;
|
return join " ", @s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue