Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[proposal] 启动器公告 #24

Open
yushijinhun opened this issue Nov 28, 2018 · 6 comments
Open

[proposal] 启动器公告 #24

yushijinhun opened this issue Nov 28, 2018 · 6 comments

Comments

@yushijinhun
Copy link
Owner

yushijinhun commented Nov 28, 2018

概述

该提案为验证服务器向启动器推送公告制定了规范。

格式

公告包含在 meta 里的 notice 属性中,其格式如下:

{
    "content": "公告文本",
    "lastUpdate": "最后更新时间(可选)"
}
  • 公告文本 content 是一段纯文本。文本可以有多行,使用 LF 作为换行符。
  • 最后更新时间 lastUpdate 是一个符合 ISO 8601 格式的日期时间,如 2011-03-21T00:18:56Z

下面给出一个完整的例子:

{
    "meta": {
        "notice": {
            "content": "欢迎来到某服务器\n网站:https://example.com/\nQQ群:123456789",
            "lastUpdate": "2018-12-01T13:16:17Z"
        },
        ...
    },
    ...
}

启动器实现时的注意点

  • 建议将文本中的 URL 识别为超链接,以便用户直接点击访问。
  • 建议将公告显示在启动器首屏上,让用户一眼就能看到其内容。
  • 显示最后更新时间时,注意将其转换为当地时间。
  • 可以通过最后更新时间的变化,来提示用户公告内容有改动。

验证服务器实现时的注意点

  • 公告内容中,换行符使用 LF。
  • 如果公告中包含 URL,且 URL 较长,则可以考虑使用短链接。

欢迎诸位就本提案提出意见。

@andylizi
Copy link

lastUpdate 为什么不用 Unix 时间戳?方便读取,不会有解析问题,更不会有时区问题。

@yushijinhun
Copy link
Owner Author

@andylizi 我所使用的日期时间格式也是标准的,各语言的类库应该都提供了格式化函数。而且和 UNIX 时间戳相比,ISO 8601 是人类可读的。至于时区的问题,字符串末尾的 Z 代表的就是 UTC 时区。

@GreyElaina
Copy link

我觉得可以像error一样,提供一个机器可读(Unix时间戳)和一个人类可读(按服务器所在时区计算)来提供公告

@yushijinhun
Copy link
Owner Author

我觉得可以像error一样,提供一个机器可读(Unix时间戳)和一个人类可读(按服务器所在时区计算)来提供公告

没有必要,只要统一采用UTC时间就行。

@MlgmXyysd
Copy link

lastUpdate 为什么不用 Unix 时间戳?方便读取,不会有解析问题,更不会有时区问题。

同意,API是放机器读取的,Unix时间戳无非是最好的选择,让启动器自行将timestamp转为可读时间即可

@yushijinhun
Copy link
Owner Author

那就不规定时区好了,反正 ISO 8601 里自己带时区信息。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants