Skip to content
This repository has been archived by the owner on Dec 7, 2021. It is now read-only.

数据库开发文档

OpportunityLiu edited this page Aug 12, 2019 · 6 revisions

已迁移

该项目及翻译数据库已迁移到 GitHub 组织 EhTagTranslation。本项目及 Wiki 即日起停止更新。

需要安装新的翻译工具,请移步 EhTagTranslation/EhSyringe;想要提供或使用新的翻译,请移步 EhTagTranslation/Database

数据库使用协议

译文数据库介绍#协议为准

使用方式

开发条件困难的可以选择使用 ETB 生成的离线 JSON 数据库,希望随时更新的可以自行研发在线获取数据库的方式。

离线数据库

ETB v2.80 开始调整了 JSON 数据库结构,因此此文档不适用于以前版本。

点击 ETB“生成 JSON”任务 生成 JSON

等待数据库获取完成并输出 JSON 代码 生成 JSON

主要结构示例

{
    "scriptName": "E绅士标签构建者",
    "scriptVersion": "2.8.1",
    "database-structure-version": 4,
    "date": 1505488116161,
    "dataset": [
        {
            "name": "artist",
            "cname": [
                {"type": 0,"text": "艺术家"}
            ],
            "info": [
                {"type": 0,"text": "绘画作者 / Coser"}
            ],
            "tags": [
                {
                    "type": 0,
                    "name": "oouso",
                    "cname": [
                        {"type": 0,"text": "大嘘"}
                    ],
                    "info": [
                        {"type": 2,"src": "http://ww1.sinaimg.cn/large/6c84b2d6gy1fjkes482gzj204q04qmxx.jpg","alt": "大嘘头像"},
                        {"type": 1},
                        {"type": 0,"text": "袜控,尻控,女子高中生(误)画家。"},
                        {"type": 1},
                        {"type": 2,"src": "http://ul.ehgt.org/72/3c/723ca0e20e7cbf1b9f83c3a082c37b560de437aa-2602261-1787-2500-jpg_250.jpg","alt": "大嘘作品"}
                    ],
                    "links": [
                        {"text": "pixiv","href": "https://www.pixiv.net/member.php?id=457541","title": "作者P站主页"}
                    ]
                }
            ]
        } 
    ]
}

分级详解

顶层

{
    "scriptName": "E绅士标签构建者", //程序名
    "scriptVersion": "2.8.1", //版本
    "database-structure-version": 4, //数据库结构版本
    "date": 1505488116161, //产生时间(协调世界时),1970年1月1日开始的毫秒数
    "dataset": [ //储存类型行数组,每个元素是一个类型对象
	   {类型略}
    ]
}

类型对象

{
	"name": "artist", //类型的英文名
	"cname": [ //储存中文名的信息数组,每个元素是一个信息对象
		{"type": 0,"text": "艺术家"}
	],
	"info": [ //储存介绍的信息数组,每个元素是一个信息对象
		{"type": 0,"text": "绘画作者 / Coser"}
	],
	"tags": [ //储存标签数组,每个元素是一个标签对象
		{标签略}
	]
}

标签对象

译文标签
{
	"type": 0, //0为译文,1为注释
	"name": "oouso", //英文原名
	"cname": [ //储存中文名的信息数组,每个元素是一个信息对象
    	{"type": 0,"text": "大嘘"}
	],
	"info": [ //储存介绍的信息数组,每个元素是一个信息对象
		{"type": 2,"src": "http://ww1.sinaimg.cn/large/6c84b2d6gy1fjkes482gzj204q04qmxx.jpg","alt": "大嘘头像"},
		{"type": 1},
		{"type": 0,"text": "袜控,尻控,女子高中生(误)画家。"},
	],
	"links": [ //储存外部链接数组,每个元素是一个链接对象
    	{"text": "pixiv","href": "https://www.pixiv.net/member.php?id=457541","title": "作者P站主页"}
	]
}
注释标签
{
    "type": 1, //0为译文,1为注释
    "name": "", //注释name为空
    "cname": [ //储存中文名的信息数组,每个元素是一个信息对象
        {"type": 0,"text": "▼ 东方Project 人物"}
    ],
    "info": [ //储存介绍的信息数组,每个元素是一个信息对象
        {"type": 0,"text": "请参照THBWiki官方角色列表填写"}
    ],
    "links": [ //储存外部链接数组,每个元素是一个链接对象
        {"text": "官方角色列表","href": "http://thwiki.cc/%E5%AE%98%E6%96%B9%E8%A7%92%E8%89%B2%E5%88%97%E8%A1%A8","title": ""}
    ]
}

链接对象

{
	"text": "pixiv", //链接显示文字
	"href": "https://www.pixiv.net/member.php?id=457541", //链接URL
	"title": "作者P站主页" //链接的title
}

信息对象

文本信息
{
	"type": 0, //0为普通文本
	"text": "艺术家" //文本内容
}
换行信息
{
	"type": 1 //1表示换行(<br>)
}
图片信息
{
	"type": 2, //2表示图片
	"src": "http://ww1.sinaimg.cn/large/6c84b2d6gy1fjkes482gzj204q04qmxx.jpg", //图片URL
	"alt": "大嘘头像" //图片替换文字
}
链接信息

类似链接对象

{
    "type": 3, //3表示是一个链接
    "text": "在论坛", //链接显示文字
    "href": "https://forums.e-hentai.org/index.php?showtopic=199295", //链接URL
    "title": "" //链接title
}

即时获取数据库

如果程序对数据库时效性有要求,那么自己写一个在线获取最新数据库的程序是最方便的。

目前数据库的获取有两种方式

  1. 通过 GitHub 官方 Markdown 引擎解析的 Wiki 网页获取。(ETB 的获取方式)

    😄优点

    • 由完善的引擎进行预处理,容错性比较高。
    • 不受 Markdown 文件所在文件夹改动的影响。

    😰缺点

    • 需要 HTML 解析器,但如果是在浏览器内解析则比较简单。
  2. 直接获取 Wiki 原始 Markdown 文件,使用正则表达式解析。(ETS 的获取方式)

    😄优点

    • 不需 HTML 解析器,方便本地脚本解析。

    😰缺点

    • 需要自行编写 Markdown 文件的解析,容易出现不可预料的格式错误。
    • 受 Markdown 文件所在文件夹改动的影响。

网页获取

源文件获取

已迁移

该项目及翻译数据库已迁移到 GitHub 组织 EhTagTranslation。本项目及 Wiki 即日起停止更新。

需要安装新的翻译工具,请移步 EhTagTranslation/EhSyringe;想要提供或使用新的翻译,请移步 EhTagTranslation/Database

Clone this wiki locally