chore: 导入清理前的完整工程状态(含 Capacitor 原生壳,作为回滚备份点)
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import type { RecipeItem } from '~/types'
|
||||
import { trackCookEvent } from './analytics'
|
||||
|
||||
/**
|
||||
* B 站搜索链接:按菜名搜索,结果里挑选当下最热门的教程
|
||||
*/
|
||||
export function getRecipeSearchLink(name: string) {
|
||||
return `https://search.bilibili.com/all?keyword=${encodeURIComponent(name)}`
|
||||
}
|
||||
|
||||
/**
|
||||
* 收录的原视频地址:优先使用收录的链接,否则拼出 B 站视频地址;两者都没有时返回空字符串
|
||||
*/
|
||||
export function getRecipeVideoLink(recipe: Pick<RecipeItem, 'link' | 'bv'>) {
|
||||
if (recipe.link)
|
||||
return recipe.link
|
||||
return recipe.bv ? `https://www.bilibili.com/video/${recipe.bv}` : ''
|
||||
}
|
||||
|
||||
/**
|
||||
* 菜谱的做法链接:跳转 B 站按菜名搜索,具体收录的视频作为次级入口(见 getRecipeVideoLink)
|
||||
* 没有菜名时(不正常的数据)退回视频链接
|
||||
*/
|
||||
export function getRecipeLink(recipe: Pick<RecipeItem, 'name' | 'link' | 'bv'>) {
|
||||
return recipe.name ? getRecipeSearchLink(recipe.name) : getRecipeVideoLink(recipe)
|
||||
}
|
||||
|
||||
export function openRecipe(recipe: Pick<RecipeItem, 'name' | 'link' | 'bv'>) {
|
||||
const link = getRecipeLink(recipe)
|
||||
if (!link)
|
||||
return
|
||||
trackCookEvent('click_recipe_video')
|
||||
window.open(link, '_blank')
|
||||
}
|
||||
|
||||
/**
|
||||
* 反馈这道菜的问题:打开预填好菜名和视频的 GitHub Issue 表单
|
||||
*/
|
||||
export function getRecipeFeedbackLink(recipe: Pick<RecipeItem, 'name' | 'link' | 'bv'>) {
|
||||
const params = new URLSearchParams({
|
||||
template: 'recipe.yml',
|
||||
title: `[菜谱] ${recipe.name}`,
|
||||
name: recipe.name,
|
||||
video: getRecipeVideoLink(recipe),
|
||||
})
|
||||
return `https://github.com/YunYouJun/cook/issues/new?${params}`
|
||||
}
|
||||
Reference in New Issue
Block a user