diff options
Diffstat (limited to 'localmarkdown2sms')
-rwxr-xr-x | localmarkdown2sms | 52 |
1 files changed, 28 insertions, 24 deletions
diff --git a/localmarkdown2sms b/localmarkdown2sms index f13c097..9b227e5 100755 --- a/localmarkdown2sms +++ b/localmarkdown2sms @@ -29,7 +29,7 @@ use File::Spec; use File::Slurp; use Time::Duration::Parse; use Text::Unidecode; -use Encode 2.12 qw(encode decode_utf8 _utf8_off); # need v2.12 to support coderef +use Encode 2.12 qw(encode decode _utf8_off); # need v2.12 to support coderef use LWP::UserAgent; use URI::Escape; use Proc::Daemon; @@ -204,11 +204,11 @@ sub tidymsg { sub transliterate { my ($tocharset, $string) = @_; - my $res = encode($tocharset, decode_utf8($string), sub { + my $res = encode($tocharset, decode('GSM0338', encode('GSM0338', decode('UTF-8', $string), sub { my $ascii = unidecode(chr $_[0]); _utf8_off($ascii); $ascii; - }); + }))); return $res; } @@ -216,26 +216,26 @@ sub transliterate { sub sendmsg { my ($from, $to, $desc, $msg) = @_; + my $ua = LWP::UserAgent->new(agent => "localmarkdown2sms"); + $ua->timeout(10); + my $url = $sms_url + . '?' . $sms_usertag . '=' . uri_escape($sms_user) + . '&password=' . uri_escape($sms_pw) + . '&to=' . uri_escape($to); + $url .= '&api_id=' . uri_escape($sms_api) if ($sms_api); + $url .= '&callback=' . uri_escape($sms_callback) if ($sms_callback); + $url .= '&from=' . uri_escape($from) if ($from); + $url .= '&smsc=' . uri_escape($sms_smsc) if ($sms_smsc); + $url .= '&concatenation=true' if ($sms_concatenation); + $url .= '&concat=' . uri_escape($sms_concat) if ($sms_concat); + $url .= '&dlr-mask=' . uri_escape($sms_dlr_mask) if ($sms_dlr_mask); + $url .= '&dlr-url=' . uri_escape($sms_dlr_url) if ($sms_dlr_url); + $url .= '&escalate=' . uri_escape($sms_escalate) if ($sms_escalate); + $url .= '&validity=' . uri_escape($sms_validity) if ($sms_validity); + $url .= '&req_feat=' . uri_escape($sms_req_feat) if ($sms_req_feat); + $url .= '&binfo=' . uri_escape($sms_binfo) if ($sms_binfo); + $url .= '&' . $sms_msgtag . '=' . uri_escape(transliterate($sms_cp, $msg)); unless ($dummy) { - my $ua = LWP::UserAgent->new(agent => "localmarkdown2sms"); - $ua->timeout(10); - my $url = $sms_url - . '?' . $sms_usertag . '=' . uri_escape($sms_user) - . '&password=' . uri_escape($sms_pw) - . '&to=' . uri_escape($to); - $url .= '&api_id=' . uri_escape($sms_api) if ($sms_api); - $url .= '&callback=' . uri_escape($sms_callback) if ($sms_callback); - $url .= '&from=' . uri_escape($from) if ($from); - $url .= '&smsc=' . uri_escape($sms_smsc) if ($sms_smsc); - $url .= '&concatenation=true' if ($sms_concatenation); - $url .= '&concat=' . uri_escape($sms_concat) if ($sms_concat); - $url .= '&dlr-mask=' . uri_escape($sms_dlr_mask) if ($sms_dlr_mask); - $url .= '&dlr-url=' . uri_escape($sms_dlr_url) if ($sms_dlr_url); - $url .= '&escalate=' . uri_escape($sms_escalate) if ($sms_escalate); - $url .= '&validity=' . uri_escape($sms_validity) if ($sms_validity); - $url .= '&req_feat=' . uri_escape($sms_req_feat) if ($sms_req_feat); - $url .= '&binfo=' . uri_escape($sms_binfo) if ($sms_binfo); - $url .= '&' . $sms_msgtag . '=' . uri_escape(transliterate($sms_cp, $msg)); DEBUG "Sending request: $url"; my $response = $ua->request(HTTP::Request->new('GET', $url)); unless ($response->is_success) { @@ -243,18 +243,22 @@ sub sendmsg { } DEBUG "Done $desc"; } else { + DEBUG "[DUMMY] Sending request: $url"; print STDERR "\n [$from --> $to: $desc]\n\n"; - print STDERR $msg . "\n"; + print STDERR transliterate($sms_cp, $msg) . "\n"; } } my $num_children = $#{ $reply{$key} } + 1; # How many children we'll create if (0 == $num_children) { + my $err_da = "Ikke genkendt som et nøgleord: Check venligst for tastefejl og prøv igen."; my $err_en = "Sorry, not recognized as a keyword: Please check spelling and try again."; + my $err_hu = "Érvénytelen kulcsszó. Kérjük, ellenőrizd és próbáld újra."; my $err_it = "Spiacente, non riconosco come parola chiave: Controlla l'ortografia e riprova."; my $errmsg = "[warning] $phone requested unknown keyword \"$key\"\nFull text: $inputstring"; - &sendmsg($sms_phone, $phone, "fallback message", "$key?\n$err_it\n$err_en"); +# FIXME: Make use of local errormsg optional and configurable. + &sendmsg($sms_phone, $phone, "fallback message", "$key?\n$err_hu\n$err_en"); ($sms_errto1) and &sendmsg($sms_errfrom, $sms_errto1, "warning", $errmsg); ($sms_errto2) and &sendmsg($sms_errfrom, $sms_errto2, "warning", $errmsg); exit; |