diff --git a/src/assets/js/reprodb-search.js b/src/assets/js/reprodb-search.js index 70b1c420..9fd8d594 100644 --- a/src/assets/js/reprodb-search.js +++ b/src/assets/js/reprodb-search.js @@ -104,7 +104,7 @@ if (d.artifact_urls && d.artifact_urls.length > 0) return false; } if (onlyArtifinder) { - if (!d.artifinder_urls || d.artifinder_urls.length === 0) return false; + if (String(d.source || '').toLowerCase() !== 'artifinder') return false; } if (terms.length === 0) return true; return terms.every(function(t) { return d._search.indexOf(t) !== -1; }); @@ -175,7 +175,7 @@ var status = document.getElementById('searchStatus'); var hero = document.getElementById('search-hero'); var query = document.getElementById('searchBox').value.trim(); - var cleaned = query.replace(/#(unavailable|awarded|github|zenodo|nourl)/g, '').trim(); + var cleaned = query.replace(/#(unavailable|awarded|github|zenodo|nourl|artifinder)/g, '').trim(); var terms = normalizeText(cleaned).split(/\s+/).filter(function(t) { return t.length > 0; }); var yearVal = document.getElementById('yearFilter').value; var venueVal = document.getElementById('venueFilter').value; @@ -511,7 +511,7 @@ // Re-render profile cards if the user is already searching if (filtered.length > 0 || document.getElementById('searchBox').value.trim().length >= 2) { var raw = document.getElementById('searchBox').value.trim(); - var cleaned = raw.replace(/#(unavailable|awarded|github|zenodo|nourl)/g, '').trim(); + var cleaned = raw.replace(/#(unavailable|awarded|github|zenodo|nourl|artifinder)/g, '').trim(); var terms = normalizeText(cleaned).split(/\s+/).filter(function(t) { return t.length > 0; }); renderProfileCards(raw, terms); } diff --git a/src/methodology/search-keywords.md b/src/methodology/search-keywords.md index 019f2b3c..723561aa 100644 --- a/src/methodology/search-keywords.md +++ b/src/methodology/search-keywords.md @@ -13,6 +13,7 @@ The [search bar]({{ '/' | relative_url }}) supports special `#` keywords that fi | `#github` | Artifacts hosted on GitHub | | `#zenodo` | Artifacts hosted on Zenodo | | `#nourl` | Artifacts with no artifact URL recorded | +| `#artifinder` | Results tagged as ArtiFinder-discovered only | **Examples:** @@ -20,6 +21,7 @@ The [search bar]({{ '/' | relative_url }}) supports special `#` keywords that fi - `#awarded OSDI` - award-winning OSDI artifacts - `#github #unavailable 2022` - GitHub-hosted artifacts from 2022 with dead links - `#zenodo fuzzing` - Zenodo-hosted fuzzing artifacts +- `#artifinder malware` - ArtiFinder-tagged artifacts matching "malware" Keywords also work alongside the year, venue, and area dropdown filters.