Greasy Fork is available in English.

Codeforces Better!

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

Version vom 01.10.2023. Aktuellste Version

Autor
北极小狐
Bewertungen
0 0 0
Version
1.65
Erstellt am
08.05.2023
Letzte Aktualisierung
01.10.2023
Kompatibilität
Kompatibel mit Firefox Kompatibel mit Chrome Kompatibel mit Edge
Lizenz
MIT
Wird angewandt auf

Codeforces Better!🎈

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

功能

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

界面汉化

将网站的主要元素汉化为中文,如果某处翻译有误或者不佳,欢迎反馈。

您可以在右上角的 CodeforcesBetter设置 面板中选择开启或关闭汉化

题目翻译

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

您可以在右上角的 CodeforcesBetter设置 面板中选择您想使用的翻译服务(默认为Deepl)

tip:右键点击翻译按钮,可以快速切换翻译服务哦

提供了如下翻译接口可供选择:

 
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 支持黑暗模式,默认跟随系统
  • 展开折叠块,自动展开所有的折叠块
  • 洛谷跳转,一键跳转到该题在洛谷对应的页面
  • 评论区分页,支持翻页、跳转、可选择每页显示的主楼数
  • 渲染优化,为折叠块元素启用可见渲染(content-visibility: auto)
  • 榜单重新着色,对于采用 Codeforces 赛制的比赛的榜单,按照“得分/总分”所在的范围为分数重新渐变着色

兼容性

浏览器

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

脚本管理器

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

其他插件

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

常见问题

    Q. 如何开始?

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

    Q. 更新错误?

    • A. 由于 Greasyfork 平台的原因,当新版本刚发布时,可能会出现实际更新/安装的却是上一个版本的情况,通常您只需要稍等几分钟,然后再次前往更新/安装即可。
      您也可以将鼠标移动到脚本的更新提示框中的红色问号上,然后点击弹出信息底部的 “暂不更新” 按钮。

    Q. 一直显示加载中?

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

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

    • A. 这通常是因为你短时间内频繁翻译,或者一次性翻译了超过5000字符的文本导致的,deepl对翻译字数和频率是有限制的,这是暂时的,一段时间后就恢复正常了

    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,这时就无法还原了,

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

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

      tip:

      在使用 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