MCPcopy
hub / github.com/pyrochlore/obsidian-tracker / extractDataUsingRegexWithMultipleValues

Function extractDataUsingRegexWithMultipleValues

src/collecting.ts:332–431  ·  view source on GitHub ↗
(
    text: string,
    strRegex: string,
    query: Query,
    dataMap: DataMap,
    xValueMap: XValueMap,
    renderInfo: RenderInfo
)

Source from the content-addressed store, hash-verified

330// regex with value --> extract value
331// regex without value --> count occurrencies
332function extractDataUsingRegexWithMultipleValues(
333 text: string,
334 strRegex: string,
335 query: Query,
336 dataMap: DataMap,
337 xValueMap: XValueMap,
338 renderInfo: RenderInfo
339): boolean {
340 // console.log("extractDataUsingRegexWithMultipleValues");
341
342 let regex = new RegExp(strRegex, "gmu");
343 let match;
344 let measure = 0.0;
345 let extracted = false;
346 while ((match = regex.exec(text))) {
347 // console.log(match);
348 if (!renderInfo.ignoreAttachedValue[query.getId()]) {
349 if (
350 typeof match.groups !== "undefined" &&
351 typeof match.groups.value !== "undefined"
352 ) {
353 let values = match.groups.value.trim();
354 // console.log(values);
355 // console.log(query.getSeparator());
356 let splitted = values.split(query.getSeparator());
357 // console.log(splitted);
358 if (!splitted) continue;
359 if (splitted.length === 1) {
360 // console.log("single-value");
361 let toParse = splitted[0].trim();
362 // console.log(toParse);
363 let retParse = helper.parseFloatFromAny(
364 toParse,
365 renderInfo.textValueMap
366 );
367 if (retParse.value !== null) {
368 if (retParse.type === ValueType.Time) {
369 measure = retParse.value;
370 extracted = true;
371 query.valueType = ValueType.Time;
372 query.addNumTargets();
373 } else {
374 if (
375 !renderInfo.ignoreZeroValue[query.getId()] ||
376 retParse.value !== 0
377 ) {
378 measure += retParse.value;
379 extracted = true;
380 query.addNumTargets();
381 }
382 }
383 }
384 } else if (
385 splitted.length > query.getAccessor() &&
386 query.getAccessor() >= 0
387 ) {
388 // console.log("multiple-values");
389 let toParse = splitted[query.getAccessor()].trim();

Callers 5

collectDataFromWikiFunction · 0.85
collectDataFromInlineTagFunction · 0.85
collectDataFromTextFunction · 0.85
collectDataFromDvFieldFunction · 0.85
collectDataFromTaskFunction · 0.85

Calls 5

addToDataMapFunction · 0.85
getSeparatorMethod · 0.80
getAccessorMethod · 0.80
getIdMethod · 0.45
addNumTargetsMethod · 0.45

Tested by

no test coverage detected