mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-28 19:25:55 +08:00
fix: search bar type error.
This commit is contained in:
22
backend/src/module/update/cross_version.py
Normal file
22
backend/src/module/update/cross_version.py
Normal file
@@ -0,0 +1,22 @@
|
||||
import re
|
||||
from urllib3.util import parse_url
|
||||
|
||||
from module.rss import RSSEngine
|
||||
|
||||
|
||||
def from_30_to_31():
|
||||
with RSSEngine() as db:
|
||||
db.migrate()
|
||||
# Update poster link
|
||||
bangumis = db.bangumi.search_all()
|
||||
rss_pool = []
|
||||
for bangumi in bangumis:
|
||||
if bangumi.poster_link:
|
||||
rss_link = bangumi.rss_link.split(",")[-1]
|
||||
if rss_link not in rss_pool and not re.search(r"\d+.\d+.\d+.\d+", rss_link):
|
||||
rss_pool.append(rss_link)
|
||||
root_path = parse_url(rss_link).host
|
||||
bangumi.poster_link = f"https://{root_path}{bangumi.poster_link}"
|
||||
db.bangumi.update_all(bangumis)
|
||||
for rss in rss_pool:
|
||||
db.add_rss(rss_link=rss)
|
||||
@@ -22,7 +22,7 @@ defineEmits(['click']);
|
||||
<div rounded-4px overflow-hidden poster-shandow rel>
|
||||
<div w-full h-210px>
|
||||
<template v-if="poster !== ''">
|
||||
<img :src="`https://mikanani.me${poster}`" alt="poster" wh-full/>
|
||||
<img :src="poster" alt="poster" wh-full/>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
@@ -77,7 +77,7 @@ defineEmits(['click']);
|
||||
<div w-400px space-x-16px fx-cer>
|
||||
<div h-44px w-72px rounded-6px overflow-hidden>
|
||||
<template v-if="poster !== ''">
|
||||
<img :src="`https://mikanani.me${poster}`" alt="poster" w-full class="search-image"/>
|
||||
<img :src="poster" alt="poster" w-full class="search-image"/>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
|
||||
@@ -14,8 +14,9 @@ const props = withDefaults(
|
||||
);
|
||||
|
||||
const emit = defineEmits(['update:value', 'click-search']);
|
||||
const {site, providers } = storeToRefs(useSearchStore());
|
||||
const {getProviders} = useSearchStore();
|
||||
const {site, providers, bangumiInfo$ } = storeToRefs(useSearchStore());
|
||||
const {getProviders, onInput} = useSearchStore();
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
getProviders();
|
||||
@@ -61,6 +62,7 @@ function onSearch() {
|
||||
:placeholder="placeholder"
|
||||
input-reset
|
||||
@keyup.enter="onSearch"
|
||||
@input="onInput"
|
||||
/>
|
||||
<div
|
||||
h-full
|
||||
@@ -103,18 +105,17 @@ function onSearch() {
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div -->
|
||||
<!-- v-if="bangumiInfo$" -->
|
||||
<!-- abs top-84px left-200px z-98> -->
|
||||
<!-- <ab-bangumi-card-->
|
||||
<!-- v-for="i in bangumiInfo$" -->
|
||||
<!-- :key="i.id"-->
|
||||
<!-- :poster="i.poster_link ?? ''" -->
|
||||
<!-- :name="i.official_title" -->
|
||||
<!-- :season="i.season" -->
|
||||
<!-- :group="i.group_name" -->
|
||||
<!-- /> -->
|
||||
<!-- </div> -->
|
||||
<div
|
||||
v-if="bangumiInfo$"
|
||||
abs top-84px left-200px z-98>
|
||||
<ab-bangumi-card
|
||||
:key="bangumiInfo$.id"
|
||||
:poster="bangumiInfo$.poster_link ?? ''"
|
||||
:name="bangumiInfo$.official_title"
|
||||
:season="bangumiInfo$.season"
|
||||
:group="bangumiInfo$.group_name"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
import {
|
||||
Subject,
|
||||
tap,
|
||||
map,
|
||||
switchMap,
|
||||
debounceTime,
|
||||
switchMap,
|
||||
tap,
|
||||
} from "rxjs";
|
||||
import type {BangumiRule} from "#/bangumi";
|
||||
|
||||
|
||||
export const useSearchStore = defineStore('search', () => {
|
||||
const input$ = new Subject<string>();
|
||||
// const onInput = (e: Event) => input$.next(e.target);
|
||||
const onInput = (e: Event) => input$.next(e.target.value);
|
||||
const providers = ref<string[]>(['mikan', 'dmhy', 'nyaa']);
|
||||
const site = ref<string>('mikan');
|
||||
|
||||
@@ -24,30 +23,31 @@ export const useSearchStore = defineStore('search', () => {
|
||||
providers.value = res;
|
||||
});
|
||||
|
||||
// input$.pipe(
|
||||
// debounceTime(1000),
|
||||
// tap((input: string) => {
|
||||
// console.log('input', input)
|
||||
// // clear Search Result List
|
||||
//
|
||||
// }),
|
||||
// switchMap((input: string) => apiSearch.get(input, site.value)),
|
||||
// tap((bangumi: BangumiRule) => console.log(bangumi)),
|
||||
// tap((bangumi: BangumiRule) => {
|
||||
// console.log('bangumi', bangumi)
|
||||
// // set bangumi info to Search Result List
|
||||
// }),
|
||||
// ).subscribe({
|
||||
// complete() {
|
||||
// // end of stream, stop loading animation
|
||||
// }
|
||||
// }, (err) => {
|
||||
// console.error(err);
|
||||
// });
|
||||
input$.pipe(
|
||||
debounceTime(1000),
|
||||
tap((input: string) => {
|
||||
console.log('input', input)
|
||||
// clear Search Result List
|
||||
|
||||
}),
|
||||
switchMap((input: string) => apiSearch.get(input, site.value)),
|
||||
tap((bangumi: BangumiRule) => console.log(bangumi)),
|
||||
tap((bangumi: BangumiRule) => {
|
||||
console.log('bangumi', bangumi)
|
||||
// set bangumi info to Search Result List
|
||||
}),
|
||||
).subscribe({
|
||||
complete() {
|
||||
// end of stream, stop loading animation
|
||||
}
|
||||
}, (err) => {
|
||||
console.error(err);
|
||||
});
|
||||
|
||||
|
||||
return {
|
||||
|
||||
input$,
|
||||
onInput,
|
||||
bangumiInfo$,
|
||||
site,
|
||||
getProviders,
|
||||
|
||||
Reference in New Issue
Block a user