Files
makemeahanzi/server/index.js
2015-09-20 16:10:56 -04:00

44 lines
1.4 KiB
JavaScript

function initialize_radicals(verbose) {
var num_radicals = 214;
var radicals = [];
var radical_used = [];
for (var i = 0; i < num_radicals; i++) {
radicals.push(undefined);
radical_used.push(undefined);
}
var names = Glyphs.find({}, {fields: {name: 1}, sort: {name: 1}}).fetch();
for (var i = 0; i < names.length; i++) {
var name = names[i].name;
assert(UNIHAN_RADICAL_STROKE_INDEX.hasOwnProperty(name), name);
var index = UNIHAN_RADICAL_STROKE_INDEX[name];
assert(1 <= index[0] && index[0] <= num_radicals);
if (index[1] === 0) {
if (radicals[index[0] - 1] !== undefined) {
if (verbose) {
console.log('Duplicate glyph for radical ' + index[0] + ': ' +
radicals[index[0] - 1] + ', ' + name);
}
} else {
radicals[index[0] - 1] = name;
}
}
radical_used[index[0] - 1] = name;
Glyphs.update({name: name},
{$set: {index: {radical: index[0], strokes: index[1]}}});
}
for (var i = 0; i < num_radicals; i++) {
if (verbose && radicals[i] === undefined) {
console.log('Did not find a glyph for radical ' + (i + 1));
if (radical_used[i] !== undefined) {
console.log('...but the radical was used in ' + radical_used[i]);
}
}
}
}
Meteor.publish('index', function(radical) {
return Glyphs.findGlyphsForRadical(radical);
});