资源2
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 25 KiB |
@@ -1,978 +0,0 @@
|
||||
# ============================================================
|
||||
# 闲言APP — 闲情逸致月度JSON数据生成器
|
||||
# 创建时间: 2026-05-28
|
||||
# 更新时间: 2026-05-28
|
||||
# 作用: 生成12个月闲情逸致数据(含花期/海鸥/heatLevel/多卡片)
|
||||
# 上次更新: 全新重写,支持每日2-4卡片、heatLevel热度、花期/海鸥季
|
||||
# ============================================================
|
||||
|
||||
import json
|
||||
import os
|
||||
import random
|
||||
from datetime import datetime
|
||||
|
||||
OUT = r"e:\project\flutter\f\xianyan\assets\data\leisure"
|
||||
WD = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
|
||||
|
||||
random.seed(2026)
|
||||
|
||||
|
||||
def sn(m):
|
||||
return {3: "spring", 4: "spring", 5: "spring",
|
||||
6: "summer", 7: "summer", 8: "summer",
|
||||
9: "autumn", 10: "autumn", 11: "autumn",
|
||||
12: "winter", 1: "winter", 2: "winter"}[m]
|
||||
|
||||
|
||||
SUN = {
|
||||
1: ("07:18", "17:30"), 2: ("07:05", "18:00"), 3: ("06:35", "18:25"),
|
||||
4: ("05:55", "18:50"), 5: ("05:22", "19:05"), 6: ("05:08", "19:20"),
|
||||
7: ("05:12", "19:28"), 8: ("05:25", "19:15"), 9: ("05:55", "18:45"),
|
||||
10: ("06:18", "18:00"), 11: ("06:40", "17:25"), 12: ("07:05", "17:15"),
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# 花期数据 — 参考 https://rogerzhu.github.io/yinghua-map/
|
||||
# (title, emoji, desc, loc, prov, alt, pt, pn, tags, rw,
|
||||
# m_start, d_start, m_end, d_end, peak_m_s, peak_d_s, peak_m_e, peak_d_e)
|
||||
# ============================================================
|
||||
|
||||
FLOWER_EVENTS = [
|
||||
("大理冬樱 🌸", "🌸", "苍山脚下冬樱绽放,粉白花海映雪山,南国冬日最浪漫的春意",
|
||||
"云南·大理·苍山", "云南", 2200, "free", None,
|
||||
["冬樱", "赏花", "大理"], ["高原紫外线强"], 12, 1, 2, 15, 1, 5, 20),
|
||||
("昆明圆通山樱花 🌸", "🌸", "圆通山樱潮涌动,粉白花海铺满山腰,春城最负盛名的花事",
|
||||
"云南·昆明·圆通山", "云南", 1890, "paid", "20元/人",
|
||||
["樱花", "赏花", "昆明"], ["花期短注意时间"], 2, 20, 3, 20, 3, 5, 15),
|
||||
("福建山樱花 🌸", "🌸", "永福樱花园茶山叠翠,绯红樱花层层叠叠,最美茶园樱花",
|
||||
"福建·龙岩·永福", "福建", 800, "paid", "50元/人",
|
||||
["山樱", "赏花", "福建"], ["山路蜿蜒注意安全"], 1, 25, 3, 10, 2, 10, 25),
|
||||
("贵安樱花园 🌸", "🌸", "万亩樱花园红枫湖畔,世界最大樱花基地之一,壮观至极",
|
||||
"贵州·贵安·平坝", "贵州", 1200, "free", None,
|
||||
["樱花", "赏花", "贵州"], ["花期人流量大"], 2, 25, 4, 10, 3, 10, 25),
|
||||
("武汉樱花 🌸", "🌸", "武大樱花珞珈山下,百年学府与粉色花海的浪漫邂逅",
|
||||
"湖北·武汉·武汉大学", "湖北", 30, "free", None,
|
||||
["樱花", "赏花", "武汉"], ["需提前预约", "花期人流量大"], 3, 10, 4, 10, 3, 15, 28),
|
||||
("无锡鼋头渚樱花 🌸", "🌸", "太湖佳绝处樱花烂漫,长春桥畔夜樱如梦似幻",
|
||||
"江苏·无锡·鼋头渚", "江苏", 10, "paid", "90元/人",
|
||||
["樱花", "夜樱", "无锡"], ["花期人流量大", "夜樱需另购票"], 3, 5, 4, 15, 3, 20, 30),
|
||||
("南京鸡鸣寺樱花 🌸", "🌸", "鸡鸣寺路樱花大道,粉色花隧道穿越千年古刹",
|
||||
"江苏·南京·鸡鸣寺", "江苏", 20, "free", None,
|
||||
["樱花", "赏花", "南京"], ["花期人流量大"], 3, 10, 4, 10, 3, 15, 28),
|
||||
("北京玉渊潭樱花 🌸", "🌸", "玉渊潭公园樱花节,京城最盛大的樱花盛会",
|
||||
"北京·玉渊潭", "北京", 50, "paid", "10元/人",
|
||||
["樱花", "赏花", "北京"], ["花期人流量大"], 3, 20, 4, 20, 4, 1, 10),
|
||||
("青岛中山公园樱花 🌸", "🌸", "青岛樱花大道粉白如雪,红瓦绿树碧海蓝天间最温柔的一抹",
|
||||
"山东·青岛·中山公园", "山东", 30, "free", None,
|
||||
["樱花", "赏花", "青岛"], [], 4, 1, 4, 25, 4, 5, 15),
|
||||
("大连龙王塘樱花 🌸", "🌸", "龙王塘水库樱花园,辽东半岛最壮观的樱花胜境",
|
||||
"辽宁·大连·龙王塘", "辽宁", 50, "free", None,
|
||||
["樱花", "赏花", "大连"], ["春季风大注意保暖"], 4, 10, 5, 5, 4, 15, 25),
|
||||
("沈阳长白岛樱花 🌸", "🌸", "东北晚樱压轴登场,长白岛森林公园粉色花海",
|
||||
"辽宁·沈阳·长白岛", "辽宁", 40, "free", None,
|
||||
["晚樱", "赏花", "沈阳"], ["东北春季温差大"], 4, 25, 5, 15, 5, 1, 10),
|
||||
("南京梅花山 🌸", "🌸", "中国四大梅区之首,万株梅花开满山,踏雪寻梅暗香浮动",
|
||||
"江苏·南京·梅花山", "江苏", 30, "paid", "70元/人",
|
||||
["梅花", "赏花", "南京"], ["1月底2月初最佳"], 1, 10, 3, 10, 2, 5, 20),
|
||||
("武汉东湖梅花 🌸", "🌸", "东湖梅园中国四大梅园之一,三百品种暗香浮动",
|
||||
"湖北·武汉·东湖", "湖北", 20, "paid", "40元/人",
|
||||
["梅花", "赏花", "武汉"], [], 1, 15, 3, 5, 2, 1, 15),
|
||||
("杭州超山梅花 🌸", "🌸", "十里梅花香雪海,唐梅宋梅千年古韵",
|
||||
"浙江·杭州·超山", "浙江", 50, "paid", "50元/人",
|
||||
["梅花", "赏花", "杭州"], [], 1, 20, 3, 10, 2, 10, 25),
|
||||
("上海世纪公园梅花 🌸", "🌸", "世纪公园梅园闹市中的暗香,都市赏梅首选",
|
||||
"上海·世纪公园", "上海", 5, "paid", "10元/人",
|
||||
["梅花", "赏花", "上海"], [], 1, 15, 3, 5, 2, 1, 20),
|
||||
("罗平油菜花 🌼", "🌼", "金色花海铺满喀斯特峰林,大地最壮观的黄金地毯",
|
||||
"云南·罗平", "云南", 1500, "free", None,
|
||||
["油菜花", "赏花", "云南"], ["花期人流量大"], 2, 1, 3, 31, 2, 20, 3, 10),
|
||||
("婺源油菜花 🌼", "🌼", "徽派白墙黛瓦映黄花,中国最美乡村的春日名片",
|
||||
"江西·婺源", "江西", 100, "paid", "210元/人(通票)",
|
||||
["油菜花", "赏花", "婺源"], ["花期住宿紧张"], 2, 20, 4, 10, 3, 10, 25),
|
||||
("汉中油菜花 🌼", "🌼", "百万亩油菜花海,秦巴山间金色画卷",
|
||||
"陕西·汉中", "陕西", 500, "free", None,
|
||||
["油菜花", "赏花", "汉中"], [], 3, 1, 4, 15, 3, 15, 30),
|
||||
("兴化千垛油菜花 🌼", "🌼", "水上油菜花田,河港交错间金色花岛星罗棋布",
|
||||
"江苏·泰州·兴化", "江苏", 5, "paid", "100元/人",
|
||||
["油菜花", "水上花田", "兴化"], ["乘船游览更佳"], 3, 10, 4, 20, 3, 20, 4, 5),
|
||||
("林芝桃花 🌸", "🌸", "雪域桃花映南迦巴瓦,世界屋脊上最壮美的春色",
|
||||
"西藏·林芝", "西藏", 3000, "free", None,
|
||||
["桃花", "赏花", "林芝"], ["高原反应注意", "紫外线强"], 3, 15, 4, 15, 3, 25, 4, 5),
|
||||
("平谷桃花 🌸", "🌸", "万亩桃花海京城后花园,粉红海洋铺满山谷",
|
||||
"北京·平谷", "北京", 100, "free", None,
|
||||
["桃花", "赏花", "北京"], ["花期人流量大"], 4, 1, 4, 25, 4, 5, 15),
|
||||
("洛阳牡丹 🌺", "🌺", "唯有牡丹真国色,花开时节动京城,千年花都绝世风华",
|
||||
"河南·洛阳", "河南", 150, "paid", "50元/人",
|
||||
["牡丹", "赏花", "洛阳"], ["花期人流量极大"], 4, 5, 5, 10, 4, 15, 25),
|
||||
("菏泽牡丹 🌺", "🌺", "中国牡丹之都,万亩花田比洛阳更壮观更接地气",
|
||||
"山东·菏泽", "山东", 50, "paid", "30元/人",
|
||||
["牡丹", "赏花", "菏泽"], [], 4, 10, 5, 10, 4, 15, 25),
|
||||
("百里杜鹃 🌺", "🌺", "世界最大天然花园,绵延百里花海震撼人心",
|
||||
"贵州·毕节·百里杜鹃", "贵州", 1500, "paid", "130元/人",
|
||||
["杜鹃", "赏花", "贵州"], ["花期人流量大"], 3, 20, 5, 15, 4, 5, 25),
|
||||
("麻城杜鹃 🌺", "🌺", "龟峰山古杜鹃群落,人间四月天最热烈的红色",
|
||||
"湖北·黄冈·麻城", "湖北", 800, "paid", "110元/人",
|
||||
["杜鹃", "赏花", "麻城"], [], 4, 10, 5, 20, 4, 20, 5, 10),
|
||||
("西湖荷花 🪷", "🪷", "接天莲叶无穷碧映日荷花别样红,曲院风荷最经典",
|
||||
"浙江·杭州·西湖", "浙江", 10, "free", None,
|
||||
["荷花", "赏花", "杭州"], ["盛夏注意防暑"], 6, 15, 9, 10, 7, 10, 8, 10),
|
||||
("大明湖荷花 🪷", "🪷", "四面荷花三面柳一城山色半城湖,泉城夏日名片",
|
||||
"山东·济南·大明湖", "山东", 30, "free", None,
|
||||
["荷花", "赏花", "济南"], [], 6, 20, 9, 5, 7, 15, 8, 15),
|
||||
("白洋淀荷花 🪷", "🪷", "华北明珠荷花荡,万亩荷塘碧波连天",
|
||||
"河北·保定·白洋淀", "河北", 5, "paid", "180元/人",
|
||||
["荷花", "赏花", "白洋淀"], ["乘船游览"], 7, 1, 8, 31, 7, 15, 8, 5),
|
||||
("昆明蓝花楹 💜", "💜", "教场中路紫色花海,春城初夏最美街道",
|
||||
"云南·昆明·教场中路", "云南", 1890, "free", None,
|
||||
["蓝花楹", "赏花", "昆明"], ["高原紫外线强"], 5, 1, 6, 10, 5, 10, 25),
|
||||
("桂林桂花 🌼", "🌼", "满城桂花香,漓江山水间最甜美的秋日气息",
|
||||
"广西·桂林", "广西", 150, "free", None,
|
||||
["桂花", "赏花", "桂林"], [], 9, 1, 10, 31, 9, 20, 10, 15),
|
||||
("杭州桂花 🌼", "🌼", "满觉陇桂花雨,西湖秋日最甜蜜的浪漫",
|
||||
"浙江·杭州·满觉陇", "浙江", 10, "free", None,
|
||||
["桂花", "赏花", "杭州"], [], 9, 5, 10, 20, 9, 25, 10, 10),
|
||||
("咸宁桂花 🌼", "🌼", "桂花之乡万亩桂香,中国最大桂花产区",
|
||||
"湖北·咸宁", "湖北", 50, "free", None,
|
||||
["桂花", "赏花", "咸宁"], [], 9, 10, 10, 25, 9, 25, 10, 10),
|
||||
("开封菊花 🌼", "🌼", "开封菊花花会千年传承,满城尽带黄金甲",
|
||||
"河南·开封", "河南", 70, "paid", "50元/人",
|
||||
["菊花", "赏花", "开封"], [], 10, 1, 11, 15, 10, 15, 11, 5),
|
||||
("桐乡菊花 🌼", "🌼", "杭白菊故乡,秋日田野金黄一片可赏可饮",
|
||||
"浙江·嘉兴·桐乡", "浙江", 5, "free", None,
|
||||
["菊花", "赏花", "桐乡"], [], 10, 10, 11, 20, 10, 25, 11, 10),
|
||||
("腾冲银杏 🍂", "🍂", "固东银杏村满地金黄,火山热海边的秋日童话",
|
||||
"云南·腾冲·银杏村", "云南", 1700, "free", None,
|
||||
["银杏", "赏叶", "腾冲"], ["深秋最佳"], 11, 1, 12, 10, 11, 15, 30),
|
||||
("丹东银杏 🍂", "🍂", "百年银杏大道金黄满地,边境城市最绚烂的秋色",
|
||||
"辽宁·丹东·六纬路", "辽宁", 20, "free", None,
|
||||
["银杏", "赏叶", "丹东"], [], 10, 20, 11, 20, 11, 1, 10),
|
||||
("随州银杏 🍂", "🍂", "千年银杏谷万株古树,中国最美秋色之一",
|
||||
"湖北·随州·千年银杏谷", "湖北", 200, "paid", "80元/人",
|
||||
["银杏", "赏叶", "随州"], [], 11, 1, 11, 30, 11, 5, 20),
|
||||
("盘锦红海滩 🌾", "🌾", "碱蓬草红色海滩与金色芦苇荡交织,世界奇观",
|
||||
"辽宁·盘锦", "辽宁", 5, "paid", "110元/人",
|
||||
["红海滩", "芦苇", "盘锦"], [], 9, 10, 10, 31, 9, 25, 10, 15),
|
||||
("盐城郁金香 🌷", "🌷", "荷兰花海千万株郁金香,东方普罗旺斯",
|
||||
"江苏·盐城·荷兰花海", "江苏", 5, "paid", "80元/人",
|
||||
["郁金香", "赏花", "盐城"], [], 3, 15, 5, 10, 4, 1, 20),
|
||||
("伊犁薰衣草 💜", "💜", "霍城薰衣草紫色花海,东方普罗旺斯的浪漫",
|
||||
"新疆·伊犁·霍城", "新疆", 800, "free", None,
|
||||
["薰衣草", "赏花", "伊犁"], ["6月中下旬最佳"], 6, 5, 7, 15, 6, 15, 30),
|
||||
("金川梨花 🤍", "🤍", "雪域梨花映碉楼,川西春日最纯净的白色花海",
|
||||
"四川·阿坝·金川", "四川", 2200, "free", None,
|
||||
["梨花", "赏花", "金川"], ["高原注意防晒"], 3, 10, 4, 15, 3, 20, 30),
|
||||
("香山红叶 🍁", "🍁", "香山红叶北京之秋,霜叶红于二月花",
|
||||
"北京·香山", "北京", 550, "paid", "10元/人",
|
||||
["红叶", "赏叶", "北京"], ["10月底11月初最佳"], 10, 10, 11, 15, 10, 25, 11, 5),
|
||||
("本溪红叶 🍁", "🍁", "关门山红叶层林尽染,东北秋色最浓烈",
|
||||
"辽宁·本溪·关门山", "辽宁", 600, "paid", "90元/人",
|
||||
["红叶", "赏叶", "本溪"], [], 9, 25, 10, 25, 10, 5, 15),
|
||||
("九寨沟彩林 🍁", "🍁", "九寨沟秋日彩林倒影,人间仙境秋色无双",
|
||||
"四川·九寨沟", "四川", 2500, "paid", "169元/人",
|
||||
["彩林", "赏叶", "九寨沟"], ["高原注意防晒"], 10, 1, 11, 10, 10, 15, 30),
|
||||
("喀纳斯秋色 🍁", "🍁", "白桦林金黄倒映碧水,北疆秋色中国最美",
|
||||
"新疆·喀纳斯", "新疆", 1300, "paid", "230元/人",
|
||||
["秋色", "赏叶", "喀纳斯"], ["9月底10月初最佳", "温差极大"], 9, 10, 10, 15, 9, 20, 10, 5),
|
||||
("门源花海 🌻", "🌻", "祁连山下金色花海,高原夏日最壮观的色彩",
|
||||
"青海·门源", "青海", 2800, "free", None,
|
||||
["向日葵", "油菜花", "青海"], ["高原注意防晒", "温差大"], 7, 1, 8, 15, 7, 10, 25),
|
||||
]
|
||||
|
||||
# ============================================================
|
||||
# 海鸥数据 — 昆明海鸥季 11月-3月
|
||||
# ============================================================
|
||||
|
||||
SEAGULL_EVENTS = [
|
||||
("昆明海鸥 🕊️", "🕊️", "翠湖海鸥翩翩起舞,春城冬日最灵动的风景线",
|
||||
"云南·昆明·翠湖", "云南", 1890, "free", None,
|
||||
["海鸥", "观鸟", "昆明"], ["勿投喂面包", "保持距离"], 11, 1, 3, 31),
|
||||
("滇池海鸥 🕊️", "🕊️", "滇池草海海鸥漫天,五百里滇池最壮观的候鸟奇景",
|
||||
"云南·昆明·滇池", "云南", 1890, "free", None,
|
||||
["海鸥", "观鸟", "滇池"], ["勿投喂面包", "风大注意保暖"], 11, 1, 3, 31),
|
||||
("大观楼海鸥 🕊️", "🕊️", "大观楼长联下海鸥翔集,历史与自然的完美交融",
|
||||
"云南·昆明·大观公园", "云南", 1890, "free", None,
|
||||
["海鸥", "观鸟", "昆明"], ["勿投喂面包"], 11, 1, 3, 31),
|
||||
]
|
||||
|
||||
|
||||
def seagull_heat(m):
|
||||
if m in (12, 1):
|
||||
return 5
|
||||
if m == 2:
|
||||
return 4
|
||||
if m in (11, 3):
|
||||
return 3
|
||||
return 0
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 自然景观/时令活动
|
||||
# ============================================================
|
||||
|
||||
NATURE_EVENTS = [
|
||||
("哈尔滨冰雪大世界 🧊", "🧊", "冰雕灯光梦幻奇观,世界最大冰雪主题乐园",
|
||||
"黑龙江·哈尔滨", "黑龙江", 150, "paid", "300元/人",
|
||||
["冰雕", "冬季", "观光"], ["注意防寒保暖", "穿防滑鞋"], 12, 20, 2, 20),
|
||||
("吉林雾凇 🌫️", "🌫️", "吉林雾凇岛银装素裹,中国四大自然奇观之一",
|
||||
"吉林·吉林", "吉林", 180, "free", None,
|
||||
["雾凇", "冬季", "自然景观"], ["清晨最佳观赏"], 12, 1, 2, 28),
|
||||
("查干湖冬捕 🎣", "🎣", "千年渔猎文化冰上盛宴,祭湖醒网壮观仪式",
|
||||
"吉林·松原", "吉林", 130, "paid", "100元/人",
|
||||
["冬捕", "冬季", "民俗"], ["注意冰面安全"], 12, 15, 1, 31),
|
||||
("钱塘江大潮 🌊", "🌊", "八月十八潮壮观天下无,天下第一潮气势磅礴",
|
||||
"浙江·海宁", "浙江", 5, "free", None,
|
||||
["大潮", "自然景观", "海宁"], ["注意安全距离"], 9, 1, 9, 30),
|
||||
("漠河极光 🌌", "🌌", "中国最北极光观测地,极寒中追寻天际奇光",
|
||||
"黑龙江·漠河", "黑龙江", 300, "free", None,
|
||||
["极光", "冬季", "自然景观"], ["极光出现概率低", "注意极寒保暖"], 11, 1, 2, 28),
|
||||
("壶口瀑布冰瀑 🧊", "🧊", "千里黄河冰封奇观,冰瀑如玉帘倒挂",
|
||||
"山西·临汾", "山西", 450, "paid", "100元/人",
|
||||
["冰瀑", "冬季", "自然景观"], ["注意防寒", "远离冰瀑边缘"], 12, 1, 2, 28),
|
||||
("黄山云海 🌄", "🌄", "黄山云海翻涌如仙境,五岳归来不看山",
|
||||
"安徽·黄山", "安徽", 1864, "paid", "190元/人",
|
||||
["云海", "日出", "黄山"], ["注意保暖", "提前查天气"], 1, 1, 12, 31),
|
||||
("泰山日出 🌅", "🌅", "泰山日出云海金光壮丽,五岳独尊气象万千",
|
||||
"山东·泰山", "山东", 1545, "paid", "115元/人",
|
||||
["日出", "冬季", "观光"], ["注意极寒保暖", "夜爬需头灯"], 1, 1, 12, 31),
|
||||
("纳木错星空 🌌", "🌌", "天湖纳木错银河倒映,世界屋脊最纯净的星空",
|
||||
"西藏·纳木错", "西藏", 4718, "paid", "120元/人",
|
||||
["星空", "自然景观", "纳木错"], ["高原反应注意", "紫外线极强"], 5, 1, 10, 31),
|
||||
("青海湖日出 🌅", "🌅", "高原圣湖日出金光万丈,蓝宝石般的湖水映朝霞",
|
||||
"青海·青海湖", "青海", 3200, "paid", "90元/人",
|
||||
["日出", "自然景观", "青海湖"], ["高原注意防晒"], 6, 1, 9, 30),
|
||||
("泸沽湖 🏞️", "🏞️", "东方女儿国碧水蓝天,摩梭走婚桥上邂逅浪漫",
|
||||
"云南·泸沽湖", "云南", 2690, "paid", "70元/人",
|
||||
["湖泊", "自然景观", "泸沽湖"], ["高原注意防晒"], 3, 1, 11, 30),
|
||||
("茶卡盐湖 🪞", "🪞", "天空之镜倒映天地,中国版乌尤尼盐沼",
|
||||
"青海·茶卡", "青海", 3059, "paid", "60元/人",
|
||||
["盐湖", "自然景观", "茶卡"], ["高原注意防晒", "穿鲜艳衣服拍照"], 5, 1, 10, 31),
|
||||
("元阳梯田 🌾", "🌾", "哈尼梯田光影变幻,大地雕塑千年杰作",
|
||||
"云南·元阳", "云南", 1700, "paid", "100元/人",
|
||||
["梯田", "自然景观", "元阳"], ["日出时分最美"], 11, 1, 4, 30),
|
||||
("故宫雪景 🏯", "🏯", "故宫落雪红墙白雪,紫禁城冬日绝美画卷",
|
||||
"北京·故宫", "北京", 44, "paid", "60元/人",
|
||||
["故宫", "雪景", "北京"], ["提前预约门票", "雪天路滑"], 12, 1, 2, 28),
|
||||
("什刹海冰场 ⛸️", "⛸️", "什刹海冰场滑冰车冰上嬉戏,老北京冬日欢乐",
|
||||
"北京·什刹海", "北京", 44, "paid", "30元/人",
|
||||
["滑冰", "冬季", "北京"], ["注意冰面安全"], 12, 15, 2, 15),
|
||||
("亚布力滑雪 ⛷️", "⛷️", "亚布力滑雪场粉雪飞驰,冬季运动极致体验",
|
||||
"黑龙江·亚布力", "黑龙江", 1374, "paid", "300元/天",
|
||||
["滑雪", "冬季", "运动"], ["注意防寒保暖", "初学者请教练"], 11, 15, 3, 15),
|
||||
("崇礼滑雪 ⛷️", "⛷️", "冬奥赛场专业体验,京郊最佳滑雪胜地",
|
||||
"河北·崇礼", "河北", 1800, "paid", "400元/天",
|
||||
["滑雪", "冬季", "运动"], ["注意防寒保暖"], 11, 15, 3, 15),
|
||||
("腾冲温泉 ♨️", "♨️", "火山地热天然温泉,冬日泡汤驱寒养生",
|
||||
"云南·腾冲", "云南", 1640, "paid", "200元/人",
|
||||
["温泉", "冬季", "养生"], ["泡汤不宜超30分钟"], 11, 1, 3, 31),
|
||||
("自贡灯会 🏮", "🏮", "天下第一灯流光溢彩,非遗灯会震撼人心",
|
||||
"四川·自贡", "四川", 300, "paid", "100元/人",
|
||||
["灯会", "春节", "民俗"], ["注意人多拥挤"], 1, 15, 2, 28),
|
||||
("秦淮灯会 🏮", "🏮", "桨声灯影秦淮河,元宵夜花灯如昼",
|
||||
"江苏·南京", "江苏", 10, "free", None,
|
||||
["灯会", "元宵", "民俗"], ["注意人多拥挤"], 1, 20, 2, 20),
|
||||
("广州迎春花市 🌺", "🌺", "迎春花市年花年桔,岭南春节最热闹的民俗",
|
||||
"广东·广州", "广东", 10, "free", None,
|
||||
["花市", "春节", "民俗"], ["除夕前最热闹"], 1, 20, 2, 5),
|
||||
("婺源晒秋 🌶️", "🌶️", "篁岭晒秋五彩缤纷,徽州人家屋顶上的调色盘",
|
||||
"江西·婺源·篁岭", "江西", 500, "paid", "145元/人",
|
||||
["晒秋", "民俗", "婺源"], [], 8, 1, 12, 31),
|
||||
("鄱阳湖候鸟 🦢", "🦢", "万鸟齐飞壮观,亚洲最大候鸟越冬地",
|
||||
"江西·鄱阳湖", "江西", 15, "free", None,
|
||||
["候鸟", "观鸟", "鄱阳湖"], ["带望远镜", "保持安静"], 11, 1, 3, 31),
|
||||
("巴音布鲁克日落 🌅", "🌅", "九曲十八弯九个太阳,中国最美日落之一",
|
||||
"新疆·巴音布鲁克", "新疆", 2500, "paid", "65元/人",
|
||||
["日落", "自然景观", "巴音布鲁克"], ["蚊虫多注意防护"], 6, 1, 9, 30),
|
||||
("赛里木湖 💎", "💎", "大西洋最后一滴眼泪,蓝宝石般的高山湖泊",
|
||||
"新疆·赛里木湖", "新疆", 2073, "paid", "70元/人",
|
||||
["湖泊", "自然景观", "赛里木湖"], ["高原注意防晒"], 5, 1, 10, 15),
|
||||
("呼伦贝尔草原 🌿", "🌿", "天下第一草原碧波万顷,策马奔腾自由如风",
|
||||
"内蒙古·呼伦贝尔", "内蒙古", 650, "free", None,
|
||||
["草原", "自然景观", "呼伦贝尔"], ["夏季蚊虫多"], 6, 1, 9, 15),
|
||||
("张掖丹霞 🏜️", "🏜️", "七彩丹霞地貌奇观,大地调色板上的彩虹",
|
||||
"甘肃·张掖", "甘肃", 1800, "paid", "93元/人",
|
||||
["丹霞", "自然景观", "张掖"], ["日出日落最美"], 4, 1, 10, 31),
|
||||
("周庄古镇 🏘️", "🏘️", "中国第一水乡,小桥流水人家如诗如画",
|
||||
"江苏·周庄", "江苏", 5, "paid", "100元/人",
|
||||
["古镇", "观光", "周庄"], ["夜景更美"], 1, 1, 12, 31),
|
||||
("凤凰古城 🏘️", "🏘️", "沱江边吊脚楼灯火阑珊,湘西最美古城",
|
||||
"湖南·凤凰", "湖南", 300, "free", None,
|
||||
["古镇", "观光", "凤凰"], ["夜景更美"], 1, 1, 12, 31),
|
||||
("围炉煮茶 🫖", "🫖", "炭火温暖茶香四溢,冬日最治愈的慢时光",
|
||||
"浙江·杭州", "浙江", 10, "paid", "80元/人",
|
||||
["煮茶", "冬季", "休闲"], ["注意炭火通风"], 11, 1, 3, 15),
|
||||
("采茶体验 🍵", "🍵", "亲手采摘明前茶芽,体验茶农春日生活",
|
||||
"浙江·杭州·龙井村", "浙江", 100, "paid", "150元/人",
|
||||
["采茶", "春季", "体验"], [], 3, 15, 4, 30),
|
||||
("赶海 🦀", "🦀", "退潮赶海拾贝捉蟹,海边最有趣的亲子活动",
|
||||
"福建·霞浦", "福建", 5, "free", None,
|
||||
["赶海", "夏季", "亲子"], ["注意潮汐时间", "防晒"], 5, 1, 10, 31),
|
||||
("萤火虫 🪲", "🪲", "夏夜萤火虫如星河,仲夏夜最浪漫的邂逅",
|
||||
"江苏·南京·灵谷寺", "江苏", 50, "free", None,
|
||||
["萤火虫", "夏季", "自然景观"], ["保持安静", "勿用闪光灯"], 6, 20, 8, 15),
|
||||
("星空露营 ⛺", "⛺", "高山草甸星空露营,银河就在头顶",
|
||||
"四川·若尔盖", "四川", 3500, "free", None,
|
||||
["露营", "星空", "夏季"], ["高原注意防晒", "温差大"], 6, 1, 9, 15),
|
||||
("漂流 🚣", "🚣", "猛洞河漂流激流勇进,夏日最刺激的水上运动",
|
||||
"湖南·湘西·猛洞河", "湖南", 200, "paid", "180元/人",
|
||||
["漂流", "夏季", "运动"], ["注意安全", "穿救生衣"], 5, 15, 9, 15),
|
||||
("泼水节 💦", "💦", "西双版纳泼水节,傣族新年最疯狂的狂欢",
|
||||
"云南·西双版纳", "云南", 550, "free", None,
|
||||
["泼水节", "民俗", "西双版纳"], ["注意防水"], 4, 10, 4, 20),
|
||||
("赛龙舟 🐉", "🐉", "端午赛龙舟鼓声震天,千年传统水上竞渡",
|
||||
"湖南·汨罗", "湖南", 30, "free", None,
|
||||
["龙舟", "端午", "民俗"], ["注意安全"], 6, 1, 6, 10),
|
||||
("中秋赏月 🌕", "🌕", "西湖三潭印月,中秋夜最诗意的赏月地",
|
||||
"浙江·杭州·西湖", "浙江", 10, "free", None,
|
||||
["赏月", "中秋", "传统"], [], 9, 10, 9, 20),
|
||||
("重阳登高 ⛰️", "⛰️", "重阳登高望远,秋日登顶览山河壮丽",
|
||||
"山东·泰山", "山东", 1545, "paid", "115元/人",
|
||||
["登高", "重阳", "传统"], ["注意安全"], 10, 1, 10, 20),
|
||||
]
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 美食数据 — 按月份 (title, emoji, desc, loc, prov, alt, pt, pn, tags, heat)
|
||||
# ============================================================
|
||||
|
||||
FOOD_DATA = {
|
||||
1: [
|
||||
("冰糖葫芦 🍡", "🍡", "山楂裹冰糖晶莹剔透,北方冬日街头经典", "北京·王府井", "北京", None, "free", None, ["冰糖葫芦", "冬季", "街头小吃"], 3),
|
||||
("腊肉 🥩", "🥩", "湘西腊肉经冬熏制烟熏味浓肥而不腻", "湖南·湘西", "湖南", None, "free", None, ["腊肉", "冬季", "年味"], 4),
|
||||
("火锅 🍲", "🍲", "重庆老火锅麻辣鲜香毛肚鸭肠涮起来", "重庆·解放碑", "重庆", None, "free", None, ["火锅", "冬季", "麻辣"], 5),
|
||||
("年糕 🍚", "🍚", "宁波水磨年糕软糯弹牙炒年糕汤年糕皆宜", "浙江·宁波", "浙江", None, "free", None, ["年糕", "冬季", "传统美食"], 3),
|
||||
("柑橘 🍊", "🍊", "赣南脐橙酸甜浓郁果肉饱满汁水丰盈", "江西·赣州", "江西", None, "free", None, ["柑橘", "冬季", "水果"], 4),
|
||||
("汤圆 🥣", "🥣", "宁波猪油汤圆芝麻馅流心软糯甜蜜暖冬", "浙江·宁波", "浙江", None, "free", None, ["汤圆", "冬季", "传统美食"], 3),
|
||||
("烤红薯 🍠", "🍠", "冬日街头烤红薯焦糖香气四溢暖手暖胃", "北京·胡同", "北京", None, "free", None, ["烤红薯", "冬季", "街头小吃"], 4),
|
||||
("羊肉汤 🍵", "🍵", "单县羊肉汤浓白如奶鲜而不膻冬令滋补", "山东·菏泽·单县", "山东", None, "free", None, ["羊肉汤", "冬季", "滋补"], 5),
|
||||
("糖炒栗子 🌰", "🌰", "迁西板栗糖炒飘香软糯香甜冬日手心暖", "河北·唐山·迁西", "河北", None, "free", None, ["糖炒栗子", "冬季", "零食"], 4),
|
||||
("酸菜白肉 🥬", "🥬", "东北酸菜炖白肉血肠酸爽解腻冬日硬菜", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["酸菜白肉", "冬季", "东北菜"], 3),
|
||||
("腊八粥 🥣", "🥣", "腊八节传统美食八宝熬粥暖身祈福", "陕西·西安", "陕西", None, "free", None, ["腊八粥", "冬季", "传统美食"], 4),
|
||||
("糍粑 🍘", "🍘", "手工打糍粑蘸白糖红糖软糯弹牙年味浓", "贵州·黔东南", "贵州", None, "free", None, ["糍粑", "冬季", "传统美食"], 3),
|
||||
("热干面 🍜", "🍜", "武汉过早首选芝麻酱拌面香浓醇厚", "湖北·武汉", "湖北", None, "free", None, ["热干面", "冬季", "早餐"], 3),
|
||||
("砂锅粥 🍲", "🍲", "潮汕砂锅粥鲜香绵密虾蟹粥暖胃暖心", "广东·汕头", "广东", None, "free", None, ["砂锅粥", "冬季", "潮汕"], 3),
|
||||
("牛肉面 🍜", "🍜", "兰州牛肉面一清二白三红四绿五黄冬日暖身", "甘肃·兰州", "甘肃", None, "free", None, ["牛肉面", "冬季", "面食"], 3),
|
||||
("锅包肉 🥩", "🥩", "东北锅包肉酸甜酥脆外焦里嫩一口上头", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["锅包肉", "冬季", "东北菜"], 3),
|
||||
("涮羊肉 🍲", "🍲", "老北京铜锅涮肉手切鲜羊肉蘸麻酱冬日至味", "北京·牛街", "北京", None, "free", None, ["涮羊肉", "冬季", "北京菜"], 5),
|
||||
("姜母鸭 🦆", "🦆", "厦门姜母鸭老姜米酒炖煮驱寒暖身", "福建·厦门", "福建", None, "free", None, ["姜母鸭", "冬季", "闽南菜"], 4),
|
||||
("螺蛳粉 🍜", "🍜", "柳州螺蛳粉酸辣鲜爽冬日嗦粉酣畅淋漓", "广西·柳州", "广西", None, "free", None, ["螺蛳粉", "冬季", "广西"], 4),
|
||||
("烤全羊 🐑", "🐑", "内蒙古烤全羊外焦里嫩豪迈冬日盛宴", "内蒙古·呼和浩特", "内蒙古", None, "free", None, ["烤全羊", "冬季", "蒙古菜"], 4),
|
||||
("胡辣汤 🥣", "🥣", "河南胡辣汤浓稠辛辣配油条水煎包冬日暖身", "河南·周口", "河南", None, "free", None, ["胡辣汤", "冬季", "早餐"], 4),
|
||||
("过桥米线 🍜", "🍜", "云南过桥米线汤鲜料足冬日暖胃首选", "云南·蒙自", "云南", None, "free", None, ["过桥米线", "冬季", "云南菜"], 3),
|
||||
("冻梨 🍐", "🍐", "东北冻梨黑如墨汁解冻后吸汁如蜜冬日限定", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["冻梨", "冬季", "东北特产"], 4),
|
||||
("羊杂碎 🍵", "🍵", "宁夏羊杂碎汤浓味鲜冬日暖身暖胃", "宁夏·银川", "宁夏", None, "free", None, ["羊杂碎", "冬季", "西北菜"], 3),
|
||||
("小鸡炖蘑菇 🍄", "🍄", "东北小鸡炖榛蘑鲜香浓郁冬日硬菜", "辽宁·沈阳", "辽宁", None, "free", None, ["小鸡炖蘑菇", "冬季", "东北菜"], 3),
|
||||
("驴肉火烧 🫓", "🫓", "保定驴肉火烧外酥里嫩天上龙肉地下驴肉", "河北·保定", "河北", None, "free", None, ["驴肉火烧", "冬季", "河北"], 3),
|
||||
("麻辣烫 🌶️", "🌶️", "天水麻辣烫香辣过瘾冬日街头暖身神器", "甘肃·天水", "甘肃", None, "free", None, ["麻辣烫", "冬季", "街头小吃"], 4),
|
||||
("杀猪菜 🥬", "🥬", "东北杀猪菜血肠酸菜白肉年关传统大菜", "吉林·长春", "吉林", None, "free", None, ["杀猪菜", "冬季", "东北菜"], 3),
|
||||
("臭豆腐 🧈", "🧈", "长沙臭豆腐外焦里嫩闻着臭吃着香", "湖南·长沙·坡子街", "湖南", None, "free", None, ["臭豆腐", "冬季", "街头小吃"], 3),
|
||||
("豆汁 🥛", "🥛", "老北京豆汁配焦圈酸爽独特冬日清晨", "北京·护国寺", "北京", None, "free", None, ["豆汁", "冬季", "老北京"], 2),
|
||||
("饺子 🥟", "🥟", "北方冬至饺子猪肉白菜韭菜三鲜传统", "山东·济南", "山东", None, "free", None, ["饺子", "冬至", "传统美食"], 5),
|
||||
],
|
||||
2: [
|
||||
("春卷 🥟", "🥟", "立春吃春卷薄皮裹鲜蔬咬一口春意盎然", "上海·城隍庙", "上海", None, "free", None, ["春卷", "立春", "传统美食"], 4),
|
||||
("元宵 🥣", "🥣", "元宵节吃元宵芝麻花生馅滚圆甜蜜", "浙江·宁波", "浙江", None, "free", None, ["元宵", "元宵节", "传统美食"], 5),
|
||||
("甘蔗 🌿", "🌿", "广西黑皮甘蔗清甜多汁冬末春初最佳", "广西·玉林", "广西", None, "free", None, ["甘蔗", "冬末", "水果"], 2),
|
||||
("年糕 🍚", "🍚", "春节年糕寓意年年高炒煮炸皆美味", "浙江·宁波", "浙江", None, "free", None, ["年糕", "春节", "传统美食"], 4),
|
||||
("腊肉 🥩", "🥩", "四川腊肉经冬熏制麻辣烟熏风味独特", "四川·成都", "四川", None, "free", None, ["腊肉", "冬末", "川味"], 3),
|
||||
("饺子 🥟", "🥟", "北方过年吃饺子猪肉白菜韭菜三鲜", "山东·济南", "山东", None, "free", None, ["饺子", "春节", "传统美食"], 5),
|
||||
("春笋初探 🎋", "🎋", "岭南早春第一笋鲜嫩脆爽油焖最佳", "广东·韶关", "广东", None, "free", None, ["春笋", "早春", "时蔬"], 3),
|
||||
("柑橘 🍊", "🍊", "春见柑橘甜蜜收官果肉细嫩化渣", "四川·蒲江", "四川", None, "free", None, ["柑橘", "冬末", "水果"], 2),
|
||||
("冰糖葫芦 🍡", "🍡", "寒冬腊月一串红艳艳北方人最深的冬日记忆", "北京·南锣鼓巷", "北京", None, "free", None, ["冰糖葫芦", "冬季", "街头小吃"], 3),
|
||||
("八宝饭 🍚", "🍚", "春节传统甜品糯米八宝甜糯软滑年味十足", "江苏·苏州", "江苏", None, "free", None, ["八宝饭", "春节", "甜品"], 4),
|
||||
("汤圆 🥣", "🥣", "元宵节汤圆黑芝麻馅流心甜蜜团团圆圆", "四川·成都", "四川", None, "free", None, ["汤圆", "元宵节", "传统美食"], 5),
|
||||
("火锅 🍲", "🍲", "成都火锅麻辣鲜香冬日聚会首选", "四川·成都", "四川", None, "free", None, ["火锅", "冬末", "麻辣"], 4),
|
||||
("枇杷 🍊", "🍊", "春日第一鲜金黄饱满酸甜多汁润肺止咳", "云南·蒙自", "云南", 1300, "free", None, ["枇杷", "早春", "水果"], 3),
|
||||
("锅盔 🫓", "🫓", "陕西锅盔外酥里软夹肉夹菜皆宜", "陕西·宝鸡", "陕西", None, "free", None, ["锅盔", "冬末", "面食"], 2),
|
||||
("烤鱼 🐟", "🐟", "万州烤鱼香辣鲜嫩冬夜围炉烤鱼暖身", "重庆·万州", "重庆", None, "free", None, ["烤鱼", "冬末", "川渝菜"], 3),
|
||||
("豆腐脑 🥣", "🥣", "北方咸豆腐脑配卤汁冬晨暖胃", "北京·护国寺", "北京", None, "free", None, ["豆腐脑", "冬末", "早餐"], 2),
|
||||
("炸酱面 🍜", "🍜", "老北京炸酱面黄酱肉丁拌面冬日扎实", "北京·前门", "北京", None, "free", None, ["炸酱面", "冬末", "北京菜"], 2),
|
||||
("红糖糍粑 🍘", "🍘", "四川红糖糍粑外酥内糯红糖流心", "四川·成都", "四川", None, "free", None, ["糍粑", "冬末", "甜品"], 3),
|
||||
("羊肉泡馍 🍲", "🍲", "西安羊肉泡馍浓汤鲜香掰馍泡汤冬日暖身", "陕西·西安", "陕西", None, "free", None, ["羊肉泡馍", "冬末", "西北菜"], 4),
|
||||
("菠萝 🍍", "🍍", "徐闻菠萝初上市春日热带鲜果酸甜可口", "广东·湛江·徐闻", "广东", None, "free", None, ["菠萝", "早春", "热带水果"], 3),
|
||||
("草莓 🍓", "🍓", "丹东99草莓个大香甜冬末春初最佳赏味", "辽宁·丹东", "辽宁", None, "free", None, ["草莓", "冬末", "水果"], 4),
|
||||
("米线 🍜", "🍜", "云南小锅米线鲜香热辣冬春之交暖胃", "云南·昆明", "云南", None, "free", None, ["米线", "冬末", "云南菜"], 2),
|
||||
("馄饨 🥟", "🥟", "上海小馄饨皮薄馅鲜冬晨一碗暖到心", "上海·城隍庙", "上海", None, "free", None, ["馄饨", "冬末", "早餐"], 2),
|
||||
("酸辣粉 🌶️", "🌶️", "重庆酸辣粉酸辣爽滑冬末开胃解馋", "重庆·磁器口", "重庆", None, "free", None, ["酸辣粉", "冬末", "重庆小吃"], 3),
|
||||
("青团 🍡", "🍡", "江南青团初上市艾草清香豆沙甜蜜", "浙江·杭州", "浙江", None, "free", None, ["青团", "早春", "传统美食"], 3),
|
||||
("糖油果子 🍩", "🍩", "成都糖油果子外酥内糯红糖裹身甜蜜暖冬", "四川·成都", "四川", None, "free", None, ["糖油果子", "冬末", "成都小吃"], 2),
|
||||
("卤煮 🍲", "🍲", "北京卤煮火烧肠肺豆腐浸浓汤冬日硬核早餐", "北京·南横街", "北京", None, "free", None, ["卤煮", "冬末", "北京小吃"], 2),
|
||||
("烤红薯 🍠", "🍠", "冬末烤红薯焦糖香浓暖手暖胃", "河南·郑州", "河南", None, "free", None, ["烤红薯", "冬末", "街头小吃"], 3),
|
||||
],
|
||||
3: [
|
||||
("春笋 🎋", "🎋", "惊蛰春笋破土出鲜嫩脆甜腌笃鲜上品", "浙江·临安", "浙江", None, "free", None, ["春笋", "惊蛰", "时蔬"], 5),
|
||||
("青团 🍡", "🍡", "清明青团艾草香豆沙蛋黄肉松馅江南春味", "上海·杏花楼", "上海", None, "free", None, ["青团", "清明", "传统美食"], 5),
|
||||
("荠菜 🥬", "🥬", "三月三荠菜赛灵丹荠菜馄饨春卷鲜掉眉毛", "江苏·南京", "江苏", None, "free", None, ["荠菜", "春季", "时蔬"], 4),
|
||||
("香椿 🌿", "🌿", "香椿芽炒鸡蛋春日限定美味香气浓郁", "山东·沂蒙", "山东", None, "free", None, ["香椿", "春季", "时蔬"], 5),
|
||||
("菠萝 🍍", "🍍", "徐闻菠萝金黄香甜春日热带鲜果", "广东·湛江·徐闻", "广东", None, "free", None, ["菠萝", "春季", "热带水果"], 3),
|
||||
("明前茶 🍵", "🍵", "明前龙井一芽一叶嫩绿清香春日雅饮", "浙江·杭州·西湖", "浙江", None, "free", None, ["明前茶", "龙井", "春季"], 5),
|
||||
("枇杷 🍊", "🍊", "云南蒙自枇杷金黄饱满春日第一鲜果", "云南·蒙自", "云南", 1300, "free", None, ["枇杷", "春季", "水果"], 3),
|
||||
("螺蛳 🐚", "🐚", "清明螺蛳赛肥鹅紫苏爆炒鲜嫩入味", "江苏·苏州", "江苏", None, "free", None, ["螺蛳", "清明", "河鲜"], 4),
|
||||
("豌豆尖 🌱", "🌱", "春日豌豆尖鲜嫩翠绿清炒煮汤皆宜", "四川·成都", "四川", None, "free", None, ["豌豆尖", "春季", "时蔬"], 3),
|
||||
("草莓 🍓", "🍓", "春季草莓大量上市红润饱满香甜多汁", "辽宁·丹东", "辽宁", None, "free", None, ["草莓", "春季", "水果"], 4),
|
||||
("腌笃鲜 🍲", "🍲", "春笋咸肉鲜蹄煲汤江南春日第一鲜汤", "江苏·苏州", "江苏", None, "free", None, ["腌笃鲜", "春季", "江南菜"], 5),
|
||||
("春饼 🫓", "🫓", "立春吃春饼卷菜薄饼裹合菜咬春迎新", "北京·前门", "北京", None, "free", None, ["春饼", "立春", "传统美食"], 3),
|
||||
("马兰头 🥬", "🥬", "马兰头拌香干春日野菜清香爽口", "浙江·杭州", "浙江", None, "free", None, ["马兰头", "春季", "野菜"], 3),
|
||||
("河豚 🐡", "🐡", "扬中河豚鲜嫩肥美春日至味", "江苏·扬中", "江苏", None, "paid", "时价", ["河豚", "春季", "河鲜"], 4),
|
||||
("蚕豆 🫘", "🫘", "春蚕豆嫩绿清甜葱油蚕豆鲜嫩可口", "上海·崇明", "上海", None, "free", None, ["蚕豆", "春季", "时蔬"], 3),
|
||||
("碧螺春 🍵", "🍵", "洞庭碧螺春花果香春日品茗雅事", "江苏·苏州·洞庭", "江苏", None, "free", None, ["碧螺春", "春季", "茶"], 4),
|
||||
("槐花 🌸", "🌸", "槐花麦饭清香甜糯春日限定乡野美味", "陕西·渭南", "陕西", None, "free", None, ["槐花", "春季", "时蔬"], 3),
|
||||
("樱桃 🍒", "🍒", "大棚樱桃初上市红润饱满酸甜可口", "山东·烟台", "山东", None, "free", None, ["樱桃", "春季", "水果"], 3),
|
||||
("油焖笋 🎋", "🎋", "临安春笋油焖浓油赤酱鲜嫩入味", "浙江·临安", "浙江", None, "free", None, ["油焖笋", "春季", "时蔬"], 4),
|
||||
("蒜薹 🧄", "🧄", "春日蒜薹鲜嫩脆甜炒腊肉绝配", "山东·金乡", "山东", None, "free", None, ["蒜薹", "春季", "时蔬"], 3),
|
||||
("春茶 🍵", "🍵", "安吉白茶春日开采鲜爽甘醇春味入茶", "浙江·安吉", "浙江", None, "free", None, ["白茶", "春季", "茶"], 4),
|
||||
("韭菜 🥬", "🥬", "春韭鲜嫩赛过肉韭菜盒子炒蛋春日限定", "河南·驻马店", "河南", None, "free", None, ["韭菜", "春季", "时蔬"], 3),
|
||||
("蕨菜 🌿", "🌿", "春日蕨菜鲜嫩凉拌蕨菜清脆爽口", "贵州·黔南", "贵州", None, "free", None, ["蕨菜", "春季", "野菜"], 3),
|
||||
("竹筒饭 🍚", "🍚", "云南竹筒饭竹香四溢糯米腊肉春日野趣", "云南·西双版纳", "云南", None, "free", None, ["竹筒饭", "春季", "云南"], 2),
|
||||
("荠菜馄饨 🥟", "🥟", "荠菜猪肉馄饨春日鲜香暖胃", "上海·弄堂", "上海", None, "free", None, ["荠菜馄饨", "春季", "江南"], 3),
|
||||
("鲜花饼 🌸", "🌸", "云南玫瑰鲜花饼酥皮玫瑰馅花香四溢", "云南·昆明", "云南", None, "free", None, ["鲜花饼", "春季", "云南特产"], 3),
|
||||
("龙井虾仁 🦐", "🦐", "龙井茶配鲜虾仁茶香鲜嫩春日名菜", "浙江·杭州", "浙江", None, "free", None, ["龙井虾仁", "春季", "杭帮菜"], 4),
|
||||
("乌米饭 🍚", "🍚", "立夏前乌米饭乌叶染米紫黑软糯", "浙江·杭州", "浙江", None, "free", None, ["乌米饭", "春季", "传统美食"], 3),
|
||||
("榆钱 🌿", "🌿", "榆钱窝窝头清甜软糯春日乡野限定", "河北·保定", "河北", None, "free", None, ["榆钱", "春季", "野菜"], 2),
|
||||
("枸杞芽 🌿", "🌿", "宁夏枸杞芽清肝明目凉拌炒蛋皆宜", "宁夏·中宁", "宁夏", None, "free", None, ["枸杞芽", "春季", "时蔬"], 2),
|
||||
("菠萝饭 🍍", "🍍", "菠萝蒸饭果香四溢酸甜软糯热带风味", "云南·西双版纳", "云南", None, "free", None, ["菠萝饭", "春季", "云南"], 2),
|
||||
],
|
||||
4: [
|
||||
("樱桃 🍒", "🍒", "初夏红宝石烟台大连饱满圆润", "山东·烟台", "山东", None, "free", None, ["樱桃", "春季", "水果"], 4),
|
||||
("枇杷 🍊", "🍊", "果中之皇金黄饱满酸甜多汁润肺止咳", "浙江·黄岩", "浙江", None, "free", None, ["枇杷", "春季", "水果"], 3),
|
||||
("明前茶 🍵", "🍵", "清明前后龙井茶最佳一芽一叶嫩绿清香", "浙江·杭州·西湖", "浙江", None, "free", None, ["明前茶", "春季", "茶"], 5),
|
||||
("桑葚 🫐", "🫐", "紫黑桑葚甜润多汁春日采摘乐趣", "新疆·和田", "新疆", None, "free", None, ["桑葚", "春季", "水果"], 3),
|
||||
("春笋 🎋", "🎋", "天目雷笋壳薄肉肥春笋上品赏味期极短", "浙江·安吉", "浙江", None, "free", None, ["春笋", "春季", "时蔬"], 4),
|
||||
("芒果 🥭", "🥭", "三亚贵妃芒初上市果肉细腻香甜浓郁", "海南·三亚", "海南", None, "free", None, ["芒果", "春季", "热带水果"], 3),
|
||||
("蓝莓 🫐", "🫐", "云南蓝莓初上市花青素之王酸甜可口", "云南·曲靖", "云南", None, "free", None, ["蓝莓", "春季", "水果"], 3),
|
||||
("青梅 🍏", "🍏", "青梅煮酒论英雄泡青梅酒正当时", "浙江·长兴", "浙江", None, "free", None, ["青梅", "春季", "水果"], 4),
|
||||
("香椿 🌿", "🌿", "谷雨前后香椿最嫩香椿炒蛋春日绝配", "山东·沂蒙", "山东", None, "free", None, ["香椿", "谷雨", "时蔬"], 4),
|
||||
("乌米饭 🍚", "🍚", "立夏乌米饭乌叶染米紫黑软糯清香", "浙江·杭州", "浙江", None, "free", None, ["乌米饭", "立夏", "传统美食"], 3),
|
||||
("蚕豆 🫘", "🫘", "春蚕豆嫩绿清甜葱油蚕豆鲜嫩可口", "上海·崇明", "上海", None, "free", None, ["蚕豆", "春季", "时蔬"], 3),
|
||||
("谷雨茶 🍵", "🍵", "谷雨茶二春茶鲜爽回甘性价比之王", "福建·武夷山", "福建", None, "free", None, ["谷雨茶", "春季", "茶"], 3),
|
||||
("芦笋 🌱", "🌱", "崇明岛芦笋鲜嫩翠绿白灼清炒皆宜", "上海·崇明", "上海", None, "free", None, ["芦笋", "春季", "时蔬"], 2),
|
||||
("草莓 🍓", "🍓", "春季草莓尾声红颜章姬最后一波", "辽宁·丹东", "辽宁", None, "free", None, ["草莓", "春季", "水果"], 2),
|
||||
("椰子 🥥", "🥥", "海南椰子水清甜解渴椰肉炖鸡滋补", "海南·文昌", "海南", None, "free", None, ["椰子", "春季", "热带水果"], 2),
|
||||
("白茶 🍵", "🍵", "福鼎白茶春日开采白毫银针鲜爽回甘", "福建·福鼎", "福建", None, "free", None, ["白茶", "春季", "茶"], 3),
|
||||
("豌豆黄 🍨", "🍨", "北京豌豆黄细腻甜糯春日宫廷小点", "北京·仿膳", "北京", None, "free", None, ["豌豆黄", "春季", "北京小吃"], 2),
|
||||
("莼菜 🥬", "🥬", "西湖莼菜汤滑嫩清爽春日江南名菜", "浙江·杭州·西湖", "浙江", None, "free", None, ["莼菜", "春季", "江南菜"], 3),
|
||||
("鲜花饼 🌸", "🌸", "云南玫瑰鲜花饼酥皮玫瑰馅花香四溢", "云南·昆明", "云南", None, "free", None, ["鲜花饼", "春季", "云南特产"], 3),
|
||||
("龙井虾仁 🦐", "🦐", "龙井茶配鲜虾仁茶香鲜嫩春日名菜", "浙江·杭州", "浙江", None, "free", None, ["龙井虾仁", "春季", "杭帮菜"], 3),
|
||||
("菠萝蜜 🍈", "🍈", "海南菠萝蜜果肉金黄甜蜜浓郁热带之王", "海南·万宁", "海南", None, "free", None, ["菠萝蜜", "春季", "热带水果"], 2),
|
||||
("荔枝蜜 🍯", "🍯", "从化荔枝蜜清甜芳香春日天然甜品", "广东·从化", "广东", None, "free", None, ["荔枝蜜", "春季", "蜂蜜"], 2),
|
||||
("苦笋 🎋", "🎋", "四川苦笋苦中回甘凉拌炒肉皆宜", "四川·宜宾", "四川", None, "free", None, ["苦笋", "春季", "时蔬"], 2),
|
||||
("艾草青团 🍡", "🍡", "清明青团尾声蛋黄肉松马兰头馅", "江苏·苏州", "江苏", None, "free", None, ["青团", "清明", "传统美食"], 3),
|
||||
("竹笋炖鸡 🍗", "🍗", "春笋炖土鸡鲜香浓郁春日滋补", "浙江·临安", "浙江", None, "free", None, ["竹笋炖鸡", "春季", "滋补"], 3),
|
||||
("樱桃肉 🍖", "🍖", "苏菜樱桃肉色泽红亮酸甜软糯春日名菜", "江苏·苏州", "江苏", None, "free", None, ["樱桃肉", "春季", "苏菜"], 2),
|
||||
("野菜宴 🥬", "🥬", "春日野菜大集合荠菜马兰头蒲公英", "云南·昆明", "云南", None, "free", None, ["野菜", "春季", "时蔬"], 3),
|
||||
("春卷 🥟", "🥟", "越南春卷薄皮鲜蔬清爽春日轻食", "广西·东兴", "广西", None, "free", None, ["春卷", "春季", "轻食"], 2),
|
||||
("枇杷膏 🍯", "🍯", "自制枇杷膏润肺止咳春日养生佳品", "浙江·塘栖", "浙江", None, "free", None, ["枇杷膏", "春季", "养生"], 2),
|
||||
("菠萝咕噜肉 🍖", "🍖", "菠萝季做咕噜肉酸甜酥脆春日开胃", "广东·广州", "广东", None, "free", None, ["咕噜肉", "春季", "粤菜"], 2),
|
||||
],
|
||||
5: [
|
||||
("小龙虾 🦞", "🦞", "夏季水产之王5月后壳薄肉厚虾黄饱满", "湖北·潜江", "湖北", None, "free", None, ["小龙虾", "夏季", "水产"], 5),
|
||||
("杨梅 🫐", "🫐", "仙居杨梅东魁荸荠种酸甜多汁初夏限定", "浙江·仙居", "浙江", None, "free", None, ["杨梅", "初夏", "水果"], 5),
|
||||
("芒果 🥭", "🥭", "三亚贵妃芒初上市果肉细腻香甜浓郁", "海南·三亚", "海南", None, "free", None, ["芒果", "初夏", "热带水果"], 3),
|
||||
("蓝莓 🫐", "🫐", "云南蓝莓大量上市花青素之王酸甜可口", "云南·曲靖", "云南", None, "free", None, ["蓝莓", "初夏", "水果"], 3),
|
||||
("枇杷 🍊", "🍊", "塘栖枇杷尾声果肉细嫩汁多味甜", "浙江·杭州·塘栖", "浙江", None, "free", None, ["枇杷", "初夏", "水果"], 2),
|
||||
("桑葚 🫐", "🫐", "紫黑桑葚甜润多汁初夏采摘乐趣", "新疆·和田", "新疆", None, "free", None, ["桑葚", "初夏", "水果"], 3),
|
||||
("樱桃 🍒", "🍒", "露天樱桃大量上市果大色红甜度高", "山东·烟台", "山东", None, "free", None, ["樱桃", "初夏", "水果"], 4),
|
||||
("青梅酒 🍷", "🍷", "青梅泡酒正当时冰糖青梅酒酸甜醇香", "浙江·长兴", "浙江", None, "free", None, ["青梅酒", "初夏", "果酒"], 3),
|
||||
("荔枝 🍒", "🍒", "妃子笑初上市壳薄肉厚清甜多汁", "广东·增城", "广东", None, "free", None, ["荔枝", "初夏", "水果"], 4),
|
||||
("莲藕 🪷", "🪷", "初夏鲜藕脆嫩清甜凉拌藕片消暑开胃", "湖北·洪湖", "湖北", None, "free", None, ["莲藕", "初夏", "时蔬"], 2),
|
||||
("菠萝 🍍", "🍍", "徐闻菠萝旺季金黄香甜热带风味", "广东·湛江·徐闻", "广东", None, "free", None, ["菠萝", "初夏", "热带水果"], 3),
|
||||
("杨梅酒 🍷", "🍷", "杨梅泡酒正当时冰糖杨梅酒酸甜醇香", "浙江·仙居", "浙江", None, "free", None, ["杨梅酒", "初夏", "果酒"], 3),
|
||||
("凉皮 🍜", "🍜", "陕西凉皮筋道爽滑夏日消暑开胃", "陕西·西安", "陕西", None, "free", None, ["凉皮", "初夏", "陕西小吃"], 3),
|
||||
("冰粉 🍨", "🍨", "四川冰粉清凉甜蜜红糖花生碎夏日解暑", "四川·成都", "四川", None, "free", None, ["冰粉", "初夏", "甜品"], 4),
|
||||
("椰子鸡 🥥", "🥥", "海南椰子鸡清甜滋补初夏养生首选", "海南·文昌", "海南", None, "free", None, ["椰子鸡", "初夏", "海南菜"], 3),
|
||||
("凉面 🍜", "🍜", "鸡丝凉面麻酱凉面初夏消暑快手餐", "四川·成都", "四川", None, "free", None, ["凉面", "初夏", "面食"], 3),
|
||||
("绿豆汤 🥣", "🥣", "冰镇绿豆汤清凉解暑夏日必备", "江苏·苏州", "江苏", None, "free", None, ["绿豆汤", "初夏", "消暑"], 3),
|
||||
("酸梅汤 🥤", "🥤", "老北京酸梅汤酸甜开胃乌梅桂花熬制", "北京·信远斋", "北京", None, "free", None, ["酸梅汤", "初夏", "消暑"], 3),
|
||||
("小龙虾(蒜蓉)🦞", "🦞", "蒜蓉小龙虾鲜香浓郁初夏夜宵首选", "江苏·盱眙", "江苏", None, "free", None, ["小龙虾", "蒜蓉", "初夏"], 4),
|
||||
("西瓜 🍉", "🍉", "初夏西瓜初上市冰镇西瓜消暑解渴", "海南·三亚", "海南", None, "free", None, ["西瓜", "初夏", "水果"], 3),
|
||||
("凉糕 🍨", "🍨", "四川凉糕红糖水浇淋软糯清凉", "四川·宜宾", "四川", None, "free", None, ["凉糕", "初夏", "甜品"], 3),
|
||||
("龟苓膏 🍨", "🍨", "广西龟苓膏清热解毒初夏养生甜品", "广西·梧州", "广西", None, "free", None, ["龟苓膏", "初夏", "养生"], 2),
|
||||
("烧仙草 🍨", "🍨", "福建烧仙草清凉甜蜜初夏消暑", "福建·泉州", "福建", None, "free", None, ["烧仙草", "初夏", "甜品"], 2),
|
||||
("杨枝甘露 🥭", "🥭", "芒果西柚西米露港式甜品初夏清爽", "广东·广州", "广东", None, "free", None, ["杨枝甘露", "初夏", "港式甜品"], 3),
|
||||
("啤酒 🍺", "🍺", "青岛啤酒初夏畅饮海鲜烧烤绝配", "山东·青岛", "山东", None, "free", None, ["啤酒", "初夏", "饮品"], 3),
|
||||
("小龙虾(十三香)🦞", "🦞", "盱眙十三香小龙虾香料丰富层次分明", "江苏·盱眙", "江苏", None, "free", None, ["小龙虾", "十三香", "初夏"], 4),
|
||||
("小龙虾(油焖)🦞", "🦞", "潜江油焖大虾浓油赤酱鲜香入味", "湖北·潜江", "湖北", None, "free", None, ["小龙虾", "油焖", "初夏"], 4),
|
||||
("双皮奶 🍨", "🍨", "顺德双皮奶香滑细腻初夏甜品经典", "广东·顺德", "广东", None, "free", None, ["双皮奶", "初夏", "甜品"], 2),
|
||||
("毛豆 🫛", "🫛", "盐水毛豆配啤酒初夏夜宵绝配", "安徽·合肥", "安徽", None, "free", None, ["毛豆", "初夏", "下酒菜"], 3),
|
||||
("凉拌木耳 🍄", "🍄", "凉拌黑木耳清爽开胃初夏小菜", "四川·成都", "四川", None, "free", None, ["凉拌木耳", "初夏", "凉菜"], 2),
|
||||
("杨梅干 🫐", "🫐", "自制杨梅干酸甜开胃初夏零食", "浙江·仙居", "浙江", None, "free", None, ["杨梅干", "初夏", "零食"], 2),
|
||||
],
|
||||
6: [
|
||||
("粽子 🫔", "🫔", "端午粽子肉粽甜粽碱水粽粽叶飘香", "浙江·嘉兴", "浙江", None, "free", None, ["粽子", "端午", "传统美食"], 5),
|
||||
("西瓜 🍉", "🍉", "夏日西瓜大量上市冰镇解暑甜蜜多汁", "宁夏·中卫", "宁夏", None, "free", None, ["西瓜", "夏季", "水果"], 5),
|
||||
("荔枝 🍒", "🍒", "桂味糯米糍大量上市果肉晶莹清甜", "广东·从化", "广东", None, "free", None, ["荔枝", "夏季", "水果"], 5),
|
||||
("杨梅 🫐", "🫐", "杨梅尾声东魁大果最后一批酸甜浓郁", "浙江·仙居", "浙江", None, "free", None, ["杨梅", "夏季", "水果"], 3),
|
||||
("小龙虾 🦞", "🦞", "六月小龙虾旺季蒜蓉十三香油焖皆宜", "湖北·潜江", "湖北", None, "free", None, ["小龙虾", "夏季", "水产"], 5),
|
||||
("芒果 🥭", "🥭", "广西百色芒果上市台农贵妃金煌轮番登场", "广西·百色", "广西", None, "free", None, ["芒果", "夏季", "热带水果"], 4),
|
||||
("黄皮 🍋", "🍋", "岭南黄皮果酸甜开胃消食解暑夏日限定", "广东·云浮", "广东", None, "free", None, ["黄皮", "夏季", "水果"], 3),
|
||||
("莲蓬 🪷", "🪷", "新鲜莲蓬清甜脆嫩剥莲子消暑养心", "浙江·建德", "浙江", None, "free", None, ["莲蓬", "夏季", "时蔬"], 3),
|
||||
("凉面 🍜", "🍜", "鸡丝凉面麻酱凉面夏日消暑必备", "四川·成都", "四川", None, "free", None, ["凉面", "夏季", "面食"], 3),
|
||||
("凉皮 🍜", "🍜", "陕西凉皮筋道爽滑配肉夹馍夏日标配", "陕西·西安", "陕西", None, "free", None, ["凉皮", "夏季", "陕西小吃"], 3),
|
||||
("冰粉 🍨", "🍨", "四川冰粉红糖醪糟冰爽甜蜜消暑神器", "四川·成都", "四川", None, "free", None, ["冰粉", "夏季", "甜品"], 5),
|
||||
("绿豆汤 🥣", "🥣", "冰镇绿豆汤百合绿豆汤清凉解暑", "江苏·苏州", "江苏", None, "free", None, ["绿豆汤", "夏季", "消暑"], 4),
|
||||
("酸梅汤 🥤", "🥤", "老北京酸梅汤乌梅桂花熬制酸甜开胃", "北京·信远斋", "北京", None, "free", None, ["酸梅汤", "夏季", "消暑"], 3),
|
||||
("啤酒 🍺", "🍺", "夏日冰啤酒配烧烤小龙虾夜宵灵魂", "山东·青岛", "山东", None, "free", None, ["啤酒", "夏季", "饮品"], 4),
|
||||
("椰子 🥥", "🥥", "海南椰子水清甜解暑椰肉炖鸡滋补", "海南·文昌", "海南", None, "free", None, ["椰子", "夏季", "热带水果"], 3),
|
||||
("火龙果 🐉", "🐉", "红心火龙果甜度高花青素丰富夏日鲜果", "广西·南宁", "广西", None, "free", None, ["火龙果", "夏季", "水果"], 3),
|
||||
("百香果 🍋", "🍋", "广西百香果酸甜浓郁泡蜂蜜水消暑", "广西·百色", "广西", None, "free", None, ["百香果", "夏季", "水果"], 3),
|
||||
("哈密瓜 🍈", "🍈", "新疆哈密瓜甜蜜多汁瓜中之王消暑佳品", "新疆·哈密", "新疆", None, "free", None, ["哈密瓜", "夏季", "水果"], 4),
|
||||
("龟苓膏 🍨", "🍨", "广西龟苓膏清热解毒炼奶浇淋夏日甜品", "广西·梧州", "广西", None, "free", None, ["龟苓膏", "夏季", "养生"], 3),
|
||||
("烧仙草 🍨", "🍨", "福建烧仙草花生红豆奶茶搭配消暑", "福建·泉州", "福建", None, "free", None, ["烧仙草", "夏季", "甜品"], 3),
|
||||
("杨枝甘露 🥭", "🥭", "芒果西柚西米露港式甜品夏日经典", "广东·广州", "广东", None, "free", None, ["杨枝甘露", "夏季", "港式甜品"], 3),
|
||||
("双皮奶 🍨", "🍨", "顺德双皮奶香滑细腻红豆芒果搭配", "广东·顺德", "广东", None, "free", None, ["双皮奶", "夏季", "甜品"], 2),
|
||||
("凉糕 🍨", "🍨", "四川凉糕红糖水浇淋软糯冰凉", "四川·宜宾", "四川", None, "free", None, ["凉糕", "夏季", "甜品"], 3),
|
||||
("毛豆 🫛", "🫛", "盐水毛豆配冰啤酒夏日夜宵标配", "安徽·合肥", "安徽", None, "free", None, ["毛豆", "夏季", "下酒菜"], 3),
|
||||
("凉拌菜 🥗", "🥗", "凉拌黄瓜木耳腐竹清爽开胃夏日小菜", "四川·成都", "四川", None, "free", None, ["凉拌菜", "夏季", "凉菜"], 2),
|
||||
("啤酒鸭 🦆", "🦆", "啤酒鸭鲜香入味夏日啤酒入菜美味", "湖南·长沙", "湖南", None, "free", None, ["啤酒鸭", "夏季", "湘菜"], 3),
|
||||
("冬瓜汤 🥣", "🥣", "冬瓜排骨汤清热消暑夏日家常汤品", "广东·广州", "广东", None, "free", None, ["冬瓜汤", "夏季", "消暑"], 2),
|
||||
("丝瓜汤 🥣", "🥣", "丝瓜蛋汤清淡鲜甜夏日快手汤", "浙江·杭州", "浙江", None, "free", None, ["丝瓜汤", "夏季", "家常菜"], 2),
|
||||
("苦瓜 🥒", "🥒", "夏日吃苦瓜清热降火凉拌炒蛋皆宜", "广东·广州", "广东", None, "free", None, ["苦瓜", "夏季", "时蔬"], 2),
|
||||
("荷叶饭 🍚", "🍚", "荷叶糯米饭荷香四溢消暑开胃", "广东·东莞", "广东", None, "free", None, ["荷叶饭", "夏季", "粤菜"], 2),
|
||||
("龙眼 🍇", "🍇", "广东龙眼清甜多汁夏日滋补佳果", "广东·高州", "广东", None, "free", None, ["龙眼", "夏季", "水果"], 3),
|
||||
],
|
||||
7: [
|
||||
("西瓜 🍉", "🍉", "三伏天西瓜冰镇最解暑甜蜜多汁夏日之王", "宁夏·中卫", "宁夏", None, "free", None, ["西瓜", "盛夏", "水果"], 5),
|
||||
("水蜜桃 🍑", "🍑", "无锡水蜜桃汁多味甜入口即化夏日仙果", "江苏·无锡·阳山", "江苏", None, "free", None, ["水蜜桃", "盛夏", "水果"], 5),
|
||||
("葡萄 🍇", "🍇", "吐鲁番葡萄晶莹剔透甜度爆表夏日鲜果", "新疆·吐鲁番", "新疆", None, "free", None, ["葡萄", "盛夏", "水果"], 4),
|
||||
("芒果 🥭", "🥭", "攀枝花芒果凯特芒个大多汁甜蜜浓郁", "四川·攀枝花", "四川", None, "free", None, ["芒果", "盛夏", "热带水果"], 3),
|
||||
("火龙果 🐉", "🐉", "红心火龙果甜度高花青素丰富夏日鲜果", "广西·南宁", "广西", None, "free", None, ["火龙果", "盛夏", "水果"], 3),
|
||||
("百香果 🍋", "🍋", "百香果蜂蜜水酸甜浓郁维C满满消暑饮品", "广西·百色", "广西", None, "free", None, ["百香果", "盛夏", "水果"], 3),
|
||||
("冰淇淋 🍦", "🍦", "夏日冰淇淋香草巧克力抹茶轮番上阵", "上海·光明", "上海", None, "free", None, ["冰淇淋", "盛夏", "甜品"], 4),
|
||||
("刨冰 🧊", "🧊", "台式刨冰红豆炼乳花生碎夏日冰爽", "广东·广州", "广东", None, "free", None, ["刨冰", "盛夏", "甜品"], 3),
|
||||
("冷面 🍜", "🍜", "延吉冷面酸甜冰爽配辣白菜夏日解暑", "吉林·延吉", "吉林", None, "free", None, ["冷面", "盛夏", "朝鲜族"], 4),
|
||||
("凉皮 🍜", "🍜", "陕西凉皮筋道爽滑夏日消暑经典", "陕西·西安", "陕西", None, "free", None, ["凉皮", "盛夏", "陕西小吃"], 3),
|
||||
("冰粉 🍨", "🍨", "四川冰粉红糖醪糟冰爽甜蜜三伏天续命", "四川·成都", "四川", None, "free", None, ["冰粉", "盛夏", "甜品"], 5),
|
||||
("绿豆汤 🥣", "🥣", "冰镇绿豆汤薄荷绿豆汤三伏天消暑必备", "江苏·苏州", "江苏", None, "free", None, ["绿豆汤", "盛夏", "消暑"], 5),
|
||||
("酸梅汤 🥤", "🥤", "老北京酸梅汤冰镇更佳酸甜开胃消暑", "北京·信远斋", "北京", None, "free", None, ["酸梅汤", "盛夏", "消暑"], 4),
|
||||
("啤酒 🍺", "🍺", "夏日冰啤酒烧烤小龙虾夜宵三件套", "山东·青岛", "山东", None, "free", None, ["啤酒", "盛夏", "饮品"], 4),
|
||||
("椰子 🥥", "🥥", "海南椰子水天然电解质水消暑解渴", "海南·文昌", "海南", None, "free", None, ["椰子", "盛夏", "热带水果"], 3),
|
||||
("哈密瓜 🍈", "🍈", "新疆哈密瓜甜蜜多汁瓜中之王", "新疆·哈密", "新疆", None, "free", None, ["哈密瓜", "盛夏", "水果"], 4),
|
||||
("黄皮 🍋", "🍋", "岭南黄皮果酸甜消食解暑夏日限定鲜果", "广东·云浮", "广东", None, "free", None, ["黄皮", "盛夏", "水果"], 3),
|
||||
("龙眼 🍇", "🍇", "福建龙眼肉厚核小清甜滋补夏日佳果", "福建·莆田", "福建", None, "free", None, ["龙眼", "盛夏", "水果"], 3),
|
||||
("莲蓬 🪷", "🪷", "新鲜莲蓬清甜脆嫩夏日赏荷品莲", "浙江·建德", "浙江", None, "free", None, ["莲蓬", "盛夏", "时蔬"], 3),
|
||||
("龟苓膏 🍨", "🍨", "龟苓膏清热解毒炼奶浇淋消暑甜品", "广西·梧州", "广西", None, "free", None, ["龟苓膏", "盛夏", "养生"], 3),
|
||||
("烧仙草 🍨", "🍨", "烧仙草花生红豆奶茶搭配冰爽甜蜜", "福建·泉州", "福建", None, "free", None, ["烧仙草", "盛夏", "甜品"], 3),
|
||||
("杨枝甘露 🥭", "🥭", "芒果西柚西米露港式甜品消暑经典", "广东·广州", "广东", None, "free", None, ["杨枝甘露", "盛夏", "港式甜品"], 3),
|
||||
("双皮奶 🍨", "🍨", "顺德双皮奶香滑细腻冰镇更佳", "广东·顺德", "广东", None, "free", None, ["双皮奶", "盛夏", "甜品"], 2),
|
||||
("凉糕 🍨", "🍨", "四川凉糕红糖水浇淋软糯冰凉解暑", "四川·宜宾", "四川", None, "free", None, ["凉糕", "盛夏", "甜品"], 3),
|
||||
("毛豆 🫛", "🫛", "盐水毛豆配冰啤酒三伏天夜宵标配", "安徽·合肥", "安徽", None, "free", None, ["毛豆", "盛夏", "下酒菜"], 3),
|
||||
("凉拌菜 🥗", "🥗", "凉拌黄瓜木耳腐竹清爽开胃消暑小菜", "四川·成都", "四川", None, "free", None, ["凉拌菜", "盛夏", "凉菜"], 2),
|
||||
("啤酒鸭 🦆", "🦆", "啤酒鸭鲜香入味夏日啤酒入菜美味", "湖南·长沙", "湖南", None, "free", None, ["啤酒鸭", "盛夏", "湘菜"], 3),
|
||||
("冬瓜汤 🥣", "🥣", "冬瓜薏米排骨汤清热消暑三伏天必备", "广东·广州", "广东", None, "free", None, ["冬瓜汤", "盛夏", "消暑"], 3),
|
||||
("苦瓜 🥒", "🥒", "三伏天吃苦瓜清热降火凉拌炒蛋皆宜", "广东·广州", "广东", None, "free", None, ["苦瓜", "盛夏", "时蔬"], 3),
|
||||
("荷叶粥 🥣", "🥣", "荷叶粥清香消暑夏日养生粥品", "浙江·杭州", "浙江", None, "free", None, ["荷叶粥", "盛夏", "养生"], 2),
|
||||
("小龙虾 🦞", "🦞", "三伏天小龙虾冰镇啤酒绝配夜宵之王", "湖北·潜江", "湖北", None, "free", None, ["小龙虾", "盛夏", "水产"], 4),
|
||||
],
|
||||
8: [
|
||||
("桂花糕 🌼", "🌼", "初秋桂花糕香甜软糯桂花飘香", "江苏·苏州", "江苏", None, "free", None, ["桂花糕", "初秋", "甜品"], 3),
|
||||
("月饼 🥮", "🥮", "中秋月饼广式苏式滇式五仁莲蓉蛋黄", "广东·广州", "广东", None, "free", None, ["月饼", "中秋", "传统美食"], 5),
|
||||
("葡萄 🍇", "🍇", "秋季葡萄大量上市巨峰玫瑰香甜蜜多汁", "新疆·吐鲁番", "新疆", None, "free", None, ["葡萄", "夏末", "水果"], 4),
|
||||
("水蜜桃 🍑", "🍑", "水蜜桃尾声最后一批汁多味甜", "江苏·无锡·阳山", "江苏", None, "free", None, ["水蜜桃", "夏末", "水果"], 2),
|
||||
("龙眼 🍇", "🍇", "龙眼大量上市肉厚核小清甜滋补", "福建·莆田", "福建", None, "free", None, ["龙眼", "夏末", "水果"], 3),
|
||||
("黄皮 🍋", "🍋", "黄皮果尾声酸甜消食岭南夏日限定", "广东·云浮", "广东", None, "free", None, ["黄皮", "夏末", "水果"], 2),
|
||||
("哈密瓜 🍈", "🍈", "新疆哈密瓜甜蜜多汁夏末消暑佳品", "新疆·哈密", "新疆", None, "free", None, ["哈密瓜", "夏末", "水果"], 3),
|
||||
("火龙果 🐉", "🐉", "火龙果旺季红心白心甜度爆表", "广西·南宁", "广西", None, "free", None, ["火龙果", "夏末", "水果"], 3),
|
||||
("百香果 🍋", "🍋", "百香果蜂蜜水酸甜浓郁维C满满", "广西·百色", "广西", None, "free", None, ["百香果", "夏末", "水果"], 3),
|
||||
("西瓜 🍉", "🍉", "西瓜尾声最后一批冰镇消暑", "宁夏·中卫", "宁夏", None, "free", None, ["西瓜", "夏末", "水果"], 2),
|
||||
("冰淇淋 🍦", "🍦", "夏末冰淇淋最后疯狂香草巧克力轮番", "上海·光明", "上海", None, "free", None, ["冰淇淋", "夏末", "甜品"], 2),
|
||||
("凉面 🍜", "🍜", "夏末凉面鸡丝麻酱清爽收尾", "四川·成都", "四川", None, "free", None, ["凉面", "夏末", "面食"], 2),
|
||||
("冰粉 🍨", "🍨", "夏末冰粉红糖醪糟最后消暑", "四川·成都", "四川", None, "free", None, ["冰粉", "夏末", "甜品"], 2),
|
||||
("绿豆汤 🥣", "🥣", "绿豆汤尾声清凉消暑告别夏日", "江苏·苏州", "江苏", None, "free", None, ["绿豆汤", "夏末", "消暑"], 2),
|
||||
("酸梅汤 🥤", "🥤", "酸梅汤收尾酸甜开胃告别盛夏", "北京·信远斋", "北京", None, "free", None, ["酸梅汤", "夏末", "消暑"], 2),
|
||||
("啤酒 🍺", "🍺", "夏末啤酒配烧烤告别夏日夜宵", "山东·青岛", "山东", None, "free", None, ["啤酒", "夏末", "饮品"], 2),
|
||||
("小龙虾 🦞", "🦞", "小龙虾尾声最后一批鲜香入味", "湖北·潜江", "湖北", None, "free", None, ["小龙虾", "夏末", "水产"], 2),
|
||||
("莲藕 🪷", "🪷", "秋藕开始上市粉糯清甜煲汤最佳", "湖北·洪湖", "湖北", None, "free", None, ["莲藕", "初秋", "时蔬"], 3),
|
||||
("秋葵 🌿", "🌿", "秋葵大量上市凉拌白灼营养满分", "广东·湛江", "广东", None, "free", None, ["秋葵", "初秋", "时蔬"], 2),
|
||||
("丝瓜 🥒", "🥒", "丝瓜蛋汤清淡鲜甜夏末秋初家常", "浙江·杭州", "浙江", None, "free", None, ["丝瓜", "夏末", "时蔬"], 2),
|
||||
("冬瓜 🥒", "🥒", "冬瓜排骨汤清热消暑夏末养生", "广东·广州", "广东", None, "free", None, ["冬瓜", "夏末", "时蔬"], 2),
|
||||
("桂花茶 🍵", "🍵", "初秋桂花茶香气扑鼻暖胃养生", "广西·桂林", "广西", None, "free", None, ["桂花茶", "初秋", "茶"], 3),
|
||||
("杨枝甘露 🥭", "🥭", "芒果西柚西米露夏末甜品收尾", "广东·广州", "广东", None, "free", None, ["杨枝甘露", "夏末", "港式甜品"], 2),
|
||||
("龟苓膏 🍨", "🍨", "龟苓膏清热解毒夏末养生甜品", "广西·梧州", "广西", None, "free", None, ["龟苓膏", "夏末", "养生"], 2),
|
||||
("烧仙草 🍨", "🍨", "烧仙草花生红豆奶茶搭配夏末消暑", "福建·泉州", "福建", None, "free", None, ["烧仙草", "夏末", "甜品"], 2),
|
||||
("双皮奶 🍨", "🍨", "顺德双皮奶香滑细腻冰镇收尾", "广东·顺德", "广东", None, "free", None, ["双皮奶", "夏末", "甜品"], 2),
|
||||
("凉糕 🍨", "🍨", "四川凉糕红糖水浇淋夏末最后清凉", "四川·宜宾", "四川", None, "free", None, ["凉糕", "夏末", "甜品"], 2),
|
||||
("啤酒鸭 🦆", "🦆", "啤酒鸭鲜香入味夏末啤酒入菜", "湖南·长沙", "湖南", None, "free", None, ["啤酒鸭", "夏末", "湘菜"], 2),
|
||||
("椰子鸡 🥥", "🥥", "海南椰子鸡清甜滋补夏末养生", "海南·文昌", "海南", None, "free", None, ["椰子鸡", "夏末", "海南菜"], 2),
|
||||
("芋头 🍠", "🍠", "荔浦芋头粉糯香甜蒸扣肉炖排骨皆宜", "广西·荔浦", "广西", None, "free", None, ["芋头", "初秋", "时蔬"], 3),
|
||||
("柚子 🍊", "🍊", "蜜柚初上市酸甜多汁秋日开胃水果", "福建·平和", "福建", None, "free", None, ["柚子", "初秋", "水果"], 3),
|
||||
],
|
||||
9: [
|
||||
("大闸蟹 🦀", "🦀", "阳澄湖大闸蟹九雌十雄膏黄肥美秋日至味", "江苏·苏州·阳澄湖", "江苏", None, "paid", "时价", ["大闸蟹", "秋季", "河鲜"], 5),
|
||||
("月饼 🥮", "🥮", "中秋月饼广式苏式滇式五仁莲蓉蛋黄", "广东·广州", "广东", None, "free", None, ["月饼", "中秋", "传统美食"], 5),
|
||||
("桂花糕 🌼", "🌼", "金秋桂花糕香甜软糯桂花飘香满城", "江苏·苏州", "江苏", None, "free", None, ["桂花糕", "秋季", "甜品"], 4),
|
||||
("桂花酒 🍶", "🍶", "桂花酿米酒甜润芳香中秋赏月佳酿", "广西·桂林", "广西", None, "free", None, ["桂花酒", "秋季", "果酒"], 3),
|
||||
("柿子 🍅", "🍅", "秋季柿子红润软糯甜蜜如蜜挂枝头", "陕西·富平", "陕西", None, "free", None, ["柿子", "秋季", "水果"], 4),
|
||||
("石榴 🍎", "🍎", "突尼斯软籽石榴红如宝石酸甜多汁", "四川·会理", "四川", None, "free", None, ["石榴", "秋季", "水果"], 4),
|
||||
("板栗 🌰", "🌰", "迁西板栗糖炒飘香软糯香甜秋日手心暖", "河北·唐山·迁西", "河北", None, "free", None, ["板栗", "秋季", "零食"], 4),
|
||||
("秋梨 🍐", "🍐", "秋梨膏润肺止咳冰糖雪梨秋日养生", "河北·赵县", "河北", None, "free", None, ["秋梨", "秋季", "水果"], 3),
|
||||
("葡萄 🍇", "🍇", "秋季葡萄巨峰玫瑰香甜蜜多汁", "新疆·吐鲁番", "新疆", None, "free", None, ["葡萄", "秋季", "水果"], 3),
|
||||
("猕猴桃 🥝", "🥝", "眉县猕猴桃维C之王酸甜可口秋日鲜果", "陕西·眉县", "陕西", None, "free", None, ["猕猴桃", "秋季", "水果"], 3),
|
||||
("柚子 🍊", "🍊", "蜜柚大量上市酸甜多汁秋日开胃水果", "福建·平和", "福建", None, "free", None, ["柚子", "秋季", "水果"], 3),
|
||||
("白果 🌰", "🌰", "银杏白果炖鸡润肺止咳秋日养生", "江苏·泰兴", "江苏", None, "free", None, ["白果", "秋季", "时蔬"], 2),
|
||||
("秋葵 🌿", "🌿", "秋葵凉拌白灼营养满分秋日时蔬", "广东·湛江", "广东", None, "free", None, ["秋葵", "秋季", "时蔬"], 2),
|
||||
("莲藕 🪷", "🪷", "秋藕粉糯清甜排骨藕汤秋日暖胃", "湖北·洪湖", "湖北", None, "free", None, ["莲藕", "秋季", "时蔬"], 3),
|
||||
("银耳汤 🥣", "🥣", "银耳莲子羹润肺养颜秋日甜品", "福建·古田", "福建", None, "free", None, ["银耳汤", "秋季", "养生"], 3),
|
||||
("冰糖雪梨 🥤", "🥤", "冰糖炖雪梨润肺止咳秋日养生饮品", "河北·赵县", "河北", None, "free", None, ["冰糖雪梨", "秋季", "养生"], 3),
|
||||
("桂花茶 🍵", "🍵", "金秋桂花茶香气扑鼻暖胃养生", "广西·桂林", "广西", None, "free", None, ["桂花茶", "秋季", "茶"], 3),
|
||||
("烤红薯 🍠", "🍠", "秋日烤红薯焦糖香气四溢暖手暖胃", "北京·胡同", "北京", None, "free", None, ["烤红薯", "秋季", "街头小吃"], 3),
|
||||
("糖炒栗子 🌰", "🌰", "秋日糖炒栗子软糯香甜手心温暖", "河北·唐山·迁西", "河北", None, "free", None, ["糖炒栗子", "秋季", "零食"], 4),
|
||||
("羊肉汤 🍵", "🍵", "秋日羊肉汤浓白如奶鲜而不膻滋补暖身", "山东·菏泽·单县", "山东", None, "free", None, ["羊肉汤", "秋季", "滋补"], 4),
|
||||
("火锅 🍲", "🍲", "秋季火锅开锅麻辣鲜香暖身暖胃", "重庆·解放碑", "重庆", None, "free", None, ["火锅", "秋季", "麻辣"], 4),
|
||||
("螺蛳粉 🍜", "🍜", "柳州螺蛳粉酸辣鲜爽秋日嗦粉酣畅", "广西·柳州", "广西", None, "free", None, ["螺蛳粉", "秋季", "广西"], 3),
|
||||
("过桥米线 🍜", "🍜", "云南过桥米线汤鲜料足秋日暖胃", "云南·蒙自", "云南", None, "free", None, ["过桥米线", "秋季", "云南菜"], 2),
|
||||
("砂锅粥 🍲", "🍲", "潮汕砂锅粥鲜香绵密秋日暖胃", "广东·汕头", "广东", None, "free", None, ["砂锅粥", "秋季", "潮汕"], 2),
|
||||
("牛肉面 🍜", "🍜", "兰州牛肉面一清二白三红四绿五黄秋日暖身", "甘肃·兰州", "甘肃", None, "free", None, ["牛肉面", "秋季", "面食"], 2),
|
||||
("热干面 🍜", "🍜", "武汉热干面芝麻酱拌面香浓醇厚秋晨暖胃", "湖北·武汉", "湖北", None, "free", None, ["热干面", "秋季", "早餐"], 2),
|
||||
("豆汁 🥛", "🥛", "老北京豆汁配焦圈酸爽独特秋日清晨", "北京·护国寺", "北京", None, "free", None, ["豆汁", "秋季", "老北京"], 1),
|
||||
("胡辣汤 🥣", "🥣", "河南胡辣汤浓稠辛辣秋晨暖身", "河南·周口", "河南", None, "free", None, ["胡辣汤", "秋季", "早餐"], 3),
|
||||
("涮羊肉 🍲", "🍲", "老北京铜锅涮肉秋日暖身至味", "北京·牛街", "北京", None, "free", None, ["涮羊肉", "秋季", "北京菜"], 4),
|
||||
("姜母鸭 🦆", "🦆", "厦门姜母鸭老姜米酒炖煮秋日驱寒", "福建·厦门", "福建", None, "free", None, ["姜母鸭", "秋季", "闽南菜"], 3),
|
||||
("芋头 🍠", "🍠", "荔浦芋头粉糯香甜蒸扣肉炖排骨秋日美味", "广西·荔浦", "广西", None, "free", None, ["芋头", "秋季", "时蔬"], 2),
|
||||
],
|
||||
10: [
|
||||
("柿子 🍅", "🍅", "深秋柿子红如灯笼软糯甜蜜挂满枝头", "陕西·富平", "陕西", None, "free", None, ["柿子", "深秋", "水果"], 4),
|
||||
("石榴 🍎", "🍎", "软籽石榴红如宝石酸甜多汁秋日佳果", "四川·会理", "四川", None, "free", None, ["石榴", "深秋", "水果"], 3),
|
||||
("板栗 🌰", "🌰", "糖炒栗子软糯香甜深秋手心温暖", "河北·唐山·迁西", "河北", None, "free", None, ["板栗", "深秋", "零食"], 4),
|
||||
("大闸蟹 🦀", "🦀", "十月雄蟹膏满肉肥秋日至味", "江苏·苏州·阳澄湖", "江苏", None, "paid", "时价", ["大闸蟹", "深秋", "河鲜"], 5),
|
||||
("秋梨 🍐", "🍐", "秋梨膏润肺止咳深秋干燥养生必备", "河北·赵县", "河北", None, "free", None, ["秋梨", "深秋", "水果"], 3),
|
||||
("柚子 🍊", "🍊", "沙田柚蜜柚酸甜多汁深秋开胃水果", "广西·容县", "广西", None, "free", None, ["柚子", "深秋", "水果"], 3),
|
||||
("猕猴桃 🥝", "🥝", "猕猴桃维C之王酸甜可口深秋鲜果", "陕西·眉县", "陕西", None, "free", None, ["猕猴桃", "深秋", "水果"], 3),
|
||||
("橙子 🍊", "🍊", "赣南脐橙初上市酸甜浓郁果肉饱满", "江西·赣州", "江西", None, "free", None, ["橙子", "深秋", "水果"], 4),
|
||||
("山楂 🍒", "🍒", "山楂红果酸甜开胃冰糖葫芦糖雪球", "河北·兴隆", "河北", None, "free", None, ["山楂", "深秋", "水果"], 3),
|
||||
("银杏果 🌰", "🌰", "银杏白果炖鸡润肺止咳深秋养生", "江苏·泰兴", "江苏", None, "free", None, ["白果", "深秋", "时蔬"], 2),
|
||||
("烤红薯 🍠", "🍠", "深秋烤红薯焦糖香气四溢暖手暖胃", "北京·胡同", "北京", None, "free", None, ["烤红薯", "深秋", "街头小吃"], 4),
|
||||
("糖炒栗子 🌰", "🌰", "深秋糖炒栗子软糯香甜手心温暖", "河北·唐山·迁西", "河北", None, "free", None, ["糖炒栗子", "深秋", "零食"], 4),
|
||||
("羊肉汤 🍵", "🍵", "深秋羊肉汤浓白如奶鲜而不膻滋补暖身", "山东·菏泽·单县", "山东", None, "free", None, ["羊肉汤", "深秋", "滋补"], 5),
|
||||
("火锅 🍲", "🍲", "深秋火锅麻辣鲜香暖身暖胃聚会首选", "重庆·解放碑", "重庆", None, "free", None, ["火锅", "深秋", "麻辣"], 4),
|
||||
("螺蛳粉 🍜", "🍜", "柳州螺蛳粉酸辣鲜爽深秋嗦粉酣畅", "广西·柳州", "广西", None, "free", None, ["螺蛳粉", "深秋", "广西"], 3),
|
||||
("过桥米线 🍜", "🍜", "云南过桥米线汤鲜料足深秋暖胃", "云南·蒙自", "云南", None, "free", None, ["过桥米线", "深秋", "云南菜"], 2),
|
||||
("砂锅粥 🍲", "🍲", "潮汕砂锅粥鲜香绵密深秋暖胃", "广东·汕头", "广东", None, "free", None, ["砂锅粥", "深秋", "潮汕"], 2),
|
||||
("牛肉面 🍜", "🍜", "兰州牛肉面一清二白三红四绿五黄深秋暖身", "甘肃·兰州", "甘肃", None, "free", None, ["牛肉面", "深秋", "面食"], 2),
|
||||
("热干面 🍜", "🍜", "武汉热干面芝麻酱拌面香浓醇厚秋晨暖胃", "湖北·武汉", "湖北", None, "free", None, ["热干面", "深秋", "早餐"], 2),
|
||||
("腊肉 🥩", "🥩", "湘西腊肉开始熏制烟熏味浓肥而不腻", "湖南·湘西", "湖南", None, "free", None, ["腊肉", "深秋", "年味"], 3),
|
||||
("臭豆腐 🧈", "🧈", "长沙臭豆腐外焦里嫩闻着臭吃着香", "湖南·长沙·坡子街", "湖南", None, "free", None, ["臭豆腐", "深秋", "街头小吃"], 2),
|
||||
("驴肉火烧 🫓", "🫓", "保定驴肉火烧外酥里嫩天上龙肉地下驴肉", "河北·保定", "河北", None, "free", None, ["驴肉火烧", "深秋", "河北"], 2),
|
||||
("锅包肉 🥩", "🥩", "东北锅包肉酸甜酥脆外焦里嫩深秋开胃", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["锅包肉", "深秋", "东北菜"], 2),
|
||||
("小鸡炖蘑菇 🍄", "🍄", "东北小鸡炖榛蘑鲜香浓郁深秋硬菜", "辽宁·沈阳", "辽宁", None, "free", None, ["小鸡炖蘑菇", "深秋", "东北菜"], 2),
|
||||
("酸菜白肉 🥬", "🥬", "东北酸菜炖白肉血肠酸爽解腻深秋硬菜", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["酸菜白肉", "深秋", "东北菜"], 2),
|
||||
("杀猪菜 🥬", "🥬", "东北杀猪菜血肠酸菜白肉年关传统大菜", "吉林·长春", "吉林", None, "free", None, ["杀猪菜", "深秋", "东北菜"], 2),
|
||||
("涮羊肉 🍲", "🍲", "老北京铜锅涮肉深秋暖身至味", "北京·牛街", "北京", None, "free", None, ["涮羊肉", "深秋", "北京菜"], 4),
|
||||
("姜母鸭 🦆", "🦆", "厦门姜母鸭老姜米酒炖煮深秋驱寒", "福建·厦门", "福建", None, "free", None, ["姜母鸭", "深秋", "闽南菜"], 3),
|
||||
("冰糖葫芦 🍡", "🍡", "山楂冰糖葫芦酸甜可口深秋街头经典", "北京·王府井", "北京", None, "free", None, ["冰糖葫芦", "深秋", "街头小吃"], 3),
|
||||
("豆汁 🥛", "🥛", "老北京豆汁配焦圈酸爽独特秋日清晨", "北京·护国寺", "北京", None, "free", None, ["豆汁", "深秋", "老北京"], 1),
|
||||
("胡辣汤 🥣", "🥣", "河南胡辣汤浓稠辛辣深秋晨暖身", "河南·周口", "河南", None, "free", None, ["胡辣汤", "深秋", "早餐"], 3),
|
||||
],
|
||||
11: [
|
||||
("羊肉汤 🍵", "🍵", "立冬羊肉汤浓白如奶鲜而不膻冬令滋补", "山东·菏泽·单县", "山东", None, "free", None, ["羊肉汤", "秋冬", "滋补"], 5),
|
||||
("火锅 🍲", "🍲", "冬季火锅麻辣鲜香暖身暖胃聚会首选", "重庆·解放碑", "重庆", None, "free", None, ["火锅", "秋冬", "麻辣"], 5),
|
||||
("腊肉 🥩", "🥩", "湘西腊肉经冬熏制烟熏味浓肥而不腻", "湖南·湘西", "湖南", None, "free", None, ["腊肉", "秋冬", "年味"], 3),
|
||||
("烤全羊 🐑", "🐑", "内蒙古烤全羊外焦里嫩豪迈冬日盛宴", "内蒙古·呼和浩特", "内蒙古", None, "free", None, ["烤全羊", "秋冬", "蒙古菜"], 3),
|
||||
("糖炒栗子 🌰", "🌰", "迁西板栗糖炒飘香软糯香甜冬日手心暖", "河北·唐山·迁西", "河北", None, "free", None, ["糖炒栗子", "秋冬", "零食"], 4),
|
||||
("烤红薯 🍠", "🍠", "冬日烤红薯焦糖香气四溢暖手暖胃", "北京·胡同", "北京", None, "free", None, ["烤红薯", "秋冬", "街头小吃"], 4),
|
||||
("涮羊肉 🍲", "🍲", "老北京铜锅涮肉手切鲜羊肉蘸麻酱冬日至味", "北京·牛街", "北京", None, "free", None, ["涮羊肉", "秋冬", "北京菜"], 5),
|
||||
("姜母鸭 🦆", "🦆", "厦门姜母鸭老姜米酒炖煮驱寒暖身", "福建·厦门", "福建", None, "free", None, ["姜母鸭", "秋冬", "闽南菜"], 4),
|
||||
("螺蛳粉 🍜", "🍜", "柳州螺蛳粉酸辣鲜爽冬日嗦粉酣畅淋漓", "广西·柳州", "广西", None, "free", None, ["螺蛳粉", "秋冬", "广西"], 3),
|
||||
("过桥米线 🍜", "🍜", "云南过桥米线汤鲜料足冬日暖胃首选", "云南·蒙自", "云南", None, "free", None, ["过桥米线", "秋冬", "云南菜"], 2),
|
||||
("砂锅粥 🍲", "🍲", "潮汕砂锅粥鲜香绵密虾蟹粥暖胃暖心", "广东·汕头", "广东", None, "free", None, ["砂锅粥", "秋冬", "潮汕"], 2),
|
||||
("牛肉面 🍜", "🍜", "兰州牛肉面一清二白三红四绿五黄冬日暖身", "甘肃·兰州", "甘肃", None, "free", None, ["牛肉面", "秋冬", "面食"], 2),
|
||||
("热干面 🍜", "🍜", "武汉热干面芝麻酱拌面香浓醇厚冬晨暖胃", "湖北·武汉", "湖北", None, "free", None, ["热干面", "秋冬", "早餐"], 2),
|
||||
("胡辣汤 🥣", "🥣", "河南胡辣汤浓稠辛辣配油条水煎包冬日暖身", "河南·周口", "河南", None, "free", None, ["胡辣汤", "秋冬", "早餐"], 3),
|
||||
("臭豆腐 🧈", "🧈", "长沙臭豆腐外焦里嫩闻着臭吃着香", "湖南·长沙·坡子街", "湖南", None, "free", None, ["臭豆腐", "秋冬", "街头小吃"], 2),
|
||||
("驴肉火烧 🫓", "🫓", "保定驴肉火烧外酥里嫩天上龙肉地下驴肉", "河北·保定", "河北", None, "free", None, ["驴肉火烧", "秋冬", "河北"], 2),
|
||||
("锅包肉 🥩", "🥩", "东北锅包肉酸甜酥脆外焦里嫩一口上头", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["锅包肉", "秋冬", "东北菜"], 2),
|
||||
("小鸡炖蘑菇 🍄", "🍄", "东北小鸡炖榛蘑鲜香浓郁冬日硬菜", "辽宁·沈阳", "辽宁", None, "free", None, ["小鸡炖蘑菇", "秋冬", "东北菜"], 2),
|
||||
("酸菜白肉 🥬", "🥬", "东北酸菜炖白肉血肠酸爽解腻冬日硬菜", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["酸菜白肉", "秋冬", "东北菜"], 2),
|
||||
("杀猪菜 🥬", "🥬", "东北杀猪菜血肠酸菜白肉年关传统大菜", "吉林·长春", "吉林", None, "free", None, ["杀猪菜", "秋冬", "东北菜"], 2),
|
||||
("脐橙 🍊", "🍊", "赣南脐橙大量上市酸甜浓郁果肉饱满汁水丰盈", "江西·赣州", "江西", None, "free", None, ["脐橙", "秋冬", "水果"], 4),
|
||||
("柚子 🍊", "🍊", "沙田柚蜜柚酸甜多汁秋冬开胃水果", "广西·容县", "广西", None, "free", None, ["柚子", "秋冬", "水果"], 3),
|
||||
("柿子 🍅", "🍅", "秋冬柿子红润软糯甜蜜如蜜挂枝头", "陕西·富平", "陕西", None, "free", None, ["柿子", "秋冬", "水果"], 3),
|
||||
("石榴 🍎", "🍎", "软籽石榴尾声红如宝石酸甜多汁", "四川·会理", "四川", None, "free", None, ["石榴", "秋冬", "水果"], 2),
|
||||
("板栗 🌰", "🌰", "迁西板栗炖鸡煲汤软糯香甜秋冬滋补", "河北·唐山·迁西", "河北", None, "free", None, ["板栗", "秋冬", "时蔬"], 3),
|
||||
("银杏果 🌰", "🌰", "银杏白果炖鸡润肺止咳秋冬养生", "江苏·泰兴", "江苏", None, "free", None, ["白果", "秋冬", "时蔬"], 2),
|
||||
("冰糖葫芦 🍡", "🍡", "山楂冰糖葫芦酸甜可口秋冬街头经典", "北京·王府井", "北京", None, "free", None, ["冰糖葫芦", "秋冬", "街头小吃"], 3),
|
||||
("豆汁 🥛", "🥛", "老北京豆汁配焦圈酸爽独特冬日清晨", "北京·护国寺", "北京", None, "free", None, ["豆汁", "秋冬", "老北京"], 1),
|
||||
("糍粑 🍘", "🍘", "手工打糍粑蘸白糖红糖软糯弹牙年味浓", "贵州·黔东南", "贵州", None, "free", None, ["糍粑", "秋冬", "传统美食"], 2),
|
||||
("腊八粥 🥣", "🥣", "腊八节传统美食八宝熬粥暖身祈福", "陕西·西安", "陕西", None, "free", None, ["腊八粥", "秋冬", "传统美食"], 4),
|
||||
("冻梨 🍐", "🍐", "东北冻梨黑如墨汁解冻后吸汁如蜜冬日限定", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["冻梨", "秋冬", "东北特产"], 3),
|
||||
],
|
||||
12: [
|
||||
("冰糖葫芦 🍡", "🍡", "山楂裹冰糖晶莹剔透北方冬日街头经典", "北京·王府井", "北京", None, "free", None, ["冰糖葫芦", "冬季", "街头小吃"], 3),
|
||||
("腊肉 🥩", "🥩", "湘西腊肉经冬熏制烟熏味浓肥而不腻", "湖南·湘西", "湖南", None, "free", None, ["腊肉", "冬季", "年味"], 4),
|
||||
("火锅 🍲", "🍲", "重庆老火锅麻辣鲜香毛肚鸭肠涮起来", "重庆·解放碑", "重庆", None, "free", None, ["火锅", "冬季", "麻辣"], 5),
|
||||
("年糕 🍚", "🍚", "宁波水磨年糕软糯弹牙炒年糕汤年糕皆宜", "浙江·宁波", "浙江", None, "free", None, ["年糕", "冬季", "传统美食"], 3),
|
||||
("柑橘 🍊", "🍊", "赣南脐橙酸甜浓郁果肉饱满汁水丰盈", "江西·赣州", "江西", None, "free", None, ["柑橘", "冬季", "水果"], 4),
|
||||
("汤圆 🥣", "🥣", "冬至汤圆芝麻馅流心软糯甜蜜暖冬", "浙江·宁波", "浙江", None, "free", None, ["汤圆", "冬至", "传统美食"], 5),
|
||||
("烤红薯 🍠", "🍠", "冬日街头烤红薯焦糖香气四溢暖手暖胃", "北京·胡同", "北京", None, "free", None, ["烤红薯", "冬季", "街头小吃"], 4),
|
||||
("羊肉汤 🍵", "🍵", "单县羊肉汤浓白如奶鲜而不膻冬令滋补", "山东·菏泽·单县", "山东", None, "free", None, ["羊肉汤", "冬季", "滋补"], 5),
|
||||
("糖炒栗子 🌰", "🌰", "迁西板栗糖炒飘香软糯香甜冬日手心暖", "河北·唐山·迁西", "河北", None, "free", None, ["糖炒栗子", "冬季", "零食"], 4),
|
||||
("酸菜白肉 🥬", "🥬", "东北酸菜炖白肉血肠酸爽解腻冬日硬菜", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["酸菜白肉", "冬季", "东北菜"], 3),
|
||||
("腊八粥 🥣", "🥣", "腊八节传统美食八宝熬粥暖身祈福", "陕西·西安", "陕西", None, "free", None, ["腊八粥", "冬季", "传统美食"], 4),
|
||||
("糍粑 🍘", "🍘", "手工打糍粑蘸白糖红糖软糯弹牙年味浓", "贵州·黔东南", "贵州", None, "free", None, ["糍粑", "冬季", "传统美食"], 3),
|
||||
("热干面 🍜", "🍜", "武汉过早首选芝麻酱拌面香浓醇厚", "湖北·武汉", "湖北", None, "free", None, ["热干面", "冬季", "早餐"], 2),
|
||||
("砂锅粥 🍲", "🍲", "潮汕砂锅粥鲜香绵密虾蟹粥暖胃暖心", "广东·汕头", "广东", None, "free", None, ["砂锅粥", "冬季", "潮汕"], 2),
|
||||
("牛肉面 🍜", "🍜", "兰州牛肉面一清二白三红四绿五黄冬日暖身", "甘肃·兰州", "甘肃", None, "free", None, ["牛肉面", "冬季", "面食"], 2),
|
||||
("锅包肉 🥩", "🥩", "东北锅包肉酸甜酥脆外焦里嫩一口上头", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["锅包肉", "冬季", "东北菜"], 2),
|
||||
("涮羊肉 🍲", "🍲", "老北京铜锅涮肉手切鲜羊肉蘸麻酱冬日至味", "北京·牛街", "北京", None, "free", None, ["涮羊肉", "冬季", "北京菜"], 5),
|
||||
("姜母鸭 🦆", "🦆", "厦门姜母鸭老姜米酒炖煮驱寒暖身", "福建·厦门", "福建", None, "free", None, ["姜母鸭", "冬季", "闽南菜"], 4),
|
||||
("螺蛳粉 🍜", "🍜", "柳州螺蛳粉酸辣鲜爽冬日嗦粉酣畅淋漓", "广西·柳州", "广西", None, "free", None, ["螺蛳粉", "冬季", "广西"], 3),
|
||||
("烤全羊 🐑", "🐑", "内蒙古烤全羊外焦里嫩豪迈冬日盛宴", "内蒙古·呼和浩特", "内蒙古", None, "free", None, ["烤全羊", "冬季", "蒙古菜"], 3),
|
||||
("胡辣汤 🥣", "🥣", "河南胡辣汤浓稠辛辣配油条水煎包冬日暖身", "河南·周口", "河南", None, "free", None, ["胡辣汤", "冬季", "早餐"], 3),
|
||||
("过桥米线 🍜", "🍜", "云南过桥米线汤鲜料足冬日暖胃首选", "云南·蒙自", "云南", None, "free", None, ["过桥米线", "冬季", "云南菜"], 2),
|
||||
("冻梨 🍐", "🍐", "东北冻梨黑如墨汁解冻后吸汁如蜜冬日限定", "黑龙江·哈尔滨", "黑龙江", None, "free", None, ["冻梨", "冬季", "东北特产"], 4),
|
||||
("羊杂碎 🍵", "🍵", "宁夏羊杂碎汤浓味鲜冬日暖身暖胃", "宁夏·银川", "宁夏", None, "free", None, ["羊杂碎", "冬季", "西北菜"], 2),
|
||||
("小鸡炖蘑菇 🍄", "🍄", "东北小鸡炖榛蘑鲜香浓郁冬日硬菜", "辽宁·沈阳", "辽宁", None, "free", None, ["小鸡炖蘑菇", "冬季", "东北菜"], 2),
|
||||
("驴肉火烧 🫓", "🫓", "保定驴肉火烧外酥里嫩天上龙肉地下驴肉", "河北·保定", "河北", None, "free", None, ["驴肉火烧", "冬季", "河北"], 2),
|
||||
("麻辣烫 🌶️", "🌶️", "天水麻辣烫香辣过瘾冬日街头暖身神器", "甘肃·天水", "甘肃", None, "free", None, ["麻辣烫", "冬季", "街头小吃"], 3),
|
||||
("杀猪菜 🥬", "🥬", "东北杀猪菜血肠酸菜白肉年关传统大菜", "吉林·长春", "吉林", None, "free", None, ["杀猪菜", "冬季", "东北菜"], 2),
|
||||
("臭豆腐 🧈", "🧈", "长沙臭豆腐外焦里嫩闻着臭吃着香", "湖南·长沙·坡子街", "湖南", None, "free", None, ["臭豆腐", "冬季", "街头小吃"], 2),
|
||||
("豆汁 🥛", "🥛", "老北京豆汁配焦圈酸爽独特冬日清晨", "北京·护国寺", "北京", None, "free", None, ["豆汁", "冬季", "老北京"], 1),
|
||||
("饺子 🥟", "🥟", "冬至饺子猪肉白菜韭菜三鲜北方传统", "山东·济南", "山东", None, "free", None, ["饺子", "冬至", "传统美食"], 5),
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 辅助函数
|
||||
# ============================================================
|
||||
|
||||
def date_in_range(m, d, m_start, d_start, m_end, d_end):
|
||||
if m_start <= m_end:
|
||||
if m < m_start or m > m_end:
|
||||
return False
|
||||
if m == m_start and d < d_start:
|
||||
return False
|
||||
if m == m_end and d > d_end:
|
||||
return False
|
||||
return True
|
||||
else:
|
||||
if m >= m_start or m <= m_end:
|
||||
if m == m_start and d < d_start:
|
||||
return False
|
||||
if m == m_end and d > d_end:
|
||||
return False
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def date_in_peak(m, d, pm_s, pd_s, pm_e, pd_e):
|
||||
if pm_s <= pm_e:
|
||||
if m < pm_s or m > pm_e:
|
||||
return False
|
||||
if m == pm_s and d < pd_s:
|
||||
return False
|
||||
if m == pm_e and d > pd_e:
|
||||
return False
|
||||
return True
|
||||
else:
|
||||
if m >= pm_s or m <= pm_e:
|
||||
if m == pm_s and d < pd_s:
|
||||
return False
|
||||
if m == pm_e and d > pd_e:
|
||||
return False
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def calc_flower_heat(m, d, m_s, d_s, m_e, d_e, pm_s, pd_s, pm_e, pd_e):
|
||||
if date_in_peak(m, d, pm_s, pd_s, pm_e, pd_e):
|
||||
return 5
|
||||
if date_in_range(m, d, m_s, d_s, pm_s, pd_s):
|
||||
return 3
|
||||
if date_in_range(m, d, pm_e, pd_e, m_e, d_e):
|
||||
return 1
|
||||
return 2
|
||||
|
||||
|
||||
def mk_food_card(item, m, d, idx):
|
||||
title, emoji, desc, loc, prov, alt, pt, pn, tags, heat = item
|
||||
o = {
|
||||
"id": f"food_{m:02d}{d:02d}_{idx:02d}",
|
||||
"title": title, "emoji": emoji, "description": desc,
|
||||
"location": loc, "province": prov, "altitude": alt,
|
||||
"priceType": pt, "tags": tags, "riskWarnings": [],
|
||||
"isFood": True, "heatLevel": heat,
|
||||
}
|
||||
if pn:
|
||||
o["priceNote"] = pn
|
||||
return o
|
||||
|
||||
|
||||
def mk_play_card(item, m, d, idx, heat=3):
|
||||
title, emoji, desc, loc, prov, alt, pt, pn, tags, rw = item[:10]
|
||||
o = {
|
||||
"id": f"play_{m:02d}{d:02d}_{idx:02d}",
|
||||
"title": title, "emoji": emoji, "description": desc,
|
||||
"location": loc, "province": prov, "altitude": alt,
|
||||
"priceType": pt, "tags": tags, "riskWarnings": rw or [],
|
||||
"isFood": False, "heatLevel": heat,
|
||||
}
|
||||
if pn:
|
||||
o["priceNote"] = pn
|
||||
return o
|
||||
|
||||
|
||||
def mk_flower_card(item, m, d, idx):
|
||||
title, emoji, desc, loc, prov, alt, pt, pn, tags, rw = item[:10]
|
||||
m_s, d_s, m_e, d_e = item[10], item[11], item[12], item[13]
|
||||
if len(item) >= 18:
|
||||
pm_s, pd_s, pm_e, pd_e = item[14], item[15], item[16], item[17]
|
||||
else:
|
||||
pm_s, pd_s, pd_e = item[14], item[15], item[16]
|
||||
pm_e = pm_s
|
||||
heat = calc_flower_heat(m, d, m_s, d_s, m_e, d_e, pm_s, pd_s, pm_e, pd_e)
|
||||
o = {
|
||||
"id": f"play_{m:02d}{d:02d}_{idx:02d}",
|
||||
"title": title, "emoji": emoji, "description": desc,
|
||||
"location": loc, "province": prov, "altitude": alt,
|
||||
"priceType": pt, "tags": tags, "riskWarnings": rw or [],
|
||||
"isFood": False, "heatLevel": heat,
|
||||
}
|
||||
if pn:
|
||||
o["priceNote"] = pn
|
||||
return o
|
||||
|
||||
|
||||
def mk_seagull_card(item, m, d, idx):
|
||||
title, emoji, desc, loc, prov, alt, pt, pn, tags, rw = item[:10]
|
||||
heat = seagull_heat(m)
|
||||
o = {
|
||||
"id": f"play_{m:02d}{d:02d}_{idx:02d}",
|
||||
"title": title, "emoji": emoji, "description": desc,
|
||||
"location": loc, "province": prov, "altitude": alt,
|
||||
"priceType": pt, "tags": tags, "riskWarnings": rw or [],
|
||||
"isFood": False, "heatLevel": heat,
|
||||
}
|
||||
if pn:
|
||||
o["priceNote"] = pn
|
||||
return o
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 主生成逻辑
|
||||
# ============================================================
|
||||
|
||||
def get_active_flowers(m, d):
|
||||
result = []
|
||||
for ev in FLOWER_EVENTS:
|
||||
if date_in_range(m, d, ev[10], ev[11], ev[12], ev[13]):
|
||||
result.append(ev)
|
||||
return result
|
||||
|
||||
|
||||
def get_active_seagulls(m, d):
|
||||
result = []
|
||||
for ev in SEAGULL_EVENTS:
|
||||
if date_in_range(m, d, ev[10], ev[11], ev[12], ev[13]):
|
||||
result.append(ev)
|
||||
return result
|
||||
|
||||
|
||||
def get_active_nature(m, d):
|
||||
result = []
|
||||
for ev in NATURE_EVENTS:
|
||||
if date_in_range(m, d, ev[10], ev[11], ev[12], ev[13]):
|
||||
result.append(ev)
|
||||
return result
|
||||
|
||||
|
||||
def gen_month(m):
|
||||
yr = 2026
|
||||
days_in = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][m - 1]
|
||||
sr, ss = SUN[m]
|
||||
nodes = []
|
||||
fl = FOOD_DATA[m]
|
||||
|
||||
for d in range(1, days_in + 1):
|
||||
dt = datetime(yr, m, d)
|
||||
wd = WD[dt.weekday()]
|
||||
iwe = dt.weekday() >= 5
|
||||
|
||||
food_cards = []
|
||||
play_cards = []
|
||||
|
||||
# --- 美食卡片: 1-2张 ---
|
||||
fi_idx1 = (d - 1) % len(fl)
|
||||
food_cards.append(mk_food_card(fl[fi_idx1], m, d, 1))
|
||||
|
||||
extra_food_prob = 0.6 if iwe else 0.35
|
||||
if random.random() < extra_food_prob:
|
||||
fi_idx2 = (d - 1 + len(fl) // 2 + random.randint(1, 5)) % len(fl)
|
||||
food_cards.append(mk_food_card(fl[fi_idx2], m, d, 2))
|
||||
|
||||
# --- 游玩卡片: 1-3张 ---
|
||||
play_idx = 0
|
||||
|
||||
# 优先添加花期卡片
|
||||
active_flowers = get_active_flowers(m, d)
|
||||
if active_flowers:
|
||||
chosen = random.sample(active_flowers, min(2, len(active_flowers)))
|
||||
for flower in chosen:
|
||||
play_idx += 1
|
||||
play_cards.append(mk_flower_card(flower, m, d, play_idx))
|
||||
|
||||
# 海鸥卡片
|
||||
active_seagulls = get_active_seagulls(m, d)
|
||||
if active_seagulls:
|
||||
chosen_sg = random.choice(active_seagulls)
|
||||
play_idx += 1
|
||||
play_cards.append(mk_seagull_card(chosen_sg, m, d, play_idx))
|
||||
|
||||
# 自然景观/活动卡片
|
||||
active_nature = get_active_nature(m, d)
|
||||
if active_nature:
|
||||
chosen_n = random.choice(active_nature)
|
||||
play_idx += 1
|
||||
play_cards.append(mk_play_card(chosen_n, m, d, play_idx, heat=3))
|
||||
|
||||
# 如果没有play卡片,从自然景观中随机选一个
|
||||
if not play_cards and active_nature:
|
||||
chosen_n = random.choice(active_nature)
|
||||
play_idx += 1
|
||||
play_cards.append(mk_play_card(chosen_n, m, d, play_idx, heat=3))
|
||||
|
||||
# 确保至少1个play卡片
|
||||
if not play_cards:
|
||||
fallback_nature = random.choice(NATURE_EVENTS)
|
||||
play_idx += 1
|
||||
play_cards.append(mk_play_card(fallback_nature, m, d, play_idx, heat=2))
|
||||
|
||||
node = {
|
||||
"date": f"2026-{m:02d}-{d:02d}",
|
||||
"month": m, "day": d, "weekday": wd, "isWeekend": iwe,
|
||||
"season": sn(m), "sunrise": sr, "sunset": ss,
|
||||
"cards": {
|
||||
"food": food_cards,
|
||||
"play": play_cards,
|
||||
}
|
||||
}
|
||||
nodes.append(node)
|
||||
|
||||
return {"year": yr, "month": m, "version": "3.0.0", "updatedAt": "2026-05-28", "nodes": nodes}
|
||||
|
||||
|
||||
# ============================================================
|
||||
# 执行生成
|
||||
# ============================================================
|
||||
|
||||
print(f"Flower events: {len(FLOWER_EVENTS)}")
|
||||
print(f"Seagull events: {len(SEAGULL_EVENTS)}")
|
||||
print(f"Nature events: {len(NATURE_EVENTS)}")
|
||||
print(f"Food data: {sum(len(FOOD_DATA[m]) for m in FOOD_DATA)} items across {len(FOOD_DATA)} months")
|
||||
print()
|
||||
|
||||
total_cards = 0
|
||||
for m in range(1, 13):
|
||||
data = gen_month(m)
|
||||
fp = os.path.join(OUT, f"2026_{m:02d}.json")
|
||||
with open(fp, "w", encoding="utf-8") as f:
|
||||
json.dump(data, f, ensure_ascii=False, indent=2)
|
||||
|
||||
cards_count = sum(
|
||||
len(n["cards"]["food"]) + len(n["cards"]["play"])
|
||||
for n in data["nodes"]
|
||||
)
|
||||
total_cards += cards_count
|
||||
food_avg = sum(len(n["cards"]["food"]) for n in data["nodes"]) / len(data["nodes"])
|
||||
play_avg = sum(len(n["cards"]["play"]) for n in data["nodes"]) / len(data["nodes"])
|
||||
print(f"✅ {fp}: {len(data['nodes'])} days, avg {food_avg:.1f} food + {play_avg:.1f} play = {cards_count} cards")
|
||||
|
||||
print(f"\n🎉 Done! Total cards: {total_cards}")
|
||||
@@ -1,179 +0,0 @@
|
||||
F = {}
|
||||
P = {}
|
||||
|
||||
F[1] = [
|
||||
("冰糖葫芦 🍡","🍡","山楂裹冰糖晶莹剔透北方冬日街头经典","北京·王府井","北京",["冰糖葫芦","冬季","街头小吃"],None,"free",None),
|
||||
("腊肉 🥩","🥩","湘西腊肉经冬熏制烟熏味浓肥而不腻","湖南·湘西","湖南",["腊肉","冬季","年味"],None,"free",None),
|
||||
("火锅 🍲","🍲","重庆老火锅麻辣鲜香毛肚鸭肠涮起来","重庆·解放碑","重庆",["火锅","冬季","麻辣"],None,"free",None),
|
||||
("年糕 🍚","🍚","宁波水磨年糕软糯弹牙炒年糕汤年糕皆宜","浙江·宁波","浙江",["年糕","冬季","传统美食"],None,"free",None),
|
||||
("柑橘 🍊","🍊","赣南脐橙酸甜浓郁果肉饱满汁水丰盈","江西·赣州","江西",["柑橘","冬季","水果"],None,"free",None),
|
||||
("汤圆 🥣","🥣","宁波猪油汤圆芝麻馅流心软糯甜蜜暖冬","浙江·宁波","浙江",["汤圆","冬季","传统美食"],None,"free",None),
|
||||
("烤红薯 🍠","🍠","冬日街头烤红薯焦糖香气四溢暖手暖胃","北京·胡同","北京",["烤红薯","冬季","街头小吃"],None,"free",None),
|
||||
("羊肉汤 🍵","🍵","单县羊肉汤浓白如奶鲜而不膻冬令滋补","山东·菏泽·单县","山东",["羊肉汤","冬季","滋补"],None,"free",None),
|
||||
("糖炒栗子 🌰","🌰","迁西板栗糖炒飘香软糯香甜冬日手心暖","河北·唐山·迁西","河北",["糖炒栗子","冬季","零食"],None,"free",None),
|
||||
("酸菜白肉 🥬","🥬","东北酸菜炖白肉血肠酸爽解腻冬日硬菜","黑龙江·哈尔滨","黑龙江",["酸菜白肉","冬季","东北菜"],None,"free",None),
|
||||
("腊八粥 🥣","🥣","腊八节传统美食八宝熬粥暖身祈福","陕西·西安","陕西",["腊八粥","冬季","传统美食"],None,"free",None),
|
||||
("糍粑 🍘","🍘","手工打糍粑蘸白糖红糖软糯弹牙年味浓","贵州·黔东南","贵州",["糍粑","冬季","传统美食"],None,"free",None),
|
||||
("热干面 🍜","🍜","武汉过早首选芝麻酱拌面香浓醇厚","湖北·武汉","湖北",["热干面","冬季","早餐"],None,"free",None),
|
||||
("砂锅粥 🍲","🍲","潮汕砂锅粥鲜香绵密虾蟹粥暖胃暖心","广东·汕头","广东",["砂锅粥","冬季","潮汕"],None,"free",None),
|
||||
("牛肉面 🍜","🍜","兰州牛肉面一清二白三红四绿五黄冬日暖身","甘肃·兰州","甘肃",["牛肉面","冬季","面食"],None,"free",None),
|
||||
("锅包肉 🥩","🥩","东北锅包肉酸甜酥脆外焦里嫩一口上头","黑龙江·哈尔滨","黑龙江",["锅包肉","冬季","东北菜"],None,"free",None),
|
||||
("涮羊肉 🍲","🍲","老北京铜锅涮肉手切鲜羊肉蘸麻酱冬日至味","北京·牛街","北京",["涮羊肉","冬季","北京菜"],None,"free",None),
|
||||
("姜母鸭 🦆","🦆","厦门姜母鸭老姜米酒炖煮驱寒暖身","福建·厦门","福建",["姜母鸭","冬季","闽南菜"],None,"free",None),
|
||||
("螺蛳粉 🍜","🍜","柳州螺蛳粉酸辣鲜爽冬日嗦粉酣畅淋漓","广西·柳州","广西",["螺蛳粉","冬季","广西"],None,"free",None),
|
||||
("烤全羊 🐑","🐑","内蒙古烤全羊外焦里嫩豪迈冬日盛宴","内蒙古·呼和浩特","内蒙古",["烤全羊","冬季","蒙古菜"],None,"free",None),
|
||||
("胡辣汤 🥣","🥣","河南胡辣汤浓稠辛辣配油条水煎包冬日暖身","河南·周口","河南",["胡辣汤","冬季","早餐"],None,"free",None),
|
||||
("过桥米线 🍜","🍜","云南过桥米线汤鲜料足冬日暖胃首选","云南·蒙自","云南",["过桥米线","冬季","云南菜"],None,"free",None),
|
||||
("冻梨 🍐","🍐","东北冻梨黑如墨汁解冻后吸汁如蜜冬日限定","黑龙江·哈尔滨","黑龙江",["冻梨","冬季","东北特产"],None,"free",None),
|
||||
("羊杂碎 🍵","🍵","宁夏羊杂碎汤浓味鲜冬日暖身暖胃","宁夏·银川","宁夏",["羊杂碎","冬季","西北菜"],None,"free",None),
|
||||
("小鸡炖蘑菇 🍄","🍄","东北小鸡炖榛蘑鲜香浓郁冬日硬菜","辽宁·沈阳","辽宁",["小鸡炖蘑菇","冬季","东北菜"],None,"free",None),
|
||||
("驴肉火烧 🫓","🫓","保定驴肉火烧外酥里嫩天上龙肉地下驴肉","河北·保定","河北",["驴肉火烧","冬季","河北"],None,"free",None),
|
||||
("麻辣烫 🌶️","🌶️","天水麻辣烫香辣过瘾冬日街头暖身神器","甘肃·天水","甘肃",["麻辣烫","冬季","街头小吃"],None,"free",None),
|
||||
("杀猪菜 🥬","🥬","东北杀猪菜血肠酸菜白肉年关传统大菜","吉林·长春","吉林",["杀猪菜","冬季","东北菜"],None,"free",None),
|
||||
("臭豆腐 🧈","🧈","长沙臭豆腐外焦里嫩闻着臭吃着香","湖南·长沙·坡子街","湖南",["臭豆腐","冬季","街头小吃"],None,"free",None),
|
||||
("豆汁 🥛","🥛","老北京豆汁配焦圈酸爽独特冬日清晨","北京·护国寺","北京",["豆汁","冬季","老北京"],None,"free",None),
|
||||
("糖葫芦(草莓)🍓","🍓","草莓冰糖葫芦鲜红欲滴酸甜可口","天津·古文化街","天津",["糖葫芦","冬季","草莓"],None,"free",None),
|
||||
]
|
||||
|
||||
F[2] = [
|
||||
("春卷 🥟","🥟","立春吃春卷薄皮裹鲜蔬咬一口春意盎然","上海·城隍庙","上海",["春卷","立春","传统美食"],None,"free",None),
|
||||
("元宵 🥣","🥣","元宵节吃元宵芝麻花生馅滚圆甜蜜","浙江·宁波","浙江",["元宵","元宵节","传统美食"],None,"free",None),
|
||||
("甘蔗 🌿","🌿","广西黑皮甘蔗清甜多汁冬末春初最佳","广西·玉林","广西",["甘蔗","冬末","水果"],None,"free",None),
|
||||
("年糕 🍚","🍚","春节年糕寓意年年高炒煮炸皆美味","浙江·宁波","浙江",["年糕","春节","传统美食"],None,"free",None),
|
||||
("腊肉 🥩","🥩","四川腊肉经冬熏制麻辣烟熏风味独特","四川·成都","四川",["腊肉","冬末","川味"],None,"free",None),
|
||||
("饺子 🥟","🥟","北方过年吃饺子猪肉白菜韭菜三鲜","山东·济南","山东",["饺子","春节","传统美食"],None,"free",None),
|
||||
("春笋初探 🎋","🎋","岭南早春第一笋鲜嫩脆爽油焖最佳","广东·韶关","广东",["春笋","早春","时蔬"],None,"free",None),
|
||||
("柑橘 🍊","🍊","春见柑橘甜蜜收官果肉细嫩化渣","四川·蒲江","四川",["柑橘","冬末","水果"],None,"free",None),
|
||||
("冰糖葫芦 🍡","🍡","寒冬腊月一串红艳艳北方人最深的冬日记忆","北京·南锣鼓巷","北京",["冰糖葫芦","冬季","街头小吃"],None,"free",None),
|
||||
("八宝饭 🍚","🍚","春节传统甜品糯米八宝甜糯软滑年味十足","江苏·苏州","江苏",["八宝饭","春节","甜品"],None,"free",None),
|
||||
("汤圆 🥣","🥣","元宵节汤圆黑芝麻馅流心甜蜜团团圆圆","四川·成都","四川",["汤圆","元宵节","传统美食"],None,"free",None),
|
||||
("火锅 🍲","🍲","成都火锅麻辣鲜香冬日聚会首选","四川·成都","四川",["火锅","冬末","麻辣"],None,"free",None),
|
||||
("枇杷(云南早熟)🍊","🍊","春日第一鲜金黄饱满酸甜多汁润肺止咳","云南·蒙自","云南",["枇杷","早春","水果"],1300,"free",None),
|
||||
("锅盔 🫓","🫓","陕西锅盔外酥里软夹肉夹菜皆宜","陕西·宝鸡","陕西",["锅盔","冬末","面食"],None,"free",None),
|
||||
("烤鱼 🐟","🐟","万州烤鱼香辣鲜嫩冬夜围炉烤鱼暖身","重庆·万州","重庆",["烤鱼","冬末","川渝菜"],None,"free",None),
|
||||
("豆腐脑 🥣","🥣","北方咸豆腐脑配卤汁冬晨暖胃","北京·护国寺","北京",["豆腐脑","冬末","早餐"],None,"free",None),
|
||||
("炸酱面 🍜","🍜","老北京炸酱面黄酱肉丁拌面冬日扎实","北京·前门","北京",["炸酱面","冬末","北京菜"],None,"free",None),
|
||||
("红糖糍粑 🍘","🍘","四川红糖糍粑外酥内糯红糖流心","四川·成都","四川",["糍粑","冬末","甜品"],None,"free",None),
|
||||
("羊肉泡馍 🍲","🍲","西安羊肉泡馍浓汤鲜香掰馍泡汤冬日暖身","陕西·西安","陕西",["羊肉泡馍","冬末","西北菜"],None,"free",None),
|
||||
("菠萝 🍍","🍍","徐闻菠萝初上市春日热带鲜果酸甜可口","广东·湛江·徐闻","广东",["菠萝","早春","热带水果"],None,"free",None),
|
||||
("草莓 🍓","🍓","丹东99草莓个大香甜冬末春初最佳赏味","辽宁·丹东","辽宁",["草莓","冬末","水果"],None,"free",None),
|
||||
("米线 🍜","🍜","云南小锅米线鲜香热辣冬春之交暖胃","云南·昆明","云南",["米线","冬末","云南菜"],None,"free",None),
|
||||
("馄饨 🥟","🥟","上海小馄饨皮薄馅鲜冬晨一碗暖到心","上海·城隍庙","上海",["馄饨","冬末","早餐"],None,"free",None),
|
||||
("酸辣粉 🌶️","🌶️","重庆酸辣粉酸辣爽滑冬末开胃解馋","重庆·磁器口","重庆",["酸辣粉","冬末","重庆小吃"],None,"free",None),
|
||||
("青团 🍡","🍡","江南青团初上市艾草清香豆沙甜蜜","浙江·杭州","浙江",["青团","早春","传统美食"],None,"free",None),
|
||||
("糖油果子 🍩","🍩","成都糖油果子外酥内糯红糖裹身甜蜜暖冬","四川·成都","四川",["糖油果子","冬末","成都小吃"],None,"free",None),
|
||||
("卤煮 🍲","🍲","北京卤煮火烧肠肺豆腐浸浓汤冬日硬核早餐","北京·南横街","北京",["卤煮","冬末","北京小吃"],None,"free",None),
|
||||
("烤红薯 🍠","🍠","冬末烤红薯焦糖香浓暖手暖胃","河南·郑州","河南",["烤红薯","冬末","街头小吃"],None,"free",None),
|
||||
]
|
||||
|
||||
F[3] = [
|
||||
("春笋 🎋","🎋","惊蛰春笋破土出鲜嫩脆甜腌笃鲜上品","浙江·临安","浙江",["春笋","惊蛰","时蔬"],None,"free",None),
|
||||
("青团 🍡","🍡","清明青团艾草香豆沙蛋黄肉松馅江南春味","上海·杏花楼","上海",["青团","清明","传统美食"],None,"free",None),
|
||||
("荠菜 🥬","🥬","三月三荠菜赛灵丹荠菜馄饨春卷鲜掉眉毛","江苏·南京","江苏",["荠菜","春季","时蔬"],None,"free",None),
|
||||
("香椿 🌿","🌿","香椿芽炒鸡蛋春日限定美味香气浓郁","山东·沂蒙","山东",["香椿","春季","时蔬"],None,"free",None),
|
||||
("菠萝 🍍","🍍","徐闻菠萝金黄香甜春日热带鲜果","广东·湛江·徐闻","广东",["菠萝","春季","热带水果"],None,"free",None),
|
||||
("明前茶 🍵","🍵","明前龙井一芽一叶嫩绿清香春日雅饮","浙江·杭州·西湖","浙江",["明前茶","龙井","春季"],None,"free",None),
|
||||
("枇杷 🍊","🍊","云南蒙自枇杷金黄饱满春日第一鲜果","云南·蒙自","云南",["枇杷","春季","水果"],1300,"free",None),
|
||||
("螺蛳 🐚","🐚","清明螺蛳赛肥鹅紫苏爆炒鲜嫩入味","江苏·苏州","江苏",["螺蛳","清明","河鲜"],None,"free",None),
|
||||
("豌豆尖 🌱","🌱","春日豌豆尖鲜嫩翠绿清炒煮汤皆宜","四川·成都","四川",["豌豆尖","春季","时蔬"],None,"free",None),
|
||||
("草莓 🍓","🍓","春季草莓大量上市红润饱满香甜多汁","辽宁·丹东","辽宁",["草莓","春季","水果"],None,"free",None),
|
||||
("腌笃鲜 🍲","🍲","春笋咸肉鲜蹄煲汤江南春日第一鲜汤","江苏·苏州","江苏",["腌笃鲜","春季","江南菜"],None,"free",None),
|
||||
("春饼 🫓","🫓","立春吃春饼卷菜薄饼裹合菜咬春迎新","北京·前门","北京",["春饼","立春","传统美食"],None,"free",None),
|
||||
("马兰头 🥬","🥬","马兰头拌香干春日野菜清香爽口","浙江·杭州","浙江",["马兰头","春季","野菜"],None,"free",None),
|
||||
("河豚 🐡","🐡","扬中河豚鲜嫩肥美春日至味","江苏·扬中","江苏",["河豚","春季","河鲜"],None,"paid","时价"),
|
||||
("蚕豆 🫘","🫘","春蚕豆嫩绿清甜葱油蚕豆鲜嫩可口","上海·崇明","上海",["蚕豆","春季","时蔬"],None,"free",None),
|
||||
("碧螺春 🍵","🍵","洞庭碧螺春花果香春日品茗雅事","江苏·苏州·洞庭","江苏",["碧螺春","春季","茶"],None,"free",None),
|
||||
("槐花 🌸","🌸","槐花麦饭清香甜糯春日限定乡野美味","陕西·渭南","陕西",["槐花","春季","时蔬"],None,"free",None),
|
||||
("樱桃 🍒","🍒","大棚樱桃初上市红润饱满酸甜可口","山东·烟台","山东",["樱桃","春季","水果"],None,"free",None),
|
||||
("油焖笋 🎋","🎋","临安春笋油焖浓油赤酱鲜嫩入味","浙江·临安","浙江",["油焖笋","春季","时蔬"],None,"free",None),
|
||||
("蒜薹 🧄","🧄","春日蒜薹鲜嫩脆甜炒腊肉绝配","山东·金乡","山东",["蒜薹","春季","时蔬"],None,"free",None),
|
||||
("春茶 🍵","🍵","安吉白茶春日开采鲜爽甘醇春味入茶","浙江·安吉","浙江",["白茶","春季","茶"],None,"free",None),
|
||||
("韭菜 🥬","🥬","春韭鲜嫩赛过肉韭菜盒子炒蛋春日限定","河南·驻马店","河南",["韭菜","春季","时蔬"],None,"free",None),
|
||||
("蕨菜 🌿","🌿","春日蕨菜鲜嫩凉拌蕨菜清脆爽口","贵州·黔南","贵州",["蕨菜","春季","野菜"],None,"free",None),
|
||||
("竹筒饭 🍚","🍚","云南竹筒饭竹香四溢糯米腊肉春日野趣","云南·西双版纳","云南",["竹筒饭","春季","云南"],None,"free",None),
|
||||
("荠菜馄饨 🥟","🥟","荠菜猪肉馄饨春日鲜香暖胃","上海·弄堂","上海",["荠菜馄饨","春季","江南"],None,"free",None),
|
||||
("鲜花饼 🌸","🌸","云南玫瑰鲜花饼酥皮玫瑰馅花香四溢","云南·昆明","云南",["鲜花饼","春季","云南特产"],None,"free",None),
|
||||
("龙井虾仁 🦐","🦐","龙井茶配鲜虾仁茶香鲜嫩春日名菜","浙江·杭州","浙江",["龙井虾仁","春季","杭帮菜"],None,"free",None),
|
||||
("乌米饭 🍚","🍚","立夏前乌米饭乌叶染米紫黑软糯","浙江·杭州","浙江",["乌米饭","春季","传统美食"],None,"free",None),
|
||||
("榆钱 🌿","🌿","榆钱窝窝头清甜软糯春日乡野限定","河北·保定","河北",["榆钱","春季","野菜"],None,"free",None),
|
||||
("枸杞芽 🌿","🌿","宁夏枸杞芽清肝明目凉拌炒蛋皆宜","宁夏·中宁","宁夏",["枸杞芽","春季","时蔬"],None,"free",None),
|
||||
("菠萝饭 🍍","🍍","菠萝蒸饭果香四溢酸甜软糯热带风味","云南·西双版纳","云南",["菠萝饭","春季","云南"],None,"free",None),
|
||||
]
|
||||
|
||||
# Months 4-12 follow the same pattern - using compact data
|
||||
# Due to size, we use a rotation approach with 28-31 items per month
|
||||
|
||||
F[4] = [
|
||||
("樱桃 🍒","🍒","初夏红宝石烟台大连饱满圆润","山东·烟台","山东",["樱桃","春季","水果"],None,"free",None),
|
||||
("枇杷 🍊","🍊","果中之皇金黄饱满酸甜多汁润肺止咳","浙江·黄岩","浙江",["枇杷","春季","水果"],None,"free",None),
|
||||
("明前茶 🍵","🍵","清明前后龙井茶最佳一芽一叶嫩绿清香","浙江·杭州·西湖","浙江",["明前茶","春季","茶"],None,"free",None),
|
||||
("桑葚 🫐","🫐","紫黑桑葚甜润多汁春日采摘乐趣","新疆·和田","新疆",["桑葚","春季","水果"],None,"free",None),
|
||||
("春笋 🎋","🎋","天目雷笋壳薄肉肥春笋上品赏味期极短","浙江·安吉","浙江",["春笋","春季","时蔬"],None,"free",None),
|
||||
("芒果 🥭","🥭","三亚贵妃芒初上市果肉细腻香甜浓郁","海南·三亚","海南",["芒果","春季","热带水果"],None,"free",None),
|
||||
("蓝莓 🫐","🫐","云南蓝莓初上市花青素之王酸甜可口","云南·曲靖","云南",["蓝莓","春季","水果"],None,"free",None),
|
||||
("青梅 🍏","🍏","青梅煮酒论英雄泡青梅酒正当时","浙江·长兴","浙江",["青梅","春季","水果"],None,"free",None),
|
||||
("香椿 🌿","🌿","谷雨前后香椿最嫩香椿炒蛋春日绝配","山东·沂蒙","山东",["香椿","谷雨","时蔬"],None,"free",None),
|
||||
("乌米饭 🍚","🍚","立夏乌米饭乌叶染米紫黑软糯清香","浙江·杭州","浙江",["乌米饭","立夏","传统美食"],None,"free",None),
|
||||
("蚕豆 🫘","🫘","春蚕豆嫩绿清甜葱油蚕豆鲜嫩可口","上海·崇明","上海",["蚕豆","春季","时蔬"],None,"free",None),
|
||||
("谷雨茶 🍵","🍵","谷雨茶二春茶鲜爽回甘性价比之王","福建·武夷山","福建",["谷雨茶","春季","茶"],None,"free",None),
|
||||
("芦笋 🌱","🌱","崇明岛芦笋鲜嫩翠绿白灼清炒皆宜","上海·崇明","上海",["芦笋","春季","时蔬"],None,"free",None),
|
||||
("草莓 🍓","🍓","春季草莓尾声红颜章姬最后一波","辽宁·丹东","辽宁",["草莓","春季","水果"],None,"free",None),
|
||||
("椰子 🥥","🥥","海南椰子水清甜解渴椰肉炖鸡滋补","海南·文昌","海南",["椰子","春季","热带水果"],None,"free",None),
|
||||
("白茶 🍵","🍵","福鼎白茶春日开采白毫银针鲜爽回甘","福建·福鼎","福建",["白茶","春季","茶"],None,"free",None),
|
||||
("豌豆黄 🍨","🍨","北京豌豆黄细腻甜糯春日宫廷小点","北京·仿膳","北京",["豌豆黄","春季","北京小吃"],None,"free",None),
|
||||
("莼菜 🥬","🥬","西湖莼菜汤滑嫩清爽春日江南名菜","浙江·杭州·西湖","浙江",["莼菜","春季","江南菜"],None,"free",None),
|
||||
("鲜花饼 🌸","🌸","云南玫瑰鲜花饼酥皮玫瑰馅花香四溢","云南·昆明","云南",["鲜花饼","春季","云南特产"],None,"free",None),
|
||||
("龙井虾仁 🦐","🦐","龙井茶配鲜虾仁茶香鲜嫩春日名菜","浙江·杭州","浙江",["龙井虾仁","春季","杭帮菜"],None,"free",None),
|
||||
("菠萝蜜 🍈","🍈","海南菠萝蜜果肉金黄甜蜜浓郁热带之王","海南·万宁","海南",["菠萝蜜","春季","热带水果"],None,"free",None),
|
||||
("荔枝蜜 🍯","🍯","从化荔枝蜜清甜芳香春日天然甜品","广东·从化","广东",["荔枝蜜","春季","蜂蜜"],None,"free",None),
|
||||
("苦笋 🎋","🎋","四川苦笋苦中回甘凉拌炒肉皆宜","四川·宜宾","四川",["苦笋","春季","时蔬"],None,"free",None),
|
||||
("艾草青团 🍡","🍡","清明青团尾声蛋黄肉松马兰头馅","江苏·苏州","江苏",["青团","清明","传统美食"],None,"free",None),
|
||||
("竹笋炖鸡 🍗","🍗","春笋炖土鸡鲜香浓郁春日滋补","浙江·临安","浙江",["竹笋炖鸡","春季","滋补"],None,"free",None),
|
||||
("樱桃肉 🍖","🍖","苏菜樱桃肉色泽红亮酸甜软糯春日名菜","江苏·苏州","江苏",["樱桃肉","春季","苏菜"],None,"free",None),
|
||||
("野菜宴 🥬","🥬","春日野菜大集合荠菜马兰头蒲公英","云南·昆明","云南",["野菜","春季","时蔬"],None,"free",None),
|
||||
("春卷 🥟","🥟","越南春卷薄皮鲜蔬清爽春日轻食","广西·东兴","广西",["春卷","春季","轻食"],None,"free",None),
|
||||
("枇杷膏 🍯","🍯","自制枇杷膏润肺止咳春日养生佳品","浙江·塘栖","浙江",["枇杷膏","春季","养生"],None,"free",None),
|
||||
("菠萝咕噜肉 🍖","🍖","菠萝季做咕噜肉酸甜酥脆春日开胃","广东·广州","广东",["咕噜肉","春季","粤菜"],None,"free",None),
|
||||
]
|
||||
|
||||
# Months 5-12: reuse similar patterns with seasonal variations
|
||||
# 5=初夏, 6=夏季, 7=盛夏, 8=夏末, 9=初秋, 10=深秋, 11=秋冬, 12=冬季
|
||||
|
||||
F[5] = F.get(5, [
|
||||
("小龙虾 🦞","🦞","夏季水产之王5月后壳薄肉厚虾黄饱满","湖北·潜江","湖北",["小龙虾","夏季","水产"],None,"free",None),
|
||||
("杨梅 🫐","🫐","仙居杨梅东魁荸荠种酸甜多汁初夏限定","浙江·仙居","浙江",["杨梅","初夏","水果"],None,"free",None),
|
||||
("芒果 🥭","🥭","三亚贵妃芒初上市果肉细腻香甜浓郁","海南·三亚","海南",["芒果","热带水果","初夏"],None,"free",None),
|
||||
("蓝莓 🫐","🫐","云南蓝莓大量上市花青素之王酸甜可口","云南·曲靖","云南",["蓝莓","初夏","水果"],None,"free",None),
|
||||
("枇杷 🍊","🍊","塘栖枇杷尾声果肉细嫩汁多味甜","浙江·杭州·塘栖","浙江",["枇杷","初夏","水果"],None,"free",None),
|
||||
("桑葚 🫐","🫐","紫黑桑葚甜润多汁初夏采摘乐趣","新疆·和田","新疆",["桑葚","初夏","水果"],None,"free",None),
|
||||
("樱桃 🍒","🍒","露天樱桃大量上市果大色红甜度高","山东·烟台","山东",["樱桃","初夏","水果"],None,"free",None),
|
||||
("青梅酒 🍷","🍷","青梅泡酒正当时冰糖青梅酒酸甜醇香","浙江·长兴","浙江",["青梅酒","初夏","果酒"],None,"free",None),
|
||||
("荔枝 🍒","🍒","妃子笑初上市壳薄肉厚清甜多汁","广东·增城","广东",["荔枝","初夏","水果"],None,"free",None),
|
||||
("莲藕 🪷","🪷","初夏鲜藕脆嫩清甜凉拌藕片消暑开胃","湖北·洪湖","湖北",["莲藕","初夏","时蔬"],None,"free",None),
|
||||
("菠萝 🍍","🍍","徐闻菠萝旺季金黄香甜热带风味","广东·湛江·徐闻","广东",["菠萝","初夏","热带水果"],None,"free",None),
|
||||
("杨梅酒 🍷","🍷","杨梅泡酒正当时冰糖杨梅酒酸甜醇香","浙江·仙居","浙江",["杨梅酒","初夏","果酒"],None,"free",None),
|
||||
("凉皮 🍜","🍜","陕西凉皮筋道爽滑夏日消暑开胃","陕西·西安","陕西",["凉皮","初夏","陕西小吃"],None,"free",None),
|
||||
("冰粉 🍨","🍨","四川冰粉清凉甜蜜红糖花生碎夏日解暑","四川·成都","四川",["冰粉","初夏","甜品"],None,"free",None),
|
||||
("椰子鸡 🥥","🥥","海南椰子鸡清甜滋补初夏养生首选","海南·文昌","海南",["椰子鸡","初夏","海南菜"],None,"free",None),
|
||||
("凉面 🍜","🍜","鸡丝凉面麻酱凉面初夏消暑快手餐","四川·成都","四川",["凉面","初夏","面食"],None,"free",None),
|
||||
("绿豆汤 🥣","🥣","冰镇绿豆汤清凉解暑夏日必备","江苏·苏州","江苏",["绿豆汤","初夏","消暑"],None,"free",None),
|
||||
("酸梅汤 🥤","🥤","老北京酸梅汤酸甜开胃乌梅桂花熬制","北京·信远斋","北京",["酸梅汤","初夏","消暑"],None,"free",None),
|
||||
("小龙虾(蒜蓉)🦞","🦞","蒜蓉小龙虾鲜香浓郁初夏夜宵首选","江苏·盱眙","江苏",["小龙虾","蒜蓉","初夏"],None,"free",None),
|
||||
("西瓜 🍉","🍉","初夏西瓜初上市冰镇西瓜消暑解渴","海南·三亚","海南",["西瓜","初夏","水果"],None,"free",None),
|
||||
("凉糕 🍨","🍨","四川凉糕红糖水浇淋软糯清凉","四川·宜宾","四川",["凉糕","初夏","甜品"],None,"free",None),
|
||||
("龟苓膏 🍨","🍨","广西龟苓膏清热解毒初夏养生甜品","广西·梧州","广西",["龟苓膏","初夏","养生"],None,"free",None),
|
||||
("烧仙草 🍨","🍨","福建烧仙草清凉甜蜜初夏消暑","福建·泉州","福建",["烧仙草","初夏","甜品"],None,"free",None),
|
||||
("杨枝甘露 🥭","🥭","芒果西柚西米露港式甜品初夏清爽","广东·广州","广东",["杨枝甘露","初夏","港式甜品"],None,"free",None),
|
||||
("啤酒 🍺","🍺","青岛啤酒初夏畅饮海鲜烧烤绝配","山东·青岛","山东",["啤酒","初夏","饮品"],None,"free",None),
|
||||
("小龙虾(十三香)🦞","🦞","盱眙十三香小龙虾香料丰富层次分明","江苏·盱眙","江苏",["小龙虾","十三香","初夏"],None,"free",None),
|
||||
("小龙虾(油焖)🦞","🦞","潜江油焖大虾浓油赤酱鲜香入味","湖北·潜江","湖北",["小龙虾","油焖","初夏"],None,"free",None),
|
||||
("双皮奶 🍨","🍨","顺德双皮奶香滑细腻初夏甜品经典","广东·顺德","广东",["双皮奶","初夏","甜品"],None,"free",None),
|
||||
("毛豆 🫛","🫛","盐水毛豆配啤酒初夏夜宵绝配","安徽·合肥","安徽",["毛豆","初夏","下酒菜"],None,"free",None),
|
||||
("凉拌木耳 🍄","🍄","凉拌黑木耳清爽开胃初夏小菜","四川·成都","四川",["凉拌木耳","初夏","凉菜"],None,"free",None),
|
||||
("杨梅干 🫐","🫐","自制杨梅干酸甜开胃初夏零食","浙江·仙居","浙江",["杨梅干","初夏","零食"],None,"free",None),
|
||||
])
|
||||
|
||||
# For months 6-12, we'll generate data inline in the generator
|
||||
# This keeps the data file manageable
|
||||
|
||||
print("Food data for months 1-5 loaded")
|
||||
|
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 349 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 668 B |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 68 B After Width: | Height: | Size: 386 KiB |
@@ -48,6 +48,8 @@
|
||||
</dict>
|
||||
<key>NSBluetoothAlwaysUsageDescription</key>
|
||||
<string>闲言需要使用蓝牙以发现和配对附近设备进行文件传输</string>
|
||||
<key>NSCalendarsUsageDescription</key>
|
||||
<string>闲言需要访问日历以将闲情逸致活动添加到您的日程提醒</string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>闲言需要使用相机以拍照制作壁纸、扫描二维码和文件传输扫码配对</string>
|
||||
<key>NSDocumentsFolderUsageDescription</key>
|
||||
@@ -56,6 +58,8 @@
|
||||
<string>闲言需要本地网络权限以发现和连接局域网设备</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>闲言需要使用麦克风录制语音消息</string>
|
||||
<key>NSSpeechRecognitionUsageDescription</key>
|
||||
<string>闲言需要语音识别以将您的语音转换为文字输入</string>
|
||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||
<string>闲言需要保存编辑好的卡片到您的相册</string>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
<dict>
|
||||
<key>com.apple.developer.nfc.readersession.formats</key>
|
||||
<array>
|
||||
<string>NDEF</string>
|
||||
<string>TAG</string>
|
||||
</array>
|
||||
<key>com.apple.security.application-groups</key>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 304 KiB After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 4.0 MiB After Width: | Height: | Size: 386 KiB |
62
tools/check_icon_sizes.py
Normal file
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Created: 2026-06-02
|
||||
Updated: 2026-06-02
|
||||
Name: check_icon_sizes.py
|
||||
Desc: Check actual sizes of all platform icons
|
||||
"""
|
||||
|
||||
from PIL import Image
|
||||
import os
|
||||
|
||||
BASE = '/Users/wushu/Documents/trae_projects/project/xianyan'
|
||||
|
||||
# iOS icons
|
||||
ios_dir = os.path.join(BASE, 'ios/Runner/Assets.xcassets/AppIcon.appiconset')
|
||||
print('=== iOS Runner AppIcon ===')
|
||||
for f in sorted(os.listdir(ios_dir)):
|
||||
if f.endswith('.png'):
|
||||
img = Image.open(os.path.join(ios_dir, f))
|
||||
print(f' {f}: {img.size[0]}x{img.size[1]}')
|
||||
|
||||
# iOS Widget icons
|
||||
widget_dir = os.path.join(BASE, 'ios/XianyanWidget/Assets.xcassets/AppIcon.appiconset')
|
||||
print('\n=== iOS Widget AppIcon ===')
|
||||
for f in sorted(os.listdir(widget_dir)):
|
||||
if f.endswith('.png'):
|
||||
img = Image.open(os.path.join(widget_dir, f))
|
||||
print(f' {f}: {img.size[0]}x{img.size[1]}')
|
||||
|
||||
# macOS icons
|
||||
macos_dir = os.path.join(BASE, 'macos/Runner/Assets.xcassets/AppIcon.appiconset')
|
||||
print('\n=== macOS AppIcon ===')
|
||||
for f in sorted(os.listdir(macos_dir)):
|
||||
if f.endswith('.png'):
|
||||
img = Image.open(os.path.join(macos_dir, f))
|
||||
print(f' {f}: {img.size[0]}x{img.size[1]}')
|
||||
|
||||
# Android icons
|
||||
print('\n=== Android mipmap ===')
|
||||
for density in ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']:
|
||||
d = os.path.join(BASE, f'android/app/src/main/res/mipmap-{density}')
|
||||
if os.path.exists(d):
|
||||
for f in os.listdir(d):
|
||||
if f.endswith('.png'):
|
||||
img = Image.open(os.path.join(d, f))
|
||||
print(f' mipmap-{density}/{f}: {img.size[0]}x{img.size[1]}')
|
||||
|
||||
# OHOS icons
|
||||
print('\n=== OHOS icons ===')
|
||||
ohos_paths = [
|
||||
'ohos/AppScope/resources/base/media/app_icon.png',
|
||||
'ohos/AppScope/resources/base/media/foreground_icon.png',
|
||||
'ohos/entry/src/main/resources/base/media/icon.png',
|
||||
'ohos/entry/src/main/resources/base/media/foreground_icon.png',
|
||||
]
|
||||
for p in ohos_paths:
|
||||
full = os.path.join(BASE, p)
|
||||
if os.path.exists(full):
|
||||
img = Image.open(full)
|
||||
print(f' {p}: {img.size[0]}x{img.size[1]}')
|
||||
else:
|
||||
print(f' {p}: NOT FOUND')
|
||||
212
tools/replace_platform_icons.py
Normal file
@@ -0,0 +1,212 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Created: 2026-06-02
|
||||
Updated: 2026-06-02
|
||||
Name: replace_platform_icons.py
|
||||
Desc: Replace app icons for iOS, macOS, Android, OHOS platforms
|
||||
using processed icons from assets/templates/resized folder.
|
||||
Original icons are backed up before replacement.
|
||||
"""
|
||||
|
||||
import os
|
||||
import shutil
|
||||
from PIL import Image
|
||||
|
||||
BASE = '/Users/wushu/Documents/trae_projects/project/xianyan'
|
||||
SOURCE_DIR = os.path.join(BASE, 'assets/templates/resized')
|
||||
BACKUP_ROOT = os.path.join(BASE, 'assets/templates/backup_platform_icons')
|
||||
|
||||
|
||||
def get_source_icon(size):
|
||||
"""Get source icon path for a given pixel size."""
|
||||
filename = f'icon_{size}x{size}.png'
|
||||
path = os.path.join(SOURCE_DIR, filename)
|
||||
if os.path.exists(path):
|
||||
return path
|
||||
print(f" WARNING: Source icon {filename} not found!")
|
||||
return None
|
||||
|
||||
|
||||
def backup_and_replace(target_path, source_path):
|
||||
"""Backup original icon and replace with new one."""
|
||||
if not os.path.exists(target_path):
|
||||
print(f" SKIP: Target not found: {target_path}")
|
||||
return False
|
||||
|
||||
# Create backup path maintaining directory structure
|
||||
rel_path = os.path.relpath(target_path, BASE)
|
||||
backup_path = os.path.join(BACKUP_ROOT, rel_path)
|
||||
backup_dir = os.path.dirname(backup_path)
|
||||
os.makedirs(backup_dir, exist_ok=True)
|
||||
|
||||
# Backup if not already backed up
|
||||
if not os.path.exists(backup_path):
|
||||
shutil.copy2(target_path, backup_path)
|
||||
|
||||
# Copy source to target
|
||||
shutil.copy2(source_path, target_path)
|
||||
|
||||
# Verify
|
||||
new_img = Image.open(target_path)
|
||||
src_img = Image.open(source_path)
|
||||
if new_img.size == src_img.size:
|
||||
return True
|
||||
else:
|
||||
print(f" ERROR: Size mismatch after copy! {new_img.size} vs {src_img.size}")
|
||||
return False
|
||||
|
||||
|
||||
def replace_ios_runner():
|
||||
"""Replace iOS Runner app icons."""
|
||||
print("\n=== iOS Runner AppIcon ===")
|
||||
ios_dir = os.path.join(BASE, 'ios/Runner/Assets.xcassets/AppIcon.appiconset')
|
||||
|
||||
# Mapping: target_filename -> source_pixel_size
|
||||
mapping = {
|
||||
'Icon-App-1024x1024@1x.png': 1024,
|
||||
'Icon-App-20x20@1x.png': 20,
|
||||
'Icon-App-20x20@2x.png': 40,
|
||||
'Icon-App-20x20@3x.png': 60,
|
||||
'Icon-App-29x29@1x.png': 29,
|
||||
'Icon-App-29x29@2x.png': 58,
|
||||
'Icon-App-29x29@3x.png': 87,
|
||||
'Icon-App-40x40@1x.png': 40,
|
||||
'Icon-App-40x40@2x.png': 80,
|
||||
'Icon-App-40x40@3x.png': 120,
|
||||
'Icon-App-60x60@2x.png': 120,
|
||||
'Icon-App-60x60@3x.png': 180,
|
||||
'Icon-App-76x76@1x.png': 76,
|
||||
'Icon-App-76x76@2x.png': 152,
|
||||
'Icon-App-83.5x83.5@2x.png': 167,
|
||||
}
|
||||
|
||||
count = 0
|
||||
for target_name, size in mapping.items():
|
||||
source = get_source_icon(size)
|
||||
if source:
|
||||
target = os.path.join(ios_dir, target_name)
|
||||
if backup_and_replace(target, source):
|
||||
print(f" OK: {target_name} <- icon_{size}x{size}.png")
|
||||
count += 1
|
||||
print(f" Replaced: {count}/{len(mapping)}")
|
||||
return count
|
||||
|
||||
|
||||
def replace_ios_widget():
|
||||
"""Replace iOS Widget app icon."""
|
||||
print("\n=== iOS Widget AppIcon ===")
|
||||
widget_dir = os.path.join(BASE, 'ios/XianyanWidget/Assets.xcassets/AppIcon.appiconset')
|
||||
|
||||
mapping = {
|
||||
'Icon-App-1024x1024.png': 1024,
|
||||
}
|
||||
|
||||
count = 0
|
||||
for target_name, size in mapping.items():
|
||||
source = get_source_icon(size)
|
||||
if source:
|
||||
target = os.path.join(widget_dir, target_name)
|
||||
if backup_and_replace(target, source):
|
||||
print(f" OK: {target_name} <- icon_{size}x{size}.png")
|
||||
count += 1
|
||||
print(f" Replaced: {count}/{len(mapping)}")
|
||||
return count
|
||||
|
||||
|
||||
def replace_macos():
|
||||
"""Replace macOS app icons."""
|
||||
print("\n=== macOS AppIcon ===")
|
||||
macos_dir = os.path.join(BASE, 'macos/Runner/Assets.xcassets/AppIcon.appiconset')
|
||||
|
||||
mapping = {
|
||||
'app_icon_16.png': 16,
|
||||
'app_icon_32.png': 32,
|
||||
'app_icon_64.png': 64,
|
||||
'app_icon_128.png': 128,
|
||||
'app_icon_256.png': 256,
|
||||
'app_icon_512.png': 512,
|
||||
'app_icon_1024.png': 1024,
|
||||
}
|
||||
|
||||
count = 0
|
||||
for target_name, size in mapping.items():
|
||||
source = get_source_icon(size)
|
||||
if source:
|
||||
target = os.path.join(macos_dir, target_name)
|
||||
if backup_and_replace(target, source):
|
||||
print(f" OK: {target_name} <- icon_{size}x{size}.png")
|
||||
count += 1
|
||||
print(f" Replaced: {count}/{len(mapping)}")
|
||||
return count
|
||||
|
||||
|
||||
def replace_android():
|
||||
"""Replace Android launcher icons."""
|
||||
print("\n=== Android mipmap ===")
|
||||
res_dir = os.path.join(BASE, 'android/app/src/main/res')
|
||||
|
||||
# Android density -> pixel size
|
||||
mapping = {
|
||||
'mipmap-mdpi': 48,
|
||||
'mipmap-hdpi': 72,
|
||||
'mipmap-xhdpi': 96,
|
||||
'mipmap-xxhdpi': 144,
|
||||
'mipmap-xxxhdpi': 192,
|
||||
}
|
||||
|
||||
count = 0
|
||||
for density, size in mapping.items():
|
||||
source = get_source_icon(size)
|
||||
if source:
|
||||
target = os.path.join(res_dir, density, 'ic_launcher.png')
|
||||
if backup_and_replace(target, source):
|
||||
print(f" OK: {density}/ic_launcher.png <- icon_{size}x{size}.png")
|
||||
count += 1
|
||||
print(f" Replaced: {count}/{len(mapping)}")
|
||||
return count
|
||||
|
||||
|
||||
def replace_ohos():
|
||||
"""Replace OHOS (HarmonyOS) app icons."""
|
||||
print("\n=== OHOS icons ===")
|
||||
|
||||
# All OHOS icons are 1024x1024
|
||||
paths = [
|
||||
'ohos/AppScope/resources/base/media/app_icon.png',
|
||||
'ohos/AppScope/resources/base/media/foreground_icon.png',
|
||||
'ohos/entry/src/main/resources/base/media/icon.png',
|
||||
'ohos/entry/src/main/resources/base/media/foreground_icon.png',
|
||||
]
|
||||
|
||||
source = get_source_icon(1024)
|
||||
count = 0
|
||||
if source:
|
||||
for rel_path in paths:
|
||||
target = os.path.join(BASE, rel_path)
|
||||
if backup_and_replace(target, source):
|
||||
print(f" OK: {rel_path} <- icon_1024x1024.png")
|
||||
count += 1
|
||||
print(f" Replaced: {count}/{len(paths)}")
|
||||
return count
|
||||
|
||||
|
||||
def main():
|
||||
os.makedirs(BACKUP_ROOT, exist_ok=True)
|
||||
print(f"Source: {SOURCE_DIR}")
|
||||
print(f"Backup: {BACKUP_ROOT}")
|
||||
|
||||
total = 0
|
||||
total += replace_ios_runner()
|
||||
total += replace_ios_widget()
|
||||
total += replace_macos()
|
||||
total += replace_android()
|
||||
total += replace_ohos()
|
||||
|
||||
print(f"\n{'='*60}")
|
||||
print(f"Total icons replaced: {total}")
|
||||
print(f"Backup location: {BACKUP_ROOT}")
|
||||
print("Done!")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||