From 813890fc4b3c099c85684f731005ebfa0d42820f Mon Sep 17 00:00:00 2001 From: undefined Date: Tue, 2 Nov 2021 14:50:48 +0800 Subject: [PATCH] ui: tos update --- package.json | 16 ++-- packages/center/package.json | 2 +- packages/fps-importer/package.json | 2 +- packages/hydrojudge/package.json | 12 +-- packages/hydrojudge/src/hosts/hydro.ts | 2 + packages/hydrooj/package.json | 22 ++--- packages/migrate-vijos/package.json | 2 +- packages/ui-default/handler.ts | 16 ++++ packages/ui-default/misc/immersive.styl | 2 +- packages/ui-default/package.json | 32 ++++--- packages/ui-default/setting.yaml | 102 ++++++++++++++++++++ packages/ui-default/templates/about.html | 117 +---------------------- packages/utils/package.json | 4 +- packages/vjudge/package.json | 2 +- 14 files changed, 173 insertions(+), 160 deletions(-) diff --git a/package.json b/package.json index 36dd4856b..1b90fc7df 100644 --- a/package.json +++ b/package.json @@ -28,15 +28,15 @@ "license": "AGPL-3.0-only", "devDependencies": { "@types/cross-spawn": "^6.0.2", - "@types/node": "^16.10.9", - "@types/semver": "^7.3.8", - "@typescript-eslint/eslint-plugin": "^5.0.0", - "@typescript-eslint/parser": "^5.0.0", + "@types/node": "^16.11.6", + "@types/semver": "^7.3.9", + "@typescript-eslint/eslint-plugin": "^5.2.0", + "@typescript-eslint/parser": "^5.2.0", "cac": "^6.7.11", "cross-env": "^7.0.3", "cross-spawn": "^7.0.3", - "esbuild": "^0.13.6", - "eslint": "^8.0.1", + "esbuild": "^0.13.12", + "eslint": "^8.1.0", "eslint-config-airbnb-typescript": "12.3.1", "eslint-import-resolver-typescript": "^2.5.0", "eslint-plugin-import": "^2.25.2", @@ -44,11 +44,11 @@ "fs-extra": "^10.0.0", "globby": "11.0.4", "latest-version": "^6.0.0", - "mongodb": "^3.7.2", + "mongodb": "^3.7.3", "nmls": "^3.0.1", "ora": "5.4.1", "semver": "^7.3.5", - "typedoc": "^0.22.5", + "typedoc": "^0.22.7", "typescript": "4.4.2" } } diff --git a/packages/center/package.json b/packages/center/package.json index 65ea4814d..0457ede20 100644 --- a/packages/center/package.json +++ b/packages/center/package.json @@ -11,7 +11,7 @@ "superagent": "^6.1.0" }, "devDependencies": { - "@types/js-yaml": "^4.0.3" + "@types/js-yaml": "^4.0.4" }, "peerDependencies": { "hydrooj": "*" diff --git a/packages/fps-importer/package.json b/packages/fps-importer/package.json index f688af581..52993aee6 100644 --- a/packages/fps-importer/package.json +++ b/packages/fps-importer/package.json @@ -11,7 +11,7 @@ "adm-zip": "0.5.5", "decode-html": "^2.0.0", "fs-extra": "^10.0.0", - "mongodb": "^3.7.2", + "mongodb": "^3.7.3", "xml2js": "^0.4.23" }, "devDependencies": { diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 72bf9c614..645f84064 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -8,22 +8,22 @@ "dependencies": { "@hydrooj/utils": "workspace:*", "axios": "^0.21.4", - "cac": "^6.7.8", - "esbuild": "^0.13.4", + "cac": "^6.7.11", + "esbuild": "^0.13.12", "fs-extra": "^10.0.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21", - "mongodb": "^3.7.2", + "mongodb": "^3.7.3", "p-queue": "^7.1.0", - "shell-quote": "^1.7.2", + "shell-quote": "^1.7.3", "ws": "^8.2.3" }, "preferUnplugged": true, "license": "AGPL-3.0-or-later", "devDependencies": { "@types/fs-extra": "^9.0.13", - "@types/js-yaml": "^4.0.3", - "@types/lodash": "^4.14.175", + "@types/js-yaml": "^4.0.4", + "@types/lodash": "^4.14.176", "@types/shell-quote": "^1.7.1", "@types/ws": "^7.4.7" }, diff --git a/packages/hydrojudge/src/hosts/hydro.ts b/packages/hydrojudge/src/hosts/hydro.ts index 7c6ec2d78..4e815a196 100644 --- a/packages/hydrojudge/src/hosts/hydro.ts +++ b/packages/hydrojudge/src/hosts/hydro.ts @@ -140,7 +140,9 @@ class JudgeTask { data.key = 'end'; data.rid = new ObjectID(this.request.rid); data.time = data.time_ms ?? data.time; + delete data.time_ms; data.memory = data.memory_kb ?? data.memory; + delete data.memory_kb; this.ws.send(JSON.stringify(data)); } } diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 68fc78260..6c88f31c3 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -16,15 +16,15 @@ "@hydrooj/utils": "workspace:*", "adm-zip": "0.5.5", "ansi_up": "^5.0.1", - "cac": "^6.7.8", + "cac": "^6.7.11", "cookies": "^0.8.0", "detect-browser": "^5.2.1", - "esbuild": "^0.13.4", + "esbuild": "^0.13.12", "fs-extra": "^10.0.0", - "graphql": "^15.6.1", - "graphql-scalars": "^1.11.1", + "graphql": "^15.7.2", + "graphql-scalars": "^1.12.0", "js-yaml": "^4.1.0", - "koa": "^2.13.3", + "koa": "^2.13.4", "koa-body": "^4.2.0", "koa-compress": "^5.1.0", "koa-proxies": "^0.12.1", @@ -35,8 +35,8 @@ "mime-types": "^2.1.33", "minio": "7.0.19", "moment-timezone": "^0.5.33", - "mongodb": "^3.7.2", - "nanoid": "^3.1.29", + "mongodb": "^3.7.3", + "nanoid": "^3.1.30", "nodemailer": "^6.6.5", "p-queue": "^7.1.0", "reflect-metadata": "^0.1.13", @@ -49,22 +49,22 @@ "devDependencies": { "@types/adm-zip": "^0.4.34", "@types/fs-extra": "^9.0.13", - "@types/js-yaml": "^4.0.3", + "@types/js-yaml": "^4.0.4", "@types/koa": "^2.13.4", "@types/koa-compress": "^4.0.3", "@types/koa-router": "^7.4.4", "@types/koa-static-cache": "^5.1.1", - "@types/lodash": "^4.14.175", + "@types/lodash": "^4.14.176", "@types/lru-cache": "^5.1.1", "@types/mime-types": "^2.1.1", - "@types/minio": "^7.0.10", + "@types/minio": "^7.0.11", "@types/mongodb": "^3.6.20", "@types/nodemailer": "^6.4.4", "@types/serialize-javascript": "^5.0.1", "@types/sockjs": "^0.3.33", "@types/source-map-support": "^0.5.4", "@types/superagent": "^4.1.13", - "formidable": "^1.2.2", + "formidable": "^1.2.6", "moment": "^2.29.1", "pm2": "^5.1.2" }, diff --git a/packages/migrate-vijos/package.json b/packages/migrate-vijos/package.json index 4a06109e5..dce316e16 100644 --- a/packages/migrate-vijos/package.json +++ b/packages/migrate-vijos/package.json @@ -10,6 +10,6 @@ "@types/mongodb": "^3.6.20" }, "dependencies": { - "mongodb": "^3.7.2" + "mongodb": "^3.7.3" } } diff --git a/packages/ui-default/handler.ts b/packages/ui-default/handler.ts index 761cf2970..1654082c7 100644 --- a/packages/ui-default/handler.ts +++ b/packages/ui-default/handler.ts @@ -106,7 +106,23 @@ class WikiAboutHandler extends Handler { noCheckPermView = true; async get() { + let raw = system.get('ui-default.about') || ''; + // TODO template engine + raw = raw.replace(/{{ name }}/g, this.domain.ui?.name || system.get('server.name')).trim(); + const lines = raw.split('\n'); + const sections = []; + for (const line of lines) { + if (line.startsWith('# ')) { + const id = line.split(' ')[1]; + sections.push({ + id, + title: line.split(id)[1].trim(), + content: '', + }); + } else sections[sections.length - 1].content += `${line}\n`; + } this.response.template = 'about.html'; + this.response.body = { sections }; } } diff --git a/packages/ui-default/misc/immersive.styl b/packages/ui-default/misc/immersive.styl index f0012c4ca..e85ac5ac4 100644 --- a/packages/ui-default/misc/immersive.styl +++ b/packages/ui-default/misc/immersive.styl @@ -14,7 +14,7 @@ +above(rupture.mobile-cutoff) .immersive--center - width: 230px + width: 270px margin: 0 auto .immersive--center diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 0ced522f3..ad798f75f 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.26.11", + "version": "4.26.12", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js", @@ -10,12 +10,13 @@ "lint": "eslint ." }, "devDependencies": { - "@blueprintjs/core": "^3.51.0", - "@blueprintjs/icons": "^3.30.2", + "@blueprintjs/core": "^3.51.3", + "@blueprintjs/icons": "^3.31.0", "@hydrooj/utils": "workspace:*", - "@types/jquery": "^3.5.7", + "@types/jquery": "^3.5.8", "@types/json-schema": "^7.0.9", "@types/katex": "^0.11.1", + "@types/sharedworker": "^0.0.58", "@types/sockjs-client": "^1.5.1", "@undefined-moe/monaco-yaml": "^2.5.0", "ansi_up": "^5.0.1", @@ -26,21 +27,22 @@ "clipboard": "^2.0.8", "copy-webpack-plugin": "^6.4.1", "css-loader": "^4.3.0", - "diff-dom": "^4.2.2", - "echarts": "^5.2.1", + "diff-dom": "^4.2.3", + "echarts": "^5.2.2", "emojis-keywords": "2.0.0", "emojis-list": "2.1.0", "esbuild-loader": "^2.16.0", - "eslint": "^8.0.1", + "eslint": "^8.1.0", "eslint-config-airbnb": "^18.2.1", - "eslint-import-resolver-webpack": "^0.13.1", + "eslint-import-resolver-webpack": "^0.13.2", "eslint-plugin-import": "^2.25.2", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-react": "^7.26.1", + "fallback-worker": "^0.1.0", "fancy-log": "^1.3.3", "file-loader": "^6.2.0", "friendly-errors-webpack-plugin": "^1.7.0", - "graphiql": "^1.4.2", + "graphiql": "^1.4.6", "gulp": "^4.0.2", "gulp-cli": "^2.3.0", "gulp-iconfont": "^11.0.0", @@ -66,12 +68,12 @@ "prop-types": "^15.7.2", "react": "^17.0.2", "react-dom": "^17.0.2", - "react-redux": "^7.2.5", + "react-redux": "^7.2.6", "react-split-pane": "^0.1.92", - "redux": "^4.1.1", + "redux": "^4.1.2", "redux-logger": "^3.0.6", "redux-promise-middleware": "^6.1.2", - "redux-thunk": "^2.3.0", + "redux-thunk": "^2.4.0", "rupture": "^0.7.1", "slideout": "^1.0.1", "sockjs-client": "^1.5.2", @@ -95,11 +97,11 @@ "webpackbar": "^5.0.0-3" }, "dependencies": { - "esbuild": "^0.13.6", + "esbuild": "^0.13.12", "fs-extra": "^10.0.0", "js-yaml": "^4.1.0", "jsesc": "^3.0.2", - "katex": "^0.13.18", + "katex": "^0.15.1", "lodash": "^4.17.21", "markdown-it": "^12.2.0", "markdown-it-anchor": "^8.4.1", @@ -108,7 +110,7 @@ "markdown-it-mark": "^3.0.1", "markdown-it-merge-cells": "^1.0.1", "markdown-it-table-of-contents": "^0.5.2", - "mongodb": "^3.7.2", + "mongodb": "^3.7.3", "nunjucks": "^3.2.3", "streamsaver": "^2.0.5", "xss": "^1.0.10" diff --git a/packages/ui-default/setting.yaml b/packages/ui-default/setting.yaml index 3c7b630ea..d18578611 100644 --- a/packages/ui-default/setting.yaml +++ b/packages/ui-default/setting.yaml @@ -50,3 +50,105 @@ astyleOptions: indent-col1-comments break-blocks pad-oper pad-comma pad-header unpad-paren align-pointer=name break-one-line-headers attach-return-type attach-return-type-decl convert-tabs close-templates max-code-length=110 break-after-logical +about: + type: markdown + name: about + desc: About + value: | + # about 关于 {{ name }} + [{{ name }}](https://hydro.js.org) 致力于为用户提供安全、完善、开放的在线评测及题目交流等服务。 + + # contact 联系我们 + [联系我们](https://hydro.js.org/#%E8%81%94%E7%B3%BB%E6%88%91%E4%BB%AC) + + # privacy 隐私政策 + #### 1. 收集的信息 + 我们收集信息是为了向所有用户提供更好的服务。我们有两种信息收集方式: + + - 您向我们提供信息。在您注册 {{ name }} 帐户时,我们会要求您提供个人信息,例如您的电子邮件地址、QQ号码等。 + - 我们在您使用服务的过程中获取信息。我们会收集关于您使用的服务以及使用方式的信息,例如您在何时使用了我们服务。 + + #### 2. 如何使用收集到的信息 + 我们利用从所有服务中收集的信息来提供、维护、保护和改进这些服务,同时开发新的服务并保护 {{ name }} 以及用户的隐私。 + 当我们要将信息用于本隐私权政策未载明的其它用途时,则会事先征求您的同意。 + + #### 3. 访问和更新您的个人信息 + 无论您在何时使用我们的服务,我们都力求让您能够访问自己的个人信息。如果这些信息有误,我们会努力通过各种方式让您快速更新信息或删除信息。 + 在更新您的个人信息时,我们可能会要求您先验证自己的身份,然后再处理您的请求。 + 我们力求对服务进行完善的维护,以保护信息免遭意外或恶意的破坏。因此,当您从我们的服务中删除信息后, + 我们可能不会立即从在用的服务器中删除这些信息的残留副本,也可能不会从备份系统中删除相应的信息。 + + #### 4. 信息安全 + 我们为您提供SSL加密访问服务,您可以通过SSL(https)使用我们的服务,这可以很大程度上保障在传输过程中您信息的安全。 + 对于敏感数据(如您的密码),我们承诺在存储时进行高强度不可逆加密。{{ name }} 的管理员、维护人员等均不能够访问到敏感数据的明文,所有操作均无人工介入。 + + # tos 服务条款 + #### 0. 欢迎使用 {{ name }} + 注册 {{ name }} 帐户和/或使用 {{ name }} 提供的服务(包括网页提供的在线服务和题目评测的非在线服务等),即表示您已同意本条款。 + 请您务必审慎阅读,充分理解条款各项内容。

+ + #### 1. 使用服务 + 您必须遵守各项服务中提供的所有政策(包括但不限于讨论和题解的版规)。 + 请勿滥用我们的服务。如,请勿干扰我们的服务,或尝试使用除我们提供的界面和指示以外的方法访问这些服务, + 或使用我们服务中出现的缺陷干扰其他网站或设施的正常运行。您仅能在法律允许的范围内使用我们的服务。 + 您在使用我们服务时须遵守我们服务器所在地的法律法规,不得利用我们服务从事违法违规行为,包括但不限于: + + - 发布、传送、传播、储存危害国家安全统一、破坏社会稳定、违反公序良俗、侮辱、诽谤、淫秽、暴力以及任何违反国家法律法规的内容; + - 发布、传送、传播、储存侵害他人知识产权、商业秘密等合法权利的内容; + - 恶意虚构事实、隐瞒真相以误导、欺骗他人; + - 发布、传送、传播广告信息及垃圾信息; + - 其他法律法规禁止的行为。 + + 如果您违反了约定,相关国家相关机关或机构可能会对您提起诉讼、进行行政处罚或采取其他制裁措施,{{ name }} 将给于协助。 + 造成损害的,您应依法予以赔偿,{{ name }} 不承担任何责任。 + 如果 {{ name }} 发现或收到他人举报您发布的信息违反约定,{{ name }} 有权进行独立判断并采取技术手段予以删除、屏蔽或断开链接。 + 同时,{{ name }} 有权视用户的行为性质,采取包括但不限于暂停或终止服务,限制、冻结或终止账户使用,追究法律责任等措施。 + + #### 2. 版权 + 使用我们的服务并不代表您拥有我们的服务或您所访问的内容的任何知识产权。网站上的所有材料(包括但不限于题目内容、用户界面、Wiki)版权均受保护, + 归 {{ name }} 所有。除非另有说明,本网站上的材料和服务仅用于个人和非商业用途,未经 {{ name }} 书面许可, + 不得复制、修改、创建衍生作品、传播、出版、公开演示、公开展示和分发从本网站获得的任何信息、文件、产品或服务。 + + #### 3. 您在我们服务中发布的内容 + 我们的某些服务允许您提交内容。您保留对该内容持有的任何知识产权的所有权。 + 当您上传内容或通过其他方式向我们的服务提交内容时,您授予 {{ name }} 使用、持有、存储、复制、修改、创建衍生作品、传播、出版、公开演示、公开展示和分发此内容等权利。 + 您在此许可中授予的权限,仅能用于运营、宣传和改进我们的服务,以及开发新的服务。该项许可在您停止使用我们的服务后依然有效。 + 某些服务可能会向您提供一些方法,用于访问和删除您提供给该服务的内容。对于您提交至我们服务的任何内容,请确保您拥有向我们授予此许可的必要权利。 + 我们有权在未通知您的情况下删除我们认为侵犯了知识产权或违反了相关法律法规的内容。 + + #### 4. 对于发布题目的附加条款 + 您可以在 {{ name }} 上创建新题目。您上传到 {{ name }} 的题目,除了适用于本协议第三条(即“您在我们服务中发布的内容”)条款, + 还包含以下附加条款(若有冲突的条款,以附加条款中的优先): + + - 您上传到 {{ name }} 上的题目版权为 {{ name }} 和您共同拥有,我们会在相关页面或在对其进行分发、传播等操作时标明版权所有者。 + - {{ name }} 尊重他人知识产权和合法权益,请您在上传题目前确保拥有题目内容(包括但不限于题目描述、数据、图片等) + 的著作权及信息网络传播权或者已经取得上述全部权利人的许可并不存在任何著作权纠纷。{{ name }} 有权在不通知的情况下删除被认为侵权的题目。 + - 您可以申请将自己上传的优质题目合并到题库主干。我们的管理员会对您创建的题目的内容(包括但不限于评测数据等对用户不可见的信息) + 进行人工审核和适当修改以确认其符合国家基本法律法规。出于质量的考虑,我们也可能会拒绝您完全合法的合并到题库主干的请求。 + - 我们会维护服务的稳定,并对数据(包括您递交的题目)进行定期的备份,并尽量在关闭服务前通知您, + 但我们仍然不对任何题目(包括主干和非主干)提供永久存储或保留的承诺,出于安全的考虑推荐您自行保留题目的内容。 + - 您有权决定 {{ name }} 是否公开您上传的题目的数据。 + 公开题目数据意味着 {{ name }} 上的用户均有权利获取到您递交的题目的所有评测数据,但相关版权协议仍然生效。 + + #### 5. 隐私保护 + [隐私声明](#privacy) 介绍了您在使用我们的服务时,我们会如何处理您的个人数据和保护您的隐私。 + 使用我们的服务即表示您同意 {{ name }} 可以按照我们的隐私权政策使用您的个人数据。 + + #### 6. 修改和终止服务 + 我们始终在不断更改和改进我们的服务。我们可能会增加或删除功能,也可能暂停或彻底停止某项服务。 + 您可以随时停止使用我们的服务,尽管我们对此表示非常遗憾。{{ name }} 也可能随时停止向您提供服务,或随时对我们的服务增加或设置新的限制。 + + #### 7. 保证和免责声明 + 我们对服务内容、服务的具体功能,或其可靠性、可用性或满足您需要的能力不作任何承诺。我们的服务是按照现有技术和条件所能达到的现状提供的。 + 我们会尽最大努力向您提供服务,确保服务的连贯性和安全性。 + 但我们不能随时预见和防范法律、技术以及其他风险,包括但不限于不可抗力、病毒、木马、黑客攻击、系统不稳定、 + 第三方服务瑕疵、政府行为等原因可能导致的服务中断、数据丢失以及其他的损失和风险。 + + #### 8. 关于本条款 + 我们可以修改上述条款或任何适用于某项服务的附加条款,您应当定期查阅本条款。 + 所有修改的适用不具有追溯力,且会在公布十四天或更长时间后方始生效。 + 但是,对服务新功能的特别修改或由于法律原因所作的修改将立即生效。 + 如果您不同意服务的修改条款,应停止使用服务。 + + #### 9. 其他 + 如果您对这个协议或我们的服务有意见或建议,可与我们联系,我们会给予您必要的帮助。 diff --git a/packages/ui-default/templates/about.html b/packages/ui-default/templates/about.html index 24cd9a1b4..2970e081b 100644 --- a/packages/ui-default/templates/about.html +++ b/packages/ui-default/templates/about.html @@ -1,123 +1,14 @@ {% extends "layout/wiki_base.html" %} {% block wiki_content %} {% set name = handler.domain.ui.name|default(model.system.get('server.name')) %} +{%- for section in sections -%}
-

{{ _('About {0}').format(name) }}

+

{{ section.title }}

-

{{ name }} 致力于为用户提供安全、完善、开放的在线评测及题目交流等服务。

-
-
-
-
-

{{ _('Contact Us') }}

-
- -
-
-
-

{{ _('Privacy') }}

-
-
-

1. 收集的信息

-

我们收集信息是为了向所有用户提供更好的服务。我们有两种信息收集方式:

-
    -
  • 您向我们提供信息。在您注册 {{ name }} 帐户时,我们会要求您提供个人信息,例如您的电子邮件地址、QQ号码等。

    -
  • -
  • 我们在您使用服务的过程中获取信息。我们会收集关于您使用的服务以及使用方式的信息,例如您在何时使用了我们服务。

    -
  • -
-

2. 如何使用收集到的信息

-

我们利用从所有服务中收集的信息来提供、维护、保护和改进这些服务,同时开发新的服务并保护 {{ name }} 以及用户的隐私。

-

当我们要将信息用于本隐私权政策未载明的其它用途时,则会事先征求您的同意。

-

3. 访问和更新您的个人信息

-

无论您在何时使用我们的服务,我们都力求让您能够访问自己的个人信息。如果这些信息有误,我们会努力通过各种方式让您快速更新信息或删除信息。在更新您的个人信息时,我们可能会要求您先验证自己的身份,然后再处理您的请求。

-

我们力求对服务进行完善的维护,以保护信息免遭意外或恶意的破坏。因此,当您从我们的服务中删除信息后,我们可能不会立即从在用的服务器中删除这些信息的残留副本,也可能不会从备份系统中删除相应的信息。

-

4. 信息安全

-

我们为您提供SSL加密访问服务,您可以通过SSL(https)使用我们的服务,这可以很大程度上保障在传输过程中您信息的安全。

-

对于敏感数据(如您的密码),我们承诺在存储时进行高强度不可逆加密。{{ name }} 的管理员、维护人员等均不能够访问到敏感数据的明文,所有操作均无人工介入。

-
-
-
-
-

{{ _('Terms of Service') }}

-
-
-

0. 欢迎使用 {{ name }}

-

注册 {{ name }} 帐户和/或使用 {{ name }} 提供的服务(包括网页提供的在线服务和题目评测的非在线服务等),即表示您已同意本条款。请您务必审慎阅读,充分理解条款各项内容。

-

1. 使用服务

-

您必须遵守各项服务中提供的所有政策(包括但不限于讨论和题解的版规)。

-

请勿滥用我们的服务。如,请勿干扰我们的服务,或尝试使用除我们提供的界面和指示以外的方法访问这些服务,或使用我们服务中出现的缺陷干扰其他网站或设施的正常运行。您仅能在法律允许的范围内使用我们的服务。

-

您在使用我们服务时须遵守我们服务器所在地的法律法规,不得利用我们服务从事违法违规行为,包括但不限于:

-
    -
  1. 发布、传送、传播、储存危害国家安全统一、破坏社会稳定、违反公序良俗、侮辱、诽谤、淫秽、暴力以及任何违反国家法律法规的内容;
  2. -
  3. 发布、传送、传播、储存侵害他人知识产权、商业秘密等合法权利的内容;
  4. -
  5. 恶意虚构事实、隐瞒真相以误导、欺骗他人;
  6. -
  7. 发布、传送、传播广告信息及垃圾信息;
  8. -
  9. 其他法律法规禁止的行为。
  10. -
-

如果您违反了约定,相关国家相关机关或机构可能会对您提起诉讼、进行行政处罚或采取其他制裁措施,{{ name }} 将给于协助。造成损害的,您应依法予以赔偿,{{ name }} 不承担任何责任。

-

如果 {{ name }} 发现或收到他人举报您发布的信息违反约定,{{ name }} 有权进行独立判断并采取技术手段予以删除、屏蔽或断开链接。同时,{{ name }} 有权视用户的行为性质,采取包括但不限于暂停或终止服务,限制、冻结或终止账户使用,追究法律责任等措施。

-

2. 版权

-

使用我们的服务并不代表您拥有我们的服务或您所访问的内容的任何知识产权。网站上的所有材料(包括但不限于题目内容、用户界面、Wiki)版权均受保护,归 {{ name }} 所有。除非另有说明,本网站上的材料和服务仅用于个人和非商业用途,未经 {{ name }} 书面许可,不得复制、修改、创建衍生作品、传播、出版、公开演示、公开展示和分发从本网站获得的任何信息、文件、产品或服务。

-

3. 您在我们服务中发布的内容

-

我们的某些服务允许您提交内容。您保留对该内容持有的任何知识产权的所有权。

-

当您上传内容或通过其他方式向我们的服务提交内容时,您授予 {{ name }} 使用、持有、存储、复制、修改、创建衍生作品、传播、出版、公开演示、公开展示和分发此内容等权利。您在此许可中授予的权限,仅能用于运营、宣传和改进我们的服务,以及开发新的服务。该项许可在您停止使用我们的服务后依然有效。某些服务可能会向您提供一些方法,用于访问和删除您提供给该服务的内容。对于您提交至我们服务的任何内容,请确保您拥有向我们授予此许可的必要权利。我们有权在未通知您的情况下删除我们认为侵犯了知识产权或违反了相关法律法规的内容。

-

4. 对于发布题目的附加条款

-

您可以在 {{ name }} 上创建新题目。您上传到 {{ name }} 的题目,除了适用于本协议第三条(即“您在我们服务中发布的内容”)条款,还包含以下附加条款(若有冲突的条款,以附加条款中的优先):

-
    -
  1. 您上传到 {{ name }} 上的题目版权为 {{ name }} 和您共同拥有,我们会在相关页面或在对其进行分发、传播等操作时标明版权所有者。 -

  2. -
  3. {{ name }} 尊重他人知识产权和合法权益,请您在上传题目前确保拥有题目内容(包括但不限于题目描述、数据、图片等)的著作权及信息网络传播权或者已经取得上述全部权利人的许可并不存在任何著作权纠纷。{{ name }}有权在不通知的情况下删除被认为侵权的题目。 -

  4. -
  5. 您可以申请将自己上传的优质题目合并到题库主干。我们的管理员会对您创建的题目的内容(包括但不限于评测数据等对用户不可见的信息)进行人工审核和适当修改以确认其符合国家基本法律法规。出于质量的考虑,我们也可能会拒绝您完全合法的合并到题库主干的请求。 -

  6. -
  7. 我们会维护服务的稳定,并对数据(包括您递交的题目)进行定期的备份,并尽量在关闭服务前通知您,但我们仍然不对任何题目(包括主干和非主干)提供永久存储或保留的承诺,出于安全的考虑推荐您自行保留题目的内容。 -

  8. -
  9. 您有权决定 {{ name }} 是否公开您上传的题目的数据。公开题目数据意味着 {{ name }} 上的用户均有权利获取到您递交的题目的所有评测数据,但相关版权协议仍然生效。

    -
  10. -
-

5. 隐私保护

-

{{ name }} 隐私声明介绍了您在使用我们的服务时,我们会如何处理您的个人数据和保护您的隐私。使用我们的服务即表示您同意 {{ name }} 可以按照我们的隐私权政策使用您的个人数据。

-

6. 修改和终止服务

-

我们始终在不断更改和改进我们的服务。我们可能会增加或删除功能,也可能暂停或彻底停止某项服务。

-

您可以随时停止使用我们的服务,尽管我们对此表示非常遗憾。{{ name }} 也可能随时停止向您提供服务,或随时对我们的服务增加或设置新的限制。

-

7. 保证和免责声明

-

我们对服务内容、服务的具体功能,或其可靠性、可用性或满足您需要的能力不作任何承诺。我们的服务是按照现有技术和条件所能达到的现状提供的。我们会尽最大努力向您提供服务,确保服务的连贯性和安全性。但我们不能随时预见和防范法律、技术以及其他风险,包括但不限于不可抗力、病毒、木马、黑客攻击、系统不稳定、第三方服务瑕疵、政府行为等原因可能导致的服务中断、数据丢失以及其他的损失和风险。

-

8. 关于本条款

-

我们可以修改上述条款或任何适用于某项服务的附加条款,您应当定期查阅本条款。所有修改的适用不具有追溯力,且会在公布十四天或更长时间后方始生效。但是,对服务新功能的特别修改或由于法律原因所作的修改将立即生效。如果您不同意服务的修改条款,应停止使用服务。

-

9. 其他

-

如果您对这个协议或我们的服务有意见或建议,可与我们联系,我们会给予您必要的帮助。

-
-
-
-
-

{{ _('Discussion: Terms Of Service') }}

-
-
-

为了更好地发挥讨论、题解的积极作用,使广大用户学到知识、获得利益,进一步规范讨论和题解功能的使用,我们制定了《讨论和题解版规》(简称《版规》)。您在发布(或回复)讨论和题解时,即代表您已充分阅读、理解、接受并保证遵守此版规。

-

您在发布(或回复)讨论和题解或使用相关功能时须遵守以下规定:

-
-

第一次使用编辑器前,要先阅读编辑器快速入门和 Markdown 详细帮助。

-

不得将讨论、题解混淆。例如,不得将题解发布到讨论中,题解应发布在相应题目的题解区中。

-

发布(或回复)的所有内容不得包含会干扰 {{ name }} 用户界面呈现的相关内容。

-

发布(或回复)的所有内容不得包含恶意代码和指向恶意网站或 {{ name }} 明确禁止的网站的链接。

-

特别地,发布(或回复)含有代码的内容时,应当将代码高亮。一个简单的方法是选中代码块然后按下 Tab 键。

-

发布的题解禁止只包含无详细注释的代码。题解中难以理解的代码应当有尽可能详细的注释。

-

打分、投票和评价应当客观。例如,对于题解的打分、投票和评价应当关注于题解本身的质量。

-
-

您在发布、回复讨论和题解时还须遵守法律法规,不得发布违法违规内容,包括但不限于:

-
-

危害国家安全统一、破坏社会稳定、违反公序良俗、侮辱、诽谤、淫秽、暴力以及任何违反国家法律法规的内容;

-

侵害他人知识产权、商业秘密等合法权利的内容;

-

恶意虚构事实、隐瞒真相以误导、欺骗他人的内容;

-

广告信息及垃圾信息;

-

其他法律法规禁止的内容。

-
-

对于违反《版规》的,我们将进行警告并删除相关内容、临时冻结用户、永久冻结用户等操作。

+ {{ section.content|markdown|safe }}
+{%- endfor -%} {% endblock %} \ No newline at end of file diff --git a/packages/utils/package.json b/packages/utils/package.json index 4961f5a75..e27b6fb05 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -11,8 +11,8 @@ "fs-extra": "^10.0.0", "js-yaml": "^4.1.0", "moment": "^2.29.1", - "mongodb": "^3.7.2", - "systeminformation": "^5.9.7" + "mongodb": "^3.7.3", + "systeminformation": "^5.9.9" }, "devDependencies": { "@types/fs-extra": "^9.0.13", diff --git a/packages/vjudge/package.json b/packages/vjudge/package.json index 833f17875..e88eadbd8 100644 --- a/packages/vjudge/package.json +++ b/packages/vjudge/package.json @@ -16,7 +16,7 @@ }, "devDependencies": { "@types/jsdom": "^16.2.13", - "@types/lodash": "^4.14.175", + "@types/lodash": "^4.14.176", "@types/superagent": "^4.1.13", "@types/superagent-proxy": "^2.0.1" }