mirror of
https://github.com/Findus23/cr-search.git
synced 2024-09-19 15:23:44 +02:00
cache suggestions
This commit is contained in:
parent
4b3e829dee
commit
36b7301628
2 changed files with 19 additions and 4 deletions
10
server.py
10
server.py
|
@ -71,8 +71,16 @@ def api_question():
|
|||
return "no suggest query", 400
|
||||
if len(query) > 50:
|
||||
return "too long query", 400
|
||||
cache_key = f"suggest_{until}_{series}_{query}"
|
||||
if len(query) < 3:
|
||||
result = cache.get(cache_key)
|
||||
if result:
|
||||
return jsonify(result)
|
||||
phrases = suggest(query, until, series)
|
||||
return jsonify([p.text for p in phrases])
|
||||
result = [p.text for p in phrases]
|
||||
if len(query) < 3:
|
||||
cache.set(cache_key, result, timeout=60 * 60 * 24 * 7)
|
||||
return jsonify(result)
|
||||
|
||||
|
||||
@app.route("/api/search")
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<span v-if="!isOneShot">up to episode </span>
|
||||
<input v-if="!isOneShot" title="search until episode number"
|
||||
class="form-control" type="number" v-model="episode"
|
||||
min="1" max="300">
|
||||
min="1" :max="seriesLength">
|
||||
<span>in</span>
|
||||
<!-- <select title="campaign selection" class="custom-select" v-model="series">-->
|
||||
<!-- <option v-for="series in serverData.series" v-bind:value="series.slug">-->
|
||||
|
@ -91,7 +91,7 @@ import Vue from "vue";
|
|||
// @ts-ignore
|
||||
import Autocomplete from "@trevoreyre/autocomplete-vue";
|
||||
// import "@trevoreyre/autocomplete-vue/dist/style.css";
|
||||
import {Line, Result, Series, ServerData, ServerMessage} from "@/interfaces";
|
||||
import {Line, Result, SeriesData, ServerData, ServerMessage} from "@/interfaces";
|
||||
import {BAlert, BIcon, BIconPlayFill} from "bootstrap-vue";
|
||||
// @ts-ignore
|
||||
import VueYoutube from "vue-youtube";
|
||||
|
@ -288,7 +288,7 @@ export default Vue.extend({
|
|||
const sec = Math.floor(starttime % 60);
|
||||
return `https://www.youtube.com/watch?v=${id}&t=${min}m${sec}s`;
|
||||
},
|
||||
seriesFromSlug(): Series | undefined {
|
||||
seriesFromSlug(): SeriesData | undefined {
|
||||
if (!this.$route.params.series) {
|
||||
return undefined;
|
||||
}
|
||||
|
@ -304,6 +304,13 @@ export default Vue.extend({
|
|||
return this.$route.params.series;
|
||||
}
|
||||
},
|
||||
seriesLength(): number {
|
||||
const series = this.seriesFromSlug;
|
||||
if (series) {
|
||||
return series.length;
|
||||
}
|
||||
return 300;
|
||||
},
|
||||
isOneShot(): boolean {
|
||||
console.log(this.episode);
|
||||
return this.episode === "-";
|
||||
|
|
Loading…
Reference in a new issue