Greasy Fork is available in English.

Codeforces Better!

Codeforces界面汉化、黑暗模式支持、题目翻译、markdown视图、一键复制题目、跳转到洛谷、评论区分页、ClistRating分显示、榜单重新着色

Version vom 15.10.2023. Aktuellste Version

Autor
北极小狐
Bewertungen
0 0 0
Version
1.69
Erstellt am
08.05.2023
Letzte Aktualisierung
15.10.2023
Kompatibilität
Kompatibel mit Firefox Kompatibel mit Chrome Nicht kompatibel mit Safari Kompatibel mit Edge
Lizenz
MIT
Wird angewandt auf

Codeforces Better!🎈

Codeforces界面汉化、黑暗模式支持、题目翻译、markdown视图、一键复制题目、跳转到洛谷、评论区分页、ClistRating分显示、榜单重新着色

写在前面:反馈须知

如遇问题,请先阅读下方的 #常见问题 说明。如果没有得到解决,请前往 反馈页 或者 Github issues 反馈。

请提供关于问题的详细描述,比如:链接,截图,期望的结果、实际的结果,复现方式……

此外还欢迎友善的讨论以及功能建议,但维护脚本以及提供帮助并不是作者的义务,感谢您的理解。

功能

提示:脚本的部分功能提供了配置项,您可以点击 整个页面右上角CodeforcesBetter设置 按钮打开设置面板。

界面汉化

将网站的主要元素汉化为中文(可关闭)

题目翻译

在题目、blog、评论等的右上角添加翻译按钮,一键即可翻译为中文,同时确保不破坏Latex公式

在此基础上,脚本提供了三种翻译模式:

  • 普通模式:会一次性翻译整个区域的内容
  • 分段模式:会对区域内的每一个 <p/><i/> 标签依次进行翻译
  • 选段模式:您可以自由点选页面上的任何 <p/><i/> 标签进行翻译

您可以在右上角的 CodeforcesBetter设置 面板中选择您想使用的翻译服务(默认为DeepL)以及切换脚本的工作模式。

注意:分段/选段模式会产生如下问题:

- 使得翻译接口无法知晓整个文本的上下文信息,会降低翻译质量。

- 会有部分内容不会被翻译/不能被选中,因为它们不是<p/>或<i/>元素

脚本提供了如下翻译接口可供选择:(默认为DeepL)

 
KEY
翻译质量可靠性字符数上限
耗时
DeepL翻译(✨推荐)不需要⭐️⭐️⭐️⭐️部分地区可能无法访问或较慢5000
讯飞听见翻译不需要⭐️⭐️⭐️通常可靠2000
有道翻译不需要⭐️⭐️通常可靠600
Google翻译不需要⭐️⭐️⭐️需要当前网络能顺利访问Google5000
彩云翻译不需要⭐️⭐️通常可靠5000
使用ChatGPT翻译(✨推荐)需要API Key⭐️⭐️⭐️⭐️⭐️取决于服务商质量以及 OpenAI 的拥挤程度取决于模型较慢

提示:右键翻译按钮,可以快速切换翻译服务哦

ClistRating分

获取 clist.by 网站的 Rating 分数据,并展示

注意,不同页面工作所需要的凭证有所不同:

  • 对于比赛问题集页(contest),需要浏览器中 clist.by 网站的登录 cookie 有效,或者在设置面板中填写api key
  • 对于题目页(problem)和题单页(problemset),需要浏览器中 clist.by 的登录 cookie 有效

脚本不获取 clist.by 的具体 cookie ,cookie 信息由浏览器发送请求时自动携带,cookie 有效性通过尝试请求所返回的状态码判断

其他功能

部分功能可在右上角的 CodeforcesBetter设置 面板中更改/开关

  • 在题目、blog、回复等的右上角添加 MrakDown视图 按钮以及 复制 按钮
  • 让 Codeforces 支持黑暗模式,默认跟随系统
  • 展开折叠块,自动展开所有的折叠块
  • 洛谷跳转,一键跳转到该题在洛谷对应的页面
  • 评论区分页,支持翻页、跳转、可选择每页显示的主楼数
  • 渲染优化,为折叠块元素添加渲染限制(contain: layout style;)
  • 榜单重新着色,对于采用 Codeforces 赛制的比赛的榜单,按照“得分/总分”所在的范围为分数重新渐变着色

兼容性

浏览器

 支持最低版本
Chrome支持96
Edge支持96
国产Chromium套壳基本兼容,但可能出现意外的错误Chromium 内核版本≥96
FireFox(包括移动端)支持103
Safari不支持\

