塔罗牌占卜源码(塔罗牌源码)占卜+爱情+预测+事业

  塔罗牌占卜源码(塔罗牌源码)占卜+爱情+预测+事业
  
  塔罗牌占卜可以追溯到 15 世纪,当时这些装饰牌只不过是一种派对把戏。随着岁月的流逝,人们意识到隐藏在这个华丽甲板中的潜力。几个世纪后,在线塔罗牌占卜业务迅速占领了神秘市场。新一代已经着迷于洗牌的奥秘、耳语的预测以及魔法觉醒的可能性。
  
  这个源码是一个用Python编写的简单应用程序,可以从包含78个描述和图像参考的字典中随机抽取一张或三张塔罗牌。此应用程序的源代码在这里-请随意分叉或重复使用,没有许可证限制。
  
  塔罗牌源码及演示:m.appwin.top
  
  部分源码展示:app.js

const express = require("express");
const bodyParser = require("body-parser");
const fs = require("fs");
const path = require("path");
const cloneDeep = require("lodash.clonedeep");
const remove = require("lodash.remove");const app = express();
const router = express.Router();const root =process.env.NODE_ENV === "production"? path.join(__dirname, ".."): __dirname;app.use(bodyParser.json());
app.use("/static", express.static(path.join(root, "static")));app.get("/", (_req, res) => {return res.sendFile("static/index.html", { root });
});app.get("/documentation.yaml", (_req, res) => {return res.sendFile("static/RWS-card-api.yaml", { root });
});app.use("/api/v1/", router);router.use((_req, res, next) => {res.locals.rawData = JSON.parse(fs.readFileSync("static/card_data.json", "utf8"));return next();
});router.use(function (_req, res, next) {res.header("Access-Control-Allow-Origin", "*");res.header("Access-Control-Allow-Credentials", true);res.header("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE,OPTIONS");res.header("Access-Control-Allow-Headers","Origin,X-Requested-With,Content-Type,Accept,content-type,application/json");return next();
});router.get("/", (_req, res) => {return res.redirect("/api/v1/cards");
});router.get("/cards", (_req, res) => {const { cards } = res.locals.rawData;return res.json({ nhits: cards.length, cards }).status(200);
});router.get("/cards/search", (req, res) => {const { cards } = res.locals.rawData;console.log(`req.query:`, req.query);if (!req.query || Object.keys(req.query).length === 0)return res.redirect("/api/v1/cards");let filteredCards = [];for (let k in req.query) {if (k !== "q") {if (k === "meaning") {filteredCards = cards.filter((c) =>[c.meaning_up, c.meaning_rev].join().toLowerCase().includes(req.query[k].toLowerCase()));} else {filteredCards = cards.filter((c) => c[k] && c[k].toLowerCase().includes(req.query[k].toLowerCase()));}} else if (k === "q") {filteredCards = cards.filter((c) =>Object.values(c).join().toLowerCase().includes(req.query[k].toLowerCase()));}}return res.json({ nhits: filteredCards.length, cards: filteredCards }).status(200);
});router.get("/cards/random", function (req, res) {const { cards } = res.locals.rawData;const n = req.query.n > 0 && req.query.n < 79 ? req.query.n : 78;let cardPool = cloneDeep(cards);let returnCards = [];for (let i = 0; i < n; i++) {let id = Math.floor(Math.random() * (78 - i));let card = cardPool[id];returnCards.push(card);remove(cardPool, (c) => c.name_short === card.name_short);}return res.json({ nhits: returnCards.length, cards: returnCards });
});router.get("/cards/:id", (req, res, next) => {const { cards } = res.locals.rawData;const card = cards.find((c) => c.name_short === req.params.id);if (typeof card === "undefined") return next();return res.json({ nhits: 1, card }).status(200);
});router.get("/cards/suits/:suit", (req, res, next) => {const { cards } = res.locals.rawData;const cardsOfSuit = cards.filter((c) => c.suit === req.params.suit);if (!cardsOfSuit.length) return next();return res.json({ nhits: cardsOfSuit.length, cards: cardsOfSuit }).status(200);
});router.get("/cards/courts", (_req, res) => {const { cards } = res.locals.rawData;const courtCards = cards.filter((c) =>["queen", "king", "page", "knight"].includes(c.value));return res.json({ nhits: courtCards.length, cards: courtCards }).status(200);
});router.get("/cards/courts/:court", (req, res, next) => {const { cards } = res.locals.rawData;const { court } = req.params;const len = court.length;if (len < 4) return next();const courtSg = court[len - 1] === "s" ? court.slice(0, len - 1) : court;const cardsOfCourt = cards.filter((c) => c.value === courtSg);if (!cardsOfCourt.length) return next();return res.json({ nhits: cardsOfCourt.length, cards: cardsOfCourt }).status(200);
});router.use(function (_req, _res, next) {var err = new Error("Not Found");err.status = 404;next(err);
});router.use(function (err, _req, res) {res.status(err.status || 500);res.json({ error: { status: err.status, message: err.message } });
});const port = process.env.PORT || 8000;app.listen(port, function () {console.log("RWS API Server now running on port", port);
});
Footer

  描述:
  
  这是使用 Flutter 进行开发的移动应用算命。
  
  克隆此存储库
  
  在项目终端运行以下代码:

  flutter pub getflutter runPI

  满足您所有的网络神秘主义需求。
  
  提供从 AE Waite 的 The Pictorial Key to the Tarot 解析的信息,符合 OpenAPI 3 规范。这是作为对使用 ExpressJS 的 REST API 的友好介绍而创建的。

  API 使用
  
  查看完整文档 + 使用 SwaggerHub 上的 API
  
  快速开始
  
  JS:

