Commit d7bbf06b authored by duanjinfei's avatar duanjinfei

add crawl-data function

parent f53bfa3f
v1.223.10
\ No newline at end of file
v2.0.0
\ No newline at end of file
......@@ -15,7 +15,8 @@ async function fetchAllData(supabase, table: string, pageSize: number = 1000) {
const { data, error } = await supabase
.from(table)
.select('*') // 可以根据需要调整字段
.eq('is_show', true)
.gt('is_show', 0)
// .eq('is_show', 1)
.order('created_at', { ascending: true }) // 按照创建时间排序
.range(offset, offset + pageSize - 1); // 分页范围
......@@ -52,7 +53,6 @@ Deno.serve(async (req) => {
Deno.env.get('SUPABASE_ANON_KEY') ?? '',
{ global: { headers: { Authorization: req.headers.get('Authorization')! } } }
)
// 获取所有 app 数据
const allApps = await fetchAllData(supabase, 'app');
// 获取当前时间的整点时间戳
......@@ -95,6 +95,40 @@ Deno.serve(async (req) => {
}
}
const recommandPageSize = 3;
const recommandApps = allApps.filter(app => app.recommand > 0);
const recommandTotalCount = recommandApps.length;
const recommandPaginatedApps = [];
for (let i = 0; i < recommandTotalCount; i += recommandPageSize) {
recommandPaginatedApps.push(recommandApps.slice(i, i + recommandPageSize));
}
// 遍历分页后的数据并上传
for (let pageNum = 1; pageNum <= recommandPageSize.length; pageNum++) {
const pageApps = recommandPageSize[pageNum - 1];
const pageJson = JSON.stringify({
total_count: recommandTotalCount,
apps: pageApps,
});
const pageFileName = `${directory}/app_recommand_${pageNum}.json`;
const { error: pageUploadError } = await supabase.storage
.from(bucketName)
.upload(pageFileName, new Blob([pageJson]), {
contentType: 'application/json',
upsert: true,
});
if (pageUploadError) {
console.error(`Error uploading page ${pageNum} JSON:`, pageUploadError);
return new Response(
JSON.stringify({ error: `Failed to upload app_recommand_${pageNum}.json` }),
{ status: 500 }
);
}
}
// 按 category_id 分组
const groupedData: Record<string, any[]> = {};
allApps.forEach((app) => {
......@@ -104,7 +138,6 @@ Deno.serve(async (req) => {
groupedData[app.category_id].push(app);
});
// 上传每个 category_id 的数据
// 上传每个 category_id 的分页数据
for (const [categoryId, apps] of Object.entries(groupedData)) {
const totalCount = apps.length; // 当前分类的总数
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment