Hydro é um eficiente sistema de avaliação on-line de informática. Fácil de instalar, multiplataforma, multifuncional, escalável e possui banco de perguntas.
Para professores que não estão familiarizados com Linux ou têm preguiça de operar e manter, também oferecemos uma versão online gratuita e pronta para uso.
Para obter detalhes, acesse https://hydro.ac para visualizar as instruções de operação.
Cole o comando de instalação no console para instalação com um clique. Após a instalação, o primeiro usuário registrado obterá automaticamente privilégios de superadministrador.
Compatível com distribuições Linux convencionais, o Debian 12 é recomendado e suporta dispositivos arm64 (Raspberry Pi, etc.)
LANG=zh .
Documento chinês/inglês
Se a documentação relevante não for detalhada o suficiente, envie uma solicitação pull ou entre em contato com a equipe de desenvolvimento para esclarecimentos.
Envie sugestões de bugs e recursos em Problemas.
A Hydro projetou um sistema modular plug-in que pode facilmente expandir a funcionalidade do sistema.
Usando o sistema de plug-in, você ainda pode garantir a capacidade de atualização do sistema após modificar funções.
Todas as versões históricas do Hydro podem ser facilmente atualizadas para a versão mais recente.
Para obter diretrizes de uso e desenvolvimento de plug-ins, consulte o capítulo de plug-ins e desenvolvimento da documentação.
Hydro suporta todas as principais distribuições Linux, é compatível com dispositivos de arquitetura x86_64 e arm64 e pode ser instalado com um clique.
Hydro pode funcionar normalmente em Raspberry Pi ou Apple M1/M2.
Use hydrooj backup
para fazer backup de todos os dados do sistema e use hydrooj restore 文件名
para importar dados de backup. Todo o processo não requer intervenção manual.
O Hydro fornece suporte multiespaço de sistema único, facilitando a criação de espaços independentes para diferentes turmas/séries/escolas, etc.
Os dados que não sejam de usuários em espaços diferentes são isolados por padrão e administradores independentes podem ser atribuídos sem interferir uns nos outros.
As perguntas podem ser copiadas entre domínios e ocupar apenas um espaço no sistema.
As permissões do Hydro podem ser atribuídas aos usuários correspondentes com base em competições/trabalhos, ou os usuários podem ser agrupados (classes) e as permissões podem ser atribuídas por grupo. Para nós de permissão, você pode ver a captura de tela abaixo da introdução.
O próprio sistema Hydro não tem estado, o que significa que você pode adicionar ou excluir nós de serviço à vontade, sem afetar a operação normal do sistema. A fila de avaliação será automaticamente distribuída uniformemente entre todas as máquinas de avaliação atualmente online. Após ingressar no grupo de dimensionamento elástico, as máquinas de avaliação podem ser adicionadas ou excluídas automaticamente de acordo com a carga do servidor. Ao contrário de outros sistemas, o Hydro gerenciará o cache de dados de teste entre diferentes servidores e os puxará sob demanda, para que a máquina de avaliação possa ser usada imediatamente após ficar online, sem sincronização manual de dados.
Hydro oferece suporte a todos os tipos de perguntas. Quer se trate de tipos de perguntas tradicionais, juiz especial, entrada e saída de arquivos, perguntas de envio de respostas, interação de IO, interação de funções ou até mesmo perguntas para preencher as lacunas, a Hydro tem o suporte correspondente. Depois de instalar o ambiente operacional relevante, a Hydro pode até fazer:
Chame a tartaruguinha para fazer um desenho e compare com a imagem padrão;
Chame a GPU para avaliar o modelo de aprendizado de máquina;
Mais amostras podem ser visualizadas e baixadas na área de amostras.
O Hydro suporta a importação de arquivos de banco de perguntas em formatos comuns, incluindo o formato zip comum do Hydro, perguntas no formato FPS (xml) exportadas pelo HUSTOJ e pacotes compactados exportados pelo QDUOJ.
Você pode baixar o banco de perguntas gratuito no Hydro Question Bank.
Hydro também oferece suporte ao VJudge, o que significa que você pode importar perguntas diretamente de outras plataformas para o sistema, modificar as perguntas e incorporá-las em suas próprias tarefas ou competições para construir rapidamente seu próprio sistema de banco de perguntas.
As plataformas atualmente suportadas são:
Yiyi Tong Programming Enlightenment: O banco oficial de perguntas sobre iluminação de programação Yiyi Tong é gratuito para uso. Consulte as instruções de importação no pacote compactado.
Concurso de Programação Simples: O oficial fornece gratuitamente o banco de questões de suporte do "Concurso de Programação (Básico)" de Luogu. Consulte as instruções de importação no pacote compactado.
UOJ: JO bem conhecido na China, comumente usado por equipes nacionais de treinamento;
Codeforces: Uma grande plataforma de competição estrangeira com um grande número de questões de alta qualidade;
Luogu: Para usar esta função, você precisa adquirir uma licença da Luogu;
HDUOJ: Sistema de avaliação on-line da Universidade Hangzhou Dianzi, que inclui questões de treinamento multiescolar;
CSGOJ: Plataforma de avaliação de questões da Competição Provincial de Guangdong e da Competição Provincial de Hunan;
SPOJ: As ligações domésticas são muito instáveis e não recomendadas;
POJ: estabilidade de servidor relativamente antiga e ruim;
YACS: plataforma de competição da Shanghai Computer Society, há um limite de envios diários para uma única conta;
HUSTOJ: Teoricamente oferece suporte a todos os sistemas baseados em HUSTOJ, mas devido às diferenças na IU de cada sistema, geralmente é necessária uma adaptação manual.
A Hydro oferece suporte a uma variedade de formatos de competição, incluindo formato de competição ACM/ICPC (suporta selagem), formato de competição OI, formato de competição IOI, formato de competição Ledo e funções de lição de casa.
Nos formatos de competição IOI e OI, a função de correção de perguntas é suportada. Os alunos podem enviar perguntas correspondentes no banco de perguntas após o jogo, e suas pontuações serão exibidas ao lado da lista.
Nos formatos de competição IOI e OI, a função de horário flexível é suportada e os alunos podem participar em X horas de sua escolha dentro do intervalo de tempo definido.
As configurações de idioma do Hydro não são codificadas no sistema, mas sim usando arquivos de configuração. Contanto que possa escrever comandos de compilação e executar comandos na linguagem correspondente, o Hydro pode julgar as questões.
E-mail: [email protected] Telegrama @undefinidomoe
Grupo de usuários Hydro: 1085853538
Observação: leia "A sabedoria de fazer perguntas" antes de ingressar no grupo de usuários.
Ao mesmo tempo, pode haver algum conteúdo no grupo que o deixe desconfortável ou ofensivo. Se você tiver alguma dúvida sobre isso , por favor não entre no grupo .
core&ui: API ScoreboardView
kit de ferramentas no local: Resolver
núcleo: otimizar a importação do formato icpc
core: adicionar opção limit.pretest
núcleo: adicionar registro de tarefa/desempenho diário
framework: Remova UiContext e UserContext por padrão
core: Corrige exceção de análise ao usar importação de HTML no modo markdown
core: Permite copiar perguntas citadas
core&juiz: adicionar opção confiável
núcleo: corrigir análise de metadados do usuário de importação
core: Modificar formato de verificação pid
ui: desabilita a reprodução automática
núcleo: otimização do desempenho da lista de perguntas
core: limite o comprimento do nome de exibição
core: Suporte para ajuste do limite de comprimento do código
core: Desative o cache de código IDE on-line em trabalhos
núcleo: API: Verifique PERM_VIEW
juiz: Adicione variáveis de ambiente HYDRO_TIME_USAGE e HYDRO_MEMORY_USAGE
core e ui: suporte para recarga a quente i18n
importação de fps: Otimize a importação de imagens
ui: suporta configurações de cantos arredondados
núcleo: suporta StorageModel.copy e StorageModel.exists
núcleo: ProblemModel.list obsoleto
núcleo: Adicionar ganchos usuário/importar/analisar e usuário/importar/criar
core: Desativar manipulador, lib, tipos de componentes de script
núcleo: atualização para ts5.6, cordis3.18
recaptcha: remover
núcleo: Melhorar muito o desempenho das tarefas diárias
core: (parcialmente) suporta formato de pacote icpc
core: limitRate: suporta ids personalizados
core: questão de formato de array obsoleto
core: backup: adicionar opção --withAddons
(teste)
núcleo: otimização do desempenho da sessão
instalação: mongodb escuta 127.0.0.1 por padrão
core&ui: outras correções de bugs
ui: corrige a visualização do markdown
ui: Otimize a exibição da caixa de login quando o login integrado estiver desativado
ui: corrigir transições de visualização
onlyoffice: suporta processamento de arquivos PDF
ui: markdown suporta a exibição de números de linha de código
ui: suporta funções richmedia estendidas
ui: Suporte para incorporação de vídeos Youku
ui: Remova barras de rolagem horizontais redundantes de alguns componentes da página
núcleo: Corrigir o cálculo do número de votos para soluções de problemas
ui: Otimize imagens de página 404 no modo escuro
ui: Clique para expandir as informações de compilação
ui: corrige o placar da partida seguindo os usuários
núcleo: ProblemModel.import: opção de suporte delSource
ui: corrige o envio em tempo real dos dados de teste gerados
prom-client: Reporta o status para o console
core: oauth: suporta nome de usuário fixo
utils: suporta encontrar pm2 instalado por nix
ui: Otimize a navegação das perguntas na página da competição
ui: Opção monacoTheme obsoleta
ui: editor de markdown suporta modo escuro
estrutura: otimizar rastreamentos de pilha
core: oplog: registro do caminho de acesso
migrar: aumentar o tempo limite
vjudge: corrija o problema dos yacs causando falha no sistema
Sonic: suporta pesquisa de perguntas por ID de pergunta
core: Corrigido um problema em que as configurações originais do grupo seriam substituídas se um grupo fosse incluído ao importar usuários.
núcleo: corrigir vazamento de pontuação
núcleo: otimizar pilha de erros
núcleo: UserModel.getListForRender: suporta campos adicionais
core: ProblemModel.import: mescla parâmetros em opções de importação
ui: habilita transições de visualização
núcleo: Corrigir o problema de poder visualizar perguntas ocultas sem permissão [segurança]
ui: Otimize a exibição de rich text dos detalhes do registro de envio
ui: suporte para cache de avatar
ui: evita que o texto seja exibido fora dos limites
vjudge: codeforces: Otimize a aquisição de ID de envio
ui: sentinela está desabilitada por padrão
core: Suporte para ocultar a barra de usuário esquerda do treinamento
núcleo: cli: avaliação de suporte
ui: Adicionar suporte a regras de especulação experimental
core: corrige a contagem de participantes do treinamento
estrutura: corrigir página de retorno 404
ui: Otimize o layout da página de permissão do usuário
vjudge: codeforces: otimizar a exibição do katex
core: cli: corrige a ordem de carregamento do script
instalar: a verificação de atualização do fio está desabilitada por padrão
core: adicionar contest/edit e contest/del hooks
ui: Suporte para expansão de detalhes do ponto de teste
núcleo: Corrigir a proibição do sistema de competição IOI
core: Corrija o problema de que os arquivos de cache não serão excluídos
core: exibe o progresso ao importar perguntas
ui: corrige a filtragem de tags com espaços
a11y: Otimize a ordem de saída do teste de desempenho da página da web
ui: use o novo editor de markdown
núcleo: otimizar a lógica do placar
ui: mova o cache para IndexedDB
núcleo: transcrever a migração como serviço
ui: Otimize a compatibilidade do navegador Safari
core: corrige o campo mantenedor da pergunta
juiz: apoia o uso do arquivo IO no pré-teste
vjudge: codeforces: Adicionar verificação se o envio foi bem-sucedido
ui: adicionar sentinela
core&ui: suporta a exibição da versão atual do compilador
núcleo: otimização do índice do banco de dados
core: cópia de arquivo usando links virtuais
a11y: Adicionar ferramentas de teste de desempenho
utils: Suporte ao reconhecimento de extensões de arquivo em maiúsculas
ui: Otimizar estilo do menu suspenso
núcleo: otimizar o título da página
registrar: suporta a leitura do mapa de origem original do arquivo
ui: Corrigir envio de mensagem no site
ui: página de classificação adicionada descrição
ui: Adicionar prompt para gerar dados de teste
estrutura: separada do núcleo
core: loader: suporta comutação multi-perfil
ui: Corrigida a exibição do grupo de jogadores no placar do jogo
núcleo: recalcular automaticamente as pontuações ao redefinir as pontuações do jogo
Esta versão também introduz as seguintes modificações de API de plug-in:
Gancho app/load/${category} removido
Ctx.app removido (use ctx.root)
Ctx.options removido (use ctx.root.config)
serializador: remova o parâmetro showDisplayName
Removidas funções loader.addScript e loader.addon
Hydro.module.render removido (use ctx.server.registerRenderer)
Removido lib/paginate e lib/rank (use db.paginate e db.ranked)
core: mover o módulo API para serviço
core: Se o envio for hackeado durante a competição, o reteste geral não será acionado.
core: Mova a lógica de adicionar correspondência pid na pesquisa
interface do usuário: corrigir cssFilter
juiz: embutido: mantém a ordem de retorno de chamada
núcleo: otimizar o processamento de endereços de e-mail
ui: exibe o comprimento do registro enviado
Migrar: suporte para configuração de endereços de e-mail aleatórios apenas para usuários conflitantes
core&ui: suporta classificação automática de entrada de hack
elástico: Otimize a pesquisa difusa
ui: Corrigido o problema de carregamento incorreto de respostas para questões de múltipla escolha em questões objetivas
núcleo: botão de correção de hack
núcleo: Adicionar página de estatísticas de perguntas
core: exibe o progresso da avaliação na página de detalhes do registro
core: problem_list: Permitir que ganchos modifiquem a lógica de classificação
migrar: adicionar suporte poj
core: api: suporta consulta de rpInfo e avatarUrl
ui: permitir desabilitar timeago
núcleo: Corrigir o problema de cancelamento de pontuações sob IOI (estrito)
ui: Destaque-se e siga os usuários no placar do jogo
núcleo: Corrigir o cálculo do valor AC na lista de competição
core: desativar o envio do autoteste de reteste
ui: Otimize a exibição do histórico de edição de discussões
core: Retorna o UserContext atual após efetuar login/registrar-se
núcleo: correção da verificação PERM_VIEW_DISPLAYNAME para exportação do placar do jogo
ui: corrija o valor padrão da caixa de seleção domain_user
ui: Corrige a pergunta objetiva carregando a última resposta
core: Desativa automaticamente 2FA ao redefinir a senha
core: import: suporta a importação de soluções de problemas e procedimentos padrão ao importar o pacote de perguntas
núcleo: otimização de desempenho e correção de bugs
núcleo: suporte para definição de multiplicador de pontuação para questões de competição (#765)
espaço de trabalho: atualize a versão ts para 5.4.3
core: ws: Tratamento de exceções de análise JSON
núcleo: permite o upload de arquivos para trabalhos (#755)
ui: exibe o título da pergunta do concurso na página de gerenciamento do concurso
juiz: Corrigido o problema em que questões objetivas retornavam resultados anormais em alguns casos (#770)
ui: desative algumas tags no mdInline
(#767)
núcleo: Adicionar linguagem R e suporte cpp20
ui: exibe o consumo de horário de pico na página de registro de avaliação
core: Corrija o problema de que o administrador da competição não consegue visualizar o código (#764)
juiz: Fornece acesso ao hydrojudge terminal
(#725)
core: suporta carregamento de plugins de /nix/store
núcleo: adicionar gancho contest/list
juiz: suporte vj4
ui: Corrige a seleção testlib no painel de configurações de teste (#762)
fps-importador: suporta configuração de limites de tamanho
core: Adicionar grupo de permissão PERM_VIEW_RECORD
(#753)
núcleo: Corrigido o problema em que os anúncios do jogo podiam ser visualizados sem fazer login (#756)
ui: Permitir usar a tecla Enter para enviar 2FA (#752)
núcleo: Otimizar a lista de participantes do treinamento (#750)
core&ui: outras otimizações de desempenho e correções de bugs
núcleo: atualizar para cordis@3
núcleo: otimizar o processamento katex
núcleo: adicionar monitor/coletar gancho
juiz: análise de reparo
juiz: Corrigido o problema de sincronização incorreta de dados de teste pela primeira vez na máquina de avaliação independente
migrar: otimizar a importação do hustoj
ui: Corrigido o problema de renderização incorreta do katex em algumas áreas
core: Otimize a versão dos resultados da competição para filtrar por grupo
núcleo: injetar -> injectUI
core: consertar um vazamento de memória
interface do usuário: suporte /record?nopush=1
juiz: corrija dados de teste incorretos armazenados em cache (#726)
juiz: Não exibe detalhes RuntimeError
durante a competição
core: O arquivo de perguntas na competição ignora a verificação PERM_VIEW_PROBLEM
juiz: otimização de desempenho (obrigado @criyle)
utilitários: dissociação@hydrooj/register
núcleo: desabilita a verificação do número do ponto de teste para questões objetivas
core: Alternar sessionId ao fazer login
core: otimizar requer gancho
core: corrige o problema de falha na criação do usuário sob alta simultaneidade
prom-client: suporta envio para pushgateway
core&ui: página da lista de avaliação compactada ws transmissão
utils: Otimize a identificação do ponto de teste
ui: Remover função serializador
núcleo: Adicionar SettingService
fps: suporte à tag [md]
vjudge: codeforces: adicionar limite de frequência
migrar: hustoj: suporte ao campo remote_oj
núcleo: Outras correções de bugs
núcleo: corrija o problema do código de status de retorno anormal
núcleo: sincronizar o comportamento da página de classificação
instalar: o compilador Pascal não está mais pré-instalado
juiz: lidar com pacotes de pulsação
núcleo: julgar: otimizar a alocação de tarefas
juiz: otimizar o gerenciamento de cache
core: contest_export_ghost: Exporta o nome da equipe começando com um asterisco quando a equipe não participa do ranking
ui: corrige a ação de colar monaco
ui: suporta colagem em lote de usuários/números de perguntas
Novos recursos:
core&ui&judge: suporta a geração de dados de teste a partir da página web
vjudge: adicionar suporte ao yacs
núcleo: suporte/registro?all=1
core&ui: ocultar detalhes do ponto de teste no formato de competição ACM
onsite-toolkit: suporta login com base no endereço IP
core&ui: Suporta renomeação de arquivos na página da web
core&judge: permite que múltiplas tarefas sejam distribuídas simultaneamente em uma única conexão
Otimizações e correções:
núcleo: otimizar a filtragem de nome de arquivo
utils: Otimize a lógica de correspondência de dados de teste
install: caddy ativa a compactação por padrão
ui: tradução parcial completa
instalar: usa mongodb6 por padrão
núcleo: Enviar otimização de desempenho da página de registro
juiz: atualize a versão testlib
núcleo: instalar: faixa de suporte
ui: O alvo mínimo suportado para atualização é chrome65
núcleo: Otimize o número de perguntas exibidas ao pesquisar perguntas
núcleo: Corrigido o problema onde os registros de envio com 0 pontos não eram exibidos nos rankings da competição Ledo
core: Corrija a substituição de file:// na questão da competição
núcleo: discussão: Verifique a entrada do vnode
core: remova as opções de conexão padrão do mongo
ui: nome do eco da página de erro
ui: Corrigido o problema de erro de conexão WebSocket entre domínios quando não conectado
core: Corrige o problema de duplicação de pinnedDomains causado pela exclusão de domínios
migrar: hustoj: Lidar com o problema de não haver campos de origem em questões de sistema de versão antiga
migrar: corrigir script de migração UOJ
ui: corrige componente de reações
núcleo: verificar referenciador
núcleo: consertar a distribuição do balão
Outras correções de bugs e otimizações de desempenho
núcleo: Corrigido o problema de dificuldade anormal ao criar perguntas
núcleo: otimizar o índice do documento
core&ui: função de balão de competição
core&ui: esclarecimento
núcleo: corrigir webauthn
importar: adicionar suporte HOJ
juiz: limite de espaço de endereço (beta)
install: suporta o uso de variáveis de ambiente para especificar a área de instalação
ui: corrigir erro de usuário não existe ao fazer login
núcleo: corrigir redirecionamento de login
núcleo: corrigir limite de taxa de envio de e-mail de senha esquecida
núcleo: Corrigir a discussão da competição
ui: Corrige a seleção do rótulo do subalgoritmo na página de edição de perguntas
utilitários: corrige o reconhecimento do ponto de teste input1.txt
core: Enviar lista: desabilitar live push quando não estiver na primeira página
juiz: otimizar o reconhecimento do código de saída
núcleo: Corrigir a barra lateral da página de envio de perguntas da competição
fps-importador: corrige o reconhecimento do campo remote_oj
ui: Corrigido cookie sendo passado ao usar socketUrl independente
vjudge: Atualizar rastreamento de tópico csgoj
vjudge: suporte hduoj
migrar: hustoj: ignora imagens inexistentes ao importar
core: oauth: Use OpenID para associação de contas
core: oferece suporte à pesquisa de usuários com base em seu nome de exibição
núcleo: suporta a busca de perguntas com base em sua dificuldade
ui: Otimize a lógica de filtragem das tarefas de competição na página inicial
núcleo: otimizar a identificação do ponto de teste
ui: desabilita a verificação ortográfica para entrada de autoteste
ui: IDE online: página Adicionar configurações
core: Adicione informações de dificuldade ao exportar perguntas
ui: Corrigido o problema de erro de conclusão da tag markdown em determinadas circunstâncias
import-qduoj: Verifique a validade do pid
core: classificar lista de tarefas
ui: corrige a exibição do editor de discussão
núcleo: exportar função pwsh
vjudge: codeforces: corrige exceção de rastreamento da competição 921
núcleo: corrigir pontuação de correspondência strictioi
ui: Corrige a exibição da lista de treinamentos participados
core: desativar placar antes do jogo começar
ui: oculta opções padrão e de convidado ao adicionar usuários ao domínio
core: Permitir que administradores filtrem todos os grupos
ui: corrigir filtragem de idioma (#598)
ui: corrige a reação da discussão
vjudge: Corrigir aquisição de resultados de envio do Codeforces
núcleo: Otimizar a função de autoteste do sistema
vjudge: configurações de detalhes de suporte (#582)
ui: desabilita a reprodução automática de vídeo
instalar: suporta a importação automática de dados do UOJ durante a instalação
ui: Corrija o problema de função anormal do preferidoPrefix
núcleo: Corrigido o problema de que a função de exportação do código de competição não conseguia processar arquivos binários enviados pelos jogadores
núcleo: Corrija o gerenciamento da competição para exibir o status da classificação de participação do usuário
core&ui: suporta filtragem de competições/tarefas por grupo
core: exibe o tempo limite de compilação do spj e outras informações detalhadas
core&ui: Importar perguntas: suporte para reorganizar os números das perguntas
core: loader: adiciona integração git
instalar: adicionar exemplo de instalação do k3s
core: use apenas nomes de arquivos em letras minúsculas por padrão
ui: Ignore respostas memorizadas para questões objetivas na competição
núcleo: remover opção langs.domain
core: corrige o problema de que a caixa de correio antiga ainda está ocupada após modificar a caixa de correio
ui: algumas correções de estilo
ui: Perguntas objetivas: suporta lembrar a última resposta escolhida e adicionar salto rápido de perguntas
core: Use $HOME/.hydro para armazenar arquivos temporários
core: import: Verifique se o pid é legal ao importar
ui: Adicionar suporte de autoteste de idioma relacionado ao validAs
ui: Corrigida a exibição da barra de progresso do jogo no modo de horário flexível
núcleo: otimizar a identificação do usuário de importação
ui: lembre-se do tamanho da fonte do editor
núcleo: suporta pesquisa de perguntas por tags
core&ui: Tabela de resultados de correspondência e filtragem baseada em grupo de suporte de treinamento
juiz: adicionar tratamento de prioridade paralela
core: Adicionar logs de operações para operações de configuração de domínio
core: storage: evite caracteres como -_ ao salvar arquivos
núcleo: Corrigido o problema de que a filtragem Aguardando envio na página da lista de registros de avaliação não entrava em vigor
ui: Corrija o problema do serviço de linguagem Typescript funcionando de forma anormal
ui: Adicionar opção de navegação rápida de domínio
núcleo: Adicionar permissões PERM_VIEW_HIDDEN_CONTEST e PERM_VIEW_HIDDEN_HOMEWORK
interface do usuário: otimização de tradução
core: langs: adicione a opção validAs
migrar: adicionar suporte UOJ
core&ui: outras correções de bugs e otimizações
ui: perguntas objetivas: permitem múltiplas linhas de respostas
core: Corrija o problema de que pinnedDomains não pode ser modificado
instalar: Aumenta o limite padrão
ui: Otimize notificações pop-up da concorrência
núcleo: Correção do cálculo de tempo na página de gerenciamento de jogadores da competição
core: cli: gera ID de pergunta padrão ao exportar perguntas
core: dump: suporta o parâmetro --dbOnly
core: importação de usuário: verificação de informações duplicadas
ui: altera as informações de direitos autorais padrão
núcleo: suporta treinamento com base na classificação
ui: modelo de recarga a quente
fps-import: suporta processamento de questões de avaliação remota
vjudge: Adicionar atributo VERDICT.WAITING
ui: Otimize a identificação automática de dados de teste
vjudge: Adicionar suporte de iluminação de programação Yitong
ui: Adicionar problemset/download
ui: oculta alguns controles no modo de impressão
core: addon create usando links simbólicos
ui: A página de registro de avaliação exibe o número da linha de código
core: suporta a importação de perguntas de pastas de perguntas descompactadas
core: adicione PRIV_UNLIMITED_ACCESS quando setJudge
núcleo: Corrigido o problema de as discussões no jogo não serem excluídas com o jogo
vjudge: codeforces: Atualizar lógica de verificação de login
ui: exibe prompts na página de envio de perguntas
núcleo: atualizar cache do usuário
core: Encerre à força conexões Websocket que não respondem a pacotes de pulsação
core: Defina a tag padrão para perguntas importadas
core: Python2 está desabilitado por padrão
core: Suporte para reordenação da barra de navegação
ui: Corrigido o problema em que o botão para entrar no modo de edição não entrava em vigor em alguns casos
núcleo: adicionar função de patch hidrooj
core: permite que você visualize seus próprios envios no trabalho
núcleo: Outras correções de bugs
núcleo: corrija o problema de exibição do placar sob strictioi
núcleo: permitir que usuários comuns vejam as discussões do jogo
core: cria automaticamente pastas de recursos estáticos na inicialização
core: permite o uso de outros módulos UI
juiz: Corrija o problema de redirecionamento de saída de pergunta de IO de arquivo
core: não atribui mais sessionId ao usuário convidado
juiz: corrigir enviar responder pergunta
ui: websocket: adiciona pacote de pulsação
juiz: Corrija a questão objetiva e arquive o envio da pergunta IO
juiz: adicionar opção compile_time_limit
núcleo: adicione predefinições kotlin e pypy3
ui: placar: suporta atualização automática
core: concurso: permite que os administradores visualizem as pontuações em tempo real após o fechamento da classificação
juiz: suporta a configuração do limite de tempo e espaço do idioma, ampliação por tópico
instalar: suporta importação automática de dados hustoj
install: suporta a especificação da fonte de instalação
core: suporta instalação automática de plug-ins de npmjs
core&ui: correções de bugs
juiz: Defina a prioridade de avaliação mais baixa
núcleo: Corrigido o problema em que a lista de inscrições ainda pode ser visualizada quando as classificações são fechadas em alguns formatos de competição
núcleo: otimizar a autenticação de discussão
juiz: Otimize o eco do status da avaliação de retorno de chamada unificada
juiz: remover etapa processTestdata
juiz: pergunta objetiva pontuação da tarefa eco
núcleo: achatar a estrutura de dados de teste
core: rp: corrige as pontuações das partidas
core&ui: Exigir uma senha ao usar o OAuth pela primeira vez
ui: atualização da interface do usuário das configurações de avaliação
instalar: ajuste wtCacheSize de acordo com a memória do sistema
ui: otimização da velocidade de carregamento
núcleo: detectar caso de ID de domínio
ui: índice do campo da barra de navegação
ui: Suporte para filtragem de trabalhos/competições por grupos de permissão
juiz: Defina o interpretador padrão Javascript para node
juiz: Corrigido o problema em que a exclusão de perguntas inacabadas fazia com que a fila de avaliação ficasse presa.
núcleo: atualização para mongodb@5
ui: exibe pontuações de subtarefas nos detalhes da avaliação
core: Corrigido o problema de o nome do arquivo de dados de teste começar com um espaço, causando operação anormal
dev: atualizar o ambiente devcontainer
ui: Otimize o layout da página IDE
ui: Use cordis para gerenciamento do ciclo de vida (remova o barramento antigo)
blog: Mover funcionalidade para plugin independente @hydrooj/blog
core: suporta configurações dinâmicas
juiz: modo de desempenho (desativar retorno de chamada de ponto único)
ui: Suporta mantenedores de configuração para trabalhos
core: liberar a pergunta de resposta para a lista de permissões de idiomas de envio
import-qduoj: Corrigido o problema em que tags vazias causavam falha na importação.
ui: Simplifique a lógica do serviceworker
ui: Corrigido o problema de não adesão ao plano de treinamento
core: Simplifique a lista de campos de retorno do usuário
núcleo&ui: contest.rule.ioi.strict
Outras correções de bugs e otimização da experiência
núcleo: corrigir nenhum autoteste de entrada
core: corrige o problema de token inválido causado por nome de domínio inconsistente de endpointForUser
núcleo: remover verificação isBinaryFile
core: corrigir configuração de AllowViewCode
core: cli: prefira mongosh
espaço de trabalho: Forneça o pacote @hydrooj/eslint-config
Outras correções de bugs e otimização da experiência
core: corrigir enviar responder pergunta
ui: corrige operações de edição e exclusão de páginas de trabalho
vjudge: Adaptar código força nova interface
core: filtrar operações $set
vazias
ui: página domain_dashboard mostra o criador do domínio
juiz: consertar hack
core: Verifique se o idioma selecionado existe ao enviar
core: suporta a detecção de problemas que causam o congelamento da inicialização.
core: Corrige o problema em que as informações de classificação não podem ser escritas sob certas circunstâncias
core: Adicionar mais suporte ao tipo de campo do validador, remover a versão antiga do validador
core&ui: suporta CORS
ui: suporta carregamento lento de módulos
ui: corrigir login de e-mail
ui: Corrigido o problema de exibição anormal de mensagens no site
vjudge: luogu: corrigir login
juiz: Corrigido um problema em que algumas questões objetivas ficavam sem resposta, resultando em erros de avaliação.
núcleo: ConnectionHandler
suporta @subscribe(event)
util: Corrige o problema de formatação anormal de Message.sendNotification
núcleo: otimização de banco de dados
núcleo: verificar o avatar do usuário
juiz: Remova o gancho onDestory e use descartáveis
ui: otimizar o carregamento de recursos
core&ui: adicionar suporte webauthn
ui: Corrigir votação de solução de problema
ui: Otimize o layout da página de detalhes da competição
ui: corrige o link do registro de revisão na pesquisa rápida
núcleo: Adicionar suporte Types.ArrayOf()
ui: corrigir salvamento da visualização da barra lateral
core: Adicionar configuração CookieDomain
ui: Corrigido o problema de atualização infinita da página no modo dev
vjudge: Fornece o componente BasicFetcher
núcleo: cache DomainModel
core&ui: outras correções de bugs
núcleo: Adicionar suporte Ledosai
vjudge: Remover dependências relacionadas ao titereiro
juiz: Corrigido o problema onde os resultados da avaliação não eram retornados quando a resposta não estava definida para questões objetivas.
ui: Remova o módulo de pesquisa no lado direito da página inicial por padrão
ui: Adicionar módulo de upload de avatar no site
núcleo: permitir que os criadores das partidas visualizem placares ocultos
core: Discussão alterada para classificação por hora de criação
ui: Corrigir eco de votação de solução de problema
núcleo: Corrigir o problema de erro de síntese do link de recuperação de senha
juiz: Corrigido o problema de que o limite de saída da compilação da pergunta IO do arquivo é muito pequeno
núcleo: Corrigido o problema em que %
como palavra-chave causava um erro na pesquisa de perguntas
núcleo: Corrigido o problema de o módulo de registro de envio não ser exibido na lista de perguntas da competição
ui: Corrigido o problema em que alguns IDs predefinidos de emoticons no fórum de discussão não correspondiam às imagens reais.
install: Defina vm.swappiness=1 por padrão para melhorar o desempenho
ui: permite que usuários comuns naveguem nos registros de avaliação página por página quando as condições de consulta são definidas.
ui: Adicione um botão de cancelamento de pontuação à lista de registros de envio
core: corrige o problema de que os logs de acesso não podem ser registrados em determinadas circunstâncias
espaço de trabalho: suporta pnpm
espaço de trabalho: remover mocha
core: suporta filtragem usando handler/before/Name#method
juiz: otimização de desempenho
ui: A página não é mais atualizada ao clicar em retestar na lista de registros de avaliação
ui: Suporta pesquisa rápida global
core: problem_list: suporta parâmetro de limite
core: Simplifique a lista de nós de discussão padrão
core: validator: Caracteres chineses duplos também são considerados nomes de usuário legais
juiz: objetivo: suporta perguntas com múltiplas respostas
core: problemStat: Ignorar envios com notas canceladas
ui: Corrigida a edição da discussão com a tecla de atalho Ctrl+Enter
ui: Foi corrigida a função de bloqueio do tópico de discussão
núcleo: otimizar configurações de autenticação de trabalho
core: função de banimento de lista fixa
ui: concurso: permite o gerenciamento manual dos concorrentes
ui: concurso: suporta lembrete de mensagem de transmissão durante a competição
ui: outras correções de bugs e otimizações de desempenho
fps: Corrigido o problema de falha na importação devido a arquivos vazios nas perguntas.
núcleo: Apoie motivos adicionais ao banir usuários
vjudge: codeforces: pular partidas inacessíveis de 1769 e 1772
UI: operação de pergunta favorita não aciona mais a atualização da página
núcleo: verifique a validade do arquivo de configuração da pergunta ao reestar
núcleo: limpe automaticamente os arquivos temporários ao sair
núcleo: proibido de usar
Import-Qduoj: Pule questões ilegais
núcleo: conserte a exportação do código de concorrência para enviar perguntas de resposta
Juiz: Adicionar item stdiolimit
UI: Fix Message.Flag_ALERT Display
Núcleo: o treinamento pode fazer upload de arquivos
UI: otimizar a barra de navegação de competição
interface do usuário: os resultados da correspondência suportam seguidores as equipes
núcleo: permite a clonagem de competições/empregos
interface do usuário: adicione a entrada da função à página de edição da competição
núcleo: concorrência de suporta estrela
núcleo: pule a apresentação de pontuações canceladas ao reestar toda a pergunta
núcleo: conserte a função de pesquisar perguntas com base no ID na competição
Juiz: Corrija o problema da exibição anormal da mensagem de erro testlib
Sandbox: Aumentar o limite padrão do stdio
núcleo: corrija o problema da exceção no histórico de discussão
núcleo: otimize a velocidade de execução das tarefas diárias
Núcleo: a página Detalhes do usuário suporta a exibição das competições/atribuições nas quais o usuário participou recentemente.
Juiz: Adicione Bash à lista de idiomas padrão
VJudge: pular o carregamento no modo CLI
LSP: Corrigido o prompt de conclusão automática, que pode precisar ser atualizada manualmente para entrar em vigor.
Juiz: otimizar a saída do diff
Instalação: Por padrão, o MongoDB URI é usado como o método de conexão do banco de dados
interface do usuário: fallback para o fundo padrão quando o fundo do usuário falha ao carregar
Os caminhos de arquivo são alterados para serem sensíveis ao minúsculo.
O plug-in front-end suporta usando import { ... } from '@hydrooj/ui-default'
para introduzir bibliotecas internas.
ctx.inject('Notification')
suporta a inserção de várias linhas de texto.
núcleo: otimizado o desempenho da página de placar do jogo
núcleo: apoie especificando o grupo e a escola à qual o usuário pertence ao importar usuários
Core & UI: outras correções de bugs e otimizações de desempenho
Adicionado Método UserModel.getListForRender(domainId, uids)
.
Adicione a propriedade IHandler.response.pjax
.
núcleo: removido problema.assign
Núcleo: corrigiu o problema em que o código não pôde ser visto se a pergunta ainda estivesse oculta após a competição.
interface do usuário: Corrigido a exibição do rodapé no navegador do IE
Juiz: Corrigido o problema do verificador de limão saindo de forma anormal, fazendo com que a pontuação da pergunta seja 0
UI: otimize o aviso de compatibilidade do Firefox no lado da gerência
interface do usuário: otimize a exibição de perguntas do FPS depois de importá -las
UI: conserte o problema do IE Browser Display Language Reconhecimento
Instale: detecte o ambiente de pagode instalado e jogue um aviso de incompatibilidade
interface do usuário: otimize alguns prompts de erro
Migrar: otimização de desempenho
VJUDGE: Corrija o problema de exceção do recorde de envio de forças de código
ProblemModel.getList()
remove o parâmetro do grupo e move os parâmetros subsequentes para a frente
cordis
atualizado para 2.6
Corrigido um problema em que a página de detalhes da revisão não seria atualizada imediatamente sob determinadas circunstâncias
Retornar erros de teste SPJ para o lado do usuário
Corrigido o problema de que o arquivo de perguntas não poderia ser visualizado do lado do administrador
Terminando o suporte para nodejs <14
UI: API: API Workbench atualizada
Juiz: Remova R das variáveis de ambiente e adicione pacotes Python Descrição
II: modificado alguns links recomendados
Prom-client: Record Eventemitter Information
Núcleo: Concurso: Apoie a exportação de informações do concurso para o formato fantasma
Núcleo: Concurso: otimize o cálculo de envios e passes na competição
Núcleo: Concurso: Exibir o envio pendente ao fechar a lista de fechamentos
Juiz: Corrigido a questão em que as perguntas objetivas não foram definidas com respostas, fazendo com que a avaliação fosse ignorada.
núcleo: otimizar o CSRFTOKENERROR e DOMAINNOTFOUNDERROR ECHO
Núcleo: servidor: capturando erros do WebSocket
Núcleo: Validador: Corrija o problema de enviar mensagens de site vazias
Outras correções de bugs e otimizações de desempenho
Na página Detalhes da pergunta, o scratchpad.store é acessível ao público da janela
O Caddy é instalado automaticamente durante a instalação e configura o proxy reverso para ouvir na porta 80.
Suporta o uso hydrooj install <src>
e hydrooj uninstall <name>
para gerenciar rapidamente os plug-ins.
Adicionado conclusão automática para seleção de idiomas no gerenciamento de domínio-> editar perfil de domínio.
Suporte visualizando seu código enviado no formato da competição OI.
Import-Qduoj: suporta a importação de perguntas do SPJ.
FPS-Importer: Adapte-se ao arquivo FPS versão 1.4.
Outras correções de bugs e otimização de experiência.
Suporta o uso de ctx.i18n.load(lang, Record<string, string>)
para carregar arquivos de tradução.
Suporte ctx.withHandlerClass(name, callback)
para obter o protótipo de classe.
Prom-client: suporta a classificação de relatórios do ConnectionHandler personalizada.
Move Handler.ctx para Handler.Context, e o novo Handler.ctx é o PlugEncOntext.
O conteúdo em estrutura/exemplos/instalação/neste projeto é licenciado sob a licença do MIT e você pode usá -lo livremente.
O conteúdo em Pacotes/ UI-Default/ neste projeto está autorizado apenas com AGPL-3.0.
O restante do projeto usa licenciamento duplo:
Você pode usar este código gratuitamente, sujeito à licença AGPL-3.0 e à seguinte seção de termos adicionais:
Se você realmente precisa de fonte fechada, também pode entrar em contato conosco para comprar outras licenças.
Com base no artigo 7 do Contrato AGPL3, você precisa cumprir os seguintes termos adicionais ao usar este projeto:
Não remova o aviso de direitos autorais e a atribuição do autor/fonte deste item;
Ao redistribuir versões modificadas deste software, ele precisa ser claramente indicado no nome do software ou número da versão;
O nome do autor não pode ser usado para fins de publicidade, exceto com permissão;
Agora mesmo:
Quando você implanta a Hydro, você precisa manter as palavras Powered by Hydro
na parte inferior, e a palavra Hydro
precisa apontar para um link para um dos hydro.js.org/本仓库/fork
.
Se você fizer modificações/extensões no código Powered by Hydro, Modified by xxx
fonte, ele também precisa ser de origem aberta em AGPL-3.0-Or-Later.
Consulte Contribuindo.md
Classificação em nenhuma ordem específica, em ordem de dicionário de links
O GitHub fornece hospedagem de código e compilações automatizadas para hidrelétricas.
O Criyle fornece uma implementação de Sandbox de revisão.
O Vijos fornece a estrutura da interface do usuário para a Hydro.
Yun Dou Academy