fetch("https://rws herokuapp/api/v1/cards/random?n=10").then(function (response) {return response.json()}).then(function (response) {// handle ten random cards}).catch(function (error) {// handle what went wrong});

  欢迎您获取用作数据源的 JSON 文件并将其用于您自己的项目。
  
  克隆或分叉此存储库并在本地安装依赖项。需要 Node 10.0.0 或更高版本,以及 npm 6.0.0 或更高版本。

    git clone ekelen/tarot-api.git# or git@ekelen/tarot-api.git# -OR- click fork on this project's page, then:git clone /YOUR-USERNAME/tarot-api.git

  然后:

  cd tarot-apinpm installnpm run dev

  当谈到在线占卜塔罗牌时,您可能会感到孤立无援。通过虚拟空间交换故事和深入占卜会感觉不如面对面占卜那么亲密。紫园通过营造更加风度翩翩、平易近人的举止来解决这个问题。
  
  一旦找到与您相关的从业者,您就可以与同一位顾问预订每日在线塔罗牌占卜。该网站通过允许用户随时联系顾问来弥补虚拟差距。灵活的时间表和持续的联系使这些服务更具吸引力和意义。
  
  此外,您可以在咨询期间提出每个主题和主题。这些包括关系建议、精神支持、财务预测和与职业相关的星座。注册从业者在这些谈话中采取非评判的立场。然后他们使用他们固有的力量和占卜工具来分享关于你下一步应该做什么的公正建议。这种方法使这些读数高度可靠。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/19234.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海量数据“投喂”、“社交”IoT设备,AIGC在物联网的想象空间有多大?

来源&#xff1a;物联网智库 作者&#xff1a;赵小飞 导读 物联网数据作为现代社会产生的数据主力&#xff0c;加上未来物联网智能“社交”方面的场景&#xff0c;将为AIGC以及大模型提供用武之地。虽然目前还没有物联网与AIGC结合的应用出现&#xff0c;但未来不可避免。 2022…

物联网设备连接的下一个引爆点:4G Cat.1

不看这几篇好文&#xff0c;就别说自己了解物联网 一、背景 物联网从概念兴起至今已经过了好几些年了。何为物联网&#xff0c;首先要定义何为“物”&#xff08;Things&#xff09;&#xff0c;笔者理解所有具备连接能力的设备都可以是物&#xff0c;比如一个手环&#xff0c…

物联网设备通信

一、物联网发展史 1、物联网 互联网 物 物联网定义 把所有物品通过信息传感设备与互联网连接起来&#xff0c;实现智能化识别、运作与管理功能的网络 互联网本质上已经实现了人与人、人与信息的连接&#xff0c;接下来就是人与人本身、人与物的连接了。看目前的发展趋势&…

【物联网那些事儿】物联网主流联网技术(LTE-Cat.1 NB-IoT)

系列文章目录 文章目录 系列文章目录[TOC](文章目录) 前言一、LTE-Cat.1 & NB-IoT二、Cat.1的发展前景三、Cat.1和4G之间的区别四、Cat.1 eMTC NB-IoT 关系总结 前言 LTE Cat.1 eMTC NB-IoT 主流应用场景 一、LTE-Cat.1 & NB-IoT 2G 的替代的一个好选择是LTE-Cat.1 …

TT畅聊物联网(一)-初识物联网

大家好&#xff0c;今天Fancy给大家介绍一位新伙伴。他的名字叫TT。来TT给大家介绍一下自己。 大家好&#xff0c;我是TT。从今天开始我来陪大家一起逛逛物联网的世界。和大伙一起聊聊物联网。 首先自我介绍一下。我叫TT。为什么叫TT。说起来我的名字就是一个误会啊。一天Fan…

DGIOT 工业物联网开源平台简介

DGIOT 工业物联网开源平台简介 一般地&#xff0c;根据各类参与者所提供的服务类型&#xff0c;按照Machina Research的分类方法&#xff0c;物联网平台可分为&#xff1a;连接管理平台CMP&#xff08;Connectivity Management Platform&#xff09;- 设备管理平台DMP&#xf…

物联网的网关

物联网网关&#xff1a;设备和云平台之间的桥梁 物联网中跟设备有关的几个技术点&#xff0c;包括物模型、设备的零配置组网、设备进行网络通信要用到的 MQTT 协议等。但是&#xff0c;并不是所有的设备都能直接接入互联网&#xff0c;直接跟云平台通信。比如智能家居中的一些…

【CTWing】天翼物联网对接

目录 一、场景介绍 二、硬件对接&#xff08;忽略&#xff09; 三、准备工作 Stage 1 &#xff1a;注册账号 -- CTwing 官网 Stage 2 &#xff1a;点击控制台 -- 开通服务 Stage 3 &#xff1a;创建产品 Stage 4 &#xff1a;添加设备 Stage 5 &#xff1a;订阅方URL…

物联网中心网关

物联网中心网需要直将将LAN口直连入路由器 1.默认IP192.168.1.100 ID&#xff1a;newland 密码&#xff1a;newland 2.根据具体要求改IIP 3.iot物联网数据采集添加物联网中心网关 4.新增执行器-频闪指示灯 5.新增执行器-常亮指示灯绿 6.新增执行器-频闪指示灯黄 7.新增执行器…

MQTT物联网

物联网通讯是物联网的一个核心内容&#xff0c;目前物联网的通讯协议并没有一个统一的标准&#xff0c;比较常见的有MQTT、 CoAP 、 DDS 、 XMPP 等&#xff0c;其中&#xff0c; MQTT &#xff08;消息队列遥测传输协议&#xff09;是应用最广泛的标准之一。 一.MQTT简介 什么…

物联网中的智能网关

在现代生产企业中&#xff0c;生产线的自动化系统一般采用以 PLC 为主要节点的控制、通信网络&#xff0c;最常用的是现场总线协议&#xff1b;同时在企业的管理经营系统一般采用计算机为主要节点的通信网络&#xff0c;以 TCP/IP 协议为主&#xff0c;如何实现不同应用系统间的…

物联网平台 TCP/IP HTTP MQTT 通讯协议 支持海康摄像头 数据实时采集和远程控制

物联网平台源码 TCP/IP HTTP MQTT 通讯协议 支持海康摄像头 系统包括&#xff0c;后台服务&#xff0c;传感器解析服务、web展示&#xff0c;文档齐全。 目前web系统支持功能&#xff0c;&#xff1a; 数据实时采集和远程控制&#xff1b; 报警信息管理和报表导出&#xff1b; …

IoTGateway 国内开源工业 IoT 物联网网关

什么是工业物联网网关 工业物联网网关&#xff08;IIoTGateway&#xff09;是一种连接工业场景本地设备(如PLC、扫码枪、机器人、数控机床、非标上位机等)与远端业务系统(如IoT物联网平台、SCADA系统、MES系统等)之间的硬件设备或软件程序。终端设备和远端业务系统之间的所有数…

微信小程序| 基于ChatGPT+明基屏幕挂灯实现超智能家居物联网小程序

一、需求背景 在尝试了这么多次的ChatGPT在纯软方向的应用开发后&#xff0c;深感LLM(大语言模型)的能力之强大。俗话说得好&#xff1a;心有多大舞台就有多大&#xff01;基于AI大模型&#xff0c;可以尝试的方面实在是数不胜数&#xff01;轻轻松松就可以突破在移动互联网时…

如何用好ChatGPT,怎么有效的跟AI进行交流

用好ChatGPT ChatGPT已经出来了一段时间了&#xff0c;有人用来写ppt&#xff0c;有人用来写程序的&#xff0c;有没有发现有的时候还ChatGPT并没有想象的那么聪明。没有给到我们预期的答案&#xff0c;觉得ChatGPT的能力也就是一般般。 你有没有觉得是不是我们自己的问题&am…

利用腾讯GPU云服务器部署ChatGLM-6B,每小时不到2RMB

目录 萝卜选坑选择ChatGLM-6B的理由选择硬件方案 购买GPU云服务器充值购买 配置环境登录服务器安装显卡驱动安装CUDA安装Python 部署ChatGLM-6B下载项目程序包安装Pytorch安装依赖包检查Pytorch是否为GPU版本运行网页版Demo 保存镜像 萝卜选坑 生成式AI已经火了好几个月了&…

Mac 上能跑国产系统了!深度 deepin 官宣:正式适配 M1 芯片

整理 | 郑丽媛 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; Mac 上能跑国产操作系统了&#xff0c;就在今天&#xff01; 今天上午&#xff0c;深度操作系统&#xff08;deepin OS&#xff09;官方宣布&#xff1a;“告诉大家一个令人兴奋的消息&#xff1a;在…

PyTorch Python API详解大全(持续更新ing...)

诸神缄默不语-个人CSDN博文目录 具体内容以官方文档为准。 最早更新时间&#xff1a;2021.4.24 最近更新时间&#xff1a;2023.7.18 文章目录 0. 常用入参及函数统一解释1. torch1.1 Tensors1.1.1 Creation Ops1.1.2 Indexing, Slicing, Joining, Mutating Ops 1.2 Generators…

【GPT4】微软 GPT-4 测试报告(6)与人类的交互能力

欢迎关注【youcans的AGI学习笔记】原创作品&#xff0c;火热更新中 微软 GPT-4 测试报告&#xff08;1&#xff09;总体介绍 微软 GPT-4 测试报告&#xff08;2&#xff09;多模态与跨学科能力 微软 GPT-4 测试报告&#xff08;3&#xff09;编程能力 微软 GPT-4 测试报告&…

你真的会跟ChatGPT聊天吗?(下)

前言&#xff1a;本文下半部分没有无毛猫那么搞笑的内容啦……即使如此&#xff0c;哪怕你对文中提及的技术不大了解&#xff0c;也可毫无压力地看完这篇描述如何更好地获得ChatGPT生成内容的文章。因为我也是利用Azure OpenAI等认知服务来学习&#xff0c;然后就这样写出来的……