HydroOJ 从入门到入土(5)插件集锦(24.5.29 更新)

总有些需求, 未必有啥用, 但是很可爱.

本文将介绍一些插件相关的知识, 并不专业, 因为我不懂 js (逃

1. 关于插件

  1. 插件使用 js / ts 语言编写.
  2. 插件功能强大, 分前后端, 可以干任何事情, 所以尽量不要使用来路不明的插件, 除非你能看懂他在做啥.
  3. 如果想实现什么需求, 都可以写插件解决, 但需要一些前端经验.
  4. 插件的实现从易到难, 可以分为
    1. 改前端页面模版(需要懂Markdown/html)
    2. 改前端页面功能(需要懂js/ts/html/css/vue)
    3. 改后端功能(需要懂node.js和源代码架构)
  5. 使用方式:
    1. 官方插件启用方式:https://docs.hydro.ac/plugins/
    2. 修改前端页面方式:https://docs.hydro.ac/docs/system/frontend-modify.html
    3. 自己编写的插件:
      1. 参考插件内附使用方式
      2. https://docs.hydro.ac/plugins/#安装 主要步骤:
        1. 把插件文件夹上传到服务器的某个地方,比如/root/xxx
        2. hydrooj addon add /root/xxx (注意要用绝对路径)

2. 官方插件

官方预装插件包 by HydroOJ (内容后附)

https://docs.hydro.ac/plugins/

Hydro 官方目前提供了以下附加组件:

ID 描述
@hydrooj/blog 博客功能
@hydrooj/fps-importer 导入 fps 格式的题目
@hydrooj/geoip 显示用户登录地(需要IP库支持)
@hydrooj/hydrojudge 评测组件
@hydrooj/import-qduoj 导入 QDUOJ 导出的题库
@hydrooj/login-with-github 允许用户使用 GitHub 登录
@hydrooj/login-with-google 允许用户使用 Google 登录
@hydrooj/migrate 从 vijos4/HustOJ/SYZOJ/UniversalOJ 升级
@hydrooj/recaptcha 注册时启用 reCAPTCHA 验证码
@hydrooj/ui-default Hydro 的默认用户界面
@hydrooj/onlyoffice 显示 doc/docx 格式题目
@hydrooj/sonic 基于 sonic 的题目搜索增强
@hydrooj/elastic-search 基于 Elastic 的题目搜索增强
@hydrooj/vjudge Codeforces/SPOJ/UOJ/POJ/Luogu
@hydrooj/prom-client 导出系统状态至 Prometheus

大部分插件的配置均可在安装后于 控制面板>系统设置 中找到。

部分插件若安装后没有正确配置可能会影响系统正常使用!

不允许查看 24 小时以前的提交记录

https://docs.hydro.ac/dev/hook.html#示例

import { Context, Time } from 'hydrooj';

export async function apply(ctx: Context) {
    // handler 表示路由事件
    // after 表示在主逻辑完成后运行,同时支持 before, before-operation, 参照 【插件编写】 章节 【请求流程】
    // RecordDetail 为需要捕获的路由名
    // #get 表示仅捕获 GET 请求,若无此后缀表示捕获该路由的所有请求
    ctx.on('handler/after/RecordDetail#get', (h) => { // handler 系列钩子的一参数为对应的 Handler 实例
        // 不允许查看 24 小时以前的提交记录
        if (h.rdoc._id.getTimestamp() < new Date(Date.now() - Time.day)) {
            h.rdoc.code = '';
        }
    });
}

3. 题库插件

一本通启蒙插件(v1/v2) by HydroOJ (4.9.17<=ver<=4.9.2x)

  • 安装: hydrooj install https://hydro.ac/hydroac-client-0.0.1.tgz
  • 压缩包地址: QQ 群(1085853538)文件
  • 注意仔细压缩包内的阅读安装说明, 有问题就多重启几次

一本通启蒙插件(v3) by HydroOJ (>=4.10.1)

  • 安装:
    hydrooj install https://hydro.ac/hydroac-client.zip
    
  • 如果一直waiting, 可以试试执行:
    hydrooj cli system set hydroac-client.remotejudge-endpoint https://ws.hydrooj.com
    
  • 系统更新之后, 本插件需要同步更新
  • 压缩包地址: QQ 群(1085853538)文件
  • 注意仔细压缩包内的阅读安装说明, 有问题就多重启几次

BZOJ 远程评测插件 by 小蛐蛐

  • 项目地址: Hydro4LVJ
  • 安装: hydrooj install https://img.zshfoj.com/Plugins/judge-client-bzoj.zip
  • 压缩包地址: QQ 群(1085853538)文件
  • 注意仔细压缩包内的阅读安装说明, 有问题就多重启几次

(免费rmj)洛谷深入浅出程序设计竞赛 - 基础篇(>=4.10.2)

  • 压缩包地址: QQ 群(1085853538)文件

  • 注意仔细压缩包内的阅读安装说明, 有问题就多重启几次

  • 注:此功能由洛谷提供数据支持,题目来自洛谷编写教材《深入浅出程序设计竞赛 - 基础篇》,并带有详细的教程和讲解,点击下列链接了解本书详情。
    【官方网店绝赞热卖中!】>>>(https://item.taobao.com/item.htm?id=637730514783)

4. 三方插件

HydroOJ 咕咕倒计时 by liyanqwq

项目地址: liyanqwq/hydrooj-countdown

HydroOJ 云剪贴板服务 by liyanqwq

项目地址: liyanqwq/hydrooj-pastebin-plus

徽章管理页面插件 by wood3

项目地址: wood3/ojtools

可以在控制面板编辑的边栏导航 by wood3

项目地址: wood3/ojtools

可以二次跨域复制题目 by Milmon

项目地址: Molmin/miniprojects/hydrooj-secondary-copy

QQ登录组件 by air.

项目地址: air-adteam/login-with-qq-forhydro

5. 我的插件

取消上传头像功能 by bowen404

项目地址: 15921483570/hydrooj-cancelavatar

注册自动填充随机邮箱地址 by bowen404

项目地址: 15921483570/hydrooj-autoemail

更改上方导航条宽度, 避免点自测开关的时候点到用户名 by bowen404

项目地址: 15921483570/hydrooj-nav-full

调整作业显示顺序,方便管理员管理作业。by bowen404

项目地址: 15921483570/hydrooj-ddlfirst

输入 uid 重置用户密码,方便重置学生密码。by bowen404

项目地址: 15921483570/hydrooj-resetPwd

6. 官方站上的第三方插件

这里的插件需要简单加工一下才能在自己的 OJ 上使用.

https://hydro.ac/user-plugins

名称 功能 作者
圆角 将卡片设置为圆角 undefined 可爱! LV 10 SU
Cascadia Code 在代码框中使用 Cascadia Code 字体。 undefined 可爱! LV 10 SU
暗色模式主题重建版 0.1.1 Alpha 重新调整的 Hydro 暗色模式(部分完成) NetherDevil LV 10
圆角重制版 卡片圆角 支持表格表头圆角 Necho
洛谷题目跳转插件 在洛谷域点击 id 即可跳转到洛谷上对应的题目。 ‮nomliM (liujiameng) LV 10
优化引用块 目前仅定义default,note,warn三种样式 Necho
隐藏一言 隐藏首页的一言 yzy1 LV 9
自动退出题解 当 OI 玩家不小心点到题解的时候自动退出。 gameObject.GetComponent(); (AtziluthHugZero) LV 6
Markdown 域首页、题目、比赛页面在 F12 控制台显示内容 Markdown,在题目页面显示复制来源。 ‮nomliM (liujiameng) LV 10
Smart Hydro 想要全站的圆角和阴影?启用这个脚本吧!(已完成:主页) Halcott (HhF03) LV 4
调整提交记录页面细节 把评测状态卡片 header 的 padding 改了。 tiger2005 LV 5
底部拓展信息 css追加展示信息,全局圆角,收藏题目行间距,题库搜索圆角。 symo LV 1
posted @ 2023-12-07 17:09  Bowen404  阅读(2734)  评论(6编辑  收藏  举报