/mchat

IRC like chat client

Primary LanguageRubyMIT LicenseMIT

Mchat

Mchat is IRC like chat client.

Doc: 用Ruby打造一个命令行Slack

preview

This is Mchat client repo, server repo:

Installation

install it yourself as:

$ gem install mchat

Usage

# enter mchat
mchat

# /h for help
/h

或者使用Docker

直接使用

docker run -it mark24code/mchat


Features

repl

  • repl主流程
  • 命令模块化
  • help 命令
  • channel 命令
  • join 命令
  • name 命令
  • message 命令
  • leave 命令
  • quit 命令
  • clear 命令
  • default mode
  • boss mode
  • 存储 Pstore 实现取代文件

timeline

  • timeline 独立
  • 支持简单命令
  • hook_quit

union

  • 联合打开screen window
  • 联合关闭

TODO features

  • 密码登录用户,超级管理员
  • 密码登录channel
  • 创建频道
  • 配置化 * [ ] temp
  • 日志 * [ ] 优化代码,现在太分散 * [ ] 是否要实现一个 tail 包装命令
  • 打包下载
  • README update HOWTO
  • 指令插件化
  • set 命令
  • 打字机效果(需要单独的渲染,不可以文件输出)
  • eval 增加连续组合命令
  • 可以封装在docker里
  • 合理化初始化参数
  • config 三个 path 和dir 部分处理
  • cli 关闭通知timeline关闭
  • 加密消息

mchat_experiment

Private Repo

mchat_experiment

实验脚本

  • module 的模块化写法

  • 进程间 PStore 通信

    • 模块化
    • 面向对象实例
  • Tempfile 的使用

  • MessageQueue 线程队列的使用

  • 使用 screen & screenrc 创造双屏应用

TUI

模拟一个前端基于命令的浏览器

  • eventloop 模拟
  • vnode 虚拟dom的模拟:jsx 构建cli界面
  • hooks 模拟
  • lambda_vnode 纯函数式的写法模拟jsx组件
  • repl 时间循环模拟
  • 基于Curses 封的TUI
  • 基于消息队列封装的client

License

The gem is available as open source under the terms of the MIT License.