diff --git a/helpers/build-homebrew-list.js b/helpers/build-homebrew-list.js index 072e9dc..a5e4d59 100644 --- a/helpers/build-homebrew-list.js +++ b/helpers/build-homebrew-list.js @@ -184,14 +184,15 @@ class MakeHomebrewList { formulaeRow.name = formulaeRow.fullName.split(' ')[0] - formulaeRow.links = tr.querySelectorAll('a').map( a => { - const href = a.getAttribute('href') - return { - href, - label: a.rawText, - // a - } - }) + formulaeRow.links = [] + // formulaeRow.links = tr.querySelectorAll('a').map( a => { + // const href = a.getAttribute('href') + // return { + // href, + // label: a.rawText, + // // a + // } + // }) // if (formulaeRow.links.length !== 0) console.log('formulaeRow', formulaeRow.links) @@ -280,7 +281,7 @@ class MakeHomebrewList { category }),//`/formula/${slug}`, category, - content: formulae.comments, + content: '',//formulae.comments, relatedLinks: [ { href: `https://formulae.brew.sh/formula/${formulae.name}`, diff --git a/helpers/build-video-list.js b/helpers/build-video-list.js index 10e3e01..4a32a97 100644 --- a/helpers/build-video-list.js +++ b/helpers/build-video-list.js @@ -2,20 +2,32 @@ import slugify from 'slugify' import axios from 'axios' -import { matchesWholeWord } from './matching.js' +import { fuzzyMatchesWholeWord } from './matching.js' import { byTimeThenNull } from './sort-list.js' import { getVideoEndpoint } from './app-derived.js' import parseDate from './parse-date' + +const inTimestamps = ( name, video ) => { + // If this is empty + // then reutrn false + if ( video.timestamps.length === 0 ) return false + + for ( const timestamp of video.timestamps ) { + if ( fuzzyMatchesWholeWord(name, timestamp.fullText ) ) return true + } + + return false +} + const videoFeaturesApp = function (app, video) { const appFuzzyName = app.name.toLowerCase() - if (video.title.toLowerCase().includes(appFuzzyName)) return true - const appIsInTimestamps = video.timestamps.map( timestamp => timestamp.fullText.toLowerCase()).includes(appFuzzyName) + if ( fuzzyMatchesWholeWord(appFuzzyName, video.title ) ) return true - if (appIsInTimestamps) return true + if ( inTimestamps(appFuzzyName, video) ) return true - if (matchesWholeWord(appFuzzyName, video.description.toLowerCase())) return true + if ( fuzzyMatchesWholeWord(appFuzzyName, video.description ) ) return true return false } @@ -63,7 +75,7 @@ const generateVideoTags = function ( video ) { if (videoTags.has(tagKey)) break // Check title - if (matchesWholeWord(tagWord.toLowerCase(), video.title.toLowerCase())) { + if (fuzzyMatchesWholeWord( tagWord, video.title )) { videoTags.add(tagKey) // console.log(video.title, 'has', tagKey, 'tag') @@ -73,7 +85,7 @@ const generateVideoTags = function ( video ) { } // Check description - if (matchesWholeWord(tagWord.toLowerCase(), video.description.toLowerCase())) { + if (fuzzyMatchesWholeWord( tagWord, video.description )) { videoTags.add(tagKey) // console.log(video.title, 'has', tagKey, 'tag') diff --git a/helpers/matching.js b/helpers/matching.js index 3e56031..3894a47 100644 --- a/helpers/matching.js +++ b/helpers/matching.js @@ -4,6 +4,9 @@ export function matchesWholeWord (needle, haystack) { return new RegExp('\\b' + needle + '\\b').test(haystack) } +export function fuzzyMatchesWholeWord (needle, haystack) { + return matchesWholeWord ( needle.toLowerCase() , haystack.toLowerCase() ) +} export function eitherMatches (stringARaw, stringBRaw) { // Make strings lowercase for more generous comparison