脚本管理器

仅在 Tampermonkey(篡改猴)脚本管理器中进行测试,不保证在 Greasemonkey,Violentmonkey,ScriptCat 等中的兼容性

其他插件

与主流CF相关插件不存在兼容性问题,如果您遇到了兼容性问题,欢迎反馈。

镜像站

支持官方轻量站 m1 / m2 / m3 、非官方镜像站 https://codeforc.es

常见问题

Q. 如何开始?

A. 您需要先安装 Tampermonkey ,然后再安装该脚本

Q. 更新错误?

A. 由于 Greasy Fork 平台的原因,当新版本刚发布时,可能会出现实际更新/安装的却是上一个版本的情况,

通常您只需要稍等几分钟,然后再次前往更新/安装即可。

您也可以将鼠标移动到脚本的更新提示框中的红色问号上,然后点击弹出信息底部的 “暂不更新” 按钮。

Q. 一直显示加载中?

A. 请开启设置面板中的 ”兼容选项-不等待页面资源加载“ 选项

Q. 使用 DeepL 翻译报错 Too many requests ?

A. 这通常是因为您短时间内频繁翻译,或者一次性翻译了超过5000字符的文本导致的,DeepL对翻译字数和频率是有限制的,

这是暂时的,一段时间后就恢复正常了

Q. 使用 DeepL 翻译报错 undefind 或一直显示翻译中?

A. 这通常是因为您所使用的网络无法正常访问 www.deepl.com

Q. 翻译结果中一些公式显示为 {xx} / [xx] / 【xx】?

A. 在使用普通翻译接口(DeepL/有道/google)进行翻译时,受脚本的实现方式所限,可能会出现{xx}/[xx]/【xx】

脚本对公式的处理方式

为了保护LaTeX公式在翻译时不被破坏,脚本会先取出所有的LaTeX公式,并使用替换符{xx}/[xx]/【xx】来占位,

由于这些替换符大概率不会在翻译的过程中遭到破坏,因此可以在翻译后再根据替换符还原回LaTeX公式。

这种实现方式能如期工作的前提是替换符不被破坏,这在绝大多数情况下都是没有问题的,

但有时翻译服务会破坏替换符 ,比如 【23】 变成了 【23 / 23】 / [23]/ 【23 】/ 23 】,这些情况下脚本会通过一定的正则规则进行还原,使其仍然可以如期工作

但如果翻译服务还破坏了更多的内容,产生了歧义,比如翻译服务将【2】 313 变成了 【2312,这时就无法还原了,

对于各个翻译服务,不同的替换符本身遭到破坏的概率有所不同,您可以在右上角的设置面板中选择不同的替换符,

经过测试,通常 {} 表现的效果更好,因此这也是脚本默认使用的替换符

提示:

在使用 ChatGPT 进行翻译时不会存在这个问题,因为可以通过提示词直接告诉 ChatGPT “保持其中的LaTeX公式不翻译”,

聪明的 ChatGPT 可以很好的遵守这一点,这也是脚本推荐的翻译方式。

Q. 如何使用 ChatGPT 翻译?

A. 如果您可以直接访问 OpenAI 的接口,并且拥有账号,那么非常棒,您只需要选中 “使用ChatGPT翻译(API)”,然后点击下方的 “添加” 按钮新建一个配置并填写即可。

此外,您也可以购买 api 代理服务来使用 ChatGPT,下表收集了一些 api 服务商,您可以选择使用

 官网获取方式
API2Dhttps://api2d.com/官网
CloseAIhttps://console.closeai-asia.com/官网
OhMyGPThttps://aigptx.top/官网
OpenAI-SBhttps://openai-sb.com/Telegram机器人
API2GPThttps://www.api2gpt.com/官网

免责:

作者仅为收集分享,没有获得任何收益,亦不保证上述平台的稳定性,平台的任何行为均与作者无关。

建议小额充值,用完再充,这些服务商可能会跑路

如果您使用的是 api 代理服务商 提供的服务,配置中的 KEY 应该填写 api代理服务商提供的 key,

此外,您还需要在配置中额外填写 Proxy API,

Proxy API 需要填写完整的地址,这里以 CloseAI 为例,其提供了API Base:https://api.closeai-proxy.xyz

那么 Proxy API 后面应该填写的就是 https://api.closeai-proxy.xyz/v1/chat/completions

注意:由于您指定了自定义的API,Tampermonkey会对您的跨域请求进行警告,请自行点击授权

贡献代码

欢迎贡献代码,请前往 Github仓库 创建PR

感谢

感谢你们,0rz