mirror of
https://github.com/c9fe/22120.git
synced 2024-11-14 15:02:33 +01:00
"Added basic search result view"
This commit is contained in:
parent
b659868015
commit
ffcf7e9b66
@ -729,8 +729,7 @@ export default Archivist;
|
|||||||
async function search(query) {
|
async function search(query) {
|
||||||
//return await Flex.searchAsync(query, args.results_per_page);
|
//return await Flex.searchAsync(query, args.results_per_page);
|
||||||
const results = NDX_FTSIndex.search(query);
|
const results = NDX_FTSIndex.search(query);
|
||||||
console.log({query, results});
|
return {query,results};
|
||||||
return results;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function saveFTS(path) {
|
async function saveFTS(path) {
|
||||||
|
@ -53,12 +53,16 @@ function addHandlers() {
|
|||||||
app.use("/library", express.static(args.library_path()))
|
app.use("/library", express.static(args.library_path()))
|
||||||
}
|
}
|
||||||
|
|
||||||
app.get('/search', async (req, res) => {
|
app.get('/search(.json)?', async (req, res) => {
|
||||||
const resultUrls = await Archivist.search(req.query.query);
|
const {query, results:resultIds} = await Archivist.search(req.query.query);
|
||||||
const results = resultUrls.map(({docId}) => Archivist.getDetails(docId));
|
const results = resultIds.map(({docId}) => Archivist.getDetails(docId));
|
||||||
res.end(JSON.stringify({
|
if ( req.path.endsWith('.json') ) {
|
||||||
results
|
res.end(JSON.stringify({
|
||||||
}, null, 2));
|
results, query
|
||||||
|
}, null, 2));
|
||||||
|
} else {
|
||||||
|
res.end(SearchResultView({results, query}));
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/mode', async (req, res) => {
|
app.get('/mode', async (req, res) => {
|
||||||
@ -171,3 +175,60 @@ function IndexView(urls) {
|
|||||||
`
|
`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function SearchResultView({results, query}) {
|
||||||
|
return `
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Your HTML Library</title>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
font-family: sans-serif;
|
||||||
|
background: lavenderblush;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
display: table;
|
||||||
|
margin: 0 auto;
|
||||||
|
background: silver;
|
||||||
|
padding: 0.5em;
|
||||||
|
box-shadow: 0 1px 1px purple;
|
||||||
|
}
|
||||||
|
form {
|
||||||
|
}
|
||||||
|
fieldset {
|
||||||
|
border: thin solid purple;
|
||||||
|
}
|
||||||
|
button, input, output {
|
||||||
|
}
|
||||||
|
input.long {
|
||||||
|
width: 100%;
|
||||||
|
min-width: 250px;
|
||||||
|
}
|
||||||
|
output {
|
||||||
|
font-size: smaller;
|
||||||
|
color: purple;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<h1>22120</h1>
|
||||||
|
<h2>Internet Offline Library</h2>
|
||||||
|
<h2>Archive Results</h2>
|
||||||
|
<p>
|
||||||
|
Showing results for <b>${query}</b>
|
||||||
|
</p>
|
||||||
|
<ol>
|
||||||
|
${
|
||||||
|
results.map(({url,title}) => `
|
||||||
|
<li>
|
||||||
|
<a target=_blank href=${url}>${title||url}</a>
|
||||||
|
</li>
|
||||||
|
`).join('\n')
|
||||||
|
}
|
||||||
|
</ol>
|
||||||
|
`
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user