BatchMarc - tool for processing of marc record
go get github.com/HerzenLibRu/BatchMarc
go get github.com/HerzenLibRu/BatchMarc
Write on JavaScript. Used interpretator - https://github.com/robertkrimen/otto/
Attention! If you use regular expression in your rules - read Readme interpretator.
function VariableSubField(){
this.Name = "";
this.Data = "";
}
function VariableField() {
this.Tag = "";
this.HasIndicators = "";
this.Indicators = [];
this.RawData = [];
this.SubFields = [];
}
function Leader() {
this.Status = "";
this.Type = "";
this.BibLevel = "";
this.ControlType = "";
this.CharacterEncoding = "";
this.IndicatorCount = "";
this.SubfieldCodeCount = "";
this.EncodingLevel = "";
this.CatalogingForm = "";
this.MultipartLevel = "";
this.LengthOFFieldPort = "";
this.StartCharPos = "";
this.LengthImplemenDefine = "";
this.Undefine = "";
}
function MarcRecord(){
this.Leader = new Leader()
this.VariableField = []
};
For get current record, you must create instance of class MarcRecord and send it as argument to function LoadSource
var source = new MarcRecord();
LoadSource(source);
After that, variable "source" will contain current MARC-record.
For send result, you must send instance of class MarcRecord as argument to function WriteResult
var result = source;
WriteResult(source);
Attention! If you call function WriteResult repeatedly - will be writed state of variable last function call
BatchMarc - утилита для обработки записей marc файлов.
go get github.com/HerzenLibRu/BatchMarc
BatchMarc /path/to/input.ldb /path/to/output.ldb /path/to/rules.js
Пишутся на JavaScript. Используемыё интерпретатор - https://github.com/robertkrimen/otto/
Внимание! Если в Ваших правилах используются регулярные выражение - прочитайте Readme интерпретатора!
function VariableSubField(){
this.Name = "";
this.Data = "";
}
function VariableField() {
this.Tag = "";
this.HasIndicators = "";
this.Indicators = [];
this.RawData = [];
this.SubFields = [];
}
function Leader() {
this.Status = "";
this.Type = "";
this.BibLevel = "";
this.ControlType = "";
this.CharacterEncoding = "";
this.IndicatorCount = "";
this.SubfieldCodeCount = "";
this.EncodingLevel = "";
this.CatalogingForm = "";
this.MultipartLevel = "";
this.LengthOFFieldPort = "";
this.StartCharPos = "";
this.LengthImplemenDefine = "";
this.Undefine = "";
}
function MarcRecord(){
this.Leader = new Leader()
this.VariableField = []
};
Для получения записи необходимо создать экземпляр класса MarcRecord и передать экземпляр в качестве аргумента функции LoadSource
var source = new MarcRecord();
LoadSource(source);
После этого в переменной source будет содержаться текущая marc запись.
Для передачи результата работы скрипта передайте экземпляр класса MarcRecord в качестве аргумента функции WriteResult
var result = source;
WriteResult(source);
Внимание! Если WriteResult будет вызвано несколько раз - результирующим будет состояние переменной при последнем вызове