mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-07-29 07:01:35 +00:00
Some cleanup (css, html, js)
This commit is contained in:
466
app/static/js/CorpusAnalysis/CQiClient.js
Normal file
466
app/static/js/CorpusAnalysis/CQiClient.js
Normal file
@@ -0,0 +1,466 @@
|
||||
class CQiClient {
|
||||
constructor(corpusId) {
|
||||
this.socket = io(
|
||||
'/corpora/corpus/corpus_analysis',
|
||||
{
|
||||
auth: {corpus_id: corpusId},
|
||||
transports: ['websocket'],
|
||||
upgrade: false
|
||||
}
|
||||
);
|
||||
this.connected = false;
|
||||
this.corpora = new CQiCorpusCollection(this.socket);
|
||||
}
|
||||
|
||||
connect() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.socket.emit('cqi.connect', response => {
|
||||
if (response.code === 200) {
|
||||
this.connected = true;
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.socket.emit('cqi.disconnect', response => {
|
||||
if (response.code === 200) {
|
||||
this.connected = false;
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
ping() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.socket.emit('cqi.ping', response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiCorpusCollection {
|
||||
constructor(socket) {
|
||||
this.socket = socket;
|
||||
}
|
||||
|
||||
get(corpusName) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {corpus_name: corpusName};
|
||||
|
||||
this.socket.emit('cqi.corpora.get', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(new CQiCorpus(this.socket, response.payload));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
list() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.socket.emit('cqi.corpora.list', response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload.map(x => {return new CQiSubcorpus(this.socket, x);}));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiCorpus {
|
||||
constructor(socket, attrs) {
|
||||
this.socket = socket;
|
||||
this.charset = attrs.charset;
|
||||
this.name = attrs.name;
|
||||
this.properties = attrs.properties;
|
||||
this.size = attrs.size;
|
||||
this.alignmentAttributes = new CQiAlignmentAttributeCollection(this.socket, this);
|
||||
this.positionalAttributes = new CQiPositionalAttributeCollection(this.socket, this);
|
||||
this.structuralAttributes = new CQiStructuralAttributeCollection(this.socket, this);
|
||||
this.subcorpora = new CQiSubcorpusCollection(this.socket, this);
|
||||
}
|
||||
|
||||
drop() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {corpus_name: this.name};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.drop', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
query(subcorpus_name, queryString) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.name,
|
||||
subcorpus_name: subcorpus_name,
|
||||
query: queryString
|
||||
};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.query', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// nopaque specific CQi extension
|
||||
paginate(page=1, perPage=20) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {corpus_name: this.name, page: page, per_page: perPage};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.paginate', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
updateDb() {
|
||||
const args = {corpus_name: this.name};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.update_db', args);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiAlignmentAttributeCollection {
|
||||
constructor(socket, corpus) {
|
||||
this.corpus = corpus;
|
||||
this.socket = socket;
|
||||
}
|
||||
|
||||
get(alignmentAttributeName) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.corpus.name,
|
||||
alignment_attribute_name: alignmentAttributeName
|
||||
};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.alignment_attributes.get', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(new CQiAlignmentAttribute(this.socket, this.corpus, response.payload));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
list() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {corpus_name: this.corpus.name};
|
||||
|
||||
this.socket.emit('cqi.corpus.alignment_attributes.list', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload.map(x => {return new CQiAlignmentAttribute(this.socket, this.corpus, x);}));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiAlignmentAttribute {
|
||||
constructor(socket, corpus, attrs) {
|
||||
this.socket = socket;
|
||||
this.corpus = corpus;
|
||||
this.name = attrs.name;
|
||||
this.size = attrs.size;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiPositionalAttributeCollection {
|
||||
constructor(socket, corpus) {
|
||||
this.corpus = corpus;
|
||||
this.socket = socket;
|
||||
}
|
||||
|
||||
get(positionalAttributeName) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.corpus.name,
|
||||
positional_attribute_name: positionalAttributeName
|
||||
};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.positional_attributes.get', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(new CQiPositionalAttribute(this.socket, this.corpus, response.payload));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
list() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {corpus_name: this.corpus.name};
|
||||
|
||||
this.socket.emit('cqi.corpus.positional_attributes.list', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload.map(x => {return new CQiPositionalAttribute(this.socket, this.corpus, x);}));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiPositionalAttribute {
|
||||
constructor(socket, corpus, attrs) {
|
||||
this.socket = socket;
|
||||
this.corpus = corpus;
|
||||
this.lexiconSize = attrs.lexicon_size;
|
||||
this.name = attrs.name;
|
||||
this.size = attrs.size;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiStructuralAttributeCollection {
|
||||
constructor(socket, corpus) {
|
||||
this.corpus = corpus;
|
||||
this.socket = socket;
|
||||
}
|
||||
|
||||
get(structuralAttributeName) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.corpus.name,
|
||||
structural_attribute_name: structuralAttributeName
|
||||
};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.structural_attributes.get', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(new CQiStructuralAttribute(this.socket, this.corpus, response.payload));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
list() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {corpus_name: this.corpus.name};
|
||||
|
||||
this.socket.emit('cqi.corpus.structural_attributes.list', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload.map(x => {return new CQiStructuralAttribute(this.socket, this.corpus, x);}));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiStructuralAttribute {
|
||||
constructor(socket, corpus, attrs) {
|
||||
this.socket = socket;
|
||||
this.corpus = corpus;
|
||||
this.hasValues = attrs.has_values;
|
||||
this.name = attrs.name;
|
||||
this.size = attrs.size;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiSubcorpusCollection {
|
||||
constructor(socket, corpus) {
|
||||
this.corpus = corpus;
|
||||
this.socket = socket;
|
||||
}
|
||||
|
||||
get(subcorpusName) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.corpus.name,
|
||||
subcorpus_name: subcorpusName
|
||||
};
|
||||
this.socket.emit('cqi.corpora.corpus.subcorpora.get', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(new CQiSubcorpus(this.socket, this.corpus, response.payload));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
list() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {corpus_name: this.corpus.name};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.subcorpora.list', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload.map(x => {return new CQiSubcorpus(this.socket, this.corpus, x);}));
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class CQiSubcorpus {
|
||||
constructor(socket, corpus, attrs) {
|
||||
this.socket = socket;
|
||||
this.corpus = corpus;
|
||||
this.fields = attrs.fields;
|
||||
this.name = attrs.name;
|
||||
this.size = attrs.size;
|
||||
}
|
||||
|
||||
drop() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {corpus_name: this.corpus.name, subcorpus_name: this.name};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.subcorpora.subcorpus.drop', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
dump(field, first, last) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.corpus.name,
|
||||
subcorpus_name: this.name,
|
||||
field: field,
|
||||
first: first,
|
||||
last: last
|
||||
};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.subcorpora.subcorpus.dump', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export(context=50) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.corpus.name,
|
||||
subcorpus_name: this.name,
|
||||
context: context
|
||||
};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.subcorpora.subcorpus.export', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
fdst_1(cutoff, field, attribute) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.corpus.name,
|
||||
subcorpus_name: this.name,
|
||||
cutoff: cutoff,
|
||||
field: field,
|
||||
attribute: attribute
|
||||
};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.subcorpora.subcorpus.fdist_1', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
fdst_2(cutoff, field1, attribute1, field2, attribute2) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.corpus.name,
|
||||
subcorpus_name: this.name,
|
||||
cutoff: cutoff,
|
||||
field1: field1,
|
||||
attribute1: attribute1,
|
||||
field2: field2,
|
||||
attribute2: attribute2
|
||||
};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.subcorpora.subcorpus.fdist_1', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// nopaque specific CQi extension
|
||||
paginate(page=1, perPage=20, context=50) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const args = {
|
||||
corpus_name: this.corpus.name,
|
||||
subcorpus_name: this.name,
|
||||
page: page,
|
||||
per_page: perPage,
|
||||
context: context
|
||||
};
|
||||
|
||||
this.socket.emit('cqi.corpora.corpus.subcorpora.subcorpus.paginate', args, response => {
|
||||
if (response.code === 200) {
|
||||
resolve(response.payload);
|
||||
} else {
|
||||
reject(response);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user