Skip to content

Commit 2222c83

Browse files
authored
Merge pull request #23 from udzuki/feat-21-exclude-origin-xapi
feat: xAPIステートメント変換でlogstore_standard_log.originを条件にステートメント変換対象のログを選択
2 parents d83ab54 + 83fe533 commit 2222c83

3 files changed

Lines changed: 16 additions & 3 deletions

File tree

xapi_stmt_gen/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
FROM node:12.22.0
22

3-
LABEL version="2.7.1"
3+
LABEL version="2.8.0"
44

55
WORKDIR /usr/local/src
66
RUN mkdir xapi_stmt_gen

xapi_stmt_gen/xapi_stmt_gen/config/app.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@ const config = {
22
url: 'http://learninglocker',
33
limit: 500,
44
chunkSize: 100,
5+
filter: {
6+
logstoreStandardLog: {
7+
origin: {
8+
// Specify origins(e.g. 'cli') to be excluded
9+
exclude: []
10+
}
11+
}
12+
},
513
db: {
614
// LMS database connection settings
715
lms: {

xapi_stmt_gen/xapi_stmt_gen/generator.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3530,8 +3530,9 @@ async function translateScoTracks(tracks, userAttrs, courseNames){ // eslint-dis
35303530
/**
35313531
* Selects limited number of standard logs.
35323532
* @param {number} limit - limit value
3533+
* @param {Array.<string>} originNotIn - origins to be excluded
35333534
*/
3534-
async function findLogs(limit){
3535+
async function findLogs(limit, originNotIn = []){
35353536
const lastLogProcessed = await XAPI_RECORDS_PROCESSED.findOne({
35363537
where: {objecttable: 'logstore_standard_log'},
35373538
attributes: ['objectid'],
@@ -3546,6 +3547,9 @@ async function findLogs(limit){
35463547
where: {
35473548
id: {
35483549
[Op.gt]: lastLogProcessed ? lastLogProcessed.objectid : -1
3550+
},
3551+
origin: {
3552+
[Op.notIn]: originNotIn
35493553
}
35503554
},
35513555
order: [['id', 'ASC']],
@@ -3764,8 +3768,9 @@ module.exports = async function main() { // eslint-disable-line max-statements
37643768
// Iterate logstore_standard_logs to be processed
37653769
const limit = 'limit' in config ? config.limit : 500;
37663770
const chunkSize = 'chunkSize' in config ? config.chunkSize : 100;
3771+
const originNotIn = config.filter.logstoreStandardLog.origin.exclude;
37673772
while (true){
3768-
let logs = await findLogs(limit);
3773+
let logs = await findLogs(limit, originNotIn);
37693774
if (logs.length === 0) {
37703775
logger.info(
37713776
'Finished logstore_standard_logs translation.'

0 commit comments

Comments
 (0)