BatchMarc traite les fichiers marc sur go + js

Tout castor!
Aujourd'hui, c'est vendredi, et cela signifie qu'il est temps de faire le point!

Poursuivant les thèmes de notre club de bibliothèque, je m'empresse de rendre tout le monde un peu heureux: je l'ai fait!

Après une mer de cellules nerveuses épuisées, après une foule de documentation sur les formats de marc, et un tas de béquilles, j'ai encore mis en place un convertisseur relativement sain (mais toujours avec un code terrible :)) (+ gestionnaire + tout ce qui suffit pour la fantaisie) pour les formats de marc.

https://github.com/HerzenLibRu/BatchMarc (gestionnaire, les règles sont écrites en js)

https://github.com/t0pep0/marc21 (bibliothèque sur Go pour travailler avec les formats marc)



:
go run main.go inputFile.ldb outputFile.ldb rules.js

marc .
, ? =)

( ):
  • ( hashmap)


:
: orig res — orig — , res — , res — , , orig

  function VariableSubField(name, data){
      this.Name = name;
      this.Data = data;
    }

    function VariableField(tag, indicatorOne, indicatorTwo) {
      this.Tag = tag;
      this.IndicatorOne = indicatorOne;
      this.IndicatorTwo = indicatorTwo;
      this.RawData = [];
      this.SubField = [];
    }

    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 = []
    };

    orig = new MarcRecord();
    res = new MarcRecord();


Lorsque vos règles fonctionnent, Go récupère les données de res et les écrit dans un fichier.

Attention! Le code n'est pas optimisé, considérez-le comme le plus petit produit viable.

Un exemple des règles peut être trouvé dans le référentiel BatchMarc.

PullRequest, IssueRequest - accepté par

UPD: js pour l'écriture des règles est sélectionné comme le langage le plus largement distribué (dans l'environnement de la bibliothèque, y compris)

Source: https://habr.com/ru/post/fr395377/


All Articles