Codeforces Better!

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

Ajankohdalta 13.10.2023. Katso uusin versio.

Tekijä
北极小狐
Arvostelut
0 0 0
Versio
1.68
Luotu
8.5.2023
Päivitetty
13.10.2023
Size
222 kt
Yhteensopivuus
Yhteensopiva selaimen Firefox kanssa Yhteensopiva selaimen Chrome kanssa Epäyhteensopiva selaimen Safari kanssa Yhteensopiva selaimen Edge kanssa
Lisenssi
MIT
Käytössä

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