新增农历、运势、唐诗、地址、时间、谜语等接口及对应数据
This commit is contained in:
@@ -0,0 +1,6 @@
|
|||||||
|
# API-Python
|
||||||
|
|
||||||
|
> 基于Python的本地Web API项目
|
||||||
|
|
||||||
|
#### v260512
|
||||||
|
1. 新增农历、运势、唐诗、地址、时间、谜语等接口及对应数据
|
||||||
Binary file not shown.
Executable
+802
@@ -0,0 +1,802 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"title": "钟离成道",
|
||||||
|
"type": "上签子宫",
|
||||||
|
"poetry": "开天辟地作良缘。吉日良时万物全。若得此签非小可。人行忠正帝王宣。",
|
||||||
|
"meaning": "此卦盘古初开天地之象。诸事皆吉也。",
|
||||||
|
"explanation": "急速兆速。年未值时。观音降笔。先报君知。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"title": "苏秦不第",
|
||||||
|
"type": "中签子宫",
|
||||||
|
"poetry": "鲸鱼未变守江河。不可升腾更望高。异日峥嵘身变化。许君一跃跳龙门。",
|
||||||
|
"meaning": "此卦鲸鱼未变之象。凡事忍耐待时。",
|
||||||
|
"explanation": "得忍且忍。得耐且耐。身不须忙。功名自在。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"title": "董永遇仙",
|
||||||
|
"type": "上签子宫",
|
||||||
|
"poetry": "临风冒雨去还乡。正是其身似燕儿。衔得坭来欲作垒。到头垒坏复须坭。",
|
||||||
|
"meaning": "此卦燕子衔坭之象。凡事劳心费力也。",
|
||||||
|
"explanation": "千般用计。晨昏不停。谁知此事。到底劳心。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 4,
|
||||||
|
"title": "玉莲会十朋",
|
||||||
|
"type": "上签子宫",
|
||||||
|
"poetry": "千年古镜复重圆。女再求夫男再婚。自此门庭重改换。更添福禄在儿孙。",
|
||||||
|
"meaning": "此卦古镜重圆之象。凡事劳心有贵也。",
|
||||||
|
"explanation": "淘沙成金。骑龙踏虎。虽是劳心。于中有补。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 5,
|
||||||
|
"title": "刘晨遇仙",
|
||||||
|
"type": "中签丑宫",
|
||||||
|
"poetry": "一锥草地要求泉。努力求之得最难。无意俄然遇知己。相逢携手上青天。",
|
||||||
|
"meaning": "此卦锥地求泉之象。凡事先难后易也。",
|
||||||
|
"explanation": "欲望心事。西方可求。不如莫动。立地可谋。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 6,
|
||||||
|
"title": "仁贵遇主",
|
||||||
|
"type": "中签丑宫",
|
||||||
|
"poetry": "投身岩下铜鸟居。须是还他大丈夫。拾得营谋谁可得。通行天地此人无。",
|
||||||
|
"meaning": "此卦投岩铜鸟之象。凡事宜顺吉之兆。",
|
||||||
|
"explanation": "食用无余。身清岂贫。待时利乐。改旧从新。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 7,
|
||||||
|
"title": "苏娘走难",
|
||||||
|
"type": "下签丑宫",
|
||||||
|
"poetry": "奔波阻隔重重险。带水拖泥去度山。更望他乡求用事。千山万水未回还。",
|
||||||
|
"meaning": "此卦拖泥带水之象。凡事守旧则吉也。",
|
||||||
|
"explanation": "退身可得。进步为难。只宜守旧。莫望高扳。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 8,
|
||||||
|
"title": "姚能遇仙",
|
||||||
|
"type": "上签丑宫",
|
||||||
|
"poetry": "茂林松柏正兴旺。雨雪风霜总莫为。异日忽然鸿鹄至。东南西北任君飞。",
|
||||||
|
"meaning": "此卦松柏茂林之象。凡事有贵气也。",
|
||||||
|
"explanation": "路上亨通。终身有功。田蚕丰熟。家道兴隆。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 9,
|
||||||
|
"title": "孔明点将",
|
||||||
|
"type": "上签寅宫",
|
||||||
|
"poetry": "烦君勿作私心事。此意偏宜说问公。一片明心光皎洁。宛如皎月正天中。",
|
||||||
|
"meaning": "此卦皎月当空之象。凡事光明通气也。",
|
||||||
|
"explanation": "心中正直。理顺法宽。圣无私语。终有分明。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"title": "庞涓观阵",
|
||||||
|
"type": "下签寅宫",
|
||||||
|
"poetry": "石藏无价玉和珍。只管他乡外客寻。宛如持灯更觅火。不如收拾枉劳心。",
|
||||||
|
"meaning": "此卦持灯觅火之象。凡事待时成就也。",
|
||||||
|
"explanation": "姻缘会遇。何事不成。须无别意。眼前是真。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 11,
|
||||||
|
"title": "书荐姜维",
|
||||||
|
"type": "上签寅宫",
|
||||||
|
"poetry": "欲求胜事可非常。争奈亲姻日暂忙。到头竟必成鹿箭。贵人指引贵人乡。",
|
||||||
|
"meaning": "此卦因祸得福之象。凡事营谋吉利也。",
|
||||||
|
"explanation": "有意兴变。到底安然。若问用事。只近贵人。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"title": "武吉遇师",
|
||||||
|
"type": "上签寅宫",
|
||||||
|
"poetry": "否去泰来咫尺间。暂交君子出于山。若逢虎兔佳音信。立志忙中事即闲。",
|
||||||
|
"meaning": "此卦祸中有福之象。凡事先凶后吉也。",
|
||||||
|
"explanation": "换麻得丝。击人双足。要见分明。因灾得福。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 13,
|
||||||
|
"title": "姜公钓鱼",
|
||||||
|
"type": "中签寅宫",
|
||||||
|
"poetry": "自小生在富贵家。眼前万物总奢华。蒙君赐紫金角带。四海声名定可夸。",
|
||||||
|
"meaning": "此卦龙门得通之象。凡事有变大吉也。",
|
||||||
|
"explanation": "囚徒得赦。病遇良医。龙门得过。名显皇都。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 14,
|
||||||
|
"title": "子牙弃官",
|
||||||
|
"type": "中签卯宫",
|
||||||
|
"poetry": "宛如仙鹤出凡笼。脱却凡尘路路通。南北东西无阻隔。任君直上九霄宫。",
|
||||||
|
"meaning": "此卦仙鹤离笼之象。凡事先忧后吉也。",
|
||||||
|
"explanation": "任意无虞。路有亨通。随心自在。逍遥如人。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 15,
|
||||||
|
"title": "苏秦得志",
|
||||||
|
"type": "中签卯宫",
|
||||||
|
"poetry": "行人跚跚难寻。行人路中有阻隔。登山涉水恨悠悠。未得安稳只恐忧。",
|
||||||
|
"meaning": "此卦登山涉水之象。凡事有阻隔也。",
|
||||||
|
"explanation": "路上迢迢。行人未到。无些阻碍。自有功劳。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 16,
|
||||||
|
"title": "叶梦熊朝帝",
|
||||||
|
"type": "中签卯宫",
|
||||||
|
"poetry": "愁眉思虑暂时开。启出云霄喜自来。宛如粪土中藏玉。良工荐举出尘埃。",
|
||||||
|
"meaning": "此卦阴阳和合之象。凡事所谋可成也。",
|
||||||
|
"explanation": "得处无失。损中有益。小人逢凶。君子顺吉。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 17,
|
||||||
|
"title": "曹操话梅止渴",
|
||||||
|
"type": "下签卯宫",
|
||||||
|
"poetry": "莫听闲言说是非。晨昏只好念阿弥。若将妄语为真实。画饼如何止得饥。",
|
||||||
|
"meaning": "此卦画饼充饥之象。凡事多虚少实也。",
|
||||||
|
"explanation": "心中不定。枉费看经。只是画饼。徒自劳神。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 18,
|
||||||
|
"title": "曹国舅为仙",
|
||||||
|
"type": "上签卯宫",
|
||||||
|
"poetry": "金乌西坠兔东升。日夜循环至古今。僧道得知无不利。士农工商各从心。",
|
||||||
|
"meaning": "此卦阴阳消长之象。凡事遂意之兆也。",
|
||||||
|
"explanation": "心中无事。所作有功。如弓上箭。一时当空。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 19,
|
||||||
|
"title": "子仪封王",
|
||||||
|
"type": "上签辰宫",
|
||||||
|
"poetry": "急水滩头放船归。风波作浪欲何为。若要安然求稳地。等待浪静过此危。",
|
||||||
|
"meaning": "此卦船行急滩之象。凡事守旧待时也。",
|
||||||
|
"explanation": "急水登舟。静待浪平。心中用事。贵人重重。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 20,
|
||||||
|
"title": "姜太公遇文王",
|
||||||
|
"type": "上签辰宫",
|
||||||
|
"poetry": "当春久雨喜开晴。玉兔金乌渐渐明。旧事消散新事遂。看看一跳过龙门。",
|
||||||
|
"meaning": "此卦久雨初晴之象。凡事遂意也。",
|
||||||
|
"explanation": "神佛护持。有灾无危。途生平安。到底荣归。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 21,
|
||||||
|
"title": "李旦龙凤配合",
|
||||||
|
"type": "上签辰宫",
|
||||||
|
"poetry": "阴阳道合总由天。女嫁男婚喜偎然。但见龙蛇相会合。熊罴入梦乐团圆。",
|
||||||
|
"meaning": "此卦阴阳道合之象。凡事和合大吉也。",
|
||||||
|
"explanation": "谋望从心。婚姻孕男。资财进益。更利田蚕。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 22,
|
||||||
|
"title": "六郎逢救",
|
||||||
|
"type": "下签辰宫",
|
||||||
|
"poetry": "旱时田里皆枯槁。谢天甘雨落淋淋。花果草木皆润泽。始知一雨值千金。",
|
||||||
|
"meaning": "此卦旱逢甘雨之象。凡事难中有救也。",
|
||||||
|
"explanation": "田蚕倍熟。命运渐来。病遇良医。行人便回。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 23,
|
||||||
|
"title": "怀德招亲",
|
||||||
|
"type": "中签巳宫",
|
||||||
|
"poetry": "欲攀仙桂蟾宫路。岂虑天门不开放。谋望一般音信好。高人自送岭头来。",
|
||||||
|
"meaning": "此卦手扳仙桂之象。凡事必有贵人也。",
|
||||||
|
"explanation": "商贾利益。行藏无危。病安讼理。尽可施为。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 24,
|
||||||
|
"title": "殷郊遇师",
|
||||||
|
"type": "下签巳宫",
|
||||||
|
"poetry": "不成邻里不成家。水泡痴人似落花。若问君恩难得力。到头毕竟事如麻。",
|
||||||
|
"meaning": "此卦痴人逐块之象。凡事守旧待时也。",
|
||||||
|
"explanation": "宅舍不稳。自身平常。求财未遂。更忌动土。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 25,
|
||||||
|
"title": "姚能受职",
|
||||||
|
"type": "上签巳宫",
|
||||||
|
"poetry": "过了忧危第几重。从今再历永无凶。宽心自有宽心计。得遇高人护圣功。",
|
||||||
|
"meaning": "此卦古镜重圆之象。凡事有贵人也。",
|
||||||
|
"explanation": "出入营谋。贵人相扶。灾厄不相惹。渐入安途。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 26,
|
||||||
|
"title": "钟馗得道",
|
||||||
|
"type": "中签巳宫",
|
||||||
|
"poetry": "上下传来事总虚。天边接得一封书。书中许我功名事。直待终时亦是虚。",
|
||||||
|
"meaning": "此卦虚名之象。凡事虚多少实也。",
|
||||||
|
"explanation": "上下心烦。求闲不闲。欲望功名。守旧身安。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 27,
|
||||||
|
"title": "刘基谏主",
|
||||||
|
"type": "上签午宫",
|
||||||
|
"poetry": "一谋一用一番书。虑后思前不敢为。时到贵人相助力。如山墙立可安居。",
|
||||||
|
"meaning": "此卦屋好墙壁之象。凡事稳当无险也。",
|
||||||
|
"explanation": "改旧成新。寒花遇春。从前阻滞。今得称心。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 28,
|
||||||
|
"title": "李后寻包拯",
|
||||||
|
"type": "上签午宫",
|
||||||
|
"poetry": "东边月上正蝉娟。顷刻云遮亦暗存。或有圆时还有缺。更言非者亦闲言。",
|
||||||
|
"meaning": "此卦月被云遮之象。凡事昏迷未定也。",
|
||||||
|
"explanation": "浮云遮月。不须疑惑。等待云收。便见明白。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 29,
|
||||||
|
"title": "赵子龙救阿斗",
|
||||||
|
"type": "中签午宫",
|
||||||
|
"poetry": "宝剑出匣耀光明。在匣全然不惹尘。今得贵人携出现。有威有势众人钦。",
|
||||||
|
"meaning": "此卦宝剑出匣之象。凡事有威有势也。",
|
||||||
|
"explanation": "宝剑出匣。光明四海。贵人指引。无不称心。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 30,
|
||||||
|
"title": "棋盘大会",
|
||||||
|
"type": "中签午宫",
|
||||||
|
"poetry": "劝君切莫向他求。似鹤飞来暗箭投。若去采薪蛇在草。恐遭毒口也忧愁。",
|
||||||
|
"meaning": "此卦安份守己之象。凡事小心谨防也。",
|
||||||
|
"explanation": "开口合齿。闭事莫理。若是生心。到头害己。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 31,
|
||||||
|
"title": "佛印会东坡",
|
||||||
|
"type": "中签午宫",
|
||||||
|
"poetry": "清闲无事静处坐。饥时吃饭困时卧。放下身心不用忙。必定不遭殃与祸。",
|
||||||
|
"meaning": "此卦守旧安然之象。凡事时待时则吉也。",
|
||||||
|
"explanation": "道心佛心。二人同心。居家宅舍。必得安宁。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 32,
|
||||||
|
"title": "刘备求贤",
|
||||||
|
"type": "中签未宫",
|
||||||
|
"poetry": "前程杳杳定无疑。石中藏玉有谁知。一朝良匠分明剖。始觉安然碧玉期。",
|
||||||
|
"meaning": "此卦剖石见玉之象。凡事着力成功也。",
|
||||||
|
"explanation": "宝在石中。异人少知。直待分明。尽可施为。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 33,
|
||||||
|
"title": "咬金聘仁贵",
|
||||||
|
"type": "中签未宫",
|
||||||
|
"poetry": "内藏无价宝和珍。得玉何须外界寻。不如等待高人识。宽心犹且更宽心。",
|
||||||
|
"meaning": "此卦藏玉外寻之象。凡事守旧待时也。",
|
||||||
|
"explanation": "内藏金玉。不识外寻。遇贵指引。不须劳心。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 34,
|
||||||
|
"title": "文中魁星",
|
||||||
|
"type": "中签未宫",
|
||||||
|
"poetry": "行藏出入礼义恭。言必忠良信必聪。心不了然且静澈。光明红日正当中。",
|
||||||
|
"meaning": "此卦红日当空之象。凡事自有贵人相助也。",
|
||||||
|
"explanation": "心中无事。秋水澄清。在欲不染。有祸不成。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 35,
|
||||||
|
"title": "唐僧取经",
|
||||||
|
"type": "上签申宫",
|
||||||
|
"poetry": "衣冠重整旧家风。道是无穷却有功。扫却当途荆棘刺。三人约议再和同。",
|
||||||
|
"meaning": "此卦衣冠重整之象。凡事先难后易也。",
|
||||||
|
"explanation": "不用忧疑。自有佳期。若问前程。前路可宜。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 36,
|
||||||
|
"title": "湘子遇宝",
|
||||||
|
"type": "上签申宫",
|
||||||
|
"poetry": "眼前病讼不须忧。宝地资财尽可求。恰似猿猴金锁脱。自归山洞去来游。",
|
||||||
|
"meaning": "此卦猿猴脱锁之象。凡事先凶后吉也。",
|
||||||
|
"explanation": "脱除了难。家宅安吉。求财遂意。行人未至。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 37,
|
||||||
|
"title": "李靖归山",
|
||||||
|
"type": "中签申宫",
|
||||||
|
"poetry": "欲待身安动泰时。风中灯烛不相宜。不如收拾深堂坐。庶几光瑶静处期。",
|
||||||
|
"meaning": "此卦风摇灯烛之象。凡事守旧则吉也。",
|
||||||
|
"explanation": "静处安身。待时守旧。惹非招灾。定在牛后。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 38,
|
||||||
|
"title": "何文秀遇难",
|
||||||
|
"type": "中签申宫",
|
||||||
|
"poetry": "镜月当空出匣时。刹那间云雾迷。宽心守待浮云散。更改相宜可望为。",
|
||||||
|
"meaning": "此卦云雾遮月之象。凡事未遂守旧也。",
|
||||||
|
"explanation": "家道忧凶。人口有灾。祈福保庆。犹恐破财。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 39,
|
||||||
|
"title": "姜女寻夫",
|
||||||
|
"type": "下签申宫",
|
||||||
|
"poetry": "天边消息实难思。切莫多心望强求。若把石头磨作镜。精神枉费一时休。",
|
||||||
|
"meaning": "此卦守常安静之象。凡事守己则吉也。",
|
||||||
|
"explanation": "千般用计。徒劳无功。不如守旧。著力营工。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 40,
|
||||||
|
"title": "武则天登位",
|
||||||
|
"type": "上签酉宫",
|
||||||
|
"poetry": "红轮西坠兔东升。阴长阳消百事亭。若是女人宜望用。增添财禄福其心。",
|
||||||
|
"meaning": "此卦阴阳消长之象。凡事遂意之兆也。",
|
||||||
|
"explanation": "阴利女人。不宜男子。若是求谋。先凶后吉。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 41,
|
||||||
|
"title": "董卓收吕布",
|
||||||
|
"type": "中签酉宫",
|
||||||
|
"poetry": "无限好语君须记。却为隐贼做知己。莫贪眼下有些甜。可虑他时还受苦。",
|
||||||
|
"meaning": "此卦莫贪小利之象。凡事守旧则吉也。",
|
||||||
|
"explanation": "割肉成疮。自己招殃。只宜守旧。庶免灾殃。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 42,
|
||||||
|
"title": "目莲救母",
|
||||||
|
"type": "上签酉宫",
|
||||||
|
"poetry": "君皇圣后总为恩。复待祈祷无损增。一切有情皆受用。人间天下得均平。",
|
||||||
|
"meaning": "此卦天垂恩泽之象。凡事成就大吉也。",
|
||||||
|
"explanation": "天皇恩泽。始终莫忘。晨昏礼念。可宜烧香。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 43,
|
||||||
|
"title": "行者得道",
|
||||||
|
"type": "上签酉宫",
|
||||||
|
"poetry": "天地变通万物全。自荣自养自安然。生罗万象皆精彩。事事如心谢圣贤。",
|
||||||
|
"meaning": "此卦大地交泰之象。凡事大吉无危也。",
|
||||||
|
"explanation": "天生万物。谋望皆通。福德相助。瑞气匆匆。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 44,
|
||||||
|
"title": "姜维邓艾斗阵",
|
||||||
|
"type": "中签酉宫",
|
||||||
|
"poetry": "棋逢敌手著相宜。黑白盘中未决时。皆因一著知胜败。须教自有好推移。",
|
||||||
|
"meaning": "此卦棋逢敌手之象。凡事用机关则吉也。",
|
||||||
|
"explanation": "欲求心事。恰如围棋。到底胜败。宜用心机。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 45,
|
||||||
|
"title": "鲁仲连排难解纷",
|
||||||
|
"type": "上签戌宫",
|
||||||
|
"poetry": "温柔自古胜刚强。积善之门大吉昌。若是有人占此卦。宛如正渴遇琼浆。",
|
||||||
|
"meaning": "此卦积善温柔之象。凡事贵人和合也。",
|
||||||
|
"explanation": "天地有感。应验非常。佛神护佑。得之莫忘。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 46,
|
||||||
|
"title": "赵括纸上谈兵",
|
||||||
|
"type": "中签戌宫",
|
||||||
|
"poetry": "劝君耐守旧生涯。把定心肠勿起歹。直待有人轻著力。满园枯木再开花。",
|
||||||
|
"meaning": "此卦枯木生花之象。凡事自有成就也。",
|
||||||
|
"explanation": "守旧守旧。事自成就。动则多殃。静则无咎。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 47,
|
||||||
|
"title": "梁灏登科",
|
||||||
|
"type": "上签戌宫",
|
||||||
|
"poetry": "锦上添花色愈鲜。运来禄马喜双全。时人莫恨功名晚。一举登科四海传。",
|
||||||
|
"meaning": "此卦锦上添花之象。凡事大吉大利也。",
|
||||||
|
"explanation": "守旧变新。复有双营。平生志愿。皆由命亨。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 48,
|
||||||
|
"title": "韩信挂帅",
|
||||||
|
"type": "上签戌宫",
|
||||||
|
"poetry": "昆鸟秋来化作鹏。好游快乐喜飞腾。翱翔万里云霄去。余外诸禽总不能。",
|
||||||
|
"meaning": "此卦昆鹏兴变之象。凡事有变动大吉也。",
|
||||||
|
"explanation": "昆鸟化鹏。万禽不能。桂香一折。福禄自增。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 49,
|
||||||
|
"title": "王祥求鲤",
|
||||||
|
"type": "中签亥宫",
|
||||||
|
"poetry": "天寒地冻水成冰。何须贪吝取功名。只好守己静处坐。待时兴变自然明。",
|
||||||
|
"meaning": "此卦水结成冰之象。凡事不用枉求也。",
|
||||||
|
"explanation": "水冻成冰。不是目前。若问前程。且待春天。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 50,
|
||||||
|
"title": "陶朱归五湖",
|
||||||
|
"type": "上签亥宫",
|
||||||
|
"poetry": "五湖四海任君行。高挂帆篷自在撑。若得顺风随即至。满船宝贝喜层层。",
|
||||||
|
"meaning": "此卦顺风得利之象。凡事营谋大吉也。",
|
||||||
|
"explanation": "自有兴时。身强力健。入门大吉。百事亨通。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 51,
|
||||||
|
"title": "孔明入川",
|
||||||
|
"type": "上签亥宫",
|
||||||
|
"poetry": "夏日炎天日最长。人人愁热闷非常。天地也解知人意。熏风拂拂自然凉。",
|
||||||
|
"meaning": "此卦人人愁热之象。凡事随心从意也。",
|
||||||
|
"explanation": "进退莫疑。自有佳期。营谋用事。不须妄为。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 52,
|
||||||
|
"title": "太白醉捞明月",
|
||||||
|
"type": "中签亥宫",
|
||||||
|
"poetry": "水中捉月费功夫。费尽功夫却又无。莫说闲言并乱语。枉劳心力强身孤。",
|
||||||
|
"meaning": "此卦贪求费力之象。凡事守旧待时也。",
|
||||||
|
"explanation": "言语难思。费力劳心。欲求不遂。弄巧成拙。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 53,
|
||||||
|
"title": "刘备招亲",
|
||||||
|
"type": "中签子宫",
|
||||||
|
"poetry": "失意反成得意时。龙吟虎啸两相宜。青天自有通宵路。许我功名再有期。",
|
||||||
|
"meaning": "此卦龙吟虎啸之象。凡事顺意有望也。",
|
||||||
|
"explanation": "教去即去。教住即住。口有亨通。到头必利。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 54,
|
||||||
|
"title": "马超追曹",
|
||||||
|
"type": "下签子宫",
|
||||||
|
"poetry": "梦中得宝醒时无。自谓南山只是锄。若问婚姻并问事。守旧待时切莫图。",
|
||||||
|
"meaning": "此卦梦中得宝之象。凡事枉费心力也。",
|
||||||
|
"explanation": "物在水中。形影长短。皆由分定。不用商量。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 55,
|
||||||
|
"title": "周武王登位",
|
||||||
|
"type": "上签丑宫",
|
||||||
|
"poetry": "父贤传子子传孙。衣食丰隆只靠天。堂上椿萱人快乐。饥饭渴饮因时眠。",
|
||||||
|
"meaning": "此卦接竹引泉之象。凡事谋望大吉也。",
|
||||||
|
"explanation": "接竹引泉。流传不绝。君子谋望。无不欣悦。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 56,
|
||||||
|
"title": "禄山谋反",
|
||||||
|
"type": "中签丑宫",
|
||||||
|
"poetry": "滩小石溪流水响。风清明月贵人忙。路须借问何方去。休取林中花草香。",
|
||||||
|
"meaning": "此卦滩小石溪之象。凡事守旧则吉也。",
|
||||||
|
"explanation": "营谋用事。劳心费力。守旧待时。凡事大吉。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 57,
|
||||||
|
"title": "董仲寻亲",
|
||||||
|
"type": "中签丑宫",
|
||||||
|
"poetry": "说是说非风过耳。好衣好禄自当中。君莫记取他年事。汝意还如我意同。",
|
||||||
|
"meaning": "此卦孩儿见母之象。凡事贵人大吉也。",
|
||||||
|
"explanation": "所用谋望。皆大欢喜。从公用力。如子逢娘。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 58,
|
||||||
|
"title": "文王问卜",
|
||||||
|
"type": "中签丑宫",
|
||||||
|
"poetry": "直言说话君须记。莫在他乡求别艺。切须守己旧生涯。除是其余都不利。",
|
||||||
|
"meaning": "此卦守旧待时之象。凡事不如意也。",
|
||||||
|
"explanation": "得住且住。可取且踞。宜守旧路。莫望新路。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 59,
|
||||||
|
"title": "张良隐山",
|
||||||
|
"type": "中签亥宫",
|
||||||
|
"poetry": "直上重楼去藏身。四围荆棘绕为林。天高君命长和短。得一番成失二人。",
|
||||||
|
"meaning": "此卦守旧随时之象。凡事待时则吉也。",
|
||||||
|
"explanation": "如醉饮酒。只宜守旧。直待时来。无灾无咎。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 60,
|
||||||
|
"title": "赤壁鏖兵",
|
||||||
|
"type": "中签亥宫",
|
||||||
|
"poetry": "抱薪救火火增烟。烧却三千及大千。若问营谋并出入。不如收拾莫忧煎。",
|
||||||
|
"meaning": "此卦抱薪救火之象。凡事亦自谨防也。",
|
||||||
|
"explanation": "千般计较。一旦皆休。不如守旧。必定无忧。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 61,
|
||||||
|
"title": "苏小妹难夫",
|
||||||
|
"type": "中签亥宫",
|
||||||
|
"poetry": "日上吟诗月下歌。逢场作戏笑呵呵。相逢会遇难藏避。唱彩齐唱嗹哩罗。",
|
||||||
|
"meaning": "此卦阴阳和合之象。凡事所谋可成也。",
|
||||||
|
"explanation": "知音方许。闲事莫理。待得贵人。无不欢喜。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 62,
|
||||||
|
"title": "唐僧得道",
|
||||||
|
"type": "中签亥宫",
|
||||||
|
"poetry": "晨昏全赖佛扶持。虽是逢危且不危。若得贵人来接引。此时福禄自相随。",
|
||||||
|
"meaning": "此卦星移斗转之象。凡事劳心费力也。",
|
||||||
|
"explanation": "欲求胜事。非常劳心。若要兴旺。却待天命。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 63,
|
||||||
|
"title": "女娲氏炼石",
|
||||||
|
"type": "中签卯宫",
|
||||||
|
"poetry": "昔日行船失了针。今朝依旧海中寻。若然寻得原针在。也费工夫也费心。",
|
||||||
|
"meaning": "此卦海中寻针之象。凡事劳心费力也。",
|
||||||
|
"explanation": "福是缘基。缘是福种。种得福缘。忧事可管。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 64,
|
||||||
|
"title": "马前覆水",
|
||||||
|
"type": "下签卯宫",
|
||||||
|
"poetry": "游鱼却在碧波池。撞遭罗网四边围。思量无计翻身出。事到头来惹事非。",
|
||||||
|
"meaning": "此卦鱼遭罗网之象。凡事亦宜提防也。",
|
||||||
|
"explanation": "屋下安身。祸从天降。早觉先防。免遭灾殃。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 65,
|
||||||
|
"title": "孙膑困庞涓",
|
||||||
|
"type": "中签卯宫",
|
||||||
|
"poetry": "眼前欢喜未为欢。亦不危时亦不安。割肉补疮为甚事。不如守旧待时光。",
|
||||||
|
"meaning": "此卦割肉补疮之象。凡事只宜守旧也。",
|
||||||
|
"explanation": "知止则止。知宽则宽。割自身肉。疾痛一般。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 66,
|
||||||
|
"title": "霸王被困",
|
||||||
|
"type": "下签卯宫",
|
||||||
|
"poetry": "路险马乏人行急。失阵单卒困相当。滩高风浪船棹破。日暮花残天降霜。",
|
||||||
|
"meaning": "此卦船破下滩之象。凡事险阻提防也。",
|
||||||
|
"explanation": "守旧守旧。安心无咎。不用求谋。自在优游。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 67,
|
||||||
|
"title": "金星试窦儿",
|
||||||
|
"type": "中签卯宫",
|
||||||
|
"poetry": "一条金线秤君心。无减无增无重轻。为人平生心正直。文章全贝艺光明。",
|
||||||
|
"meaning": "此卦心平正直之象。凡事安稳无凶也。",
|
||||||
|
"explanation": "心平正直。到底清平。只依本份。天下太平。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 68,
|
||||||
|
"title": "钱玉莲投江",
|
||||||
|
"type": "中签卯宫",
|
||||||
|
"poetry": "门庭吉庆喜非常。积善之门大吉昌。婚姻田蚕诸事遂。病逢妙药得安康。",
|
||||||
|
"meaning": "此卦春梦百花之象。凡事遇贵人大吉也。",
|
||||||
|
"explanation": "春深日暖。百花自开。事莫迟疑。从人显达。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 69,
|
||||||
|
"title": "梅开二度",
|
||||||
|
"type": "中签辰宫",
|
||||||
|
"poetry": "冬来岭上一枝梅。叶落枝枯总不摧。但得阳春悄急至。依然还我作花魁。",
|
||||||
|
"meaning": "此卦梅花占魁之象。凡事宜迟则吉也。",
|
||||||
|
"explanation": "一箭射空。当空不空。待等春来。彩在其中。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 70,
|
||||||
|
"title": "李密反唐",
|
||||||
|
"type": "下签辰宫",
|
||||||
|
"poetry": "朝朝恰似采花蜂。飞出西南又走东。春尽花残无觅处。此心不变旧行踪。",
|
||||||
|
"meaning": "此卦蜜蜂采花之象。凡事劳心费力也。",
|
||||||
|
"explanation": "无觅春色。幼劳千日。冬烘笑我。空自劳力。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 71,
|
||||||
|
"title": "文君访相如",
|
||||||
|
"type": "中签辰宫",
|
||||||
|
"poetry": "喜鹊檐前报好音。知君千里欲归心。绣帏重结鸳鸯带。叶落霜凋暮色侵。",
|
||||||
|
"meaning": "此卦鹊报好音之象。凡事皆可宜也。",
|
||||||
|
"explanation": "功名成就。生意鼎盛。婚姻可成。占讼即胜。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 72,
|
||||||
|
"title": "王莽求贤",
|
||||||
|
"type": "下签辰宫",
|
||||||
|
"poetry": "养蜂须用求他蜜。只怕遭触尾上针。须是眼前有异路。暗里如荆一般同。",
|
||||||
|
"meaning": "此卦蜂采花蕊之象。凡事劳心费力也。",
|
||||||
|
"explanation": "事须仔细。不用强求。结蜂采蜜。有甚来由。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 73,
|
||||||
|
"title": "王昭君忆汉帝",
|
||||||
|
"type": "下签辰宫",
|
||||||
|
"poetry": "忆昔兰房分半钗。而今忽把信音乖。痴心指望成连理。到底谁知事不谐。",
|
||||||
|
"meaning": "此卦鱼吞钩饵之象。凡事亦宜守旧也。",
|
||||||
|
"explanation": "事不及防。物极则反。凡所谋望。宜待时变。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 74,
|
||||||
|
"title": "崔武求官",
|
||||||
|
"type": "中签巳宫",
|
||||||
|
"poetry": "宛如抱虎过高山。战战竞竞胆碎寒。幸得山前逢妙手。方能保得一身安。",
|
||||||
|
"meaning": "此卦抱虎过山之象。凡事险凶惊恐也。",
|
||||||
|
"explanation": "惊险重重。前程有阻。若问求谋。到底辛苦。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 75,
|
||||||
|
"title": "伍员夜出昭关",
|
||||||
|
"type": "下签巳宫",
|
||||||
|
"poetry": "恰如拖虎过高山。战战竞竞胆碎寒。不觉忽然从好事。切须保守一身安。",
|
||||||
|
"meaning": "此卦抱财过山之象。凡事惊恐大凶也。",
|
||||||
|
"explanation": "危危险险。前程有阻。若问求谋。到底辛苦。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 76,
|
||||||
|
"title": "洪武看牛",
|
||||||
|
"type": "中签巳宫",
|
||||||
|
"poetry": "鱼龙混杂意相同。耐守深潭待运通。不觉一朝头耸出。禹门一跳过龙宫。",
|
||||||
|
"meaning": "此卦鱼龙未变之象。凡事待时至可也。",
|
||||||
|
"explanation": "虽是滋基。也要待时。营谋出入。切莫妄为。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 77,
|
||||||
|
"title": "捧璧归赵",
|
||||||
|
"type": "中签巳宫",
|
||||||
|
"poetry": "梦中说得是多财。声名云外总虚来。水远山遥难信定。贵人一指笑颜开。",
|
||||||
|
"meaning": "此卦梦中得宝之象。凡事虚多少实也。",
|
||||||
|
"explanation": "如说梦话。何日可休。直待贵人。真实不虚。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 78,
|
||||||
|
"title": "袁安守困",
|
||||||
|
"type": "中签午宫",
|
||||||
|
"poetry": "冷水未烧白涕汤。不寒不热有温凉。要行天下无他事。为有身中百艺强。",
|
||||||
|
"meaning": "此卦平善用事之象。凡事平稳大吉也。",
|
||||||
|
"explanation": "囚人逢赦。病遇良医。求财谋望。贵人指引。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 79,
|
||||||
|
"title": "暗扶倒铜旗",
|
||||||
|
"type": "中签午宫",
|
||||||
|
"poetry": "虚空结愿保平安。保得身安愿不还。莫忘神圣宜还了。岂知洪语在身边。",
|
||||||
|
"meaning": "此卦信实莫信虚之象。凡事守旧之兆也。",
|
||||||
|
"explanation": "人有我见。心不用忙。观音指示。切莫轻忘。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 80,
|
||||||
|
"title": "智远投军",
|
||||||
|
"type": "上签未宫",
|
||||||
|
"poetry": "直上仙岩要学仙。此知一旦帝王宣。青天日月常明照。心正声名四海传。",
|
||||||
|
"meaning": "此卦贵人接引之象。凡事和合大吉也。",
|
||||||
|
"explanation": "有始有终。莫向西东。心中用事。贵人重重。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 81,
|
||||||
|
"title": "风送膝王阁",
|
||||||
|
"type": "上签未宫",
|
||||||
|
"poetry": "梧桐叶落秋将暮。行客归程去似飞。谢得天公高著力。顺风船载宝珍归。",
|
||||||
|
"meaning": "此卦梧桐叶落之象。凡事先凶后吉也。",
|
||||||
|
"explanation": "心中取事。天心从之。营谋用事。尽可施为。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 82,
|
||||||
|
"title": "孔子修身",
|
||||||
|
"type": "上签未宫",
|
||||||
|
"poetry": "炎炎烈火焰连天。焰里还生一朵莲。到底得成终不害。依然生叶长根枝。",
|
||||||
|
"meaning": "此卦火中生莲之象。凡事似险非险也。",
|
||||||
|
"explanation": "虽是危险。不伤其身。营谋用事。贵人相扶。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 83,
|
||||||
|
"title": "诸葛孔明学道",
|
||||||
|
"type": "中签未宫",
|
||||||
|
"poetry": "譬若初三四五月。半有半无未完全。等待十五良宵夜。到处光明到处圆。",
|
||||||
|
"meaning": "此卦月缺未圆之象。凡事守旧待时也。",
|
||||||
|
"explanation": "守旧待时。如月初出。待等圆时。无有不吉。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 84,
|
||||||
|
"title": "庄子试妻",
|
||||||
|
"type": "中签未宫",
|
||||||
|
"poetry": "因名丧德如何事。切恐吉中变化凶。酒醉不知何处去。青松影里梦朦胧。",
|
||||||
|
"meaning": "此卦寒鱼离水之象。凡事不可移动也。",
|
||||||
|
"explanation": "寒鱼离水。美中不足。若问求谋。不如莫动。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 85,
|
||||||
|
"title": "韩信战霸王",
|
||||||
|
"type": "上签申宫",
|
||||||
|
"poetry": "重开山后藏前事。万宝园中可再立。不妨作福修因果。从此门庭喜事新。",
|
||||||
|
"meaning": "此卦古镜重圆之象。凡事劳心有贵也。",
|
||||||
|
"explanation": "淘沙成金。骑龙踏虎。虽是劳心。于中有补。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 86,
|
||||||
|
"title": "商辂中三元",
|
||||||
|
"type": "上签申宫",
|
||||||
|
"poetry": "春来花发映阳台。万里舟行进宝来。跃过禹门三级浪。恰如平地一声雷。",
|
||||||
|
"meaning": "此卦鱼龙变化之象。凡事有贵人助也。",
|
||||||
|
"explanation": "自小至大。无凶无祸。囚人遇赦。病遇良医。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 87,
|
||||||
|
"title": "咬金探地穴",
|
||||||
|
"type": "中签申宫",
|
||||||
|
"poetry": "人行半岭日衔山。峻岭崖岩未可安。仰望上天垂护佑。此身犹在太虚间。",
|
||||||
|
"meaning": "此卦淘沙见金之象。凡事有贵人之兆也。",
|
||||||
|
"explanation": "家住灵山。莫说真言。有人问我。牢把心猿。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 88,
|
||||||
|
"title": "庞德投曹",
|
||||||
|
"type": "中签酉宫",
|
||||||
|
"poetry": "木为一虎在当门。须是有威不害人。分明说是无防事。忧恼迟疑恐惧心。",
|
||||||
|
"meaning": "此卦道傍有虎之象。凡事凶险惊恐也。",
|
||||||
|
"explanation": "宅下不稳。夜梦颠倒。谋事不成。勿望外求。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 89,
|
||||||
|
"title": "大看瑶花",
|
||||||
|
"type": "上签酉宫",
|
||||||
|
"poetry": "出入营谋大吉昌。无瑕玉在石中藏。如今幸得高人指。获宝从心喜不常。",
|
||||||
|
"meaning": "此卦石藏珍宝之象。凡事称心大吉也。",
|
||||||
|
"explanation": "家宅得吉。自身安泰。求财遂意。有贵人扶。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 90,
|
||||||
|
"title": "苇佩遇仙",
|
||||||
|
"type": "上签酉宫",
|
||||||
|
"poetry": "忽言一信向天飞。泰山宝贝满船归。若问路途成好事。前头仍有贵人推。",
|
||||||
|
"meaning": "此卦功名成就之象。凡事进身大吉也。",
|
||||||
|
"explanation": "若问功名。前有贵人。更添喜气。财禄丰盈。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 91,
|
||||||
|
"title": "薛仁贵投军",
|
||||||
|
"type": "上签酉宫",
|
||||||
|
"poetry": "好把愁眉须展开。大才大用荐将来。一条大路平如掌。凡有施为总称怀。",
|
||||||
|
"meaning": "此卦前程有路之象。凡事求谋大吉也。",
|
||||||
|
"explanation": "一条大路。可向前行。心中用事。贵人重重。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 92,
|
||||||
|
"title": "蔡卿报恩",
|
||||||
|
"type": "上签戌宫",
|
||||||
|
"poetry": "经商得利称心怀。福禄荣华倍获财。若问进身谋望事。秀才一举状元回。",
|
||||||
|
"meaning": "此卦鱼龙变化之象。凡事有贵人助也。",
|
||||||
|
"explanation": "营谋用事。劳心费力。守旧待时。凡事大吉。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 93,
|
||||||
|
"title": "邵康节定阴阳",
|
||||||
|
"type": "上签戌宫",
|
||||||
|
"poetry": "鸾凤翔毛雨淋漓。当时却被雀儿欺。终教一日云开散。依旧还君整羽衣。",
|
||||||
|
"meaning": "此卦鸾凤被雨之象。凡事待时大利也。",
|
||||||
|
"explanation": "小人日盛。君子莫为。只宜守己。待时施为。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 94,
|
||||||
|
"title": "伯牙访友",
|
||||||
|
"type": "中签酉宫",
|
||||||
|
"poetry": "君子莫惜当时闲。鱼龙混杂意无妨。到头若得真消息。万里风云咫尺间。",
|
||||||
|
"meaning": "此卦鱼龙混杂之象。凡事暗昧不明也。",
|
||||||
|
"explanation": "闲非莫管。好事难成。若问用事。只宜守旧。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 95,
|
||||||
|
"title": "张文远求官",
|
||||||
|
"type": "中签戌宫",
|
||||||
|
"poetry": "事业功勤日渐新。资财涌进异常人。宜将道德修来福。滚滚财源萃此身。",
|
||||||
|
"meaning": "此卦积福之象。凡事营谋吉利也。",
|
||||||
|
"explanation": "名利双收。绿柳堤畔。贵人指引。无不欢欣。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 96,
|
||||||
|
"title": "窦燕山登科",
|
||||||
|
"type": "上签亥宫",
|
||||||
|
"poetry": "巍巍宝塔不寻常。八面玲珑尽放光。劝君立志勤顶礼。作善苍天降福祥。",
|
||||||
|
"meaning": "此卦福德现身之象。凡事大吉利也。",
|
||||||
|
"explanation": "这些福力。善事可做。谋望从心。福禄自增。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 97,
|
||||||
|
"title": "寇准抱太子",
|
||||||
|
"type": "中签亥宫",
|
||||||
|
"poetry": "五十功名心已灰。那知富贵逼人来。更行好事存方寸。寿比冈陵位鼎台。",
|
||||||
|
"meaning": "此卦功名成就之象。凡事大吉大利也。",
|
||||||
|
"explanation": "作善降祥。作恶降殃。人有善愿。天必从之。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 98,
|
||||||
|
"title": "薛仁贵投军",
|
||||||
|
"type": "上签亥宫",
|
||||||
|
"poetry": "出入行藏礼义恭。言必忠良信必聪。心不了然且静澈。光明红日正当中。",
|
||||||
|
"meaning": "此卦红日当空之象。凡事自有贵人助也。",
|
||||||
|
"explanation": "心中无事。秋水澄清。在欲不染。有祸不成。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 99,
|
||||||
|
"title": "陶渊明赏菊",
|
||||||
|
"type": "上签亥宫",
|
||||||
|
"poetry": "等闲骑马着鞭来。半有忧危半有财。似火方烧头上屋。天教一雨荡殃灾。",
|
||||||
|
"meaning": "此卦似火上添油之象。凡事守旧待时也。",
|
||||||
|
"explanation": "终身劳力。财帛耗散。若问求谋。去时不定。"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 100,
|
||||||
|
"title": "三教谈道",
|
||||||
|
"type": "上签亥宫",
|
||||||
|
"poetry": "佛神灵通与君知。痴人说事转昏迷。老人求得灵签去。不如守旧待来时。",
|
||||||
|
"meaning": "此卦守常勿动之象。凡事守旧则吉也。",
|
||||||
|
"explanation": "老人求得。不如守旧。若问用事。且待时利。"
|
||||||
|
}
|
||||||
|
]
|
||||||
Executable
+2235
File diff suppressed because it is too large
Load Diff
+55286
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,523 @@
|
|||||||
|
from flask import Flask, jsonify, request, redirect
|
||||||
|
from datetime import datetime, date
|
||||||
|
import ipaddress
|
||||||
|
from zoneinfo import ZoneInfo, available_timezones
|
||||||
|
from flask_cors import CORS
|
||||||
|
from lunar_python import Solar
|
||||||
|
import ip2region.searcher as xdb
|
||||||
|
import ip2region.util as util
|
||||||
|
from pathlib import Path
|
||||||
|
import json
|
||||||
|
import random
|
||||||
|
|
||||||
|
|
||||||
|
class LowercasePathMiddleware:
|
||||||
|
def __init__(self, app, exclude_extensions=None):
|
||||||
|
self.app = app
|
||||||
|
self.exclude_extensions = exclude_extensions or set()
|
||||||
|
def __call__(self, environ, start_response):
|
||||||
|
path = environ.get("PATH_INFO", "")
|
||||||
|
if path:
|
||||||
|
last_segment = path.rsplit('/', 1)[-1]
|
||||||
|
if '.' not in last_segment:
|
||||||
|
environ['PATH_INFO'] = path.lower()
|
||||||
|
return self.app(environ, start_response)
|
||||||
|
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
CORS(app)
|
||||||
|
app.json.ensure_ascii = False
|
||||||
|
app.json.sort_keys = False
|
||||||
|
app.wsgi_app = LowercasePathMiddleware(app.wsgi_app)
|
||||||
|
|
||||||
|
|
||||||
|
with (Path(__file__).parent / "data" / "luck-data.json").open("r", encoding="utf-8") as f:
|
||||||
|
LUCK_DATA = json.load(f)
|
||||||
|
|
||||||
|
with (Path(__file__).parent / "data" / "poem-300.json").open("r", encoding="utf-8") as f:
|
||||||
|
POEM_DATA = json.load(f)
|
||||||
|
|
||||||
|
with (Path(__file__).parent / "data" / "riddle.json").open("r", encoding="utf-8") as f:
|
||||||
|
RIDDLE_DATA = json.load(f)
|
||||||
|
|
||||||
|
IP2REGION_DB_PATH = str(Path(__file__).parent / "data" / "ip2region_v4.xdb")
|
||||||
|
IP2REGION_VERSION = util.IPv4
|
||||||
|
IP2REGION_CONTENT = util.load_content_from_file(IP2REGION_DB_PATH)
|
||||||
|
IP2REGION_SEARCHER = xdb.new_with_buffer(IP2REGION_VERSION, IP2REGION_CONTENT)
|
||||||
|
|
||||||
|
ALL_TIMEZONES = sorted(available_timezones())
|
||||||
|
LOWER_TIMEZONE_MAP = {tz.lower(): tz for tz in ALL_TIMEZONES}
|
||||||
|
|
||||||
|
LUCK_ID_MAP = {item.get("id"): item for item in LUCK_DATA}
|
||||||
|
LUCK_TITLE_MAP = {}
|
||||||
|
LUCK_TYPE_MAP = {}
|
||||||
|
for item in LUCK_DATA:
|
||||||
|
title_lower = item.get("title", "").lower()
|
||||||
|
type_lower = item.get("type", "").lower()
|
||||||
|
if title_lower not in LUCK_TITLE_MAP:
|
||||||
|
LUCK_TITLE_MAP[title_lower] = []
|
||||||
|
if type_lower not in LUCK_TYPE_MAP:
|
||||||
|
LUCK_TYPE_MAP[type_lower] = []
|
||||||
|
LUCK_TITLE_MAP[title_lower].append(item)
|
||||||
|
LUCK_TYPE_MAP[type_lower].append(item)
|
||||||
|
|
||||||
|
POEM_ID_MAP = {item.get("id"): item for item in POEM_DATA}
|
||||||
|
POEM_TITLE_MAP = {}
|
||||||
|
POEM_AUTHOR_MAP = {}
|
||||||
|
POEM_TYPE_MAP = {}
|
||||||
|
for item in POEM_DATA:
|
||||||
|
title_lower = item.get("title", "").lower()
|
||||||
|
author_lower = item.get("author", "").lower()
|
||||||
|
type_lower = item.get("type", "").lower()
|
||||||
|
if title_lower not in POEM_TITLE_MAP:
|
||||||
|
POEM_TITLE_MAP[title_lower] = []
|
||||||
|
if author_lower not in POEM_AUTHOR_MAP:
|
||||||
|
POEM_AUTHOR_MAP[author_lower] = []
|
||||||
|
if type_lower not in POEM_TYPE_MAP:
|
||||||
|
POEM_TYPE_MAP[type_lower] = []
|
||||||
|
POEM_TITLE_MAP[title_lower].append(item)
|
||||||
|
POEM_AUTHOR_MAP[author_lower].append(item)
|
||||||
|
POEM_TYPE_MAP[type_lower].append(item)
|
||||||
|
|
||||||
|
RIDDLE_RIDDLE_MAP = {}
|
||||||
|
RIDDLE_ANSWER_MAP = {}
|
||||||
|
for item in RIDDLE_DATA:
|
||||||
|
riddle_lower = item.get("riddle", "").lower()
|
||||||
|
answer_lower = item.get("answer", "").lower()
|
||||||
|
if riddle_lower not in RIDDLE_RIDDLE_MAP:
|
||||||
|
RIDDLE_RIDDLE_MAP[riddle_lower] = []
|
||||||
|
if answer_lower not in RIDDLE_ANSWER_MAP:
|
||||||
|
RIDDLE_ANSWER_MAP[answer_lower] = []
|
||||||
|
RIDDLE_RIDDLE_MAP[riddle_lower].append(item)
|
||||||
|
RIDDLE_ANSWER_MAP[answer_lower].append(item)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/")
|
||||||
|
def index():
|
||||||
|
return """
|
||||||
|
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"></head>
|
||||||
|
<body><style>table{border-collapse:collapse;width:100%;max-width:500px;margin:20px 0;font-family:system-ui, -apple-system, sans-serif;}
|
||||||
|
th,td{border:1px solid #e5e7eb;padding:10px 14px;text-align:left;}
|
||||||
|
th{background-color:#f9fafb;font-weight:600;color:#374151;}
|
||||||
|
a{color:#2563eb;text-decoration:none;}
|
||||||
|
a:hover{text-decoration:underline;}</style>
|
||||||
|
<table><thead><tr><th>接口名称</th><th>API 地址</th><th>说明文档</th></tr></thead><tbody>
|
||||||
|
<tr><td>音乐接口</td><td><a href="/music/api">/music/api</a></td><td><a href="/music/help">/music/help</a></td></tr>
|
||||||
|
<tr><td>农历接口</td><td><a href="/lunar/api">/lunar/api</a></td><td><a href="/lunar/help">/lunar/help</a></td></tr>
|
||||||
|
<tr><td>运势接口</td><td><a href="/luck/api">/luck/api</a></td><td><a href="/luck/help">/luck/help</a></td></tr>
|
||||||
|
<tr><td>唐诗接口</td><td><a href="/poem/api">/poem/api</a></td><td><a href="/poem/help">/poem/help</a></td></tr>
|
||||||
|
<tr><td>地址接口</td><td><a href="/ip/api">/ip/api</a></td><td><a href="/ip/help">/ip/help</a></td></tr>
|
||||||
|
<tr><td>时间接口</td><td><a href="/time/api">/time/api</a></td><td><a href="/time/help">/time/help</a></td></tr>
|
||||||
|
<tr><td>谜语接口</td><td><a href="/riddle/api">/riddle/api</a></td><td><a href="/riddle/help">/riddle/help</a></td></tr>
|
||||||
|
</tbody></table></body></html>
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/music/help")
|
||||||
|
def music_help():
|
||||||
|
return jsonify({
|
||||||
|
"路径": "/music/api",
|
||||||
|
"功能": "获取音乐信息",
|
||||||
|
"参数": {
|
||||||
|
"server=netease/tencent/kugou/baidu/kuwo": "必填,音乐平台",
|
||||||
|
"type=search/song/album/artist/playlist/lrc/url/pic": "必填,操作类型",
|
||||||
|
"id=xxx": "必填,资源ID",
|
||||||
|
"author=xxx": "选填,仅lrc/url/pic需要",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/lunar/help")
|
||||||
|
def lunar_help():
|
||||||
|
return jsonify({
|
||||||
|
"路径": "/lunar/api",
|
||||||
|
"功能": "获取农历信息",
|
||||||
|
"参数": {
|
||||||
|
"date=YYYY-MM-DD": "选填,指定日期",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
@app.route("/lunar/api")
|
||||||
|
def lunar():
|
||||||
|
args_lower = {k.lower(): v for k, v in request.args.items()}
|
||||||
|
if set(args_lower.keys()) - {"date"}:
|
||||||
|
return jsonify({
|
||||||
|
"error": f"{set(args_lower.keys()) - {"date"}}参数非法",
|
||||||
|
"allowed_params": ["date=YYYY-MM-DD"],
|
||||||
|
})
|
||||||
|
ds = args_lower.get("date", "").strip()
|
||||||
|
d = datetime.now(ZoneInfo("Asia/Shanghai")).date()
|
||||||
|
params = {"date": ds if ds else f"{d}(默认,Asia/Shanghai)"}
|
||||||
|
if ds:
|
||||||
|
try:
|
||||||
|
d = datetime.strptime(ds, "%Y-%m-%d").date()
|
||||||
|
except ValueError:
|
||||||
|
resp = {"error": f"date参数[{ds}]不为YYYY-MM-DD格式"}
|
||||||
|
if params:
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
solar = Solar.fromYmd(d.year, d.month, d.day)
|
||||||
|
lunar = solar.getLunar()
|
||||||
|
jieqi = lunar.getJieQi() or ""
|
||||||
|
festivals = lunar.getFestivals()
|
||||||
|
traditional_festival = festivals[0] if festivals else ""
|
||||||
|
lunar_month = lunar.getMonthInChinese()
|
||||||
|
season_map = {"立春": "春", "立夏": "夏", "立秋": "秋", "立冬": "冬"}
|
||||||
|
latest = None
|
||||||
|
for j in season_map.keys():
|
||||||
|
solar_jieqi = Solar.fromYmd(d.year, 1, 1).getLunar().getJieQiTable()[j]
|
||||||
|
jd = date(solar_jieqi.getYear(), solar_jieqi.getMonth(), solar_jieqi.getDay())
|
||||||
|
if jd <= d:
|
||||||
|
if latest is None or jd > latest[0]:
|
||||||
|
latest = (jd, season_map[j])
|
||||||
|
resp = {
|
||||||
|
"nian": lunar.getYearInGanZhi(),
|
||||||
|
"yue": lunar_month,
|
||||||
|
"ri": lunar.getDayInChinese(),
|
||||||
|
"shengxiao": lunar.getYearShengXiao(),
|
||||||
|
"jijie": latest[1] if latest else "冬",
|
||||||
|
"jieri": traditional_festival,
|
||||||
|
"jieqi": jieqi,
|
||||||
|
}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/luck/help")
|
||||||
|
def luck_help():
|
||||||
|
return jsonify({
|
||||||
|
"路径": "/luck/api",
|
||||||
|
"功能": "获取运势信息",
|
||||||
|
"参数": {
|
||||||
|
"id=xxx": "选填,基于排序查询",
|
||||||
|
"title=xxx": "选填,基于签名查询",
|
||||||
|
"type=xxx": "选填,基于类型查询",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
@app.route("/luck/api")
|
||||||
|
def luck():
|
||||||
|
args_lower = {k.lower(): v for k, v in request.args.items()}
|
||||||
|
if set(args_lower.keys()) - {"id", "title", "type"}:
|
||||||
|
return jsonify({
|
||||||
|
"error": f"{set(args_lower.keys()) - {"id", "title", "type"}}参数非法",
|
||||||
|
"allowed_params": ["id=xxx", "title=xxx", "type=xxx"],
|
||||||
|
})
|
||||||
|
luck_id = args_lower.get("id", "").strip()
|
||||||
|
luck_title = args_lower.get("title", "").strip()
|
||||||
|
luck_type = args_lower.get("type", "").strip()
|
||||||
|
params = {"id": luck_id, "title": luck_title, "type": luck_type}
|
||||||
|
if not luck_id and not luck_title and not luck_type:
|
||||||
|
resp = random.choice(LUCK_DATA)
|
||||||
|
return jsonify(resp)
|
||||||
|
results = LUCK_DATA
|
||||||
|
if luck_id:
|
||||||
|
try:
|
||||||
|
search_id = int(luck_id)
|
||||||
|
item = LUCK_ID_MAP.get(search_id)
|
||||||
|
results = [item] if item else []
|
||||||
|
except ValueError:
|
||||||
|
resp = {"error": f"id参数[{luck_id}]不为整数"}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
if luck_title:
|
||||||
|
title_lower = luck_title.lower()
|
||||||
|
if luck_id:
|
||||||
|
results = [item for item in results if title_lower in item.get("title", "").lower()]
|
||||||
|
else:
|
||||||
|
results = LUCK_TITLE_MAP.get(title_lower, [])
|
||||||
|
if luck_type:
|
||||||
|
type_lower = luck_type.lower()
|
||||||
|
if luck_id or luck_title:
|
||||||
|
results = [item for item in results if type_lower in item.get("type", "").lower()]
|
||||||
|
else:
|
||||||
|
results = LUCK_TYPE_MAP.get(type_lower, [])
|
||||||
|
if not results:
|
||||||
|
resp = {"error": "未找到符合条件的数据"}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
return jsonify({"items": results, "params": params})
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/poem/help")
|
||||||
|
def poem_help():
|
||||||
|
return jsonify({
|
||||||
|
"路径": "/poem/api",
|
||||||
|
"功能": "获取唐诗信息",
|
||||||
|
"参数": {
|
||||||
|
"id=xxx": "选填,基于排序查询",
|
||||||
|
"title=xxx": "选填,基于标题查询",
|
||||||
|
"author=xxx": "选填,基于作者查询",
|
||||||
|
"type=xxx": "选填,基于类型查询",
|
||||||
|
"full=true/false": "选填,是否返回整首诗(默认为false)",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
@app.route("/poem/api")
|
||||||
|
def poem():
|
||||||
|
args_lower = {k.lower(): v for k, v in request.args.items()}
|
||||||
|
if set(args_lower.keys()) - {"id", "title", "author", "type", "full"}:
|
||||||
|
return jsonify({
|
||||||
|
"error": f"{set(args_lower.keys()) - {"id", "title", "author", "type", "full"}}参数非法",
|
||||||
|
"allowed_params": ["id=xxx", "title=xxx", "author=xxx", "type=xxx", "full=true/false"],
|
||||||
|
})
|
||||||
|
poem_id = args_lower.get("id", "").strip()
|
||||||
|
poem_title = args_lower.get("title", "").strip()
|
||||||
|
poem_author = args_lower.get("author", "").strip()
|
||||||
|
poem_type = args_lower.get("type", "").strip()
|
||||||
|
full_param = args_lower.get("full", "").strip()
|
||||||
|
params = {"id": poem_id, "title": poem_title, "author": poem_author, "type": poem_type, "full": full_param if full_param else "false(默认)"}
|
||||||
|
if full_param.lower() not in {"true", "false", ""}:
|
||||||
|
resp = {"error": f"full参数[{full_param}]不为true/false"}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
full = full_param.lower() == "true"
|
||||||
|
if not poem_id and not poem_title and not poem_author and not poem_type:
|
||||||
|
item = random.choice(POEM_DATA)
|
||||||
|
contents = item.get("contents", "")
|
||||||
|
if full:
|
||||||
|
content = "".join(contents.splitlines())
|
||||||
|
else:
|
||||||
|
lines = [line for line in contents.split("\n") if line.strip()]
|
||||||
|
content = random.choice(lines) if lines else ""
|
||||||
|
resp = {
|
||||||
|
"id": item.get("id", ""),
|
||||||
|
"content": content,
|
||||||
|
"title": item.get("title", ""),
|
||||||
|
"author": item.get("author", ""),
|
||||||
|
"type": item.get("type", ""),
|
||||||
|
}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
results = POEM_DATA
|
||||||
|
if poem_id:
|
||||||
|
try:
|
||||||
|
search_id = int(poem_id)
|
||||||
|
item = POEM_ID_MAP.get(search_id)
|
||||||
|
results = [item] if item else []
|
||||||
|
except ValueError:
|
||||||
|
resp = {"error": f"id参数[{poem_id}]不为整数"}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
if poem_title:
|
||||||
|
title_lower = poem_title.lower()
|
||||||
|
if poem_id:
|
||||||
|
results = [item for item in results if title_lower in item.get("title", "").lower()]
|
||||||
|
else:
|
||||||
|
results = POEM_TITLE_MAP.get(title_lower, [])
|
||||||
|
if poem_author:
|
||||||
|
author_lower = poem_author.lower()
|
||||||
|
if poem_id or poem_title:
|
||||||
|
results = [item for item in results if author_lower in item.get("author", "").lower()]
|
||||||
|
else:
|
||||||
|
results = POEM_AUTHOR_MAP.get(author_lower, [])
|
||||||
|
if poem_type:
|
||||||
|
type_lower = poem_type.lower()
|
||||||
|
if poem_id or poem_title or poem_author:
|
||||||
|
results = [item for item in results if type_lower in item.get("type", "").lower()]
|
||||||
|
else:
|
||||||
|
results = POEM_TYPE_MAP.get(type_lower, [])
|
||||||
|
if not results:
|
||||||
|
resp = {"error": "未找到符合条件的数据"}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
formatted_results = []
|
||||||
|
for item in results:
|
||||||
|
contents = item.get("contents", "")
|
||||||
|
if full:
|
||||||
|
content = "".join(contents.splitlines())
|
||||||
|
else:
|
||||||
|
lines = [line for line in contents.split("\n") if line.strip()]
|
||||||
|
content = random.choice(lines) if lines else ""
|
||||||
|
formatted_results.append({
|
||||||
|
"id": item.get("id", ""),
|
||||||
|
"content": content,
|
||||||
|
"title": item.get("title", ""),
|
||||||
|
"author": item.get("author", ""),
|
||||||
|
"type": item.get("type", ""),
|
||||||
|
})
|
||||||
|
return jsonify({"items": formatted_results, "params": params})
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/ip/help")
|
||||||
|
def ip_help():
|
||||||
|
return jsonify({
|
||||||
|
"路径": "/ip/api",
|
||||||
|
"功能": "获取IP信息",
|
||||||
|
"参数": {
|
||||||
|
"ip=xxx": "选填,IPv4地址",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
@app.route("/ip/api")
|
||||||
|
def ip():
|
||||||
|
args_lower = {k.lower(): v for k, v in request.args.items()}
|
||||||
|
if set(args_lower.keys()) - {"ip"}:
|
||||||
|
return jsonify({
|
||||||
|
"error": f"{set(args_lower.keys()) - {"ip"}}参数非法",
|
||||||
|
"allowed_params": ["ip=xxx"],
|
||||||
|
})
|
||||||
|
query_ip = args_lower.get("ip", "").strip()
|
||||||
|
client_ip = request.headers.get("X-Forwarded-For", request.remote_addr).split(",")[0].strip()
|
||||||
|
target_ip = query_ip or client_ip
|
||||||
|
params = {"ip": query_ip if query_ip else f"{client_ip}(默认)"}
|
||||||
|
try:
|
||||||
|
ip_obj = ipaddress.ip_address(target_ip)
|
||||||
|
if ip_obj.version != 4:
|
||||||
|
resp = {"error": f"ip参数[{target_ip}]不为IPv4地址"}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
except ValueError:
|
||||||
|
resp = {"error": f"ip参数[{target_ip}]不为IPv4地址"}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
try:
|
||||||
|
region = IP2REGION_SEARCHER.search(target_ip)
|
||||||
|
if region:
|
||||||
|
region_parts = region.split("|")
|
||||||
|
resp = {
|
||||||
|
"ip": target_ip,
|
||||||
|
"country": region_parts[0] if len(region_parts) > 0 else "",
|
||||||
|
"province": region_parts[1] if len(region_parts) > 1 else "",
|
||||||
|
"city": region_parts[2] if len(region_parts) > 2 else "",
|
||||||
|
"isp": region_parts[3] if len(region_parts) > 3 else "",
|
||||||
|
"region": region,
|
||||||
|
}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
resp = {
|
||||||
|
"ip": target_ip,
|
||||||
|
"country": "",
|
||||||
|
"province": "",
|
||||||
|
"city": "",
|
||||||
|
"isp": "",
|
||||||
|
"region": "",
|
||||||
|
}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/time/help")
|
||||||
|
def time_help():
|
||||||
|
return jsonify({
|
||||||
|
"路径": "/time/api",
|
||||||
|
"功能": "获取时间信息",
|
||||||
|
"参数": {
|
||||||
|
"tz=xxx": "选填,时区(默认为Shanghai)",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
@app.route("/time/api")
|
||||||
|
def time_api():
|
||||||
|
args_lower = {k.lower(): v for k, v in request.args.items()}
|
||||||
|
if set(args_lower.keys()) - {"tz"}:
|
||||||
|
return jsonify({
|
||||||
|
"error": f"{set(args_lower.keys()) - {"tz"}}参数非法",
|
||||||
|
"allowed_params": ["tz=xxx"],
|
||||||
|
})
|
||||||
|
tz = args_lower.get("tz", "").strip()
|
||||||
|
tz_key = None
|
||||||
|
params = {"tz": tz if tz else "Shanghai(默认)"}
|
||||||
|
if tz:
|
||||||
|
low = tz.lower()
|
||||||
|
exact = LOWER_TIMEZONE_MAP.get(low)
|
||||||
|
if exact:
|
||||||
|
tz_key = exact
|
||||||
|
elif "/" not in tz:
|
||||||
|
suffix_matches = [name for name in ALL_TIMEZONES if name.lower().endswith(f"/{low}")]
|
||||||
|
if len(suffix_matches) == 1:
|
||||||
|
tz_key = suffix_matches[0]
|
||||||
|
else:
|
||||||
|
fuzzy_matches = [name for name in ALL_TIMEZONES if low in name.lower()]
|
||||||
|
if len(fuzzy_matches) == 1:
|
||||||
|
tz_key = fuzzy_matches[0]
|
||||||
|
else:
|
||||||
|
fuzzy_matches = [name for name in ALL_TIMEZONES if low in name.lower()]
|
||||||
|
if len(fuzzy_matches) == 1:
|
||||||
|
tz_key = fuzzy_matches[0]
|
||||||
|
|
||||||
|
if tz_key is None:
|
||||||
|
resp = {"error": f"tz参数[{tz}]不为有效时区名称"}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
else:
|
||||||
|
tz_key = "Asia/Shanghai"
|
||||||
|
try:
|
||||||
|
tzinfo = ZoneInfo(tz_key)
|
||||||
|
except Exception:
|
||||||
|
tzinfo = ZoneInfo("Asia/Shanghai")
|
||||||
|
now = datetime.now(tzinfo)
|
||||||
|
weekday_iso = now.isoweekday()
|
||||||
|
week_number = now.isocalendar()[1]
|
||||||
|
resp = {
|
||||||
|
"date": now.strftime("%Y-%m-%d"),
|
||||||
|
"time": now.strftime("%H:%M:%S"),
|
||||||
|
"timestamp": now.timestamp(),
|
||||||
|
"tz": tzinfo.key,
|
||||||
|
"weekday": weekday_iso,
|
||||||
|
"week": week_number,
|
||||||
|
}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/riddle/help")
|
||||||
|
def riddle_help():
|
||||||
|
return jsonify({
|
||||||
|
"路径": "/riddle/api",
|
||||||
|
"功能": "获取谜语信息",
|
||||||
|
"参数": {
|
||||||
|
"riddle=xxx": "选填,基于谜面查询",
|
||||||
|
"answer=xxx": "选填,基于谜底查询",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
@app.route("/riddle/api")
|
||||||
|
def riddle():
|
||||||
|
args_lower = {k.lower(): v for k, v in request.args.items()}
|
||||||
|
if set(args_lower.keys()) - {"riddle", "answer"}:
|
||||||
|
return jsonify({
|
||||||
|
"error": f"{set(args_lower.keys()) - {"riddle", "answer"}}参数非法",
|
||||||
|
"allowed_params": ["riddle=xxx", "answer=xxx"],
|
||||||
|
})
|
||||||
|
query_riddle = args_lower.get("riddle", "").strip()
|
||||||
|
query_answer = args_lower.get("answer", "").strip()
|
||||||
|
params = {"riddle": query_riddle, "answer": query_answer}
|
||||||
|
if not query_riddle and not query_answer:
|
||||||
|
item = random.choice(RIDDLE_DATA)
|
||||||
|
resp = {
|
||||||
|
"riddle": item.get("riddle", ""),
|
||||||
|
"answer": item.get("answer", ""),
|
||||||
|
}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
results = RIDDLE_DATA
|
||||||
|
if query_riddle:
|
||||||
|
riddle_lower = query_riddle.lower()
|
||||||
|
results = RIDDLE_RIDDLE_MAP.get(riddle_lower, [])
|
||||||
|
if query_answer:
|
||||||
|
answer_lower = query_answer.lower()
|
||||||
|
if query_riddle:
|
||||||
|
results = [item for item in results if answer_lower in item.get("answer", "").lower()]
|
||||||
|
else:
|
||||||
|
results = RIDDLE_ANSWER_MAP.get(answer_lower, [])
|
||||||
|
if not results:
|
||||||
|
resp = {"error": "未找到符合条件的数据"}
|
||||||
|
resp["params"] = params
|
||||||
|
return jsonify(resp)
|
||||||
|
items = [{
|
||||||
|
"riddle": item.get("riddle", ""),
|
||||||
|
"answer": item.get("answer", ""),
|
||||||
|
} for item in results]
|
||||||
|
return jsonify({"items": items, "params": params})
|
||||||
|
|
||||||
|
|
||||||
|
@app.errorhandler(404)
|
||||||
|
def not_found(_error):
|
||||||
|
return redirect("/"), 302
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
app.run(host="0.0.0.0", port=5000, debug=True)
|
||||||
Executable
+4
@@ -0,0 +1,4 @@
|
|||||||
|
flask
|
||||||
|
flask-cors
|
||||||
|
lunar-python
|
||||||
|
py-ip2region
|
||||||
Reference in New Issue
Block a user