Hydro est un système d'évaluation informatique en ligne efficace. Facile à installer, multiplateforme, multifonctionnel, évolutif et dispose d'une banque de questions.
Pour les enseignants qui ne sont pas familiers avec Linux ou qui sont trop paresseux pour l'utiliser et la maintenir, nous proposons également une version en ligne gratuite et prête à l'emploi.
Pour plus de détails, rendez-vous sur https://hydro.ac pour consulter les instructions d'utilisation.
Collez la commande d'installation dans la console pour une installation en un clic. Après l'installation, le premier utilisateur enregistré obtiendra automatiquement les privilèges de super-administrateur.
Compatible avec les distributions Linux grand public, Debian 12 est recommandé et prend en charge les appareils arm64 (Raspberry Pi, etc.)
LANG=zh .(curl https://hydro.ac/setup.sh)
Document chinois/anglais
Si la documentation pertinente n'est pas suffisamment détaillée, veuillez soumettre une Pull Request ou contacter l'équipe de développement pour obtenir des éclaircissements.
Veuillez soumettre des suggestions de bogues et de fonctionnalités dans Problèmes.
Hydro a conçu un système de plug-in modulaire qui peut facilement étendre les fonctionnalités du système.
Grâce au système de plug-in, vous pouvez toujours garantir l'évolutivité du système après avoir modifié les fonctions.
Toutes les versions historiques d’Hydro peuvent être mises à niveau en douceur vers la dernière version.
Pour connaître les directives d'utilisation et de développement des plug-ins, veuillez consulter le chapitre de la documentation sur les plug-ins et le développement.
Hydro prend en charge toutes les distributions Linux grand public, est compatible avec les appareils à architecture x86_64 et arm64 et peut être installé en un seul clic.
Hydro peut fonctionner normalement sur Raspberry Pi ou Apple M1/M2.
Utilisez hydrooj backup
pour sauvegarder toutes les données du système et utilisez hydrooj restore 文件名
pour importer les données de sauvegarde. L'ensemble du processus ne nécessite aucune intervention manuelle.
Hydro fournit un support multi-espaces à système unique, ce qui facilite la création d'espaces indépendants pour différentes classes/niveaux/écoles, etc.
Les données des différents espaces sont isolées par défaut, à l'exception des utilisateurs, et des administrateurs indépendants peuvent être désignés sans interférer les uns avec les autres.
Les questions peuvent être copiées entre domaines et n’occupent qu’un seul espace dans le système.
Les autorisations d'Hydro peuvent être attribuées aux utilisateurs correspondants en fonction des compétitions/emplois, ou les utilisateurs peuvent être regroupés (classes) et les autorisations peuvent être attribuées par groupe. Pour les nœuds d'autorisation, vous pouvez voir la capture d'écran sous l'introduction.
Le système Hydro lui-même est apatride, ce qui signifie que vous pouvez ajouter ou supprimer des nœuds de service à volonté sans affecter le fonctionnement normal du système. La file d'attente d'évaluation sera automatiquement répartie uniformément entre toutes les machines d'évaluation actuellement en ligne. Après avoir rejoint le groupe de mise à l'échelle élastique, les machines d'évaluation peuvent être automatiquement ajoutées ou supprimées en fonction de la charge du serveur. Contrairement à d'autres systèmes, Hydro gérera le cache des données de test entre différents serveurs et les extraira à la demande, de sorte que la machine d'évaluation puisse être utilisée immédiatement après sa mise en ligne, sans synchronisation manuelle des données.
Hydro prend en charge tous les types de questions. Qu'il s'agisse de types de questions traditionnels, de juges spéciaux, d'entrées et de sorties de fichiers, de questions de soumission de réponses, d'interactions IO, d'interactions de fonctions ou même de questions à remplir, Hydro dispose d'un support correspondant. Après avoir installé l'environnement d'exploitation approprié, Hydro peut même :
Appelez la petite tortue pour faire un dessin et comparez-la avec l'image standard ;
Appelez le GPU pour évaluer le modèle d'apprentissage automatique ;
D’autres échantillons peuvent être consultés et téléchargés dans la zone d’échantillons.
Hydro prend en charge l'importation de fichiers de banque de questions dans des formats courants, notamment le format zip commun d'Hydro, les questions au format FPS (xml) exportées par HUSTOJ et les packages compressés exportés par QDUOJ.
Vous pouvez télécharger la banque de questions gratuite depuis Hydro Question Bank.
Hydro prend également en charge VJudge, ce qui signifie que vous pouvez directement importer des questions d'autres plateformes dans le système, modifier les questions et les intégrer dans vos propres devoirs ou concours pour créer rapidement votre propre système de banque de questions.
Les plates-formes actuellement prises en charge sont :
Yiyi Tong Programming Enlightenment : La banque de questions officielle de Yiyi Tong Programming Enlightenment est gratuite. Veuillez vous référer aux instructions d'importation dans le package compressé.
Concours de programmation simple : fournit officiellement gratuitement la banque de tests pour le "Concours de programmation (bases)" de Luogu, veuillez vous référer aux instructions d'importation dans le package compressé.
UOJ : JO bien connu en Chine, couramment utilisé par les équipes nationales de formation ;
Codeforces : Une grande plateforme de concurrence étrangère avec un grand nombre de questions de qualité ;
Luogu : Pour utiliser cette fonction, vous devez acheter une licence auprès de Luogu ;
HDUOJ : système d'évaluation en ligne de l'Université Hangzhou Dianzi, qui comprend des questions de formation multi-écoles ;
CSGOJ : plateforme d'évaluation des questions du concours provincial du Guangdong et du concours provincial du Hunan ;
SPOJ : Les connexions domestiques sont très instables et déconseillées ;
POJ : relativement ancien, mauvaise stabilité du serveur ;
YACS : plate-forme de compétition de la Shanghai Computer Society, il y a une limite aux soumissions quotidiennes pour un seul compte ;
HUSTOJ : prend théoriquement en charge tous les systèmes pilotés par HUSTOJ, mais en raison des différences d'interface utilisateur dans chaque système, une adaptation manuelle est généralement requise.
Hydro prend en charge plusieurs formats de compétition, notamment le format de compétition ACM/ICPC (prend en charge le scellement), le format de compétition OI, le format de compétition IOI, le format de compétition Ledo et les fonctions de devoirs.
Dans les formats de compétition IOI et OI, la fonction de correction des questions est prise en charge. Les étudiants peuvent soumettre les questions correspondantes dans la banque de questions après le jeu, et leurs scores seront affichés à côté de la liste.
Dans les formats de concours IOI et OI, la fonction d'horaire flexible est prise en charge et les étudiants peuvent participer à X heures de leur choix dans la plage horaire définie.
Les paramètres de langue d'Hydro ne sont pas codés en dur dans le système, mais plutôt à l'aide de fichiers de configuration. Tant qu'il peut écrire des commandes de compilation et exécuter des commandes dans le langage correspondant, Hydro peut juger les questions.
E-mail : [email protected] Télégramme @undefinedmoe
Groupe d'utilisateurs Hydro : 1085853538
Remarque : Veuillez lire « La sagesse de poser des questions » avant de rejoindre le groupe d'utilisateurs.
En même temps, il peut y avoir du contenu dans le groupe qui vous met mal à l'aise ou vous offense. Si vous avez des inquiétudes à ce sujet , veuillez ne pas rejoindre le groupe .
core&ui : API ScoreboardView
boîte à outils sur site : Résolveur
core : optimiser l'importation au format icpc
noyau : ajouter l'option limit.pretest
core : ajouter un journal de tâches/de performances quotidiennes
framework : supprime UiContext et UserContext par défaut
core : correction d'une exception d'analyse lors de l'utilisation de l'importation HTML en mode markdown
core : permet de copier des questions citées
core&judge : ajouter une option de confiance
core : correction de l'analyse des métadonnées utilisateur importées
core : Modifier le format de vérification pid
ui : désactiver la lecture automatique
noyau : optimisation des performances de la liste de questions
core : limiter la longueur du nom d'affichage
core : prend en charge l'ajustement de la limite de longueur du code
core : Désactiver la mise en cache du code IDE en ligne dans les tâches
noyau : API : vérifiez PERM_VIEW
juge : ajoutez les variables d'environnement HYDRO_TIME_USAGE et HYDRO_MEMORY_USAGE
core&ui : prend en charge le rechargement à chaud i18n
fps-import : optimiser l'importation d'images
ui : prend en charge les paramètres de coins arrondis
noyau : prend en charge StorageModel.copy et StorageModel.exists
noyau : ProblemModel.list obsolète
core : ajouter des hooks utilisateur/importation/analyse et utilisateur/importation/création
core : désactiver les types de composants gestionnaire, lib et script
noyau : mise à niveau vers ts5.6, cordis3.18
recaptcha : supprimer
noyau : Améliore considérablement les performances des tâches quotidiennes
core : (partiellement) prend en charge le format de package icpc
core : limitRate : prend en charge les identifiants personnalisés
core : question sur le format de tableau obsolète
core : sauvegarde : ajout de l'option --withAddons
(test)
noyau : optimisation des performances de session
install : mongodb écoute 127.0.0.1 par défaut
core&ui : autres corrections de bugs
ui : correction de l'aperçu des démarques
ui : optimise l'affichage de la boîte de connexion lorsque la connexion intégrée est désactivée
ui : correction des transitions de vue
onlyoffice : prend en charge le traitement des fichiers PDF
ui : markdown prend en charge l'affichage des numéros de ligne de code
ui : prend en charge les fonctions richmedia étendues
ui : prise en charge de l'intégration de vidéos Youku
ui : supprimez les barres de défilement horizontales redondantes de certains composants de page
core: Correction du calcul du nombre de votes pour les solutions aux problèmes
ui : optimiser les images de la page 404 en mode sombre
ui : cliquez pour développer les informations de compilation
ui : Correction du tableau de bord du jeu suivant les utilisateurs
noyau : ProblemModel.import : prise en charge de l'option delSource
ui : Correction du push en temps réel des données de test générées
prom-client : signaler l'état à la console
core : oauth : prise en charge du nom d'utilisateur fixe
utils : prend en charge la recherche de pm2 installé par nix
ui : Optimiser la navigation des questions sur la page du concours
ui : option monacoTheme obsolète
ui : l'éditeur de démarques prend en charge le mode sombre
framework : Optimiser les traces de pile
core : oplog : chemin d'accès à l'enregistrement
migrate : augmenter le délai d'attente
vjudge : corrige le problème de yacs provoquant un crash du système
Sonic : prend en charge la recherche de questions par ID de question
core : Correction d'un problème où les paramètres du groupe d'origine étaient écrasés si un groupe était inclus lors de l'importation d'utilisateurs.
core : correction d'une fuite de score
core : Optimiser la pile d'erreurs
core : UserModel.getListForRender : prend en charge des champs supplémentaires
core : ProblemModel.import : fusionner les paramètres dans les options d'importation
ui : activer les transitions de vue
core : Résoudre le problème de la possibilité d'afficher les questions cachées sans autorisation [sécurité]
ui : optimiser l'affichage du texte enrichi des détails de l'enregistrement de soumission
ui : prend en charge la mise en cache des avatars
ui : empêche le texte de s'afficher hors des limites
vjudge : codeforces : optimiser l'acquisition d'ID de soumission
ui : la sentinelle est désactivée par défaut
core : Prise en charge du masquage de la barre utilisateur de gauche de la formation
core : cli : prise en charge de l'évaluation
ui : Ajouter la prise en charge des règles de spéculation expérimentales
noyau : Correction du nombre de participants à la formation
framework : correction de la page de retour 404
ui : optimiser la mise en page des autorisations utilisateur
vjudge : codeforces : optimiser l'affichage de katex
core : cli : correction de l'ordre de chargement des scripts
install : la vérification de la mise à jour du fil est désactivée par défaut
noyau : ajouter des crochets contest/edit et contest/del
ui : prise en charge de l'extension des détails du point de test
noyau : Correction de l'interdiction du système de compétition IOI
core : Résout le problème selon lequel les fichiers de cache ne seront pas supprimés
core : afficher la progression lors de l'importation de questions
ui : correction du filtrage des balises avec des espaces
a11y : Optimiser l'ordre de sortie du test de performances des pages Web
ui : utilisez le nouvel éditeur de démarques
noyau : optimiser la logique du tableau de bord
ui : déplacer le cache vers IndexedDB
core : transcrire la migration en tant que service
ui : optimiser la compatibilité du navigateur Safari
core : correction du champ du responsable de la question
juge : prend en charge l'utilisation du fichier IO dans le prétest
vjudge : codeforces : Ajouter une vérification si la soumission est réussie
ui : ajouter une sentinelle
core&ui : prend en charge l'affichage de la version actuelle du compilateur
noyau : optimisation de l'index de base de données
core : copie de fichiers à l'aide de liens symboliques
a11y : ajouter des outils de test de performances
utils : prise en charge de la reconnaissance des extensions de fichiers en majuscules
ui : optimiser le style du menu déroulant
core : Optimiser le titre de la page
registre : prend en charge la lecture du plan source original à partir du fichier
ui : Correction du message push sur le site
ui : description ajoutée à la page de classement
ui : Ajouter une invite pour générer des données de test
cadre : détaché du noyau
core:loader : prend en charge la commutation multi-profils
ui : Correction de l'affichage du groupe de joueurs sur le tableau de bord du jeu
noyau : recalcule automatiquement les scores lors de la réinitialisation des scores du jeu
Cette version introduit également les modifications suivantes de l'API du plug-in :
Suppression du crochet app/load/${category}
Ctx.app supprimé (veuillez utiliser ctx.root)
Ctx.options supprimé (veuillez utiliser ctx.root.config)
sérialiseur : supprimez le paramètre showDisplayName
Suppression des fonctions Loader.addScript, Loader.addon
Suppression de Hydro.module.render (veuillez utiliser ctx.server.registerRenderer)
Suppression de lib/paginate et lib/rank (veuillez utiliser db.paginate et db.ranked)
core : mettre le module API en service
noyau : Si la soumission est piratée pendant le concours, le nouveau test global ne sera pas déclenché.
core : déplacez la logique d'ajout d'une correspondance pid dans la recherche
interface utilisateur : correction de cssFilter
juge : intégré : maintenir l'ordre de rappel
core : Optimiser le traitement des adresses e-mail
ui : afficher la longueur de l'enregistrement soumis
migrer : prise en charge de la définition d'adresses e-mail aléatoires uniquement pour les utilisateurs en conflit
core&ui : prend en charge le tri automatique des entrées de hack
elastic : Optimiser la recherche floue
ui : Correction du problème de chargement incorrect des réponses pour les questions à choix multiples dans les questions objectives
noyau : correction du bouton de piratage
core : Ajouter une page de statistiques sur les questions
core : afficher la progression de l'évaluation sur la page de détails de l'enregistrement
core: problem_list : Autoriser les hooks à modifier la logique de tri
migrer : ajouter le support poj
core : api : prend en charge les requêtes sur rpInfo et avatarUrl
ui : autoriser la désactivation il y a longtemps
core : Correction du problème d'annulation des scores sous IOI (strict)
ui : Mettez en valeur vous-même et les utilisateurs suivants dans le tableau de bord du jeu
noyau : Corriger le calcul du montant de la CA dans la liste du concours
core : désactiver la soumission de l'autotest de retest
ui : Optimiser l'affichage de l'historique des modifications des discussions
core : renvoie le UserContext actuel après la connexion/l'inscription
noyau : correction de la vérification PERM_VIEW_DISPLAYNAME pour l'exportation du tableau de bord du jeu
ui : corrige la valeur par défaut de la zone de sélection domain_user
ui : Correction de la question objective lors du chargement de la dernière réponse
core : désactiver automatiquement 2FA lors de la réinitialisation du mot de passe
core: import : prend en charge l'importation de solutions aux problèmes et de procédures standard lors de l'importation du package de questions
noyau : optimisation des performances et correction de bugs
noyau : Prise en charge de la définition d'un multiplicateur de score pour les questions du concours (#765)
espace de travail : mettre à niveau la version ts vers 5.4.3
core : ws : gestion des exceptions d'analyse JSON
core : autoriser le téléchargement de fichiers vers des tâches (#755)
ui : Afficher le titre de la question du concours sur la page de gestion du concours
juge : Correction du problème où les questions objectives renvoyaient des résultats anormaux dans certains cas (#770)
ui : désactiver certaines balises dans mdInline
(#767)
core : ajouter le langage R et la prise en charge de cpp20
ui : afficher la consommation des heures de pointe sur la page d'enregistrement d'évaluation
core : Correction d'un problème où les administrateurs de compétition ne pouvaient pas afficher les codes (#764)
juge : Donner accès à hydrojudge terminal
(#725)
core : prend en charge le chargement de plugins depuis /nix/store
noyau : ajouter un crochet contest/list
juge : support vj4
ui : Correction de la sélection testlib dans le panneau des paramètres de test (#762)
fps-importer : prend en charge la définition de limites de taille
core : Ajouter un groupe d'autorisations PERM_VIEW_RECORD
(#753)
core : Correction du problème où les annonces de jeu peuvent être consultées sans se connecter (#756)
ui : Autoriser l'utilisation de la touche Entrée pour soumettre 2FA (#752)
noyau : Optimiser la liste des participants à la formation (#750)
core&ui : autres optimisations de performances et corrections de bugs
noyau : mise à niveau vers cordis@3
core : optimiser le traitement du katex
noyau : ajouter un crochet de surveillance/collecte
juge : analyse de la réparation
juge : Correction du problème de synchronisation incorrecte des données de test pour la première fois sur la machine d'évaluation indépendante
migrer : optimiser l'importation hustoj
ui : Correction du problème de rendu incorrect de Katex dans certaines zones
noyau : Optimiser la version des résultats du concours pour filtrer par groupe
noyau : injecter -> injectUI
core : réparer une fuite de mémoire
interface utilisateur : prise en charge /record?nopush=1
juge : correction des données de test incorrectes mises en cache (#726)
juge : Ne pas afficher les détails RuntimeError
pendant la compétition
core : Le fichier de questions du concours ignore la vérification PERM_VIEW_PROBLEM
juge : optimisation des performances (merci @criyle)
utilitaires : dissociation@hydrooj/register
noyau : désactiver la vérification du numéro de point de test pour les questions objectives
core : changer d'ID de session lors de la connexion
core : optimiser le crochet requis
core : Résoudre le problème de l'échec de la création d'utilisateurs en cas de concurrence élevée
client de bal : prend en charge la poussée vers pushgateway
core&ui : page de liste d'évaluation compressée ws transmission
utils : Optimiser l'identification des points de test
ui : Supprimer la fonction de sérialiseur
noyau : ajouter un service de paramètres
fps : prise en charge de la balise [md]
vjudge : codeforces : ajouter une limite de fréquence
migrer : hustoj : prise en charge du champ remote_oj
core : Autres corrections de bugs
core : Résoudre le problème du retour de l'exception du code d'état
core : Synchroniser le comportement de la page de classement
install : le compilateur Pascal n'est plus préinstallé
juge : gérer les paquets de battements de cœur
noyau : juger : optimiser l'allocation des tâches
juge : optimiser la gestion du cache
core: contest_export_ghost : Exporte le nom de l'équipe commençant par un astérisque lorsque l'équipe ne participe pas au classement
ui : correction de l'action de collage de Monaco
ui : prend en charge le collage par lots des utilisateurs/numéros de questions
Nouvelles fonctionnalités :
core&ui&judge : prend en charge la génération de données de test à partir de la page Web
vjudge : ajouter le support de Yacs
noyau : support/enregistrement?all=1
core&ui : Masquer les détails des points de test sous le format de compétition ACM
onsite-toolkit : prend en charge la connexion basée sur l'adresse IP
core&ui : prise en charge du renommage des fichiers sur la page Web
core&judge : permet de répartir plusieurs tâches simultanément au sein d'une seule connexion
Optimisations et correctifs :
core : Optimiser le filtrage des noms de fichiers
utils : optimiser la logique de correspondance des données de test
install : caddy active la compression par défaut
ui : traduction partielle complète
installer : utilise mongodb6 par défaut
core : optimisation des performances de la page d'enregistrement de soumission
juge : mettre à jour la version testlib
noyau : installer : bande de support
ui : La cible minimale prise en charge pour la mise à niveau est chrome65
core : Optimiser le nombre de questions affichées lors de la recherche de questions
core : Correction du problème où les enregistrements de soumission avec 0 point ne seraient pas affichés dans le classement de la compétition Ledo.
core : Correction du remplacement de file:// dans la question du concours
core: discussion : Vérifier l'entrée du vnode
core : supprime les options de connexion Mongo par défaut
ui : nom d'écho de la page d'erreur
ui : Correction du problème d'erreur de connexion WebSocket inter-domaines lorsque vous n'êtes pas connecté
core : Résoudre le problème de duplication de pinnedDomains provoqué par la suppression de domaines
migrate: hustoj : Gérer le problème de l'absence de champs source dans les questions du système de l'ancienne version
migrate : correction du script de migration UOJ
ui : correction du composant de réactions
noyau : vérifier le référent
noyau : correction de la distribution des ballons
Autres corrections de bugs et optimisations de performances
core : Correction du problème de réglage de difficulté anormal lors de la création de questions
noyau : optimiser l'index des documents
core&ui : fonction ballon de compétition
core&ui : clarification
noyau : correction de webauthn
importer : ajouter le support HOJ
juge : limite d'espace d'adressage (bêta)
install : prend en charge l'utilisation de variables d'environnement pour spécifier la zone d'installation
ui : correction de l'erreur de l'utilisateur n'existe pas lors de la connexion
core : correction de la redirection de connexion
core : correction de la limite de taux d'envoi d'e-mails avec mot de passe oublié
noyau : Correction de la discussion sur la concurrence
ui : correction de la sélection des étiquettes de sous-algorithme sur la page d'édition des questions
utils : correction de la reconnaissance des points de test input1.txt
core : Soumettre la liste : désactiver le live push lorsqu'il n'est pas sur la première page
juge : optimiser la reconnaissance du code de sortie
noyau : Correction de la barre latérale de la page de soumission des questions du concours
fps-importer : correction de la reconnaissance du champ remote_oj
ui : Correction du passage de cookies lors de l'utilisation d'un socketUrl indépendant
vjudge : Mise à jour de l'exploration du sujet csgoj
vjudge : prise en charge de hduoj
migrate: hustoj : ignore les images inexistantes lors de l'importation
core: oauth : utiliser OpenID pour l'association de compte
core : prend en charge la recherche d'utilisateurs en fonction de leur nom d'affichage
noyau : prend en charge la recherche de questions en fonction de leur difficulté
ui : Optimiser la logique de filtrage des tâches de compétition sur la page d'accueil
noyau : optimiser l'identification des points de test
ui : désactiver la vérification orthographique pour la saisie de l'auto-test
ui : IDE en ligne : page d'ajout de paramètres
core : Ajouter des informations sur la difficulté lors de l'exportation de questions
ui : Correction du problème d'erreur d'achèvement de la balise markdown dans certaines circonstances
import-qduoj : Vérifier la validité du pid
noyau : trier la liste des tâches
ui : correction de l'affichage de l'éditeur de discussion
noyau : fonction d'exportation pwsh
vjudge : codeforces : correction de l'exception d'exploration de la concurrence 921
noyau : correction du score de correspondance strict
ui : Correction de l'affichage de la liste des formations participées
core : désactiver le tableau de bord avant le début du jeu
ui : masquer les options par défaut et invité lors de l'ajout d'utilisateurs au domaine
core : Autoriser les administrateurs à filtrer tous les groupes
ui : correction du filtrage des langues (#598)
ui : correction de la réaction de la discussion
vjudge : Correction de l'acquisition des résultats de soumission de Codeforces
noyau : optimiser la fonction d'auto-test du système
vjudge : prise en charge des paramètres de détail (#582)
ui : désactiver la lecture automatique de la vidéo
installer : prend en charge l'importation automatique des données depuis UOJ lors de l'installation
ui : Résoudre le problème de fonctionnement anormal de PreferredPrefix
core : Correction du problème selon lequel la fonction d'exportation du code de compétition ne pouvait pas traiter les fichiers binaires soumis par les joueurs.
noyau : correction de la gestion des compétitions pour afficher le statut du classement de participation des utilisateurs
core&ui : prend en charge le filtrage des concours/devoirs par groupe
core : Afficher le délai d'expiration de la compilation spj et d'autres informations détaillées
core&ui : Importer des questions : prise en charge de la réorganisation des numéros de questions
core:loader: ajouter l'intégration git
installer : ajouter un exemple d'installation de k3s
core : n'utilise que les noms de fichiers en minuscules par défaut
ui : Ignorer les réponses mémorisées aux questions objectives dans les compétitions
noyau : supprimer l'option langs.domain
core : Correction du problème selon lequel l'ancienne boîte aux lettres est toujours occupée après la modification de la boîte aux lettres
ui : quelques corrections de style
ui : questions objectives : prend en charge la mémorisation de la dernière réponse choisie et l'ajout de sauts de questions rapides
core : utilisez $HOME/.hydro pour stocker les fichiers temporaires
core: import : Vérifiez si le pid est légal lors de l'importation
ui : Ajouter la prise en charge de l'auto-test de langue associée validAs
ui : correction de l'affichage de la barre de progression du jeu en mode horaire flexible
noyau : Optimiser l'identification des utilisateurs lors de l'importation
ui : mémoriser la taille de la police de l'éditeur
noyau : prend en charge la recherche de questions par balises
core&ui : tableau des résultats des correspondances et filtrage basé sur les groupes de prise en charge de l'entraînement
juge : ajouter une gestion des priorités parallèle
core : ajouter des journaux d'opérations pour les opérations de configuration de domaine
core: stockage : évitez les caractères tels que -_ lors de la sauvegarde des fichiers
core : Correction du problème selon lequel le filtrage En attente de soumission sur la page de liste des enregistrements d'évaluation ne prend pas effet.
ui : Résoudre le problème du fonctionnement anormal du service de langage Typescript
ui : Ajouter un commutateur de navigation rapide de domaine
noyau : ajouter les autorisations PERM_VIEW_HIDDEN_CONTEST et PERM_VIEW_HIDDEN_HOMEWORK
ui : optimisation de la traduction
core: langs: ajouter l'option validAs
migrer : ajouter le support UOJ
core&ui : autres corrections de bugs et optimisations
ui : questions objectives : autoriser plusieurs lignes de réponses
core : Résoudre le problème selon lequel les domaines pinned ne peuvent pas être modifiés
install : augmenter la limite par défaut
ui : Optimiser les notifications contextuelles de la concurrence
core: Correction du calcul du temps sur la page de gestion des joueurs de compétition
core: cli : générer un ID de question par défaut lors de l'exportation de questions
core: dump: prend en charge le paramètre --dbOnly
core : importation d'utilisateur : vérification des informations en double
ui : modifier les informations de copyright par défaut
noyau : prend en charge la formation basée sur le classement
ui : rechargement à chaud du modèle
fps-import : prend en charge le traitement des questions d'évaluation à distance
vjudge : Ajouter l'attribut VERDICT.WAITING
ui : optimiser l'identification automatique des données de test
vjudge : Ajouter la prise en charge de l'illumination de la programmation Yitong
ui : Ajouter problemset/download
ui : Masquer certains contrôles en mode impression
core : création d'un module complémentaire à l'aide de liens symboliques
ui : la page d'enregistrement d'évaluation affiche le numéro de ligne de code
core : prend en charge l'importation de questions à partir de dossiers de questions décompressés
noyau : ajoutez PRIV_UNLIMITED_ACCESS lorsque setJudge
core : Correction du problème selon lequel les discussions dans le jeu ne seraient pas supprimées avec le jeu
vjudge : codeforces : mettre à jour la logique de vérification de connexion
ui : afficher des invites sur la page de soumission des questions
core : mettre à jour le cache utilisateur
core : mettre fin de force aux connexions Websocket qui ne répondent pas aux paquets de pulsation
core : définir la balise par défaut pour les questions importées
core : Python2 est désactivé par défaut
core : prise en charge de la réorganisation de la barre de navigation
ui : Correction du problème où le bouton pour entrer en mode édition ne prend pas effet dans certains cas
core : ajouter la fonction de patch hydrooj
core : vous permet de visualiser vos propres soumissions dans le travail
core : Autres corrections de bugs
core : correction du problème d'affichage du tableau de bord de manière stricte
core : Autoriser les utilisateurs ordinaires à consulter les discussions sur le jeu
core : crée automatiquement des dossiers de ressources statiques au démarrage
core : permet l'utilisation d'autres modules de l'interface utilisateur
juge : Résoudre le problème de redirection de la sortie des questions d'E/S du fichier
core : ne plus attribuer l'ID de session à l'utilisateur invité
juge : correction, soumission de la réponse à la question
ui : websocket : ajouter un paquet de battements de cœur
juge : Corrigez la question objective et déposez la soumission de la question IO
juge : ajouter l'option compile_time_limit
core : ajouter des préréglages Kotlin et pypy3
ui : tableau de bord : prise en charge de la mise à jour automatique
core: contest : permettre aux administrateurs de visualiser les scores en temps réel après la clôture du classement
juge : prend en charge la définition du grossissement des limites de temps et d'espace de la langue par sujet
install : prend en charge l'importation automatique des données hustoj
install : prend en charge la spécification de la source d'installation
core : prend en charge l'installation automatique des plug-ins à partir de npmjs
core&ui : corrections de bugs
juge : définir la priorité d'évaluation la plus basse
core : Correction du problème où la liste des soumissions peut toujours être consultée lorsque les classements sont clôturés dans certains formats de compétition.
noyau : Optimiser l'authentification des discussions
Judge : Optimiser l'écho unifié de l'état de l'évaluation du rappel
juge : supprimer l'étape processTestdata
juge : question objective tâche score écho
noyau : aplatir la structure des données de test
core : rp : correction des scores des matchs
core&ui : Exiger un mot de passe lors de la première utilisation d'OAuth
ui : mise à niveau de l'interface utilisateur des paramètres d'évaluation
installer : ajuster wtCacheSize en fonction de la mémoire système
ui : optimisation de la vitesse de chargement
noyau : détecter le cas d'ID de domaine
ui : index du champ de la barre de navigation
ui : prise en charge du filtrage des emplois/compétitions par groupes d'autorisations
juge : définissez l'interpréteur Javascript par défaut sur node
juge : Correction du problème où la suppression de questions inachevées provoquait le blocage de la file d'attente d'évaluation.
noyau : mise à niveau vers mongodb@5
ui : afficher les scores des sous-tâches dans les détails de l'évaluation
core : Correction du problème selon lequel le nom du fichier de données de test commence par un espace, provoquant un fonctionnement anormal
dev : mettre à niveau l'environnement devcontainer
ui : optimiser la mise en page de l'IDE
ui : utilisez Cordis pour la gestion du cycle de vie (supprimez l'ancien bus)
blog : déplacer la fonctionnalité vers le plugin @hydrooj/blog
autonome
core : prend en charge les paramètres dynamiques
juge : mode performance (désactiver le rappel à point unique)
ui : prise en charge de la configuration des responsables pour les emplois
core : publier la réponse à la question sur la liste blanche des langues de soumission
import-qduoj : correction du problème où les balises vides entraînaient l'échec de l'importation
ui : simplifier la logique du serviceworker
ui : Correction du problème d'échec de l'adhésion au plan de formation
core : Simplifier la liste des champs de retour de l'utilisateur
core&ui : contest.rule.ioi.strict
Autres corrections de bugs et optimisation de l'expérience
core : correction de l'autotest sans entrée
core : Résoudre le problème du jeton invalide causé par un nom de domaine incohérent de endpointForUser
core : supprimer la vérification isBinaryFile
core : correction du paramètre AllowViewCode
core : cli : préfère mongosh
espace de travail : fournir le package @hydrooj/eslint-config
Autres corrections de bugs et optimisation de l'expérience
noyau : correction de la question de soumission de réponse
ui : correction des opérations d'édition et de suppression de la page de travail
vjudge : Adapter la nouvelle interface des forces de code
core : filtrer les opérations $set
vides
ui : la page domain_dashboard affiche le créateur du domaine
juge : réparer le hack
core : Vérifiez si la langue sélectionnée existe lors de la soumission
core : prend en charge la détection des problèmes provoquant le blocage du démarrage.
core : Correction du problème où les informations de notation ne peuvent pas être écrites dans certaines circonstances
core : ajouter davantage de prise en charge du type de champ du validateur, supprimer l'ancienne version du validateur
core&ui : prend en charge CORS
ui : prend en charge le chargement paresseux des modules
ui : correction de la connexion par e-mail
ui : Correction du problème d'affichage anormal des messages sur le site
vjudge : luogu : correction de la connexion
juge : Correction d'un problème où certaines questions objectives restaient sans réponse, entraînant des erreurs d'évaluation.
noyau : ConnectionHandler
prend en charge @subscribe(event)
util : Résout le problème de formatage anormal de Message.sendNotification
noyau : optimisation de la base de données
core : Vérifier l'avatar de l'utilisateur
juge : supprimez le hook onDestory et utilisez plutôt des produits jetables
ui : optimiser le chargement des ressources
core&ui : ajouter le support webauthn
ui : Correction du vote sur la solution du problème
ui : optimiser la mise en page de la page de détails du concours
ui : Corrigez le lien de l'enregistrement de révision dans la recherche rapide
noyau : ajouter la prise en charge Types.ArrayOf()
ui : correction de l'enregistrement de l'aperçu de la barre latérale
core : ajouter le paramètre CookieDomain
ui : Correction du problème d'actualisation infinie des pages en mode développement
vjudge : fournit le composant BasicFetcher
noyau : cache DomainModel
core&ui : autres corrections de bugs
noyau : ajouter le support de Ledosai
vjudge : Supprimer les dépendances liées au marionnettiste
juge : correction du problème où les résultats de l'évaluation n'étaient pas renvoyés lorsque la réponse n'était pas définie pour des questions objectives.
ui : Supprimez le module de recherche sur le côté droit de la page d'accueil par défaut
ui : Ajouter un module de téléchargement d'avatar sur le site
noyau : Autoriser les créateurs de matchs à afficher les tableaux de bord cachés
noyau : discussion modifiée pour être triée par heure de création
ui : Correction de l'écho de vote de la solution au problème
core : corrige le problème de l'erreur de synthèse du lien de récupération du mot de passe
juge : Correction du problème selon lequel la limite de sortie de la compilation des questions d'E/S du fichier est trop petite
core : Correction du problème où %
en tant que mot-clé provoquait une erreur dans la recherche de questions
noyau : correction du problème selon lequel le module d'enregistrement des soumissions n'est pas affiché sous la liste des questions du concours
ui : Correction du problème où certains identifiants prédéfinis d'émoticônes dans le forum de discussion ne correspondaient pas aux images réelles.
install : définissez vm.swappiness=1 par défaut pour améliorer les performances
ui : permet aux utilisateurs ordinaires de parcourir les enregistrements d'évaluation page par page lorsque les conditions de requête sont définies.
ui : Ajouter un bouton d'annulation de score à la liste d'enregistrements de soumission
core : Résout le problème selon lequel les journaux d'accès ne peuvent pas être enregistrés dans certaines circonstances
espace de travail : prend en charge pnpm
espace de travail : supprimer le moka
core : prend en charge le filtrage à l'aide de handler/before/Name#method
juge : optimisation des performances
ui : la page ne s'actualise plus lorsque l'on clique sur retester dans la liste des enregistrements d'évaluation
ui : prend en charge la recherche rapide globale
core : problème_list : prend en charge le paramètre de limite
core : rationaliser la liste des nœuds de discussion par défaut
core: validateur : les doubles caractères chinois sont également considérés comme des noms d'utilisateur légaux
juge : objectif : prend en charge les questions à réponses multiples
core : problèmeStat : ignorer les soumissions avec des notes annulées
ui : Correction de l'édition de discussion sur la touche de raccourci Ctrl+Entrée
ui : correction de la fonction de sujet de discussion verrouillable
core : Optimiser les paramètres d'authentification des tâches
noyau : fonction d'interdiction de liste fixe
ui: contest : permet la gestion manuelle des candidats
ui: contest : prend en charge le rappel des messages diffusés pendant la compétition
ui : autres corrections de bugs et optimisations de performances
fps : correction du problème où l'importation échouait en raison de fichiers vides dans les questions.
core : Prise en charge de raisons supplémentaires lors de l'interdiction d'utilisateurs
vjudge : codeforces : ignorer les matchs 1769 et 1772 inaccessibles
UI: l'opération de question préférée ne déclenche plus la page de rafraîchissement
Core: Vérifiez la validité du fichier de configuration de la question lors de la reteste
Core: Nettoyez automatiquement les fichiers temporaires à la sortie
Core: interdit d'utiliser.
import-qduoj: sauter les questions illégales
Core: Correction de l'exportation du code de concurrence pour soumettre des questions de réponse
Juge: Ajouter un article stdiolimit
UI: Correction de Message.flag_alert Affichage
Core: La formation peut télécharger des fichiers
UI: Optimiser la barre de navigation de compétition
UI: le tableau des résultats des matchs prend en charge les équipes suivantes
Core: permet le clonage des compétitions / emplois
UI: Ajouter une entrée de la fonction à la page d'édition de concours
Core: Support Star Concours
Core: Ignorez la soumission des scores annulés lors de la reteste de la question entière
Core: Correction de la fonction de recherche de questions en fonction de l'ID dans la compétition
Juge: Correction du problème de l'affichage anormal du message d'erreur TestLib
Sandbox: augmenter la limite STDIO par défaut
Core: Correction du problème de l'exception dans l'histoire de la discussion
Core: Optimiser la vitesse de fonctionnement des tâches quotidiennes
Core: La page Détails de l'utilisateur prend en charge l'affichage des concours / affectations auxquelles l'utilisateur a récemment participé.
Juge: Ajouter le bash à la liste des langues par défaut
VJudge: sauter le chargement en mode CLI
LSP: Correction de l'invite d'achèvement automatique, qui peut devoir être mise à jour manuellement pour prendre effet.
Juge: Optimiser la sortie diff
Installation: Par défaut, MongoDB URI est utilisé comme méthode de connexion à la base de données
UI: se retourner à l'arrière-plan par défaut lorsque l'arrière-plan de l'utilisateur ne charge pas
Les chemins de fichier sont modifiés pour être sensibles à la casse.
Le plug-in frontal prend en charge l'utilisation import { ... } from '@hydrooj/ui-default'
pour introduire des bibliothèques intégrées.
ctx.inject('Notification')
prend en charge l'insertion de plusieurs lignes de texte.
Core: Optimisé les performances de la page du tableau de bord du jeu
Core: Support spécifiant le groupe et l'école à laquelle appartient l'utilisateur lors de l'importation des utilisateurs
Core & UI: Autres corrections de bogues et optimisations de performances
Ajout de la méthode UserModel.getListForRender(domainId, uids)
.
Ajoutez une propriété IHandler.response.pjax
.
Core: Problème supprimé.assign
Core: Correction de la question où le code ne pouvait pas être visualisé si la question était toujours cachée après la concurrence.
UI: Correction de l'affichage du pied de page sur le navigateur IE
Juge: Correction du problème du camion de citron qui sortant anormalement, ce qui entraîne le score de question 0
UI: Optimiser l'avertissement de compatibilité Firefox du côté de la direction
UI: Optimisez l'affichage des questions FPS après les avoir importées
UI: résoudre le problème de la reconnaissance du langage d'affichage du navigateur IE
Installer: détecter l'environnement de pagode installé et lancer un avertissement d'incompatibilité
UI: optimiser certaines invites d'erreur
migrer: optimisation des performances
VJudge: Correction du problème d'exception de l'enregistrement de la soumission des forces de code
ProblemModel.getList()
supprime le paramètre de groupe et fait avancer les paramètres ultérieurs
cordis
a mis à niveau vers 2.6
Correction d'un problème où la page des détails de la révision ne se mettrait pas à jour immédiatement dans certaines circonstances
Renvoie des erreurs TestLib SPJ sur le côté utilisateur
Correction du problème que le fichier de questions ne peut pas être prévisualisé du côté administrateur
Terminant le support pour les nodejs <14
UI: API: Workbench API mis à jour
Juge: Retirez R des variables environnementales et ajoutez des packages Python Description
UI: modifié quelques liens recommandés
Prom-Client: Enregistrer les informations de l'élément d'événements
Core: Contest: Soutenir les informations sur le concours d'exportation au format fantôme
Core: Contest: Optimiser le calcul des soumissions et des passes dans la compétition
Core: concours: afficher la soumission en attente lors de la clôture de la liste
Juge: Correction de la question où les questions objectives n'étaient pas fixées avec des réponses, ce qui a provoqué l'évaluation de l'évaluation.
Core: Optimiser CsrftokenError et DomainNotFoundError Echo
Core: serveur: attraper des erreurs WebSocket
Core: Validator: Correction du problème de l'envoi de messages du site vide
Autres corrections de bogues et optimisations de performances
Dans la page Détails de la question, Scratchpad.store est accessible au public depuis la fenêtre
Caddy est automatiquement installé lors de l'installation et configure le proxy inverse pour écouter sur le port 80.
Prise en charge de l'utilisation hydrooj install <src>
et hydrooj uninstall <name>
pour gérer rapidement les plug-ins.
Ajout d'une complétion automatique pour la sélection du langage dans Gérer le domaine -> Modifier le profil de domaine.
Prise en charge de la visualisation de votre code soumis sous le format de concours OI.
import-qduoj: prend en charge l'importation de questions SPJ.
FPS-IMPORTER: Adaptez au fichier FPS version 1.4.
Autres corrections de bogues et optimisation de l'expérience.
Prise en charge de l'utilisation ctx.i18n.load(lang, Record<string, string>)
pour charger des fichiers de traduction.
Prise en charge de ctx.withHandlerClass(name, callback)
pour obtenir le prototype de classe.
Prom-Client: prend en charge la classification des rapports de connexion personnalisée.
Déplacer handler.ctx vers Handler.Context, et le nouveau Handler.ctx est pluginContext.
Le contenu sous Framework / Exemples / Install / dans ce projet est concédé sous licence MIT et vous pouvez l'utiliser librement.
Le contenu sous Packages / UI-Default / Dans ce projet n'est autorisé qu'avec AGPL-3.0.
Le reste du projet utilise une double licence:
Vous pouvez utiliser ce code gratuitement, sous réserve de la licence AGPL-3.0 et de la section des conditions supplémentaires suivantes:
Si vous avez vraiment besoin d'une source fermée, vous pouvez également nous contacter pour acheter d'autres licences.
Sur la base de l'article 7 de l'accord AGPL3, vous devez vous conformer aux conditions supplémentaires suivantes lorsque vous utilisez ce projet:
Ne supprimez pas l'avis de droit d'auteur et l'attribution de l'auteur / source de cet élément;
Lors de la redistribution des versions modifiées de ce logiciel, elle doit être clairement indiquée dans le nom ou le numéro de version du logiciel;
Le nom de l'auteur ne peut être utilisé à des fins publicitaires, sauf avec la permission;
Tout de suite:
Lorsque vous déploiez Hydro, vous devez garder les mots Powered by Hydro
en bas, et le mot Hydro
doit pointer un lien vers l'un de hydro.js.org/本仓库/fork
.
Si vous apportez des modifications / extensions au code source, il doit également être ouvert sous AGPL-3.0-ou-Later Powered by Hydro, Modified by xxx
Reportez-vous à contribution.md
Classement sans ordre particulier, dans l'ordre des liens du dictionnaire
GitHub fournit un hébergement de code et des versions automatisées pour Hydro.
Criyle fournit une implémentation de sandbox de revue.
Vijos fournit le cadre d'interface utilisateur pour Hydro.
Académie Yun Dou