Ver código fonte

Merge branch 'master' of https://github.com/visuddhinanda/mint

visuddhinanda 4 anos atrás
pai
commit
0ea2347e1a

+ 1 - 1
README.md

@@ -56,7 +56,7 @@ cd mint; mkdir tmp; chown -R www:www tmp
 - [redis图形界面工具-RedisDesktopManager](https://github.com/uglide/RedisDesktopManager)
 - [redis图形界面工具-RedisDesktopManager](https://github.com/uglide/RedisDesktopManager)
 
 
 ### Git commit message 规范
 ### Git commit message 规范
-git commit message格式 请参见https://gitmoji.dev/
+git commit message格式 请参见 https://gitmoji.dev/
 
 
 -   遵循 git pull request 流程
 -   遵循 git pull request 流程
 -   所有代码必须经过格式化
 -   所有代码必须经过格式化

+ 0 - 0
dicttext/readme.md


+ 61 - 0
documents/zh/api/article.md

@@ -0,0 +1,61 @@
+# article
+
+## article文章
+```table
+CREATE TABLE article (
+    id           INTEGER PRIMARY KEY,
+    uuid         CHAR (36) ,
+    title        TEXT (50) NOT NULL,
+    subtitle     VARCHAR (32),
+    summary      VARCHAR (255),
+    content      TEXT,
+    owner_id     INTEGER,
+    owner        CHAR (36),
+    setting      TEXT,
+    status       INTEGER   NOT NULL DEFAULT (10),
+    create_at  BIGINT,
+    update_at  BIGINT,
+    delete_at  BIGINT
+);
+
+```
+`uuid` 旧表中的主键 
+
+`setting` json格式。文章设置
+
+## article_list 关联表
+```table
+CREATE TABLE article_list (
+    id            INTEGER      PRIMARY KEY AUTOINCREMENT,
+    collect_id    VARCHAR (36) NOT NULL REFERENCES collect (id),
+    collect_title TEXT,
+    article_id    VARCHAR (36)  NOT NULL REFERENCES article (id),
+    level         INTEGER  NOT NULL DEFAULT (1),
+    title         VARCHAR (64) NOT NULL,
+);
+```
+article 和 collect的关联表
+
+`level`在目录中的层级 1-8
+
+`title`在目录中的文章标题
+
+## 文集
+```table
+CREATE TABLE collect (
+    id INTEGER PRIMARY KEY,
+    uuid         VARCHAR (36) ,
+    title        VARCHAR (32) NOT NULL,
+    subtitle     VARCHAR (32),
+    summary      VARCHAR (255),
+    article_list TEXT,
+    status       INTEGER   NOT NULL DEFAULT (10),
+    owner        CHAR (36),
+    lang         CHAR (8),
+    create_at  BIGINT,
+    update_at  BIGINT,
+    delete_at  BIGINT
+);
+```
+
+uuid 旧表中的主键 

+ 23 - 0
documents/zh/api/channel.md

@@ -0,0 +1,23 @@
+# channel
+
+```table
+CREATE TABLE channal (
+    id           int PRIMARY KEY,
+    uuid           CHAR (36),
+    owner_id     INTEGER NOT NULL,
+    owner        VARCHAR (36) NOT NULL,
+    name         VARCHAR (32),
+    summary      VARCHAR (255),
+    status       INTEGER,
+    lang         CHAR (8),
+    create_at  BIGINT,
+    update_at  BIGINT,
+    delete_at BIGINT
+);
+```
+
+`owner`        VARCHAR (36) NOT NULL
+
+最初的创建者。
+旧表中的用户id uuid。新表中改用owner_id(int)。
+

+ 25 - 0
documents/zh/api/deploy.md

@@ -0,0 +1,25 @@
+# 运维
+
+```table
+CREATE TABLE setting (
+    [key]     VARCHAR(32) PRIMARY KEY,
+    value     VARCHAR(64) NOT NULL,
+    [default] VARCHAR(64)
+);
+```
+## 逐词解析编辑消息message
+```table
+CREATE TABLE message (
+    id        INTEGER   PRIMARY KEY AUTOINCREMENT,
+    sender    TEXT      NOT NULL,
+    user_id    INTEGER      NOT NULL,
+    type      INTEGER   NOT NULL,
+    book      INTEGER,
+    paragraph INTEGER,
+    data      TEXT,
+    doc_id    VARCHAR (36),
+    time      BIGINT
+);
+```
+
+`time` 消息发送时间

+ 210 - 0
documents/zh/api/dict.md

@@ -0,0 +1,210 @@
+# 用户逐词解析字典
+```table
+CREATE TABLE user_wbw_dicts (
+    id SERIAL PRIMARY KEY,
+    pali        TEXT    NOT NULL,
+    type        TEXT,
+    gramma      TEXT,
+    parent      TEXT,
+    mean        TEXT,
+    note        TEXT,
+    factors     TEXT,
+    factormean  TEXT,
+    status      INTEGER,
+    lang    VARCHAR(8),
+    confidence  INTEGER DEFAULT (100),
+    creator     INTEGER NOT NULL,
+    ref_counter INTEGER DEFAULT (1) 
+    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
+    updated_at TIMESTAMP NOT NULL
+
+);
+
+//引用索引
+CREATE TABLE user_wbw_dict_indexs (
+    id SERIAL PRIMARY KEY,
+    word_index  INTEGER NOT NULL,
+    user_id     INTEGER NOT NULL,
+    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+);
+
+```
+
+
+## API
+### 存储一个单词
+`PUT /api/dict/user`
+
+body
+```
+{
+    "pali":string
+    "type":string
+    gramma:string
+    parent:string
+    mean:string
+    note:string
+    parts:string
+    partmean:string
+    lang:string
+    confidence:int (1-10)
+}
+```
+>提交时查重。如果    pali:
+    type:
+    gramma:
+    parent:
+    mean:
+    note:
+    factors:
+    factormean:
+合在一起有重复,就、改变引用次数,并更新引用索引。没有重复,添加新纪录。
+
+### 查社区字典
+`GET /api/dict/wbw/word/:word`
+返回值:
+```json
+[
+    {
+        "id":int,
+        "word":string,
+        "type":string,
+        "gramma":string,
+        "mean":string,
+        "parent":string,
+        "parts":string,
+        "creator":string,
+        "ref_count":int,
+    }
+]
+```
+
+# 系统字典+第三方字典
+
+字段同逐词解析字典。原始数据[csv文件](/dicttext/readme.md)。全部导入redis。
+
+# 参考字典
+
+>PCED 中的字典
+
+```table
+CREATE TABLE dict_ref (
+    id SERIAL PRIMARY KEY,
+    lang VARCHAR(8),
+    dict_id  INTEGER,
+    eword    VARCHAR(255),
+    word     VARCHAR(255),
+    mean     TEXT
+);
+```
+字典名称表
+
+```table
+CREATE TABLE dict_ref_name (
+    id SERIAL PRIMARY KEY,
+    lang VARCHAR(8),
+    shortname VARCHAR(16),
+    name      VARCHAR(255)
+);
+```
+## API
+
+### 词头列表
+`GET /api/dict/ref/head/:word`
+返回值:
+```json
+[
+    {
+        "id":int,
+        "word":string,
+        "count"int,
+    }
+]
+```
+### 简要意思列表
+`GET /api/dict/ref/firstmean`
+参数:?lang=en word=word1,word2……wordn
+
+返回值:
+```json
+[
+    {
+        "id":int,
+        "word":string,
+        "count"int,
+    }
+]
+```
+
+### 单词查询
+
+`GET /api/dict/ref/word/:word`
+
+返回值:
+```json
+[
+    {
+        "id":int,
+        "word":string,
+        "dict_id":int,
+        "mean":string,
+    }
+]
+```
+
+### 内文查询
+
+`GET /api/dict/ref/content/:word`
+
+返回值:
+```json
+[
+    {
+        "id":int,
+        "word":string,
+        "dict_id":int,
+        "mean":string,
+    }
+]
+```
+
+# 逐词解析自动查字典
+>逐词解析以两种方式查字典。按照段落,和单个单词。段落匹配用于逐词解析批量查词填充。查单个单词用于鼠标移入单词区域或拆分改变。
+
+## API
+
+### 以段落为单位查词
+
+`GET /api/dict/wbw/para/:book/:para`
+
+返回:
+```json
+[
+    {
+        "pali":"value",
+        "type":"value",
+        "gramma":"value",
+        "mean":"value",
+        "parts":"value",
+        "partmean":"value",
+        "note":"value",
+        "lang":"value",
+        "pali":"value",
+        "pali":"value",
+        "pali":"value",
+    }
+]
+```
+
+### 以单词为单位查
+
+`GET /api/dict/wbw/word`
+
+参数:?word=word1,word2……wordn
+
+返回:
+
+与以段落为单位查词相同
+
+
+

+ 52 - 0
documents/zh/api/group.md

@@ -0,0 +1,52 @@
+# group
+
+## group_info
+
+```table
+CREATE TABLE group_info (
+    id          int    PRIMARY KEY,
+    uuid        VARCHAR (36) ,
+    name        VARCHAR (32)    NOT NULL,
+    description TEXT,
+    status      INTEGER,
+    owner_id    INTEGER,
+    owner       VARCHAR (36),
+    create_at BIGINT      NOT NULL,
+    update_at BIGINT NOT NULL,
+    delete_at BIGINT 
+);
+```
+
+`owner`       VARCHAR (36),
+
+最初创建者
+旧表中用uuid 新表用 int 取代。数据迁移后删除。
+
+`uuid`        VARCHAR (36) ,
+
+旧表中的主键用uuid 新表用 int 取代。新表中保留此uuid。
+
+## group_member
+```table
+CREATE TABLE group_member (
+    id         INTEGER   PRIMARY KEY AUTOINCREMENT,
+    user_id    CHAR (36) NOT NULL,
+    group_id   INTEGER   NOT NULL,
+    power      INTEGER   NOT NULL
+                         DEFAULT (1),
+    group_name CHAR (32),
+    level      INTEGER   DEFAULT (0),
+    status     INTEGER   DEFAULT (1) 
+);
+```
+`user_id` 原表中用uuid  新表替换为 int
+
+`group_name` 与 group_info中的name相同
+
+`power` 目前没有使用
+
+`level` 目前没有使用
+
+`status` 
+- 0-禁用
+- 1-正常

+ 1 - 0
documents/zh/api/palicanon.md

@@ -35,3 +35,4 @@
 - `progress`: int 章节译文完成度  0-100
 - `progress`: int 章节译文完成度  0-100
 - `trans_title` string, 根据lang查找对应的标题 如果没有查询到 无该变量
 - `trans_title` string, 根据lang查找对应的标题 如果没有查询到 无该变量
 
 
+## 

+ 35 - 2
documents/zh/api/readme.md

@@ -24,6 +24,39 @@ https://github.com/go-redis/redis
 * [语料库](palicanon.md)
 * [语料库](palicanon.md)
 * [术语](term.md)
 * [术语](term.md)
 * [译文](translation.md)
 * [译文](translation.md)
-* [用户管理](user.md)
+* [文章文集](article.md)
+* [用户](user.md)
 * [逐词解析](wbw.md)
 * [逐词解析](wbw.md)
-* [全文搜索](search.md)
+* [全文搜索](search.md)
+* [其他工具表](others.md)
+
+```mermaid
+graph LR
+subgraph 后端
+    subgraph channel版本
+    channel[("channel")]
+    end
+    subgraph article文章
+    article[("article")]
+    article_list[("article_list")]
+    collection[("collection")]
+    end
+end
+
+subgraph 前端
+    subgraph 文集
+    collection_home("著作首页")
+    article_reader("文章阅读")
+    collection_edit("著作编辑")
+    article_edit("文章编辑")
+    end
+end
+collection_home --> collection
+collection_home --> article
+article_reader --> article
+article_reader --> collection
+article_reader --> article_list
+collection_edit --> collection
+article_edit  --> article
+```
+

+ 65 - 0
documents/zh/api/share.md

@@ -0,0 +1,65 @@
+# share
+
+```table
+CREATE TABLE share_cooperator (
+    id SERIAL PRIMARY KEY,
+    res_id          INTEGER NOT NULL,
+    res_uuid          VARCHAR (36),
+    res_type        INTEGER,
+    cooperator_id   INTEGER NOT NULL,
+    cooperator_uuid   VARCHAR (36),
+    cooperator_type INTEGER NOT NULL,
+    right           INTEGER NOT NULL DEFAULT 0,
+    version INTEGER NOT NULL DEFAULT 0,
+    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    updated_at TIMESTAMP NOT NULL
+);
+```
+分享资源给用户或者群组。
+
+`res_id` 资源id 原来的表中是uuid 导入后改为 int
+
+`res_type` 资源类型 
+1. channel
+2. wbw doc
+3. article
+4. collection
+   
+`cooperator_id` 用户或工作组id
+
+`cooperator_type` 
+1. 用户
+2. 工作组
+
+`right` 权限
+1. 只读
+2. 可写
+3. 拥有者
+
+
+
+
+```table
+CREATE TABLE share_link (
+    id SERIAL PRIMARY KEY,
+    link_id     VARCHAR (36) UNIQUE,
+    res_id      INTEGER NOT NULL,
+    res_type    INTEGER,
+    right       INTEGER,
+    version INTEGER NOT NULL DEFAULT 0,
+    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    updated_at TIMESTAMP NOT NULL
+);
+```
+
+分享资源链接
+
+`link_id` uuid
+
+`res_id` 资源id 原来的表中是uuid 导入后改为 int
+
+`res_type` 资源类型 
+1. channel
+2. wbw doc
+3. article
+4. collection

+ 120 - 0
documents/zh/api/translation.md

@@ -0,0 +1,120 @@
+# 译文
+
+## 句子块sent_block
+
+```table
+CREATE TABLE sent_block (
+    id           int PRIMARY KEY,
+    uuid         CHAR (36),
+    parent_id    CHAR (36),
+    book         INTEGER,
+    paragraph    INTEGER,
+    owner_id     INTEGER NOT NULL,
+    owner        CHAR (36) NOT NULL,
+    lang         CHAR (8),
+    author       CHAR (50),
+    editor_id    INTEGER,
+    editor       TEXT,
+    status       INTEGER,
+    create_at  BIGINT,
+    update_at  BIGINT,
+    delete_at  BIGINT
+);
+```
+
+`book` 书号
+
+`paragraph` 书号
+
+`author` 
+
+编辑者列表。还没设计好。 可能是这样
+```
+[
+    {"creater":"bhikkhu bodhi"},
+    {"translater":"bhikkhu kosalla"},
+]
+```
+
+`editor` 数据提交者 旧表中用 user_name 新表用 editor_id
+
+`owner` 记录的创建者
+
+## sentence
+```table
+CREATE TABLE sentence (
+    id           int PRIMARY KEY,
+    uuid           CHAR (36) ,
+    parent       CHAR (36),
+    block_id     CHAR (36),
+    channel_id      CHAR (36),
+    book         INTEGER   NOT NULL,
+    paragraph    INTEGER   NOT NULL,
+    start      INTEGER   NOT NULL,
+    end        INTEGER   NOT NULL,
+    author       TEXT,
+    editor_id       CHAR (36),
+    text         TEXT,
+    language     CHAR (8),
+    version      INTEGER,
+    status       INTEGER,
+    strlen       INTEGER,
+    create_at    BIGINT  NOT NULL, 
+    update_at    BIGINT   NOT NULL,
+    delete_at    BIGINT,
+
+);
+```
+`uuid` 原表的主键 新表中用int代替
+
+`channel_id` 外键 原表 channal uuid 导入后应改为int
+
+`editor_id` 记录的上传者 外键 原表用 uuid 现在改用 int
+
+`text` 句子文本 
+
+`version` 用于乐观锁 每次更新+1
+
+`strlen` 句子字符数
+
+
+```table
+CREATE TABLE sent_pr (
+    id           INTEGER      PRIMARY KEY AUTOINCREMENT,
+    book         INTEGER      NOT NULL,
+    paragraph    INTEGER      NOT NULL,
+    start      INTEGER      NOT NULL,
+    end        INTEGER      NOT NULL,
+    channel_id      VARCHAR (36),
+    author       VARCHAR (40),
+    editor_id       VARCHAR (36),
+    text         TEXT,
+    language     VARCHAR (8),
+    status       INTEGER,
+    strlen       INTEGER,
+    create_at    BIGINT  NOT NULL, 
+    update_at    BIGINT   NOT NULL,
+    delete_at    BIGINT,
+);
+
+```
+
+# 修改历史
+
+```table
+CREATE TABLE sent_historay (
+    sent_id  CHAR (36),
+    user_id  CHAR (36),
+    text     TEXT,
+    create_at     BIGINT NOT NULL,
+    landmark VARCHAR(32)
+);
+```
+
+`sent_id` 外键 导入后改为int
+
+`user_id` 外键 导入后改为int
+
+`text` 句子文本
+
+`landmark` 里程碑标记

+ 64 - 5
documents/zh/api/user.md

@@ -1,5 +1,5 @@
-## 用户认证
-### user
+# 用户
+## users
 用户信息
 用户信息
 ```
 ```
 CREATE TABLE user_info (
 CREATE TABLE user_info (
@@ -39,11 +39,11 @@ INTEGER 服务器收到此数据时间
 #### `setting`
 #### `setting`
 TEXT 用户设置 json 数据
 TEXT 用户设置 json 数据
 
 
-### profile
+## profile
 用户简历
 用户简历
 ```
 ```
 CREATE TABLE user_profile (
 CREATE TABLE user_profile (
-    id        INTEGER   PRIMARY KEY AUTOINCREMENT,
+    id SERIAL PRIMARY KEY,
     user_id   CHAR (36),
     user_id   CHAR (36),
     bio       TEXT,
     bio       TEXT,
     lang      CHAR (8),
     lang      CHAR (8),
@@ -62,4 +62,63 @@ TEXT
 #### `isdefault`
 #### `isdefault`
 是否是默认记录。
 是否是默认记录。
 #### `email`
 #### `email`
-电邮地址
+电邮地址
+
+## 编辑记录索引active_index
+用户行为记录。以日期计算的使用与编辑有关功能的时间和操作次数
+```table
+CREATE TABLE active_index (
+    id SERIAL PRIMARY KEY,
+    user_id  INTEGER NOT NULL,
+    user_uuid  VARCHAR (36),
+    date     TIMESTAMP NOT NULL,
+    duration INTEGER NOT NULL,
+    hit      INTEGER NOT NULL 
+);
+```
+`date` 日期
+
+`duration` 持续时间 毫秒
+
+`hit` 操作次数
+
+## 编辑记录edit_records
+```table
+CREATE TABLE edit_records (
+    id SERIAL PRIMARY KEY,
+    user_id  INTEGER NOT NULL,
+    user_uuid  VARCHAR (36),
+    start_at    TIMESTAMP,
+    end_at    TIMESTAMP,
+    duration INTEGER,
+    hit      INTEGER   DEFAULT (0),
+    timezone INTEGER   DEFAULT (0) 
+);
+```
+
+## 编辑行为记录
+```table
+CREATE TABLE active_log (
+    id SERIAL PRIMARY KEY,
+    user_id  INTEGER NOT NULL,
+    active   INTEGER NOT NULL,
+    content  TEXT,
+    timezone INTEGER,
+    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+```
+
+只添加不删除
+
+### api
+PUT /api/useractive/log
+
+body:
+```
+{
+    active:aid,
+    content:text,
+    timezone:timezone,
+}
+```
+

+ 36 - 20
documents/zh/api/wbw.md

@@ -2,19 +2,24 @@
 ### wbw_block
 ### wbw_block
 ```
 ```
 CREATE TABLE wbw_block (
 CREATE TABLE wbw_block (
-    id             UUID    PRIMARY KEY,
+    id SERIAL PRIMARY KEY,
+    uuid           VARCHAR(36),
     parent_id      UUID,
     parent_id      UUID,
+    channal_id     INTEGER NOT NULL,
     channal        UUID,
     channal        UUID,
+    parent_channel_id INTEGER NOT NULL,
     parent_channel UUID,
     parent_channel UUID,
+    owner_id       INTEGER NOT NULL,
     owner          UUID,
     owner          UUID,
-    book           INTEGER,
-    paragraph      INTEGER,
+    book           INTEGER  NOT NULL  DEFAULT 0,
+    paragraph      INTEGER  NOT NULL  DEFAULT 0,
     style          VARCHAR (16),
     style          VARCHAR (16),
     lang           VARCHAR (8),
     lang           VARCHAR (8),
     status         INTEGER,
     status         INTEGER,
-    update_time  INTEGER,
-    delete_time  INTEGER,
-    create_time  INTEGER
+    deleted_at TIMESTAMP,
+    version INTEGER NOT NULL DEFAULT 0,
+    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    updated_at TIMESTAMP NOT NULL
 );
 );
 ```
 ```
 #### `parent_id`
 #### `parent_id`
@@ -31,31 +36,42 @@ channel
 段落号
 段落号
 
 
 
 
-### wbw-data
+### 逐词解析数据 wbw-data
 ```
 ```
-CREATE TABLE wbw_data (
-    id           UUID PRIMARY KEY,
-    block_id     UUID,
-    book         INTEGER,
-    paragraph    INTEGER,
-    wid          INTEGER,
+CREATE TABLE wbw_datas (
+    id SERIAL PRIMARY KEY,
+    block_id     INTEGER NOT NULL,
+    block_uuid     VARCHAR(36),
+    book         INTEGER NOT NULL,
+    paragraph    INTEGER NOT NULL,
+    wid          INTEGER NOT NULL,
     word         TEXT,
     word         TEXT,
-    data         XML,
+    data         TEXT,
     status       INTEGER,
     status       INTEGER,
-    owner        UUID,
-    update_time  INTEGER,
-    delete_time  INTEGER,
-    create_time  INTEGER
+    owner_id     INTEGER NOT NULL,
+    owner        VARCHAR(36),
+    deleted_at TIMESTAMP,
+    version INTEGER NOT NULL DEFAULT 0,
+    created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    updated_at TIMESTAMP NOT NULL
 );
 );
 
 
 ```
 ```
-#### `block_id`
+
+`id` 原表uuid 不需要导入因为没有其他表链接到这个id
+
+`block_id`
 与wbw_block表关联的字段
 与wbw_block表关联的字段
-#### `data`
+
+`data`
 单词数据 xml格式
 单词数据 xml格式
 
 
+
 ### API
 ### API
 GET api/wbw/:channel/:book/:para/
 GET api/wbw/:channel/:book/:para/
+
 PUT api/wbw/:channel/:book/:para/
 PUT api/wbw/:channel/:book/:para/
+
 POST api/wbw/:channel/:book/:para/
 POST api/wbw/:channel/:book/:para/
+
 DELETE api/wbw/:channel/:book/:para/
 DELETE api/wbw/:channel/:book/:para/