Category
-
+
Movie
TV series
Video
@@ -896,19 +896,40 @@
}
return [page, query]
}
+
+ let advancedSearch = {
+ active: false,
+ category: ''
+ }
async function renderSearchResult(searchKey){
const query = getParts(window.location.path)[1]
- console.log(query, searchKey)
if(query !== searchKey){
- getRef('result_for').innerHTML = `Showing results for ${searchKey}`
const torrents = await getDataFromIDB()
const options = {
keys: ['name', 'filename'],
- threshold: 0.3
+ threshold: 0.3,
+ useExtendedSearch: advancedSearch.isActive,
+ }
+ let result
+ if(advancedSearch.isActive){
+ options.keys = ['type']
+ let fuseSearch = new Fuse(torrents, options)
+ result = fuseSearch.search(`'${advancedSearch.category}`).map(elem => elem.item)
+ options.keys = ['name', 'filename']
+ fuseSearch = new Fuse(result, options)
+ result = fuseSearch.search(searchKey).map(elem => elem.item)
+ }
+ else{
+ const fuseSearch = new Fuse(torrents, options)
+ result = fuseSearch.search(searchKey).map(elem => elem.item)
+ }
+ if(result.length){
+ getRef('result_for').innerHTML = `Showing results for ${searchKey}`
+ }
+ else{
+ getRef('result_for').innerHTML = `No results for ${searchKey}`
}
- const fuseSearch = new Fuse(torrents, options)
- const result = fuseSearch.search(searchKey).map(elem => elem.item)
getRef('search_result').innerHTML = ``
getRef('search_result').append(renderTorrents(result))
history.pushState(null, null, `#search?${searchKey}`)
@@ -936,12 +957,23 @@
})
getRef('advance_search_switch').addEventListener('change', e => {
if(e.detail.value){
+ advancedSearch = {
+ isActive: true,
+ category: getRef('category_selector').value
+ }
getRef('advance_search_panel').classList.remove('hide-completely')
}
else{
+ advancedSearch = {
+ isActive: false,
+ category: ''
+ }
getRef('advance_search_panel').classList.add('hide-completely')
}
})
+ getRef('category_selector').addEventListener('change', e => {
+ advancedSearch.category = e.detail.value
+ })