Weirdo-terminal
是一个富有趣味性的 web
终端。
它提供了一个简洁的界面,使用户能够在单页面上通过输入命令快速执行各种操作。
同时开发者还可以根据自己的需求灵活定制新的命令,从而进一步提升用户体验。
在线体验地址 : https://www.weirdo-terminal.com/ (仅支持 PC 端)
比如请求知乎热榜信息
输入 hot zhihu
比如更换主题色
输入 theme
比如请求 gpt 服务 (访问不了gpt, 目前建议使用文心一言服务)
输入 gpt
请求文心一言模型
输入 bot
如果想查看更多命令的话, 可以输入 help 查看全局的指令 ~~
Tab
键补全命令5
种输出状态已支持命令
date
日期shortcut
查看快捷键goto
网页快速跳转help
查看帮助clear
清屏ikun
小黑子狂欢todo
待办事项copy
复制文本moyu
一些小游戏history
查看执行历史hint
是否输入提示reset
重置终端配置welcome
自定义终端欢迎语fanyi
翻译music
网易云音乐weather
今日天气dujitang
一句毒鸡汤inspire
励志句子film
豆瓣热门电影信息love
一句情话background
更换背景图片varbook
变量命名助手baidu
google
juejin
user
用户相关命令, 比如
user login
user register
user logout
hot
资讯热榜前10
位, 比如:
hot zhihu
hot weibo
add
remove
show
list
mkdir
cd
move
copy
analyze
网站技术分析
analyze baidu.com
analyze 书签名称
theme
变换主题
theme low
theme high
gpt
chatGPT 3.5ERNIT-Bot
具体的使用就请小伙伴们自行摸索啦❤~~~
主要技术:
Vue 3
Vite 4
脚手架pnpm
包管理工具ES Module
模块化规范sass
CSS预处理器Ant Design Vue 3
组件库Pinia 2
状态管理TypeScript
类型控制Eslint
代码规范控制Prettier
美化代码依赖库:
axios
: 网络请求dayjs
: 时间处理lodash
: 工具库getopts
: 命令参数解析marked
: 内容格式化chatgpt
: 官方 ChatGPT API 的 Nodejs 包主要技术:
Node.js
Express
、express-session
MySQL
Sequelize
(ORM 框架)Redis
依赖库:
Axios
NeteaseCloudMusicApi
md5
chatgpt
ERNIT-Bot
依赖服务:
public
: 公共静态资源 (.ico图标)testgpt
: gpt服务测试文件src
assets
静态资源components
组件core
核心plugins
第三方依赖router
路由管理server
后端store
状态管理utils
工具函数views
页面App.vue
主页面main.ts
Vue 主文件.eslintrc.js
代码规范.gitignore
git忽略文件.prettierrc.json
代码格式化components.d.ts
自动生成的组件动态引入env.d.ts
环境定义index.html
静态主页package.json
项目管理tsconfig.json
TS 配置vite.config.ts
打包工具配置接下来让我们快速开启项目吧~~
将项目克隆到本地
git clone https://github.com/2WeirDo/weirdo_terminal.git
进入项目目录,并分别安装前端与后端依赖
cd weirdo_terminal && pnpm install
cd scr/service && pnpm install
在 server/src/config
中,新建config.js
文件夹进行项目的配置
export const redisConfig = {
host: 'localhost',
port: '6379',
password: '123456',
db: 2
};
export const dbConfig = {
database: 'weirdo_terminal',
username: 'root',
password: '123456',
host: 'localhost',
port: 3306
};
export const baiduFanYiConfig = {
appid: '',
key: ''
};
export const gptConfig = {
key: '',
// baseUrl: ''
};
在 scr/plugins/myAxios
中, 修改 baseURL
let baseURL = 'http://localhost:7345/api'; // 开发环境
运行前端
pnpm run dev
运行后端
cd server && pnpm start:dev
快速解锁命令用法 - 命令行中使用help
命令查询使用方法
# 查询全部命令帮助
help
# 查询具体命令帮助
help baidu || help hot
chatGPT
通过 testgpt
,检测你能否顺利请求到 ChatGPTAPI
, 确保你网络通畅 且 API Key
可用
执行如下命令,进入 testgpt
文件夹,并安装依赖
cd testgpt && pnpm install
在 index.js
文件中配置你的 API Key
注意 : 需要一个有额度的 API key 哦~~
const api = new ChatGPTAPI({
apiKey: ''
})
运行 index.js
文件
node index.js
若顺利输出内容,则说明 API Key
有效且网络可访问。
文心一言
通过 testBot , 检测是否能正确请求到文心一言的服务。
const API_KEY = ''
const SECRET_KEY = ''
const ACCESS_TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token'
node index.js
正确输出以下结果即证明你已经成功访问。
系统分为 3 个核心模块,各模块职责分明:
前端架构图
从 0 开始实现的 web 终端控制台,包含以下模块:
document.onkeydown
全局按键事件实现一套独立于终端的命令解析执行引擎,包含以下模块:
一组可用命令的集合(类似插件),通过 TS 明确命令的定义,支持配置别名、选项、子命令等,便于开发者扩展和定制。
核心命令包括:
欢迎大家 star 呀 ~~ ⭐⭐