diff --git a/.github/workflows/domjudge/docker-compose.yml b/.github/workflows/domjudge/docker-compose.yml index c725969..2d0a442 100644 --- a/.github/workflows/domjudge/docker-compose.yml +++ b/.github/workflows/domjudge/docker-compose.yml @@ -1,8 +1,5 @@ # Thanks to Verwoerd # https://github.com/Programming-Contest-Foundation/logo/blob/main/domjudge/docker-compose.yml - -version: '3' - services: mariadb: image: mariadb @@ -18,20 +15,37 @@ services: volumes: - /var/lib/mysql domjudge: - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:12345"] - interval: 30s - timeout: 5s - retries: 3 - start_period: 1m - image: domjudge/domserver +# healthcheck: +# test: ["CMD", "curl", "-f", "http://localhost:12345"] +# interval: 30s +# timeout: 5s +# retries: 3 +# start_period: 1m + image: ghcr.io/wisvch/domjudge-packaging/domserver hostname: domserver depends_on: - mariadb + environment: + - DJ_DB_INSTALL_BARE=1 ports: - 12345:80 volumes: - - ${PWD}/affilDOMjudge:/opt/domjudge/domserver/webapp/public/images/affiliations + - ${PWD}/out/contest-package:/tmp/icpc-logos # entrypoint: ["/bin/bash","-c","sleep 1m && /scripts/start.sh"] # hostname: domserver # #privileged: true +# cds: +# image: ghcr.io/icpctools/cds:2.6.1161 +# depends_on: +# - domjudge +# ports: +# - 12346:8080 +# - 12347:8443 +# environment: +# - ADMIN_PASSWORD=blaat123 +# - PRESENTATION_PASSWORD=blaat123 +# - CCS_URL=http://domserver/api/contests/demo +# - CCS_USER=feed +# - CCS_PASSWORD=blaat123123 +# volumes: +# - ../../../out/contest-package:/contest \ No newline at end of file diff --git a/.github/workflows/generate-metadata.sh b/.github/workflows/generate-metadata.sh new file mode 100755 index 0000000..75a5e78 --- /dev/null +++ b/.github/workflows/generate-metadata.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +pwd +cd out/contest-package +jq "[.[] | {\"organization_id\": .id, \"name\": .formal_name, \"id\":1, \"group_ids\": [\"3\"], \"external_id\": .id, \"display_name\": .formal_name}] | to_entries | map( (.value.id = \"\(1+.key)\" ) | .value)" organizations.json > teams.json +cat > contest.yaml <<<"id: 1 +name: demo +title: demo +short-name: demo +start-time: 2024-10-21T00:00:00.000Z +duration: 5:00:00 +scoreboard_freeze_duration: 1:00:00 +scoreboard_type: pass-fail +penalty_time: 20 +" +cat > groups.json <<<"[{\"id\":\"3\",\"icpc_id\":\"3\",\"name\":\"Contestants\"}]" +cd ../.. diff --git a/.github/workflows/make_logos.yaml b/.github/workflows/make_logos.yaml index 6023295..a99b382 100644 --- a/.github/workflows/make_logos.yaml +++ b/.github/workflows/make_logos.yaml @@ -17,9 +17,9 @@ jobs: - run: inkscape --version - run: pip install svgutils - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Run export - run: ./export.sh --universities --companies --studies --background --transparent --output-directory out 64 256 + run: ./export.sh --universities --companies --studies --contest-package --background --transparent --output-directory out 64 256 - uses: actions/upload-artifact@v4 with: name: logos @@ -29,8 +29,8 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout - uses: actions/checkout@v2 - - uses: actions/download-artifact@v4.1.7 + uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 with: name: logos path: out @@ -39,20 +39,13 @@ jobs: - name: Test in DJ run: | cd ${{ github.workspace }} - afftmp="affilDOMjudge" + ./.github/workflows/generate-metadata.sh sudo apt update; sudo apt install cutycapt xvfb httpie -y - mkdir $afftmp - cp ${{ github.workspace }}/out/background_64/* $afftmp docker compose -f .github/workflows/domjudge/docker-compose.yml up -d mariadb sleep 30s docker compose -f .github/workflows/domjudge/docker-compose.yml up -d domjudge sleep 1m - ADMINPASS=$(docker exec -i domjudge-domjudge-1 cat /opt/domjudge/domserver/etc/initial_admin_password.secret) - http -a admin:$ADMINPASS --check-status -b -f POST "http://localhost:12345/api/users/organizations" json@out/organizations.json - jq "[.[] | {\"organization_id\": .id, \"name\": .formal_name, \"id\":1, \"group_ids\": [\"3\"]}] | to_entries | map( (.value.id = \"\(1+.key)\" ) | .value)" out/organizations.json > teams.json - http -a admin:$ADMINPASS --check-status -b -f POST "http://localhost:12345/api/users/teams" json@teams.json - http -a admin:$ADMINPASS --check-status -b PUT "http://localhost:12345/api/config" show_affiliation_logos=true show_flags=true show_affiliations=true data_source=1 --ignore-stdin - http -a admin:$ADMINPASS --verbose --check-status -b GET "http://localhost:12345/api/config" + docker exec -w /tmp/icpc-logos domjudge-domjudge-1 /bin/bash -c "yes | import-contest" xvfb-run --server-args="-screen 0, 1024x768x24" cutycapt --url=http://localhost:12345 --out=scoreboard.png - uses: actions/upload-artifact@v4 with: @@ -60,18 +53,30 @@ jobs: path: scoreboard.png release: needs: render - if: github.ref == 'refs/heads/main' runs-on: ubuntu-20.04 steps: - name: Checkout - uses: actions/checkout@v2 - - uses: actions/download-artifact@v4.1.7 + uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 with: name: logos path: out - name: Zip logos run: cd ${{ github.workspace }}/out; for i in */; do zip -r "${i%/}.zip" "$i"; done; cd ${{ github.workspace }} + - name: Zip contest package + run: | + cd ${{ github.workspace }}/out + rm contest-package.zip + cd contest-package + zip -r ../contest-package.zip * + cd ${{ github.workspace }} + - uses: actions/upload-artifact@v4 + if: github.ref != 'refs/heads/main' + with: + name: zips + path: out/*.zip - uses: "marvinpinto/action-automatic-releases@latest" + if: github.ref == 'refs/heads/main' with: repo_token: "${{ secrets.GITHUB_TOKEN }}" automatic_release_tag: "latest" diff --git a/.gitignore b/.gitignore index cf3336d..3bb2aa7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /venv/ /out/ /.fleet/ +/tmp/ +/.idea/ diff --git a/README.md b/README.md index 4bf93a5..85a1460 100644 --- a/README.md +++ b/README.md @@ -56,88 +56,87 @@ For DOMJudge use the `background_64.zip`. | Logo | ICPC ID | Name | Status | |---|---|---|---| -| | U-7 | Aarhus University | :heavy_check_mark: | -| | U-33 | Ulm University | :heavy_check_mark: | -| | U-131 | Jagiellonian University in Krakow | :heavy_check_mark: | -| | U-290 | Christian-Albrechts-Universitaet zu Kiel | :heavy_check_mark: | -| | U-362 | Darmstadt University of Technology | :heavy_check_mark: | -| | U-367 | Delft University of Technology | :heavy_check_mark: | -| | U-452 | Eindhoven University of Technology | :heavy_check_mark: | -| | U-573 | Friedrich-Alexander-University Erlangen-Nuremberg | :heavy_check_mark: | -| | U-980 | Kaunas University of Technology | :heavy_check_mark: | -| | U-1039 | KTH - Royal Institute of Technology | :heavy_check_mark: | -| | U-1088 | Leiden University | :heavy_check_mark: | -| | U-1097 | Linköping University | :heavy_check_mark: | -| | U-1112 | Lund University | :heavy_check_mark: | -| | U-1154 | Universität zu Lübeck | :heavy_check_mark: | -| | U-1362 | Norwegian University of Science and Technology | :heavy_check_mark: | -| | U-1534 | Rijksuniversiteit Groningen | :heavy_check_mark: | -| | U-1917 | Technische Universität München | :heavy_check_mark: | -| | U-2061 | Umeå University | :heavy_check_mark: | -| | U-2267 | Saarland University | :heavy_check_mark: | -| | U-2272 | Karlsruhe Institute of Technology | :heavy_check_mark: | -| | U-2274 | Universität Rostock | :heavy_check_mark: | -| | U-2275 | Universität Ulm | :heavy_check_mark: | -| | U-2282 | Leiden University | :heavy_check_mark: | -| | U-2284 | Universiteit van Amsterdam | :heavy_check_mark: | -| | U-2292 | University College Cork | :heavy_check_mark: | -| | U-2320 | University of Bergen | :heavy_check_mark: | -| | U-2343 | University of Cambridge | :heavy_check_mark: | -| | U-2357 | University of Copenhagen | :heavy_check_mark: | -| | U-2467 | University of Oslo | :heavy_check_mark: | -| | U-2523 | University of Sussex | :heavy_check_mark: | -| | U-2526 | University of Tartu | :heavy_check_mark: | -| | U-2561 | University of Twente | :heavy_check_mark: | -| | U-2625 | Utrecht University | :heavy_check_mark: | -| | U-2643 | Vilnius University | :heavy_check_mark: | -| | U-2664 | Vrije Universiteit | :heavy_check_mark: | -| | U-3330 | University of Helsinki | :heavy_check_mark: | -| | U-3397 | Chalmers University of Technology | :heavy_check_mark: | -| | U-3403 | Reykjavik University | :heavy_check_mark: | -| | U-3546 | Ghent University | :heavy_check_mark: | -| | U-3620 | University of Oxford | :heavy_check_mark: | -| | U-3678 | Imperial College London | :heavy_check_mark: | -| | U-3749 | University of Nottingham | :heavy_check_mark: | -| | U-3758 | King's College London | :heavy_check_mark: | -| | U-3787 | RWTH Aachen University | :heavy_check_mark: | -| | U-4278 | Technical University of Denmark | :heavy_check_mark: | -| | U-4711 | Johannes Gutenberg Universität Mainz | :heavy_check_mark: | -| | U-4786 | Aalto University | :heavy_check_mark: | -| | U-5541 | University of Bath | :heavy_check_mark: | -| | U-5737 | University of Manchester | :heavy_check_mark: | -| | U-5784 | University of Edinburgh | :heavy_check_mark: | -| | U-6026 | Molde University College | :heavy_check_mark: | -| | U-6557 | Frankfurt University of Applied Sciences | :heavy_check_mark: | -| | U-6817 | University of Liverpool | :heavy_check_mark: | -| | U-6638 | German University of Technology in Oman | :heavy_check_mark: | -| | U-6859 | University of Southampton | :heavy_check_mark: | -| | U-6864 | IT University of Copenhagen | :heavy_check_mark: | -| | U-6929 | University of Warwick | :heavy_check_mark: | -| | U-6940 | University of Glasgow | :heavy_check_mark: | -| | U-7006 | University College London | :heavy_check_mark: | -| | U-7019 | Hogeschool Leiden | :heavy_check_mark: | -| | U-7264 | University of Göttingen | :heavy_check_mark: | -| | U-7464 | Brunel University London | :heavy_check_mark: | -| | U-7477 | Vilnius Gediminas Technical University | :heavy_check_mark: | -| | U-7887 | University of Iceland | :heavy_check_mark: | -| | U-7918 | University of St Andrews | :heavy_check_mark: | -| | U-7950 | University of Birmingham | :heavy_check_mark: | -| | U-8002 | Radboud University | :heavy_check_mark: | -| | U-8102 | University of Passau | :heavy_check_mark: | -| | U-8170 | Hasso Plattner Institute | :heavy_check_mark: | -| | U-8311 | Université de Mons | :heavy_check_mark: | -| | U-8317 | University of Bristol | :heavy_check_mark: | -| | U-9858 | Université Catholique de Louvain | :heavy_check_mark: | -| | U-11048 | Tallinn University of Technology | :heavy_check_mark: | -| | U-11054 | Tallinn University of Technology | :heavy_check_mark: | -| | U-11103 | Katholieke Universiteit Leuven | :heavy_check_mark: | -| | U-13859 | University of Luxembourg | :heavy_check_mark: | -| | U-14277 | Hochschule für angewandte Wissenschaften Würzburg-Schweinfurt | :heavy_check_mark: | -| | U-18106 | Jacobs University in Bremen | :heavy_check_mark: | -| | U-18633 | University of Augsburg | :heavy_check_mark: | -| | U-20052 | Heinrich-Heine-Universität Düsseldorf | :heavy_check_mark: | -| | U-21966 | Anglia Ruskin University | :heavy_check_mark: | -| | U-21967 | Constructor University Bremen | :heavy_check_mark: | +| | 7 | Aarhus University | :heavy_check_mark: | +| | 33 | Ulm University | :heavy_check_mark: | +| | 131 | Jagiellonian University in Krakow | :heavy_check_mark: | +| | 290 | Christian-Albrechts-Universitaet zu Kiel | :heavy_check_mark: | +| | 362 | Darmstadt University of Technology | :heavy_check_mark: | +| | 367 | Delft University of Technology | :heavy_check_mark: | +| | 452 | Eindhoven University of Technology | :heavy_check_mark: | +| | 573 | Friedrich-Alexander-University Erlangen-Nuremberg | :heavy_check_mark: | +| | 980 | Kaunas University of Technology | :heavy_check_mark: | +| | 1039 | KTH - Royal Institute of Technology | :heavy_check_mark: | +| | 1088 | Leiden University | :heavy_check_mark: | +| | 1097 | Linköping University | :heavy_check_mark: | +| | 1112 | Lund University | :heavy_check_mark: | +| | 1154 | Universität zu Lübeck | :heavy_check_mark: | +| | 1362 | Norwegian University of Science and Technology | :heavy_check_mark: | +| | 1534 | Rijksuniversiteit Groningen | :heavy_check_mark: | +| | 1917 | Technische Universität München | :heavy_check_mark: | +| | 2061 | Umeå University | :heavy_check_mark: | +| | 2267 | Saarland University | :heavy_check_mark: | +| | 2272 | Karlsruhe Institute of Technology | :heavy_check_mark: | +| | 2274 | Universität Rostock | :heavy_check_mark: | +| | 2275 | Universität Ulm | :heavy_check_mark: | +| | 2282 | Leiden University | :heavy_check_mark: | +| | 2284 | Universiteit van Amsterdam | :heavy_check_mark: | +| | 2292 | University College Cork | :heavy_check_mark: | +| | 2320 | University of Bergen | :heavy_check_mark: | +| | 2343 | University of Cambridge | :heavy_check_mark: | +| | 2357 | University of Copenhagen | :heavy_check_mark: | +| | 2467 | University of Oslo | :heavy_check_mark: | +| | 2523 | University of Sussex | :heavy_check_mark: | +| | 2526 | University of Tartu | :heavy_check_mark: | +| | 2561 | University of Twente | :heavy_check_mark: | +| | 2625 | Utrecht University | :heavy_check_mark: | +| | 2643 | Vilnius University | :heavy_check_mark: | +| | 2664 | Vrije Universiteit | :heavy_check_mark: | +| | 3330 | University of Helsinki | :heavy_check_mark: | +| | 3397 | Chalmers University of Technology | :heavy_check_mark: | +| | 3403 | Reykjavik University | :heavy_check_mark: | +| | 3546 | Ghent University | :heavy_check_mark: | +| | 3620 | University of Oxford | :heavy_check_mark: | +| | 3678 | Imperial College London | :heavy_check_mark: | +| | 3749 | University of Nottingham | :heavy_check_mark: | +| | 3758 | King's College London | :heavy_check_mark: | +| | 3787 | RWTH Aachen University | :heavy_check_mark: | +| | 4278 | Technical University of Denmark | :heavy_check_mark: | +| | 4711 | Johannes Gutenberg Universität Mainz | :heavy_check_mark: | +| | 4786 | Aalto University | :heavy_check_mark: | +| | 5541 | University of Bath | :heavy_check_mark: | +| | 5737 | University of Manchester | :heavy_check_mark: | +| | 5784 | University of Edinburgh | :heavy_check_mark: | +| | 6026 | Molde University College | :heavy_check_mark: | +| | 6557 | Frankfurt University of Applied Sciences | :heavy_check_mark: | +| | 6817 | University of Liverpool | :heavy_check_mark: | +| | 6638 | German University of Technology in Oman | :heavy_check_mark: | +| | 6859 | University of Southampton | :heavy_check_mark: | +| | 6864 | IT University of Copenhagen | :heavy_check_mark: | +| | 6929 | University of Warwick | :heavy_check_mark: | +| | 6940 | University of Glasgow | :heavy_check_mark: | +| | 7006 | University College London | :heavy_check_mark: | +| | 7019 | Hogeschool Leiden | :heavy_check_mark: | +| | 7264 | University of Göttingen | :heavy_check_mark: | +| | 7464 | Brunel University London | :heavy_check_mark: | +| | 7477 | Vilnius Gediminas Technical University | :heavy_check_mark: | +| | 7887 | University of Iceland | :heavy_check_mark: | +| | 7918 | University of St Andrews | :heavy_check_mark: | +| | 7950 | University of Birmingham | :heavy_check_mark: | +| | 8002 | Radboud University | :heavy_check_mark: | +| | 8102 | University of Passau | :heavy_check_mark: | +| | 8170 | Hasso Plattner Institute | :heavy_check_mark: | +| | 8311 | Université de Mons | :heavy_check_mark: | +| | 8317 | University of Bristol | :heavy_check_mark: | +| | 9858 | Université Catholique de Louvain | :heavy_check_mark: | +| | 11054 | Tallinn University of Technology | :heavy_check_mark: | +| | 11103 | Katholieke Universiteit Leuven | :heavy_check_mark: | +| | 13859 | University of Luxembourg | :heavy_check_mark: | +| | 14277 | Hochschule für angewandte Wissenschaften Würzburg-Schweinfurt | :heavy_check_mark: | +| | 18106 | Jacobs University in Bremen | :heavy_check_mark: | +| | 18633 | University of Augsburg | :heavy_check_mark: | +| | 20052 | Heinrich-Heine-Universität Düsseldorf | :heavy_check_mark: | +| | 21966 | Anglia Ruskin University | :heavy_check_mark: | +| | 21967 | Constructor University Bremen | :heavy_check_mark: | ### Companies @@ -188,4 +187,4 @@ For DOMJudge use the `background_64.zip`. |---|---|---|---| | | O-1 | OBJECTION! | :heavy_check_mark: | | | O-2 | The Wise Owl | :heavy_check_mark: | -| | O-3 | The Wise Owl | :heavy_check_mark: | +| | O-3 | Elektrichiens Vakbond | :heavy_check_mark: | diff --git a/export.sh b/export.sh index 8dd72a5..756eb35 100755 --- a/export.sh +++ b/export.sh @@ -6,10 +6,11 @@ # ARG_OPTIONAL_BOOLEAN([studies],[],[Export the icons of the studies],[on]) # ARG_OPTIONAL_BOOLEAN([others],[],[Export the icons of the others],[on]) # ARG_OPTIONAL_BOOLEAN([background],[b],[Export the icons with their background],[on]) -# ARG_OPTIONAL_BOOLEAN([transparent],[t],[Export the icons with a transaprent background],[on]) +# ARG_OPTIONAL_BOOLEAN([transparent],[t],[Export the icons with a transparent background],[on]) +# ARG_OPTIONAL_BOOLEAN([contest-package],[p],[Export the icons in the Contest Package Format],[on]) # ARG_OPTIONAL_SINGLE([output-directory],[o],[Directory to put the results],[out]) # ARG_POSITIONAL_INF([sizes],[The pixel size to export the icons in],[0],[64]) -# ARG_HELP([Export th svg icons in different sizes.]) +# ARG_HELP([Export the svg icons in different sizes.]) # ARGBASH_GO() # needed because of Argbash --> m4_ignore([ ### START OF CODE GENERATED BY Argbash v2.9.0 one line above ### @@ -29,7 +30,7 @@ die() begins_with_short_option() { - local first_option all_short_options='btoh' + local first_option all_short_options='btpoh' first_option="${1:0:1}" test "$all_short_options" = "${all_short_options/$first_option/}" && return 1 || return 0 } @@ -44,20 +45,22 @@ _arg_studies="on" _arg_others="on" _arg_background="on" _arg_transparent="on" +_arg_contest_package="on" _arg_output_directory="out" print_help() { - printf '%s\n' "Export th svg icons in different sizes." - printf 'Usage: %s [--(no-)universities] [--(no-)companies] [--(no-)studies] [--(no-)others] [-b|--(no-)background] [-t|--(no-)transparent] [-o|--output-directory ] [-h|--help] [] ... [] ...\n' "$0" + printf '%s\n' "Export the svg icons in different sizes." + printf 'Usage: %s [--(no-)universities] [--(no-)companies] [--(no-)studies] [--(no-)others] [-b|--(no-)background] [-t|--(no-)transparent] [-p|--(no-)contest-package] [-o|--output-directory ] [-h|--help] [] ... [] ...\n' "$0" printf '\t%s\n' ": The pixel size to export the icons in (defaults for : '64')" printf '\t%s\n' "--universities, --no-universities: Export the icons of the universities (on by default)" printf '\t%s\n' "--companies, --no-companies: Export the icons of the companies (on by default)" printf '\t%s\n' "--studies, --no-studies: Export the icons of the studies (on by default)" printf '\t%s\n' "--others, --no-others: Export the icons of the others (on by default)" printf '\t%s\n' "-b, --background, --no-background: Export the icons with their background (on by default)" - printf '\t%s\n' "-t, --transparent, --no-transparent: Export the icons with a transaprent background (on by default)" + printf '\t%s\n' "-t, --transparent, --no-transparent: Export the icons with a transparent background (on by default)" + printf '\t%s\n' "-p, --contest-package, --no-contest-package: Export the icons in the Contest Package Format (on by default)" printf '\t%s\n' "-o, --output-directory: Directory to put the results (default: 'out')" printf '\t%s\n' "-h, --help: Prints help" } @@ -110,6 +113,18 @@ parse_commandline() { begins_with_short_option "$_next" && shift && set -- "-t" "-${_next}" "$@"; } || die "The short option '$_key' can't be decomposed to ${_key:0:2} and -${_key:2}, because ${_key:0:2} doesn't accept value and '-${_key:2:1}' doesn't correspond to a short option." fi ;; + -p|--no-contest-package|--contest-package) + _arg_contest_package="on" + test "${1:0:5}" = "--no-" && _arg_contest_package="off" + ;; + -p*) + _arg_contest_package="on" + _next="${_key##-p}" + if test -n "$_next" -a "$_next" != "$_key" + then + { begins_with_short_option "$_next" && shift && set -- "-p" "-${_next}" "$@"; } || die "The short option '$_key' can't be decomposed to ${_key:0:2} and -${_key:2}, because ${_key:0:2} doesn't accept value and '-${_key:2:1}' doesn't correspond to a short option." + fi + ;; -o|--output-directory) test $# -lt 2 && die "Missing value for the optional argument '$_key'." 1 _arg_output_directory="$2" @@ -205,7 +220,7 @@ export_svg () { echo "Exporting $name from $svg_path" - inkscape --actions="`joinByChar ';' ${exports[@]}`" $tmpfile + inkscape --actions="$(joinByChar ';' ${exports[@]})" $tmpfile rm "$tmpfile" } @@ -214,6 +229,7 @@ UNIVERSITIES_PATH="universities" COMPANIES_PATH="companies" STUDIES_PATH="studies" OTHERS_PATH="others" +CONTEST_PACKAGE_PATH="${_arg_output_directory}/contest-package" # Make the output directories [ -d $_arg_output_directory ] || mkdir $_arg_output_directory @@ -278,6 +294,42 @@ if [ "$_arg_others" = on ]; then export_svg "$OTHERS_PATH/logos/$i.svg" $i done fi +if [ "$_arg_contest_package" = on ]; then + + mkdir -p "$CONTEST_PACKAGE_PATH/organizations" + cp "$_arg_output_directory/organizations.json" "$CONTEST_PACKAGE_PATH/" + for o in $(jq -r .\[\].id < "$CONTEST_PACKAGE_PATH/organizations.json"); do + mkdir -p "$CONTEST_PACKAGE_PATH/organizations/$o" + for s in "${_arg_sizes[@]}"; do + input="transparent" + if [ "$_arg_background" = on ]; then + input="background" + fi + cp "${_arg_output_directory}/${input}_${s}/${o}.png" "${CONTEST_PACKAGE_PATH}/organizations/${o}/logo.${s}x${s}.png" + done + # Add svg too? CDS seems to support it. + if [[ $o =~ ^C- ]]; then + cp "${COMPANIES_PATH}/logos/${o}.svg" "${CONTEST_PACKAGE_PATH}/organizations/${o}/logo.svg" + elif [[ $o =~ ^O- ]]; then + cp "${OTHERS_PATH}/logos/${o}.svg" "${CONTEST_PACKAGE_PATH}/organizations/${o}/logo.svg" + elif [[ $o =~ ^S- ]]; then + echo "skipping svg copy for ${o}" + else + cp "${UNIVERSITIES_PATH}/logos/${o}.svg" "${CONTEST_PACKAGE_PATH}/organizations/${o}/logo.svg" + fi + done + + cat > "${CONTEST_PACKAGE_PATH}/readme.txt" <<<"The contents of this file is to be used with the contest package to be downloaded from ICPC under hamburger menu -> Exports -> Zips -> CPF. +Extract the contest package and extract the values of this package over it. +The new directory can be used to feed DOMjudge (using the import-contest command) and/or put in CDS. + +Adding banner and contest logo in directory contest/[banner|logo].png + +Adding team pictures in teams/[teamid]/photo.jpg + +accounts can be created by adding an accounts.json file +" +fi -# ] <-- needed because of Argbash \ No newline at end of file +# ] <-- needed because of Argbash diff --git a/others/organizations.json b/others/organizations.json index efa4737..f69f3a0 100644 --- a/others/organizations.json +++ b/others/organizations.json @@ -8,5 +8,10 @@ "id": "O-2", "name": "OWL", "formal_name": "The Wise Owl" + }, + { + "id": "O-3", + "name": "ETV", + "formal_name": "Elektrichiens Vakbond" } ] diff --git a/universities/logos/U-1039.svg b/universities/logos/1039.svg similarity index 100% rename from universities/logos/U-1039.svg rename to universities/logos/1039.svg diff --git a/universities/logos/U-1088.svg b/universities/logos/1088.svg similarity index 100% rename from universities/logos/U-1088.svg rename to universities/logos/1088.svg diff --git a/universities/logos/U-1097.svg b/universities/logos/1097.svg similarity index 100% rename from universities/logos/U-1097.svg rename to universities/logos/1097.svg diff --git a/universities/logos/U-11048.svg b/universities/logos/11054.svg similarity index 100% rename from universities/logos/U-11048.svg rename to universities/logos/11054.svg diff --git a/universities/logos/U-11103.svg b/universities/logos/11103.svg similarity index 100% rename from universities/logos/U-11103.svg rename to universities/logos/11103.svg diff --git a/universities/logos/U-1112.svg b/universities/logos/1112.svg similarity index 100% rename from universities/logos/U-1112.svg rename to universities/logos/1112.svg diff --git a/universities/logos/U-1154.svg b/universities/logos/1154.svg similarity index 100% rename from universities/logos/U-1154.svg rename to universities/logos/1154.svg diff --git a/universities/logos/U-131.svg b/universities/logos/131.svg similarity index 100% rename from universities/logos/U-131.svg rename to universities/logos/131.svg diff --git a/universities/logos/U-1362.svg b/universities/logos/1362.svg similarity index 100% rename from universities/logos/U-1362.svg rename to universities/logos/1362.svg diff --git a/universities/logos/U-13859.svg b/universities/logos/13859.svg similarity index 100% rename from universities/logos/U-13859.svg rename to universities/logos/13859.svg diff --git a/universities/logos/U-14277.svg b/universities/logos/14277.svg similarity index 100% rename from universities/logos/U-14277.svg rename to universities/logos/14277.svg diff --git a/universities/logos/U-1534.svg b/universities/logos/1534.svg similarity index 100% rename from universities/logos/U-1534.svg rename to universities/logos/1534.svg diff --git a/universities/logos/U-18106.svg b/universities/logos/18106.svg similarity index 100% rename from universities/logos/U-18106.svg rename to universities/logos/18106.svg diff --git a/universities/logos/U-18633.svg b/universities/logos/18633.svg similarity index 100% rename from universities/logos/U-18633.svg rename to universities/logos/18633.svg diff --git a/universities/logos/U-1917.svg b/universities/logos/1917.svg similarity index 100% rename from universities/logos/U-1917.svg rename to universities/logos/1917.svg diff --git a/universities/logos/U-20052.svg b/universities/logos/20052.svg similarity index 100% rename from universities/logos/U-20052.svg rename to universities/logos/20052.svg diff --git a/universities/logos/U-2061.svg b/universities/logos/2061.svg similarity index 100% rename from universities/logos/U-2061.svg rename to universities/logos/2061.svg diff --git a/universities/logos/U-21966.svg b/universities/logos/21966.svg similarity index 100% rename from universities/logos/U-21966.svg rename to universities/logos/21966.svg diff --git a/universities/logos/U-21967.svg b/universities/logos/21967.svg similarity index 100% rename from universities/logos/U-21967.svg rename to universities/logos/21967.svg diff --git a/universities/logos/U-2267.svg b/universities/logos/2267.svg similarity index 100% rename from universities/logos/U-2267.svg rename to universities/logos/2267.svg diff --git a/universities/logos/U-2272.svg b/universities/logos/2272.svg similarity index 100% rename from universities/logos/U-2272.svg rename to universities/logos/2272.svg diff --git a/universities/logos/U-2274.svg b/universities/logos/2274.svg similarity index 100% rename from universities/logos/U-2274.svg rename to universities/logos/2274.svg diff --git a/universities/logos/U-2275.svg b/universities/logos/2275.svg similarity index 100% rename from universities/logos/U-2275.svg rename to universities/logos/2275.svg diff --git a/universities/logos/U-2282.svg b/universities/logos/2282.svg similarity index 100% rename from universities/logos/U-2282.svg rename to universities/logos/2282.svg diff --git a/universities/logos/U-2284.svg b/universities/logos/2284.svg similarity index 100% rename from universities/logos/U-2284.svg rename to universities/logos/2284.svg diff --git a/universities/logos/U-2292.svg b/universities/logos/2292.svg similarity index 100% rename from universities/logos/U-2292.svg rename to universities/logos/2292.svg diff --git a/universities/logos/U-2320.svg b/universities/logos/2320.svg similarity index 100% rename from universities/logos/U-2320.svg rename to universities/logos/2320.svg diff --git a/universities/logos/U-2343.svg b/universities/logos/2343.svg similarity index 100% rename from universities/logos/U-2343.svg rename to universities/logos/2343.svg diff --git a/universities/logos/U-2357.svg b/universities/logos/2357.svg similarity index 100% rename from universities/logos/U-2357.svg rename to universities/logos/2357.svg diff --git a/universities/logos/U-2467.svg b/universities/logos/2467.svg similarity index 100% rename from universities/logos/U-2467.svg rename to universities/logos/2467.svg diff --git a/universities/logos/U-2523.svg b/universities/logos/2523.svg similarity index 100% rename from universities/logos/U-2523.svg rename to universities/logos/2523.svg diff --git a/universities/logos/U-2526.svg b/universities/logos/2526.svg similarity index 100% rename from universities/logos/U-2526.svg rename to universities/logos/2526.svg diff --git a/universities/logos/U-2561.svg b/universities/logos/2561.svg similarity index 100% rename from universities/logos/U-2561.svg rename to universities/logos/2561.svg diff --git a/universities/logos/U-2625.svg b/universities/logos/2625.svg similarity index 100% rename from universities/logos/U-2625.svg rename to universities/logos/2625.svg diff --git a/universities/logos/U-2643.svg b/universities/logos/2643.svg similarity index 100% rename from universities/logos/U-2643.svg rename to universities/logos/2643.svg diff --git a/universities/logos/U-2664.svg b/universities/logos/2664.svg similarity index 100% rename from universities/logos/U-2664.svg rename to universities/logos/2664.svg diff --git a/universities/logos/U-290.svg b/universities/logos/290.svg similarity index 100% rename from universities/logos/U-290.svg rename to universities/logos/290.svg diff --git a/universities/logos/U-33.svg b/universities/logos/33.svg similarity index 100% rename from universities/logos/U-33.svg rename to universities/logos/33.svg diff --git a/universities/logos/U-3330.svg b/universities/logos/3330.svg similarity index 100% rename from universities/logos/U-3330.svg rename to universities/logos/3330.svg diff --git a/universities/logos/U-3397.svg b/universities/logos/3397.svg similarity index 100% rename from universities/logos/U-3397.svg rename to universities/logos/3397.svg diff --git a/universities/logos/U-3403.svg b/universities/logos/3403.svg similarity index 100% rename from universities/logos/U-3403.svg rename to universities/logos/3403.svg diff --git a/universities/logos/U-3546.svg b/universities/logos/3546.svg similarity index 100% rename from universities/logos/U-3546.svg rename to universities/logos/3546.svg diff --git a/universities/logos/U-362.svg b/universities/logos/362.svg similarity index 100% rename from universities/logos/U-362.svg rename to universities/logos/362.svg diff --git a/universities/logos/U-3620.svg b/universities/logos/3620.svg similarity index 100% rename from universities/logos/U-3620.svg rename to universities/logos/3620.svg diff --git a/universities/logos/U-367.svg b/universities/logos/367.svg similarity index 100% rename from universities/logos/U-367.svg rename to universities/logos/367.svg diff --git a/universities/logos/U-3678.svg b/universities/logos/3678.svg similarity index 100% rename from universities/logos/U-3678.svg rename to universities/logos/3678.svg diff --git a/universities/logos/U-3749.svg b/universities/logos/3749.svg similarity index 100% rename from universities/logos/U-3749.svg rename to universities/logos/3749.svg diff --git a/universities/logos/U-3758.svg b/universities/logos/3758.svg similarity index 100% rename from universities/logos/U-3758.svg rename to universities/logos/3758.svg diff --git a/universities/logos/U-3787.svg b/universities/logos/3787.svg similarity index 100% rename from universities/logos/U-3787.svg rename to universities/logos/3787.svg diff --git a/universities/logos/U-4278.svg b/universities/logos/4278.svg similarity index 100% rename from universities/logos/U-4278.svg rename to universities/logos/4278.svg diff --git a/universities/logos/U-452.svg b/universities/logos/452.svg similarity index 100% rename from universities/logos/U-452.svg rename to universities/logos/452.svg diff --git a/universities/logos/U-4711.svg b/universities/logos/4711.svg similarity index 100% rename from universities/logos/U-4711.svg rename to universities/logos/4711.svg diff --git a/universities/logos/U-4786.svg b/universities/logos/4786.svg similarity index 100% rename from universities/logos/U-4786.svg rename to universities/logos/4786.svg diff --git a/universities/logos/U-5541.svg b/universities/logos/5541.svg similarity index 100% rename from universities/logos/U-5541.svg rename to universities/logos/5541.svg diff --git a/universities/logos/U-573.svg b/universities/logos/573.svg similarity index 100% rename from universities/logos/U-573.svg rename to universities/logos/573.svg diff --git a/universities/logos/U-5737.svg b/universities/logos/5737.svg similarity index 100% rename from universities/logos/U-5737.svg rename to universities/logos/5737.svg diff --git a/universities/logos/U-5784.svg b/universities/logos/5784.svg similarity index 100% rename from universities/logos/U-5784.svg rename to universities/logos/5784.svg diff --git a/universities/logos/U-6026.svg b/universities/logos/6026.svg similarity index 100% rename from universities/logos/U-6026.svg rename to universities/logos/6026.svg diff --git a/universities/logos/U-6557.svg b/universities/logos/6557.svg similarity index 100% rename from universities/logos/U-6557.svg rename to universities/logos/6557.svg diff --git a/universities/logos/U-6638.svg b/universities/logos/6638.svg similarity index 100% rename from universities/logos/U-6638.svg rename to universities/logos/6638.svg diff --git a/universities/logos/U-6817.svg b/universities/logos/6817.svg similarity index 100% rename from universities/logos/U-6817.svg rename to universities/logos/6817.svg diff --git a/universities/logos/U-6859.svg b/universities/logos/6859.svg similarity index 100% rename from universities/logos/U-6859.svg rename to universities/logos/6859.svg diff --git a/universities/logos/U-6864.svg b/universities/logos/6864.svg similarity index 100% rename from universities/logos/U-6864.svg rename to universities/logos/6864.svg diff --git a/universities/logos/U-6929.svg b/universities/logos/6929.svg similarity index 100% rename from universities/logos/U-6929.svg rename to universities/logos/6929.svg diff --git a/universities/logos/U-6940.svg b/universities/logos/6940.svg similarity index 100% rename from universities/logos/U-6940.svg rename to universities/logos/6940.svg diff --git a/universities/logos/U-7.svg b/universities/logos/7.svg similarity index 100% rename from universities/logos/U-7.svg rename to universities/logos/7.svg diff --git a/universities/logos/U-7006.svg b/universities/logos/7006.svg similarity index 100% rename from universities/logos/U-7006.svg rename to universities/logos/7006.svg diff --git a/universities/logos/U-7019.svg b/universities/logos/7019.svg similarity index 100% rename from universities/logos/U-7019.svg rename to universities/logos/7019.svg diff --git a/universities/logos/U-7264.svg b/universities/logos/7264.svg similarity index 100% rename from universities/logos/U-7264.svg rename to universities/logos/7264.svg diff --git a/universities/logos/U-7464.svg b/universities/logos/7464.svg similarity index 100% rename from universities/logos/U-7464.svg rename to universities/logos/7464.svg diff --git a/universities/logos/U-7477.svg b/universities/logos/7477.svg similarity index 100% rename from universities/logos/U-7477.svg rename to universities/logos/7477.svg diff --git a/universities/logos/U-7887.svg b/universities/logos/7887.svg similarity index 100% rename from universities/logos/U-7887.svg rename to universities/logos/7887.svg diff --git a/universities/logos/U-7918.svg b/universities/logos/7918.svg similarity index 100% rename from universities/logos/U-7918.svg rename to universities/logos/7918.svg diff --git a/universities/logos/U-7950.svg b/universities/logos/7950.svg similarity index 100% rename from universities/logos/U-7950.svg rename to universities/logos/7950.svg diff --git a/universities/logos/U-8002.svg b/universities/logos/8002.svg similarity index 100% rename from universities/logos/U-8002.svg rename to universities/logos/8002.svg diff --git a/universities/logos/U-8102.svg b/universities/logos/8102.svg similarity index 100% rename from universities/logos/U-8102.svg rename to universities/logos/8102.svg diff --git a/universities/logos/U-8170.svg b/universities/logos/8170.svg similarity index 100% rename from universities/logos/U-8170.svg rename to universities/logos/8170.svg diff --git a/universities/logos/U-8311.svg b/universities/logos/8311.svg similarity index 100% rename from universities/logos/U-8311.svg rename to universities/logos/8311.svg diff --git a/universities/logos/U-8317.svg b/universities/logos/8317.svg similarity index 100% rename from universities/logos/U-8317.svg rename to universities/logos/8317.svg diff --git a/universities/logos/U-980.svg b/universities/logos/980.svg similarity index 100% rename from universities/logos/U-980.svg rename to universities/logos/980.svg diff --git a/universities/logos/U-9858.svg b/universities/logos/9858.svg similarity index 100% rename from universities/logos/U-9858.svg rename to universities/logos/9858.svg diff --git a/universities/logos/U-11054.svg b/universities/logos/U-11054.svg deleted file mode 100644 index 40aa6a7..0000000 --- a/universities/logos/U-11054.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/universities/organizations.json b/universities/organizations.json index 5e073a7..22ed7d0 100644 --- a/universities/organizations.json +++ b/universities/organizations.json @@ -1,492 +1,486 @@ [ { - "id": "U-7", + "id": "7", "name": "Aarhus U.", "formal_name": "Aarhus University", "country": "DNK" }, { - "id": "U-33", + "id": "33", "name": "Ulm U", "formal_name": "Ulm University", "country": "DEU" }, { - "id": "U-131", + "id": "131", "name": "UJ", "formal_name": "Jagiellonian University in Krakow", "country": "POL" }, { - "id": "U-290", + "id": "290", "name": "CAU Kiel", "formal_name": "Christian-Albrechts-Universitaet zu Kiel", "country": "DEU" }, { - "id": "U-362", + "id": "362", "name": "Darmstadt UT", "formal_name": "Darmstadt University of Technology", "country": "DEU" }, { - "id": "U-367", + "id": "367", "name": "TU Delft", "formal_name": "Delft University of Technology", "country": "NLD" }, { - "id": "U-452", + "id": "452", "name": "TU/e", "formal_name": "Eindhoven University of Technology", "country": "NLD" }, { - "id": "U-573", + "id": "573", "name": "FAU", "formal_name": "Friedrich-Alexander-University Erlangen-Nuremberg", "country": "DEU" }, { - "id": "U-980", + "id": "980", "name": "KTU", "formal_name": "Kaunas University of Technology", "country": "LTU" }, { - "id": "U-1039", + "id": "1039", "name": "KTH", "formal_name": "KTH - Royal Institute of Technology", "country": "SWE" }, { - "id": "U-1088", + "id": "1088", "name": "Leiden University", "formal_name": "Leiden University", "country": "NLD" }, { - "id": "U-1097", + "id": "1097", "name": "LIU", "formal_name": "Linköping University", "country": "SWE" }, { - "id": "U-1112", + "id": "1112", "name": "LU", "formal_name": "Lund University", "country": "SWE" }, { - "id": "U-1154", + "id": "1154", "name": "Uni Lübeck", "formal_name": "Universität zu Lübeck", "country": "DEU" }, { - "id": "U-1362", + "id": "1362", "name": "Norwegian TNU", "formal_name": "Norwegian University of Science and Technology", "country": "NOR" }, { - "id": "U-1534", + "id": "1534", "name": "RU Groningen", "formal_name": "Rijksuniversiteit Groningen", "country": "NLD" }, { - "id": "U-1917", + "id": "1917", "name": "TUM", "formal_name": "Technische Universität München", "country": "DEU" }, { - "id": "U-2061", + "id": "2061", "name": "UmU", "formal_name": "Umeå University", "country": "SWE" }, { - "id": "U-2267", + "id": "2267", "name": "UdS", "formal_name": "Saarland University", "country": "DEU" }, { - "id": "U-2272", + "id": "2272", "name": "KIT", "formal_name": "Karlsruhe Institute of Technology", "country": "DEU" }, { - "id": "U-2274", + "id": "2274", "name": "Uni Rostock", "formal_name": "Universität Rostock", "country": "DEU" }, { - "id": "U-2275", + "id": "2275", "name": "Ulm", "formal_name": "Universität Ulm", "country": "DEU" }, { - "id": "U-2282", + "id": "2282", "name": "Leiden University", "formal_name": "Leiden University", "country": "NLD" }, { - "id": "U-2284", + "id": "2284", "name": "UvA", "formal_name": "Universiteit van Amsterdam", "country": "NLD" }, { - "id": "U-2292", + "id": "2292", "name": "UCC", "formal_name": "University College Cork", "country": "IRL" }, { - "id": "U-2320", + "id": "2320", "name": "UiB", "formal_name": "University of Bergen", "country": "NOR" }, { - "id": "U-2343", + "id": "2343", "name": "Cambridge", "formal_name": "University of Cambridge", "country": "GBR" }, { - "id": "U-2357", + "id": "2357", "name": "DIKU", "formal_name": "University of Copenhagen", "country": "DNK" }, { - "id": "U-2467", + "id": "2467", "name": "UiOslo", "formal_name": "University of Oslo", "country": "NOR" }, { - "id": "U-2523", + "id": "2523", "name": "COGS", "formal_name": "University of Sussex", "country": "GBR" }, { - "id": "U-2526", + "id": "2526", "name": "Tartu", "formal_name": "University of Tartu", "country": "EST" }, { - "id": "U-2561", + "id": "2561", "name": "UTwente", "formal_name": "University of Twente", "country": "NLD" }, { - "id": "U-2625", + "id": "2625", "name": "Utrecht University", "formal_name": "Utrecht University", "country": "NLD" }, { - "id": "U-2643", + "id": "2643", "name": "Vilnius University", "formal_name": "Vilnius University", "country": "LTU" }, { - "id": "U-2664", + "id": "2664", "name": "VU", "formal_name": "Vrije Universiteit", "country": "NLD" }, { - "id": "U-3330", + "id": "3330", "name": "U Helsinki", "formal_name": "University of Helsinki", "country": "FIN" }, { - "id": "U-3397", + "id": "3397", "name": "Chalmers", "formal_name": "Chalmers University of Technology", "country": "SWE" }, { - "id": "U-3403", + "id": "3403", "name": "Reykjavik U", "formal_name": "Reykjavik University", "country": "ISL" }, { - "id": "U-3546", + "id": "3546", "name": "Ghent", "formal_name": "Ghent University", "country": "BEL" }, { - "id": "U-3620", + "id": "3620", "name": "Oxford", "formal_name": "University of Oxford", "country": "GBR" }, { - "id": "U-3678", + "id": "3678", "name": "Imperial", "formal_name": "Imperial College London", "country": "GBR" }, { - "id": "U-3749", + "id": "3749", "name": "Nottingham", "formal_name": "University of Nottingham", "country": "GBR" }, { - "id": "U-3758", + "id": "3758", "name": "KCL", "formal_name": "King's College London", "country": "GBR" }, { - "id": "U-3787", + "id": "3787", "name": "RWTH", "formal_name": "RWTH Aachen University", "country": "DEU" }, { - "id": "U-4278", + "id": "4278", "name": "DTU", "formal_name": "Technical University of Denmark", "country": "DNK" }, { - "id": "U-4711", + "id": "4711", "name": "JGU", "formal_name": "Johannes Gutenberg Universität Mainz", "country": "DEU" }, { - "id": "U-4786", + "id": "4786", "name": "Aalto U", "formal_name": "Aalto University", "country": "FIN" }, { - "id": "U-5541", + "id": "5541", "name": "Bath", "formal_name": "University of Bath", "country": "GBR" }, { - "id": "U-5737", + "id": "5737", "name": "Manchester", "formal_name": "University of Manchester", "country": "GBR" }, { - "id": "U-5784", + "id": "5784", "name": "UEDIN", "formal_name": "University of Edinburgh", "country": "GBR" }, { - "id": "U-6026", + "id": "6026", "name": "Molde University Col", "formal_name": "Molde University College", "country": "NOR" }, { - "id": "U-6557", + "id": "6557", "name": "FRA-UAS", "formal_name": "Frankfurt University of Applied Sciences", "country": "DEU" }, { - "id": "U-6817", + "id": "6817", "name": "UoL", "formal_name": "University of Liverpool", "country": "GBR" }, { - "id": "U-6638", + "id": "6638", "name": "GUTECH", "formal_name": "German University of Technology in Oman", "country": "OMN" }, { - "id": "U-6859", + "id": "6859", "name": "Southampton", "formal_name": "University of Southampton", "country": "GBR" }, { - "id": "U-6864", + "id": "6864", "name": "ITU", "formal_name": "IT University of Copenhagen", "country": "DNK" }, { - "id": "U-6929", + "id": "6929", "name": "Warwick", "formal_name": "University of Warwick", "country": "GBR" }, { - "id": "U-6940", + "id": "6940", "name": "Glasgow", "formal_name": "University of Glasgow", "country": "GBR" }, { - "id": "U-7006", + "id": "7006", "name": "UCL", "formal_name": "University College London", "country": "GBR" }, { - "id": "U-7019", + "id": "7019", "name": "HS Leiden", "formal_name": "Hogeschool Leiden", "country": "NLD" }, { - "id": "U-7264", + "id": "7264", "name": "University of Göttin", "formal_name": "University of Göttingen", "country": "DEU" }, { - "id": "U-7464", + "id": "7464", "name": "Brunel", "formal_name": "Brunel University London", "country": "GBR" }, { - "id": "U-7477", + "id": "7477", "name": "Vilnius Gediminas TU", "formal_name": "Vilnius Gediminas Technical University", "country": "LTU" }, { - "id": "U-7887", + "id": "7887", "name": "UI", "formal_name": "University of Iceland", "country": "ISL" }, { - "id": "U-7918", + "id": "7918", "name": "St Andrews", "formal_name": "University of St Andrews", "country": "GBR" }, { - "id": "U-7950", + "id": "7950", "name": "Birmingham", "formal_name": "University of Birmingham", "country": "GBR" }, { - "id": "U-8002", + "id": "8002", "name": "Radboud", "formal_name": "Radboud University", "country": "NLD" }, { - "id": "U-8102", + "id": "8102", "name": "Passau", "formal_name": "University of Passau", "country": "DEU" }, { - "id": "U-8170", + "id": "8170", "name": "HPI", "formal_name": "Hasso Plattner Institute", "country": "DEU" }, { - "id": "U-8311", + "id": "8311", "name": "UMONS", "formal_name": "Université de Mons", "country": "BEL" }, { - "id": "U-8317", + "id": "8317", "name": "Bristol", "formal_name": "University of Bristol", "country": "GBR" }, { - "id": "U-9858", + "id": "9858", "name": "UCLouvain", "formal_name": "Université Catholique de Louvain", "country": "BEL" }, { - "id": "U-11048", + "id": "11054", "name": "TalTech", "formal_name": "Tallinn University of Technology", "country": "EST" }, { - "id": "U-11054", - "name": "TalTech", - "formal_name": "Tallinn University of Technology", - "country": "EST" - }, - { - "id": "U-11103", + "id": "11103", "name": "KU Leuven", "formal_name": "Katholieke Universiteit Leuven", "country": "BEL" }, { - "id": "U-13859", + "id": "13859", "name": "Uni Lu", "formal_name": "University of Luxembourg", "country": "LUX" }, { - "id": "U-14277", + "id": "14277", "name": "FHWS", "formal_name": "Hochschule für angewandte Wissenschaften Würzburg-Schweinfurt", "country": "DEU" }, { - "id": "U-18106", + "id": "18106", "name": "Jacobs U", "formal_name": "Jacobs University in Bremen", "country": "DEU" }, { - "id": "U-18633", + "id": "18633", "name": "Uni A", "formal_name": "University of Augsburg", "country": "DEU" }, { - "id": "U-20052", + "id": "20052", "name": "HHU Düsseldorf", "formal_name": "Heinrich-Heine-Universität Düsseldorf", "country": "DEU" }, { - "id": "U-21966", + "id": "21966", "name": "ARU", "formal_name": "Anglia Ruskin University", "country": "GBR" }, { - "id": "U-21967", + "id": "21967", "name": "CUB", "formal_name": "Constructor University Bremen", "country": "DEU"