diff options
Diffstat (limited to 'src/data/composite')
-rw-r--r-- | src/data/composite/wiki-data/withParsedLyricsEntries.js | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/src/data/composite/wiki-data/withParsedLyricsEntries.js b/src/data/composite/wiki-data/withParsedLyricsEntries.js index 28e4c9b5..d13bfbaa 100644 --- a/src/data/composite/wiki-data/withParsedLyricsEntries.js +++ b/src/data/composite/wiki-data/withParsedLyricsEntries.js @@ -1,8 +1,8 @@ import {input, templateCompositeFrom} from '#composite'; -import find from '#find'; import {stitchArrays} from '#sugar'; import {isLyrics} from '#validators'; -import {commentaryRegexCaseSensitive} from '#wiki-data'; +import {commentaryRegexCaseSensitive, oldStyleLyricsDetectionRegex} + from '#wiki-data'; import { fillMissingListItems, @@ -11,10 +11,25 @@ import { withUnflattenedList, } from '#composite/data'; +import inputSoupyFind from './inputSoupyFind.js'; import processContentEntryDates from './processContentEntryDates.js'; import withParsedContentEntries from './withParsedContentEntries.js'; import withResolvedReferenceList from './withResolvedReferenceList.js'; +function constituteLyricsEntry(text) { + return { + artists: [], + artistDisplayText: null, + annotation: null, + date: null, + secondDate: null, + dateKind: null, + accessDate: null, + accessKind: null, + body: text, + }; +} + export default templateCompositeFrom({ annotation: `withParsedLyricsEntries`, @@ -25,6 +40,19 @@ export default templateCompositeFrom({ outputs: ['#parsedLyricsEntries'], steps: () => [ + { + dependencies: [input('from')], + compute: (continuation, { + [input('from')]: lyrics, + }) => + (oldStyleLyricsDetectionRegex.test(lyrics) + ? continuation() + : continuation.raiseOutput({ + ['#parsedLyricsEntries']: + [constituteLyricsEntry(lyrics)], + })), + }, + withParsedContentEntries({ from: input('from'), caseSensitiveRegex: input.value(commentaryRegexCaseSensitive), @@ -65,8 +93,7 @@ export default templateCompositeFrom({ withResolvedReferenceList({ list: '#flattenedList', - data: 'artistData', - find: input.value(find.artist), + find: inputSoupyFind.input('artist'), notFoundMode: input.value('null'), }), |