git.shiar.nl
/
sheet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tools: validate utf8 encoding in stdin/out
[sheet.git]
/
tools
/
mkwordlist
diff --git
a/tools/mkwordlist
b/tools/mkwordlist
index 3c5aac907ecc69b0fcaf46d97314d95176080599..78e36b6adb5d652e258ec1ad10a9df255d6da9e9 100755
(executable)
--- a/
tools/mkwordlist
+++ b/
tools/mkwordlist
@@
-4,16
+4,23
@@
use warnings;
BEGIN { push @INC, '.' }
use Shiar_Sheet::DB;
BEGIN { push @INC, '.' }
use Shiar_Sheet::DB;
-use open ':std' => ':
utf8
';
+use open ':std' => ':
encoding(utf-8)
';
my $db = Shiar_Sheet::DB->connect;
say 'use utf8;';
use Data::Dump 'pp';
my $db = Shiar_Sheet::DB->connect;
say 'use utf8;';
use Data::Dump 'pp';
+my %rows;
if (my $lang = shift @ARGV) {
my %filter = (lang => $lang);
if (my $lang = shift @ARGV) {
my %filter = (lang => $lang);
- say pp({ $db->select('_word_ref w' => "ref, exportform(row(w.*))", \%filter)->map })
+ my $cols = "ref, array_to_string(form || alt, '/'), prio + coalesce(grade, 90) / 100::float, id, cat";
+ %rows = $db->select(_word_ref => $cols, \%filter)->map_arrays;
+ say pp \%rows
=~ s/\\x\{([0-9A-F]+)\}/chr hex $1/ger;
exit;
}
=~ s/\\x\{([0-9A-F]+)\}/chr hex $1/ger;
exit;
}
-say pp { $db->select(_cat_words => "coalesce(id::text, ''), forms")->map };
+else {
+ %rows = $db->select(_cat_words => "coalesce(id::text, ''), forms")->map;
+ $_ = [ map { [split /:/, $_, 3] } @{$_} ] for values %rows;
+ say pp \%rows;
+}