Hydro es un eficiente sistema informático de evaluación en línea. Fácil de instalar, multiplataforma, multifuncional, escalable y cuenta con banco de preguntas.
Para los profesores que no están familiarizados con Linux o que son demasiado vagos para operarlo y mantenerlo, también ofrecemos una versión en línea gratuita y lista para usar.
Para obtener más información, vaya a https://hidro.ac para ver las instrucciones de funcionamiento.
Pegue el comando de instalación en la consola para realizar la instalación con un solo clic. Después de la instalación, el primer usuario registrado obtendrá automáticamente privilegios de superadministrador.
Compatible con las principales distribuciones de Linux, se recomienda Debian 12 y admite dispositivos arm64 (Raspberry Pi, etc.)
LANG=zh <(rizo https://hidro.ac/setup.sh)
Documento chino/inglés
Si la documentación relevante no es lo suficientemente detallada, envíe una solicitud de extracción o comuníquese con el equipo de desarrollo para obtener una aclaración.
Envíe sugerencias de errores y funciones en Problemas.
Hydro ha diseñado un sistema modular enchufable que puede ampliar fácilmente la funcionalidad del sistema.
Al utilizar el sistema de complemento, aún puede garantizar la capacidad de actualización del sistema después de modificar las funciones.
Todas las versiones históricas de Hydro se pueden actualizar sin problemas a la última versión.
Para conocer las pautas de desarrollo y uso de complementos, consulte el capítulo de documentación sobre complementos y desarrollo.
Hydro es compatible con todas las distribuciones principales de Linux, es compatible con dispositivos de arquitectura x86_64 y arm64 y se puede instalar con un solo clic.
Hydro puede funcionar normalmente en Raspberry Pi o Apple M1/M2.
Utilice hydrooj backup
para realizar una copia de seguridad de todos los datos del sistema y utilice hydrooj restore 文件名
para importar los datos de la copia de seguridad. Todo el proceso no requiere intervención manual.
Hydro proporciona soporte multiespacio de un solo sistema, lo que facilita la creación de espacios independientes para diferentes clases/grados/escuelas, etc.
Los datos en diferentes espacios están aislados de forma predeterminada, excepto los de los usuarios, y se pueden asignar administradores independientes sin interferir entre sí.
Las preguntas se pueden copiar entre dominios y solo ocupan un espacio en el sistema.
Los permisos de Hydro se pueden asignar a los usuarios correspondientes en función de competencias/trabajos, o los usuarios se pueden agrupar (clases) y los permisos se pueden asignar por grupo. Para los nodos de permiso, puede ver la captura de pantalla debajo de la introducción.
El sistema Hydro en sí no tiene estado, lo que significa que puede agregar o eliminar nodos de servicio a voluntad sin afectar el funcionamiento normal del sistema. La cola de evaluación se distribuirá automáticamente de manera uniforme entre todas las máquinas de evaluación actualmente en línea. Después de unirse al grupo de escalado elástico, las máquinas de evaluación se pueden agregar o eliminar automáticamente según la carga del servidor. A diferencia de otros sistemas, Hydro administrará el caché de datos de prueba entre diferentes servidores y los extraerá según sea necesario, de modo que la máquina de evaluación pueda usarse inmediatamente después de que se conecte sin sincronización manual de datos.
Hydro admite todo tipo de preguntas. Ya sean tipos de preguntas tradicionales, juez especial o entrada y salida de archivos, respuestas a preguntas de envío, interacción IO, interacción de funciones o incluso preguntas para completar espacios en blanco, Hydro tiene el soporte correspondiente. Después de instalar el entorno operativo relevante, Hydro puede incluso hacer:
Llame a la pequeña tortuga para que haga un dibujo y compárelo con el dibujo estándar;
Llame a la GPU para evaluar el modelo de aprendizaje automático;
Se pueden ver y descargar más muestras en el área de muestras.
Hydro admite la importación de archivos de banco de preguntas en formatos comunes, incluido el formato zip común de Hydro, preguntas en formato FPS (xml) exportadas por HUSTOJ y paquetes comprimidos exportados por QDUOJ.
Puede descargar el banco de preguntas gratuito desde Hydro Question Bank.
Hydro también es compatible con VJudge, lo que significa que puede importar preguntas directamente desde otras plataformas al sistema, modificarlas e incorporarlas a sus propias tareas o competencias para crear rápidamente su propio sistema de banco de preguntas.
Las plataformas actualmente soportadas son:
Iluminación de programación de Yiyi Tong: el banco de preguntas de iluminación de programación oficial de Yiyi Tong es de uso gratuito. Consulte las instrucciones de importación en el paquete comprimido.
Concurso de programación simple: proporciona oficialmente el banco de pruebas para el "Concurso de programación (conceptos básicos)" de Luogu de forma gratuita; consulte las instrucciones de importación en el paquete comprimido.
UOJ: DO muy conocido en China, comúnmente utilizado por los equipos de entrenamiento nacionales;
Codeforces: una gran plataforma de competencia extranjera con una gran cantidad de preguntas de alta calidad;
Luogu: para utilizar esta función, debe adquirir una licencia de Luogu;
HDUOJ: sistema de evaluación en línea de la Universidad Hangzhou Dianzi, que incluye preguntas de capacitación en varias escuelas;
CSGOJ: Plataforma de evaluación de preguntas del Concurso Provincial de Guangdong y del Concurso Provincial de Hunan;
SPOJ: Las conexiones domésticas son muy inestables y no recomendables;
POJ: estabilidad del servidor relativamente antigua y deficiente;
YACS: plataforma de competencia de la Shanghai Computer Society, existe un límite en las presentaciones diarias para una sola cuenta;
HUSTOJ: en teoría es compatible con todos los sistemas basados en HUSTOJ, pero debido a las diferencias en la interfaz de usuario de cada sistema, generalmente se requiere una adaptación manual.
Hydro admite múltiples formatos de competencia, incluido el formato de competencia ACM/ICPC (admite el sellado), el formato de competencia OI, el formato de competencia IOI, el formato de competencia Ledo y las funciones de tarea.
En los formatos de competición IOI y OI, se admite la función de corrección de preguntas. Los estudiantes pueden enviar las preguntas correspondientes en el banco de preguntas después del juego y sus puntuaciones se mostrarán junto a la lista.
En los formatos de competencia IOI y OI, se admite la función de tiempo flexible y los estudiantes pueden participar en X horas de su elección dentro del rango de tiempo establecido.
La configuración de idioma de Hydro no está codificada en el sistema, sino que utiliza archivos de configuración. Siempre que pueda escribir comandos de compilación y ejecutar comandos en el idioma correspondiente, Hydro puede juzgar las preguntas.
Correo electrónico: [email protected] Telegrama @undefinidomoe
Grupo de usuarios de Hydro: 1085853538
Nota: lea "La sabiduría de hacer preguntas" antes de unirse al grupo de usuarios.
Al mismo tiempo, puede haber algún contenido en el grupo que te resulte incómodo u ofensivo. Si tiene alguna inquietud sobre esto , no se una al grupo .
core&ui: API ScoreboardView
kit de herramientas en el sitio: Resolver
núcleo: optimizar la importación del formato icpc
núcleo: agregar la opción limit.pretest
núcleo: agregar tarea/registro de rendimiento diario
marco: eliminar UiContext y UserContext de forma predeterminada
núcleo: Se corrige la excepción de análisis al usar la importación HTML en modo de rebajas
core: Permite copiar preguntas citadas
core&juez: agregar opción confiable
núcleo: corrige el análisis de metadatos de usuario de importación
núcleo: modificar el formato de verificación pid
interfaz de usuario: deshabilitar la reproducción automática
núcleo: optimización del rendimiento de la lista de preguntas
núcleo: limitar la longitud del nombre para mostrar
núcleo: admite el ajuste del límite de longitud del código
núcleo: Desactivar el almacenamiento en caché de código IDE en línea en trabajos
núcleo: API: Verifique PERM_VIEW
juez: agregue las variables de entorno HYDRO_TIME_USAGE y HYDRO_MEMORY_USAGE
core&ui: admite recarga en caliente i18n
fps-import: Optimizar la importación de imágenes
ui: admite configuraciones de esquinas redondeadas
núcleo: admite StorageModel.copy y StorageModel.exists
núcleo: ProblemModel.list obsoleto
núcleo: Agregar usuario/importar/analizar y usuario/importar/crear ganchos
core: Deshabilitar tipos de componentes de controlador, lib y script
núcleo: actualizar a ts5.6, cordis3.18
recaptcha: eliminar
núcleo: mejorar enormemente el rendimiento de las tareas diarias
núcleo: (parcialmente) admite el formato de paquete icpc
núcleo: limitRate: admite identificadores personalizados
núcleo: Pregunta sobre formato de matriz obsoleto
núcleo: copia de seguridad: agregar opción --withAddons
(prueba)
núcleo: optimización del rendimiento de la sesión
instalación: mongodb escucha 127.0.0.1 de forma predeterminada
core&ui: otras correcciones de errores
ui: arreglar la vista previa de rebajas
ui: Optimice la visualización del cuadro de inicio de sesión cuando el inicio de sesión integrado esté deshabilitado
ui: arreglar transiciones de vista
onlyoffice: admite el procesamiento de archivos PDF
ui: Markdown admite la visualización de números de línea de código
ui: admite funciones richmedia extendidas
ui: soporte para incrustar videos de Youku
ui: eliminar barras de desplazamiento horizontales redundantes de algunos componentes de la página
núcleo: Corregir el cálculo del número de votos para la solución de problemas
ui: Optimiza las imágenes de 404 páginas en modo oscuro
ui: haga clic para ampliar la información de compilación
ui: arregla el marcador del juego siguiendo a los usuarios
núcleo: ProblemModel.import: admite la opción delSource
ui: soluciona el envío en tiempo real de los datos de prueba generados
prom-client: informar el estado a la consola
núcleo: oauth: admite nombre de usuario fijo
utilidades: admite la búsqueda de pm2 instalado por nix
ui: Optimice la navegación de preguntas en la página de la competencia
ui: opción monacoTheme obsoleta
ui: el editor de rebajas admite el modo oscuro
marco: optimizar los seguimientos de la pila
núcleo: oplog: ruta de acceso al registro
migrar: aumentar el tiempo de espera
vjudge: soluciona el problema de yacs que provoca la caída del sistema
sonic: admite la búsqueda de preguntas por ID de pregunta
núcleo: se solucionó un problema por el cual la configuración original del grupo se sobrescribía si se incluía un grupo al importar usuarios.
núcleo: arreglar la fuga de puntuación
núcleo: optimizar la pila de errores
núcleo: UserModel.getListForRender: admite campos adicionales
núcleo: ProblemModel.import: fusionar parámetros en opciones de importación
ui: habilitar transiciones de vista
núcleo: soluciona el problema de poder ver preguntas ocultas sin permiso [seguridad]
ui: Optimice la visualización de texto enriquecido de los detalles del registro de envío
interfaz de usuario: soporte de almacenamiento en caché de avatar
ui: evita que el texto se muestre fuera de los límites
vjudge: codeforces: Optimizar la adquisición de ID de envío
ui: centinela está deshabilitado por defecto
core: Soporte para ocultar la barra de usuario izquierda de capacitación
núcleo: cli: soporte de evaluación
ui: agregar soporte para reglas de especulación experimental
núcleo: Corregir el recuento de participantes en la capacitación
marco: arreglar la página de retorno 404
ui: optimizar el diseño de la página de permisos de usuario
vjudge: codeforces: optimizar la visualización de katex
core: cli: arreglar el orden de carga del script
instalar: la verificación de actualización de hilo está deshabilitada de forma predeterminada
núcleo: agregar concurso/editar y concurso/eliminar ganchos
ui: admite ampliar los detalles del punto de prueba
núcleo: Arreglar la prohibición del sistema de competencia IOI
núcleo: soluciona el problema de que los archivos de caché no se eliminan
núcleo: muestra el progreso al importar preguntas
ui: corrige el filtrado para etiquetas con espacios
a11y: Optimice el orden de salida de la prueba de rendimiento de la página web
ui: use el nuevo editor de rebajas
núcleo: optimizar la lógica del marcador
ui: mover caché a IndexedDB
núcleo: transcribir la migración como servicio
ui: optimiza la compatibilidad del navegador safari
núcleo: arreglar el campo del mantenedor de preguntas
juez: apoya el uso del archivo IO en la prueba previa
vjudge: codeforces: agregue verificación si el envío es exitoso
interfaz de usuario: agregar centinela
core&ui: admite mostrar la versión actual del compilador
núcleo: optimización del índice de la base de datos
núcleo: copia de archivos usando enlaces suaves
a11y: Agregar herramientas de prueba de rendimiento
utils: admite el reconocimiento de extensiones de archivos en mayúsculas
ui: optimizar el estilo del menú desplegable
núcleo: optimizar el título de la página
registrarse: admite la lectura del mapa fuente original desde un archivo
ui: Corregir envío de mensajes en el sitio
ui: descripción agregada de la página de clasificación
ui: agregar mensaje para generar datos de prueba
marco: separado del núcleo
núcleo: cargador: admite conmutación de múltiples perfiles
ui: Se corrigió la visualización del grupo de jugadores en el marcador del juego
núcleo: recalcular automáticamente las puntuaciones al restablecer las puntuaciones del juego
Esta versión también introduce las siguientes modificaciones de la API del complemento:
Aplicación/carga/gancho ${category} eliminado
Se eliminó ctx.app (use ctx.root)
Se eliminaron ctx.options (use ctx.root.config)
serializador: eliminar el parámetro showDisplayName
Se eliminaron las funciones loader.addScript, loader.addon
Se eliminó Hydro.module.render (use ctx.server.registerRenderer)
Se eliminaron lib/paginate y lib/rank (use db.paginate y db.ranked)
núcleo: mover el módulo API al servicio
Núcleo: si el envío es pirateado durante la competencia, no se activará la nueva prueba general.
núcleo: Mueva la lógica de agregar coincidencia de pid a la búsqueda
interfaz de usuario: arreglar cssFilter
juez: incorporado: mantener el orden de devolución de llamada
núcleo: optimizar el procesamiento de direcciones de correo electrónico
ui: muestra la longitud del registro enviado
migrar: admite la configuración de direcciones de correo electrónico aleatorias solo para usuarios en conflicto
core&ui: admite la clasificación automática de entradas de hackeo
elástico: optimiza la búsqueda difusa
ui: Se solucionó el problema de cargar respuestas incorrectas para preguntas de opción múltiple en preguntas objetivas
núcleo: arreglar el botón de pirateo
núcleo: Agregar página de estadísticas de preguntas
núcleo: muestra el progreso de la evaluación en la página de detalles del registro
core: problem_list: Permitir que los ganchos modifiquen la lógica de clasificación
migrar: agregar soporte poj
núcleo: api: admite consultas de rpInfo y avatarUrl
ui: permitir deshabilitar el tiempo transcurrido
núcleo: Solucionar el problema de cancelar puntuaciones bajo IOI (estricto)
ui: resáltate a ti mismo y a los siguientes usuarios en el marcador del juego
núcleo: Corregir el cálculo de la cantidad de AC en la lista de competencia
núcleo: deshabilitar el envío de autoprueba de repetición
ui: Optimizar la visualización del historial de edición de debates
núcleo: devuelve el contexto de usuario actual después de iniciar sesión/registrarse
núcleo: Se corrigió la verificación PERM_VIEW_DISPLAYNAME para la exportación del marcador del juego
ui: corrige el valor predeterminado del cuadro de selección domain_user
ui: Corregir pregunta objetiva cargando la última respuesta
núcleo: deshabilita automáticamente 2FA al restablecer la contraseña
núcleo: importar: admite la importación de soluciones de problemas y procedimientos estándar al importar el paquete de preguntas
núcleo: optimización del rendimiento y corrección de errores
núcleo: Soporte para establecer un multiplicador de puntuación para preguntas de competencia (#765)
espacio de trabajo: actualice la versión ts a 5.4.3
core: ws: Manejo de excepciones de análisis JSON
núcleo: permite cargar archivos a trabajos (#755)
UI: muestra la etiqueta del título de la pregunta del concurso en la página de gestión del concurso.
juez: Se solucionó el problema por el cual las preguntas objetivas arrojaban resultados anormales en algunos casos (#770)
ui: deshabilita algunas etiquetas en mdInline
(#767)
núcleo: agregar lenguaje R y compatibilidad con cpp20
ui: muestra el consumo de tiempo pico en la página de registro de evaluación
núcleo: Se solucionó un problema por el cual los administradores de la competencia no podían ver los códigos (#764)
juez: Proporcionar acceso a hydrojudge terminal
(#725)
núcleo: admite la carga de complementos desde /nix/store
núcleo: agregar gancho contest/list
juez: soporte vj4
ui: Se corrigió la selección de testlib en el panel de configuración de prueba (#762)
fps-importer: admite la configuración de límites de tamaño
núcleo: Agregar grupo de permisos PERM_VIEW_RECORD
(#753)
principal: Se solucionó el problema por el cual los anuncios del juego se podían ver sin iniciar sesión (#756)
ui: Permitir el uso de la tecla Intro para enviar 2FA (#752)
núcleo: Optimizar la lista de participantes de la capacitación (#750)
core&ui: otras optimizaciones de rendimiento y correcciones de errores
núcleo: actualizar a cordis@3
núcleo: optimizar el procesamiento de katex
núcleo: agregar monitor/recopilar gancho
juez: análisis de reparación
juez: Se solucionó el problema de la sincronización incorrecta de los datos de prueba por primera vez en la máquina de evaluación independiente
migrar: optimizar la importación de hustoj
ui: Se solucionó el problema de representación incorrecta de katex en algunas áreas
núcleo: Optimizar la versión de resultados de la competencia para filtrar por grupo
núcleo: inyectar -> inyectarUI
núcleo: arreglar una pérdida de memoria
interfaz de usuario: soporte /record?nopush=1
juez: corregir datos de prueba incorrectos almacenados en caché (#726)
juez: no mostrar detalles RuntimeError
durante la competencia
núcleo: el archivo de preguntas de la competencia omite la verificación PERM_VIEW_PROBLEM
juez: optimización del rendimiento (gracias @criyle)
utilidades: disociación@hidrooj/registro
núcleo: deshabilitar la verificación del número de puntos de prueba para preguntas objetivas
núcleo: cambiar el ID de sesión al iniciar sesión
núcleo: optimizar requiere gancho
núcleo: soluciona el problema del error de creación de usuarios en condiciones de alta concurrencia
prom-client: admite empujar a pushgateway
core&ui: página de lista de evaluación comprimida ws transmisión
utilidades: Optimizar la identificación del punto de prueba
ui: Eliminar función de serializador
núcleo: Agregar servicio de configuración
fps: admite etiqueta [md]
vjudge: codeforces: agregar límite de frecuencia
migrar: hustoj: admite el campo remoto_oj
núcleo: otras correcciones de errores
núcleo: soluciona el problema de devolver la excepción del código de estado
núcleo: Sincronizar el comportamiento de la página de clasificación
instalación: el compilador Pascal ya no está preinstalado
juez: manejar paquetes de latidos
núcleo: juzgar: optimizar la asignación de tareas
juez: optimizar la gestión de caché
core: contest_export_ghost: Exporta el nombre del equipo comenzando con un asterisco cuando el equipo no participa en las clasificaciones.
ui: arreglar la acción de pegar Mónaco
ui: admite el pegado por lotes de usuarios/números de preguntas
Nuevas características:
core&ui&judge: admite la generación de datos de prueba desde la página web
vjudge: agregar soporte para yacs
núcleo: soporte/registro?all=1
core&ui: Ocultar detalles del punto de prueba en el formato de competencia ACM
kit de herramientas en el sitio: admite inicio de sesión basado en la dirección IP
core&ui: admite el cambio de nombre de archivos en la página web
core&judge: permite distribuir múltiples tareas simultáneamente dentro de una única conexión
Optimizaciones y correcciones:
núcleo: optimizar el filtrado de nombres de archivos
utilidades: Optimice la lógica de coincidencia de datos de prueba
instalar: caddy activa la compresión de forma predeterminada
ui: traducción parcial completa
instalar: usa mongodb6 por defecto
núcleo: Enviar optimización del rendimiento de la página de registro
juez: actualizar la versión testlib
núcleo: instalación: tira de soporte
ui: el objetivo mínimo admitido para la actualización es chrome65
núcleo: Optimice la cantidad de preguntas que se muestran al buscar preguntas
Principal: Se solucionó el problema por el cual los registros de envío con 0 puntos no se mostraban en las clasificaciones de la competencia de Ledo.
core: Se corrigió el reemplazo de file:// en la pregunta del concurso
núcleo: discusión: Verificar la entrada de vnode
núcleo: eliminar las opciones de conexión predeterminadas de mongo
ui: nombre de eco de la página de error
ui: se solucionó el problema del error de conexión WebSocket entre dominios cuando no se había iniciado sesión
núcleo: soluciona el problema de duplicación de dominios fijados causado por la eliminación de dominios
migrar: hustoj: maneja el problema de que no hay campos de origen en las preguntas del sistema de la versión anterior
migrar: corregir el script de migración de UOJ
ui: arreglar el componente de reacciones
núcleo: verificar referente
núcleo: arreglar la distribución del globo
Otras correcciones de errores y optimizaciones de rendimiento
núcleo: se solucionó el problema de la configuración de dificultad anormal al crear preguntas
núcleo: optimizar el índice de documentos
core&ui: función de globo de competición
core&ui: aclaración
núcleo: arreglar webbautn
importar: agregar soporte HOJ
juez: límite de espacio de direcciones (beta)
instalación: admite el uso de variables de entorno para especificar el área de instalación
ui: corregir el error de usuario no existe al iniciar sesión
núcleo: arreglar la redirección de inicio de sesión
núcleo: corregir el límite de tasa de envío de correo electrónico de contraseña olvidada
núcleo: Arreglar la discusión sobre la competencia
ui: corrige la selección de etiquetas de subalgoritmo en la página de edición de preguntas
utilidades: corrige el reconocimiento del punto de prueba input1.txt
núcleo: Lista de envío: deshabilitar el envío en vivo cuando no esté en la primera página
juez: optimizar el reconocimiento del código de salida
núcleo: Arreglar la barra lateral de la página de envío de preguntas de la competencia
fps-importer: arregla el reconocimiento del campo remoto_oj
ui: corrige el paso de cookies cuando se usa socketUrl independiente
vjudge: Actualizar el rastreo de temas de csgoj
vjuez: soporte hduoj
migrar: hustoj: ignorar imágenes inexistentes al importar
core: oauth: use OpenID para asociar cuentas
núcleo: admite la búsqueda de usuarios según su nombre para mostrar
núcleo: admite la búsqueda de preguntas según su dificultad
ui: Optimice la lógica de filtrado de las tareas de la competencia en la página de inicio
núcleo: Optimizar la identificación del punto de prueba
ui: deshabilita la revisión ortográfica para la entrada de autoevaluación
ui: IDE en línea: página Agregar configuración
núcleo: agregue información de dificultad al exportar preguntas
ui: se solucionó el problema del error de finalización de la etiqueta de rebajas en determinadas circunstancias
import-qduoj: Verifique la validez de pid
núcleo: ordenar lista de trabajos
ui: arreglar la visualización del editor de discusión
núcleo: exportar función pwsh
vjudge: codeforces: Solucionar la excepción de rastreo 921 de la competencia
núcleo: arreglar la puntuación de partidos estricta
ui: corrige la visualización de la lista de entrenamiento participado
núcleo: desactivar el marcador antes de que comience el juego
ui: oculta las opciones predeterminadas y de invitado al agregar usuarios al dominio
núcleo: permitir que los administradores filtren todos los grupos
ui: arreglar el filtrado de idioma (#598)
ui: arreglar la reacción de la discusión
vjudge: Arreglar la adquisición de resultados de envío de Codeforces
núcleo: Optimizar la función de autoprueba del sistema
vjudge: configuración detallada de soporte (#582)
ui: deshabilitar la reproducción automática de video
instalar: admite la importación automática de datos desde UOJ durante la instalación
ui: soluciona el problema de la función anormal de preferidoPrefix
núcleo: Se solucionó el problema de que la función de exportación de código de competencia no puede procesar archivos binarios enviados por los jugadores.
núcleo: Corregir la gestión de la competencia para mostrar el estado de clasificación de participación de los usuarios
core&ui: admite el filtrado de competencias/tareas por grupo
core: muestra el tiempo de espera de compilación de spj y otra información detallada
core&ui: Importar preguntas: admite la reorganización de los números de las preguntas
núcleo: cargador: agregar integración de git
instalar: agregar ejemplo de instalación de k3s
núcleo: solo use nombres de archivos en minúsculas de forma predeterminada
ui: ignorar las respuestas memorizadas a preguntas objetivas en competiciones
núcleo: eliminar la opción langs.domain
núcleo: solucione el problema de que el buzón antiguo todavía está ocupado después de modificar el buzón
ui: algunas correcciones de estilo
ui: Preguntas objetivas: admite recordar la última respuesta elegida y agregar omisión rápida de preguntas
núcleo: use $HOME/.hidro para almacenar archivos temporales
core: import: compruebe si el pid es legal al importar
ui: agregue soporte de autoprueba de idioma relacionado con validAs
ui: Se corrigió la visualización de la barra de progreso del juego en modo de tiempo flexible
núcleo: Optimizar la identificación del usuario de importación
ui: recuerda el tamaño de fuente del editor
núcleo: admite la búsqueda de preguntas por etiquetas
core&ui: tabla de resultados de coincidencias y filtrado basado en grupos de soporte de capacitación
juez: agregar manejo de prioridad paralelo
núcleo: agregar registros de operaciones para las operaciones de configuración del dominio
núcleo: almacenamiento: evite caracteres como -_ al guardar archivos
núcleo: Se solucionó el problema por el cual el filtrado de envío en espera en la página de lista de registros de evaluación no tiene efecto
ui: soluciona el problema del servicio de lenguaje mecanografiado que funciona de forma anormal
ui: Agregar interruptor de navegación rápida de dominio
núcleo: agregue los permisos PERM_VIEW_HIDDEN_CONTEST y PERM_VIEW_HIDDEN_HOMEWORK
interfaz de usuario: optimización de la traducción
core: idiomas: agregar la opción validAs
migrar: agregar soporte UOJ
core&ui: otras correcciones de errores y optimizaciones
ui: preguntas objetivas: permite múltiples líneas de respuestas
núcleo: soluciona el problema de que pinnedDomains no se puede modificar
instalar: aumentar el límite predeterminado
ui: Optimice las notificaciones emergentes de la competencia
núcleo: Corregir el cálculo del tiempo en la página de administración de jugadores de la competencia
core: cli: Genera ID de pregunta predeterminada al exportar preguntas
núcleo: volcado: admite el parámetro --dbOnly
núcleo: importación de usuarios: verificación de información duplicada
ui: cambiar la información de derechos de autor predeterminada
núcleo: admite entrenamiento basado en clasificación
ui: recarga de plantilla en caliente
fps-import: admite el procesamiento de preguntas de evaluación remota
vjudge: Agregar atributo VERDICT.WAITING
ui: Optimice la identificación automática de los datos de prueba
vjudge: Agregue soporte de iluminación de programación de Yitong
ui: Agregar problemset/download
gancho
ui: ocultar algunos controles en el modo de impresión
núcleo: complemento creado usando enlaces simbólicos
ui: la página de registro de evaluación muestra el número de línea de código
núcleo: admite la importación de preguntas desde carpetas de preguntas descomprimidas
núcleo: agregue PRIV_UNLIMITED_ACCESS cuando establezcaJudge
núcleo: Se solucionó el problema de que las discusiones en el juego no se eliminaban con el juego.
vjudge: codeforces: Actualizar la lógica de verificación de inicio de sesión
ui: muestra indicaciones en la página de envío de preguntas
núcleo: actualizar caché de usuario
núcleo: finalizar por la fuerza las conexiones Websocket que no responden a los paquetes de latidos
core: establece la etiqueta predeterminada para preguntas importadas
núcleo: Python2 está deshabilitado de forma predeterminada
núcleo: Soporte para reordenar la barra de navegación
ui: se solucionó el problema por el cual el botón para ingresar al modo de edición no surte efecto en algunos casos
núcleo: agregar función de parche hidrooj
núcleo: Le permite ver sus propios envíos en el trabajo
núcleo: otras correcciones de errores
núcleo: solucionar el problema de visualización del marcador bajo estrictas condiciones
núcleo: permitir que los usuarios normales vean las discusiones del juego
núcleo: crea automáticamente carpetas de recursos estáticos al inicio
núcleo: permite el uso de otros módulos de UI
juez: solucione el problema de la redirección de salida de preguntas de IO de archivos
núcleo: ya no asignar sessionId al usuario invitado
juez: arreglar enviar pregunta de respuesta
ui: websocket: agregar paquete de latidos
juez: corregir la pregunta objetiva y presentar el envío de la pregunta IO
juez: agregue la opción compile_time_limit
núcleo: agregue ajustes preestablecidos de kotlin y pypy3
ui: marcador: admite actualización automática
núcleo: concurso: permitir a los administradores ver puntuaciones en tiempo real después de cerrar la clasificación
juez: admite la configuración del límite de tiempo y espacio del idioma por tema
instalación: admite la importación automática de datos de hustoj
instalar: admite especificar la fuente de instalación
núcleo: admite la instalación automática de complementos desde npmjs
core&ui: corrección de errores
juez: establece la prioridad de evaluación más baja
Principal: Se solucionó el problema por el cual la lista de envíos aún se puede ver cuando las clasificaciones están cerradas en algunos formatos de competencia.
núcleo: optimizar la autenticación de debates
juez: Optimice el eco del estado de la evaluación de devolución de llamada unificada
juez: eliminar el paso processTestdata
juez: pregunta objetiva puntuación de la tarea eco
núcleo: aplanar la estructura de datos de prueba
núcleo: rp: arreglar puntuaciones de partidos
core&ui: Requerir una contraseña al usar OAuth por primera vez
ui: Actualización de la interfaz de usuario de configuración de evaluación
instalar: ajuste wtCacheSize según la memoria del sistema
ui: optimización de la velocidad de carga
núcleo: detectar caso de ID de dominio
ui: índice de campo de la barra de navegación
ui: admite el filtrado de trabajos/competiciones por grupos de permisos
juez: establezca el intérprete predeterminado de Javascript en nodo
juez: se solucionó el problema por el cual la eliminación de preguntas sin terminar causaba que la cola de evaluación se atascara.
núcleo: actualizar a mongodb@5
ui: muestra puntuaciones de subtareas en los detalles de la evaluación
núcleo: soluciona el problema de que el nombre del archivo de datos de prueba comienza con un espacio, lo que provoca un funcionamiento anormal
dev: actualizar el entorno devcontainer
ui: optimizar el diseño de la página IDE
ui: use cordis para la gestión del ciclo de vida (elimine el bus antiguo)
blog: Mover la funcionalidad al complemento independiente @hydrooj/blog
núcleo: admite configuraciones dinámicas
juez: modo de rendimiento (desactivar la devolución de llamada de un solo punto)
ui: admite la configuración de mantenedores para trabajos
núcleo: publicar la pregunta de respuesta en la lista blanca de idiomas de envío
import-qduoj: Se solucionó el problema por el cual las etiquetas vacías causaban que la importación fallara
ui: simplifica la lógica del trabajador de servicio
ui: se solucionó el problema de no unirse al plan de capacitación
núcleo: simplificar la lista de campos de devolución del usuario
core&ui: concurso.rule.ioi.strict
Otras correcciones de errores y optimización de la experiencia
núcleo: corrige la autoprueba sin entrada
núcleo: soluciona el problema del token no válido causado por el nombre de dominio inconsistente de endpointForUser
núcleo: eliminar la verificación isBinaryFile
núcleo: arreglar la configuración de enableViewCode
núcleo: cli: prefiero mongosh
espacio de trabajo: proporcionar el paquete @hydrooj/eslint-config
Otras correcciones de errores y optimización de la experiencia
núcleo: corregir la pregunta de envío de respuesta
ui: corrige las operaciones de edición y eliminación de páginas de trabajo
vjudge: Adaptar el código fuerza la nueva interfaz
núcleo: filtrar operaciones vacías $set
ui: la página domain_dashboard muestra el creador del dominio
juez: arreglar el truco
núcleo: compruebe si el idioma seleccionado existe al enviar
core: admite la detección de problemas que provocan que el inicio se congele.
Principal: soluciona el problema por el cual la información de calificación no se puede escribir en determinadas circunstancias.
núcleo: agregue más compatibilidad con el tipo de campo del validador, elimine la versión anterior del validador
core&ui: soporta CORS
ui: admite carga diferida de módulos
ui: arreglar el inicio de sesión por correo electrónico
ui: se solucionó el problema de visualización anormal de mensajes en el sitio
vjudge: luogu: arreglar inicio de sesión
juez: se solucionó un problema por el cual algunas de las preguntas objetivas quedaban sin respuesta, lo que provocaba errores de evaluación.
núcleo: ConnectionHandler
admite @subscribe(event)
utilidad: soluciona el problema del formato anormal de Message.sendNotification
núcleo: optimización de la base de datos
núcleo: verificar el avatar del usuario
juez: elimine el gancho onDestory y use desechables en su lugar
ui: optimizar la carga de recursos
core&ui: agregar soporte webbautn
ui: arreglar la votación de solución de problemas
ui: optimiza el diseño de la página de detalles de la competencia
ui: corrija el enlace del registro de revisión en la búsqueda rápida
núcleo: Agregar soporte Types.ArrayOf()
ui: arreglar el guardado de vista previa de la barra lateral
núcleo: Agregar configuración de CookieDomain
ui: se solucionó el problema de la actualización infinita de la página en el modo de desarrollo
vjudge: proporciona el componente BasicFetcher
núcleo: caché de modelo de dominio
core&ui: otras correcciones de errores
núcleo: Agregar soporte para Ledosai
vjudge: Eliminar dependencias relacionadas con el titiritero
juez: se solucionó el problema por el cual los resultados de la evaluación no se devolvían cuando la respuesta no estaba establecida para preguntas objetivas.
ui: elimina el módulo de búsqueda en el lado derecho de la página de inicio de forma predeterminada
ui: Agregar módulo de carga de avatar en el sitio
núcleo: permitir que los creadores de partidos vean marcadores ocultos
núcleo: La discusión cambió para ordenar por hora de creación
ui: Soluciona el eco de la votación de la solución del problema
núcleo: soluciona el problema del error de síntesis del enlace de recuperación de contraseña
juez: Se solucionó el problema de que el límite de salida de compilación de preguntas de IO del archivo es demasiado pequeño
principal: Se solucionó el problema por el cual %
como palabra clave causaba un error en la búsqueda de preguntas
núcleo: Se solucionó el problema por el cual el módulo de registro de envío no se muestra en la lista de preguntas de la competencia
UI: se solucionó el problema por el cual algunas ID preestablecidas de emoticones en el foro de discusión no coincidían con las imágenes reales.
instalación: establezca vm.swappiness=1 de forma predeterminada para mejorar el rendimiento
ui: permite a los usuarios normales explorar los registros de evaluación página por página cuando se establecen las condiciones de consulta.
ui: agregue un botón para cancelar puntuación a la lista de enviar registros
núcleo: soluciona el problema de que los registros de acceso no se pueden registrar en determinadas circunstancias
espacio de trabajo: soporta pnpm
espacio de trabajo: eliminar moca
núcleo: admite filtrado usando handler/before/Name#method
juez: optimización del rendimiento
ui: la página ya no se actualiza al hacer clic en volver a probar en la lista de registros de evaluación
ui: admite búsqueda rápida global
núcleo: lista_problema: admite parámetro de límite
núcleo: Optimice la lista de nodos de discusión predeterminada
core: validador: los caracteres chinos dobles también se consideran nombres de usuario legales
juez: objetivo: admite preguntas de respuesta múltiple
core: problemStat: Ignorar envíos con calificaciones canceladas
UI: Se corrigió la edición de discusión Ctrl+Introducir tecla de acceso directo
ui: Se corrigió la función de tema de discusión de bloqueo
núcleo: optimizar la configuración de autenticación de trabajos
núcleo: función de prohibición de lista fija
ui: concurso: permite la gestión manual de los concursantes
ui: concurso: admite recordatorios de mensajes transmitidos durante la competencia
ui: otras correcciones de errores y optimizaciones de rendimiento
fps: se solucionó el problema por el cual fallaba la importación debido a archivos vacíos en las preguntas.
núcleo: admite razones adicionales al prohibir usuarios
vjudge: codeforces: omitir coincidencias 1769 y 1772 inaccesibles
UI: la operación de pregunta favorita ya no desencadena actualización de la página
Core: verifique la validez del archivo de configuración de la pregunta al volver a probar
Core: Limpie automáticamente los archivos temporales al salir
Core: Prohibido de usar.
import-qduoj: omitir preguntas ilegales
Core: corrige la exportación del código de competencia para enviar preguntas de respuesta
Juez: agregue el elemento de stdiolimit
ui: arreglar mensajes.flag_alert Display
Core: la capacitación puede cargar archivos
UI: optimizar la barra de navegación de la competencia
UI: la tabla de resultados de partidos admite los siguientes equipos
Core: permite la clonación de competiciones/trabajos
UI: Agregar entrada de función a la página de edición de la competencia
Core: Competencia de Star Star
Core: omita la presentación de puntajes cancelados al volver a probar la pregunta completa
Core: corrige la función de buscar preguntas basadas en ID en la competencia
Juez: solucione el problema de la visualización anormal del mensaje de error TestLib
Sandbox: aumentar el límite de stdio predeterminado
Core: solucionar el problema de la excepción en la historia de la discusión
Core: optimizar la velocidad de ejecución de las tareas diarias
Core: la página Detalles del usuario admite que muestran las competiciones/asignaciones en las que el usuario ha participado recientemente.
Juez: Agregue BASH a la lista de idiomas predeterminada
Vjudge: omita la carga en modo CLI
LSP: Se solucionó el mensaje de finalización automática, que es posible que deba actualizarse manualmente para entrar en vigencia.
Juez: optimizar la salida de diferencia
Instalación: de forma predeterminada, MongoDB URI se utiliza como método de conexión de base de datos
UI: retraso en el fondo predeterminado cuando el fondo del usuario no se carga
Las rutas de archivo se cambian para ser sensibles a la caja.
El complemento front-end es compatible con import { ... } from '@hydrooj/ui-default'
para introducir bibliotecas incorporadas.
ctx.inject('Notification')
admite insertar múltiples líneas de texto.
Core: optimizó el rendimiento de la página del marcador del juego
Core: admite especificar el grupo y la escuela a la que pertenece el usuario al importar usuarios
Core & UI: otras correcciones de errores y optimizaciones de rendimiento
Se agregó UserModel.getListForRender(domainId, uids)
.
Agregue la propiedad IHandler.response.pjax
.
núcleo: problema eliminado.Asign
Core: Se solucionó el problema donde no se podía ver el código si la pregunta aún estaba oculta después de la competencia.
UI: Se corrigió la visualización de pie de página en el navegador de IE
Juez: Se solucionó el problema de que el controlador de limón saliera de manera anormal, lo que hace que el puntaje de la pregunta sea 0
UI: optimizar la advertencia de compatibilidad de Firefox en el lado de la gestión
UI: optimice la visualización de preguntas de FPS después de importarlas
UI: solucione el problema del reconocimiento de lenguaje de visualización del navegador IE
Instalar: detectar el entorno de pagoda instalado y lanzar una advertencia de incompatibilidad
UI: optimizar algunas indicaciones de error
migrar: optimización del rendimiento
Vjudge: arreglar el problema de la excepción del registro de envío de código de código
ProblemModel.getList()
elimina el parámetro de grupo y mueve los parámetros posteriores hacia adelante
cordis
actualizado a 2.6
Se solucionó un problema en el que la página de detalles de revisión no se actualizaría inmediatamente bajo ciertas circunstancias
Devuelve los errores de TestLib SPJ al lado del usuario
Se solucionó el problema de que el archivo de preguntas no se puede obtener previamente desde el lado del administrador
Soporte final para NodeJS <14
UI: API: Banco de trabajo API actualizado
Juez: Eliminar R de las variables de entorno y agregue la descripción de los paquetes de Python
UI: modificó algunos enlaces recomendados
Prom-Client: Información de registro de eventos de eventos
Core: Concurso: Apoye la exportación de la información del concurso al formato fantasma
Core: Concurso: Optimizar el cálculo de las presentaciones y pases en la competencia
Core: Concurso: Muestra la presentación pendiente al cerrar la lista
Juez: solucionó el problema donde las preguntas objetivas no se establecieron con respuestas, lo que provocó que la evaluación fuera omitida.
Core: optimizar csrftokokenerror y dominio de dominio de dominio
Core: servidor: captura de errores de websocket
Core: Validador: solucionar el problema de enviar mensajes de sitio vacíos
Otras correcciones de errores y optimizaciones de rendimiento
En la página Detalles de la pregunta, ScratchPad.Stor se puede acceder públicamente desde la ventana
Caddy se instala automáticamente durante la instalación y configura el proxy inverso para escuchar en el puerto 80.
Admite el uso de hydrooj install <src>
y hydrooj uninstall <name>
para administrar rápidamente los complementos.
Se agregó Auto-Completo para la selección de idiomas en Dominio Administrar el perfil de dominio de editar.
Admite ver su código enviado en el formato de competencia OI.
import-qduoj: admite la importación de preguntas SPJ.
FPS-Importer: Adapte a la versión del archivo FPS 1.4.
Otras correcciones de errores y optimización de la experiencia.
Admite usar ctx.i18n.load(lang, Record<string, string>)
para cargar archivos de traducción.
Soporte ctx.withHandlerClass(name, callback)
para obtener un prototipo de clase.
Prom-Client: admite la clasificación de informes de Conexión de ConnectionHandler personalizada.
Mover handler.ctx a handler.context, y el nuevo handler.ctx es complemento.
El contenido bajo marco/ejemplos/instalación/en este proyecto tiene licencia bajo la licencia MIT y puede usarlo libremente.
El contenido en paquetes/ ui-default/ en este proyecto solo está autorizado con AGPL-3.0.
El resto del proyecto utiliza licencias duales:
Puede usar este código de forma gratuita, sujeto a la licencia AGPL-3.0 y la siguiente sección de Términos adicionales:
Si realmente necesita código cerrado, también puede contactarnos para comprar otras licencias.
Según el Artículo 7 del Acuerdo AGPL3, debe cumplir con los siguientes términos adicionales al usar este proyecto:
No elimine el aviso de derechos de autor y la atribución del autor/fuente de este elemento;
Al redistribuir versiones modificadas de este software, debe indicarse claramente en el nombre o el número de versión del software;
El nombre del autor no puede usarse para fines publicitarios, excepto con permiso;
Ahora mismo:
Cuando implementa Hydro, debe mantener las palabras Powered by Hydro
en la parte inferior, y la palabra Hydro
debe apuntar a un enlace a uno de hydro.js.org/本仓库/fork
.
Si realiza modificaciones/extensiones al código fuente, también debe ser Powered by Hydro, Modified by xxx
origen abierto bajo AGPL-3.0-o-Later.
Consulte Contribuir.md
Clasificación sin ningún orden en particular, en el Diccionario Orden de enlaces
GitHub proporciona alojamiento de código y compilaciones automatizadas para Hydro.
Criyle proporciona una implementación de Sandbox de revisión.
Vijos proporciona el marco de UI para Hydro.
Academia Yun Dou