Compare commits

...

166 Commits

Author SHA1 Message Date
Danhia 7887074b3d fixed merge conflict 2022-02-17 23:59:21 +01:00
mguerrea b6c36cbffb Merge branch 'challenges-description' into main 2022-02-17 23:50:28 +01:00
mguerrea 02950319d7 Merge branch 'challenges-description' into main 2022-02-17 23:21:56 +01:00
mguerrea 9b3ae741c1 fixed error 500 when requesting german or russian translation 2022-02-17 23:21:41 +01:00
Danhia 8f32ef9a6e excluded the API from the i18n patterns 2022-02-17 13:09:11 +01:00
Danhia a0b76903a7 added endpoint API for bot 2022-02-17 12:40:40 +01:00
Danhia a7de7b8054 removed language code in redirect_uri 2022-02-17 12:21:17 +01:00
Danhia 0d734e98b1 removed language code in redirect_uri 2022-02-17 12:19:52 +01:00
Danhia 3d24fe9b3b tentative for fixing url redirect 2022-02-17 12:03:52 +01:00
Danhia ba0d75c250 restored discord OAuth, not working in local, let's test on preprod if the url problem is solved 2022-02-17 11:11:36 +01:00
Danhia 7515eb8dce fixed end of sentence in french with quote badly escaped 2022-02-16 20:14:29 +01:00
Danhia 3ae80ca17f fixed end of sentence in french with quote badly escaped 2022-02-16 20:14:29 +01:00
Danhia 11f9d43560 fixed quotes that where badly escaped in resources 2022-02-16 20:07:19 +01:00
Danhia a7e75b2a43 fixed quotes that where badly escaped in resources 2022-02-16 20:07:19 +01:00
Danhia 2615ad01cd Merge branch 'main' into translation 2022-02-16 19:28:39 +01:00
Danhia 9ea67ae2a0 Merge branch 'main' into translation 2022-02-16 19:28:39 +01:00
Danhia 00962b40d3 Merge branch 'main' into challenges-description 2022-02-16 15:41:52 +01:00
Danhia e6402f37dd Merge pull request 'Ressource page translation' (#22) from Starthur/website:main into translation
Reviewed-on: #22
2022-02-16 15:37:18 +01:00
Danhia c40d49c326 Merge pull request 'Ressource page translation' (#22) from Starthur/website:main into translation
Reviewed-on: #22
2022-02-16 15:37:18 +01:00
Starthur eb320b7b49 Last push before pull request 2022-02-16 15:23:15 +01:00
Starthur d6b1380552 Last push before pull request 2022-02-16 15:23:15 +01:00
Arthur-TRT 2b0d058672 Correct some mistake 2022-02-16 15:19:07 +01:00
Arthur-TRT d0c93f98a1 Correct some mistake 2022-02-16 15:19:07 +01:00
Arthur-TRT 210e217660 First translation of Ressources in fr 2022-02-16 15:03:40 +01:00
Arthur-TRT 97e120e5fc First translation of Ressources in fr 2022-02-16 15:03:40 +01:00
Danhia a12dd0d020 Merge pull request 'Update README' (#21) from update-readme into main
Reviewed-on: #21
2022-02-16 14:34:14 +01:00
Starthur 377607239e Update README
Better solution to create superuser admin
2022-02-16 14:33:21 +01:00
Starthur 3829ad11ef Update README
Add information about migrate and admin right on local dev
2022-02-16 14:13:00 +01:00
Danhia c7ddf8a435 Update 'requirements.txt' 2022-02-16 13:53:57 +01:00
Danhia 8cada5b6d2 Update 'README.md' 2022-02-16 13:50:19 +01:00
Danhia 678abaa1fc put challenges descriptions outside of the db 2022-02-15 18:13:43 +01:00
Danhia e69a18922c replaced jp with ja for news 2022-02-15 14:27:37 +01:00
Danhia b3583196e8 Merge pull request '[translation] Added Japanese version' (#9) from ysaito/website:translation-jp into translation
Reviewed-on: #9
2022-02-15 13:20:02 +01:00
ysaito 49a66e9565 feat(welcome_ctf_2021.html): Added Japanese version 2022-02-15 18:11:00 +09:00
ysaito 7b2ab40378 feat(sql_challenges.html): Added Japanese version 2022-02-15 18:07:48 +09:00
ysaito 715db01981 feat(speed_dating_ctf_2022.html): Added Japanese version 2022-02-15 18:06:46 +09:00
ysaito 837c625d8e feat(dynamic_scoring.html): Added Japanese version 2022-02-15 18:05:43 +09:00
ysaito 4eceb91f60 feat(42ctf_vm.html): Added Japanese version 2022-02-15 18:04:30 +09:00
Danhia 2f308f75b7 updated all .po with makemessages 2022-02-14 19:38:16 +01:00
Danhia b3a37445a2
Merge pull request #8 from ClemaX/translation/de
German news translation and typos fix
2022-02-14 18:34:08 +00:00
Danhia f417ff59f4 removed start challenge button when event is over 2022-02-14 19:18:00 +01:00
Clément Hamada 76533f42b7 news: locale: de: Initial translation 2022-02-13 21:47:03 +01:00
Clément Hamada 8ed0fb1d64 locale: de: Fix some typos 2022-02-13 21:30:40 +01:00
Danhia 6d68192f2a Merge branch 'main' of https://github.com/Danhia/42CTF into main 2022-02-13 13:14:24 +01:00
Danhia 1fb9f410ac hotfix for 500 when joining team 2022-02-13 13:13:54 +01:00
Danhia bdcfa253b9
Update README.md 2022-02-12 20:35:41 +01:00
Danhia cf4860b8ff
Merge pull request #7 from Miliviu/main
Set Spanish to done in the readme todo list
2022-02-12 19:28:07 +00:00
Danhia b36c38fd60 dynamic scoring for events, i'm pretty sure everything is gonna break 2022-02-12 19:56:46 +01:00
Miliviu 91ec913b8e
Set Spanish to done in the readme todo list 2022-02-11 19:55:50 +01:00
Danhia d86d5f4e92 challenges not yet published 2022-02-09 14:14:41 +01:00
Danhia 01edb75cc6
Merge pull request #6 from Miliviu/main
Add translation of news to Spanish
2022-02-09 13:36:45 +01:00
Miliviu 40fcf1e07a Add translation of news to Spanish 2022-02-09 13:08:02 +01:00
Danhia d77d9386f0 added english version of news contents 2022-02-09 12:39:12 +01:00
Danhia 947650f07d news content is now out of the db for languages other than english 2022-02-09 12:22:12 +01:00
Danhia 2dec4de04f
Merge pull request #5 from Miliviu/main
All Spanish strings translated
2022-02-09 11:12:32 +01:00
Miliviu 5e75e9f411 Add trasnlator references and date of translation 2022-02-09 10:58:12 +01:00
Miliviu 973af232b5 Add Spanish to availible languages in the Settings.py file 2022-02-09 10:53:11 +01:00
Miliviu 41377a56c5 Added spanish translation to both django files 2022-02-09 10:44:40 +01:00
Danhia c8a171fa76 added option to open team to automatching 2022-02-08 15:36:06 +01:00
Danhia dae0a87548 added japanese empty files 2022-02-06 23:39:46 +01:00
Danhia aedbdf57ca fixed redirection when leaving team + few details in html 2022-02-04 19:28:09 +01:00
Danhia 9b938c7f67 updated .po files for last modifications 2022-02-04 19:05:11 +01:00
Danhia f9ae6edc13 Merge branch 'main' into events 2022-02-04 19:04:20 +01:00
Danhia ef1242af46 fixed redirection in events 2022-02-04 19:04:17 +01:00
ix 09cfc722c7 fix event html 2022-02-04 17:13:50 +01:00
Danhia 5010213a13 fixed centering flag vertically 2022-02-04 16:04:56 +01:00
ix ae9a28fc80 fix flags 2022-02-04 15:43:56 +01:00
Danhia a5c97c4e38 beginning of lang flag refacto 2022-02-04 15:28:06 +01:00
Danhia 559c39c4f9
Merge pull request #4 from ClemaX/translation/de
locale: de: Translate all existing messages
2022-02-04 13:05:05 +01:00
Clément Hamada 54226b8904 resources: locale: de: Translate all existing messages 2022-02-04 06:02:00 +01:00
Clément Hamada ca41f8f924 locale: de: Spellcheck 2022-02-04 05:58:07 +01:00
Clément Hamada cb0c2ee639 resources: locale: de: Update messages 2022-02-04 03:34:01 +01:00
Clément Hamada d8e5236bac locale: de: Update file references 2022-02-04 03:30:49 +01:00
Clément Hamada de249cab9c locale: de: Translate all existing messages 2022-02-04 03:13:51 +01:00
Danhia 358de109db changed position of logos in footer for mobile devices + added helloasso button in resources 2022-02-04 00:27:29 +01:00
ix 74cb657501 Merge branch 'main' of github.com:Danhia/42CTF into main 2022-02-03 21:03:18 +01:00
Danhia d5e2554602 hotfix for dynamic scoring 2022-02-03 21:02:55 +01:00
ix c6bbc2a9a1 Fix resources page 2022-02-03 21:00:04 +01:00
ix 65214b46d4 fix spaces between nav elements 2022-02-03 20:49:24 +01:00
ix 0ebf804976 Fix resources page 2022-02-03 20:49:02 +01:00
ix 0d9057eac4 Fix unused html 2022-02-03 20:45:56 +01:00
Danhia 2f6362360b added dynamic scoring for permanent platform, let's hope nothing breaks 2022-02-03 20:27:55 +01:00
Danhia a639904ee2 fixed latest flags when chall is disabled + fixed recompute_scoreboard 2022-02-03 18:46:37 +01:00
Danhia 63d22cdf6d added disabled attribute for challenge + fixed recomputescoreboard 2022-02-03 18:37:24 +01:00
Danhia 911c9f6732 hotfix for 0 division when there is an empty category in profile page 2022-02-02 19:34:22 +01:00
Danhia 6337a0dcdb added different color for members almost everywhere 2022-02-02 19:23:13 +01:00
Danhia c25f58341d replaced flags counter by flag because css is broken on medium devices 2022-01-31 19:27:20 +01:00
Danhia 2ab42b20c7 you can now delete your account 2022-01-31 19:21:14 +01:00
Danhia c38cc8dc94 hotfix for command recompute_scoreboard 2022-01-31 18:46:34 +01:00
Danhia 396d8ee99b Merge branch 'home-refacto' into main 2022-01-30 21:43:20 +01:00
Danhia da6e51bdcd fixed links css for challenges in home 2022-01-30 19:22:58 +01:00
Danhia 0beafc39fa changed timezone in settings.py 2022-01-30 18:22:59 +01:00
Danhia b352a2341a added weekly top 5 + latest flags to home page 2022-01-30 17:59:02 +01:00
Danhia 0c08fdda96 hotfix for too long pseudos breaking top10 css 2022-01-24 21:11:30 +01:00
Danhia 314a7e17b4 fixed broken responsive design for footer 2022-01-24 17:20:23 +01:00
Danhia 3c4478dddb hotfix for duplicate messages in .po files 2022-01-24 16:16:25 +01:00
Danhia 6455a8ddc6 replaced subscribe by register for events 2022-01-24 16:11:03 +01:00
Danhia 4802218005 added event filter for teams in admin panel 2022-01-24 12:59:09 +01:00
Danhia 5242150b92 added event filter for teams in admin panel 2022-01-24 12:57:14 +01:00
Danhia c06c94e807 updtaed footer with twitter and linkedin 2022-01-24 10:27:38 +01:00
Danhia 5219778d5b fixed missing og_img for page preview 2022-01-24 09:57:03 +01:00
Danhia a1bda8a7cc corrected typo in no solves message 2022-01-23 18:48:55 +01:00
Danhia aea1ecda15 changed color in top 10 + updated resources 2022-01-23 18:45:10 +01:00
Danhia 79c74e1946 added member and visitor status + different colors in scoreboard 2022-01-23 18:40:57 +01:00
Danhia 94a24376d4 finished first version of resources, let's deploy ! 2022-01-23 17:08:13 +01:00
Danhia bd4dadeaf1 Merge branch 'main' into ressources 2022-01-23 15:48:57 +01:00
Danhia 827068f113 Merge branch 'events' into main 2022-01-16 22:19:38 +01:00
Danhia 818be801b2 split views.py in events + new field in events model for automatching 2022-01-16 22:18:39 +01:00
Danhia 6a16e0fdbd added auto matching for teams in event 2022-01-15 00:44:25 +01:00
Danhia 40a7d4ebdd Merge branch 'events' into main 2022-01-14 23:42:53 +01:00
Danhia a6095cc5c4 removed 500 when user is not connected and want to access public event 2022-01-14 23:41:59 +01:00
Danhia 66a9bd6b09 first draft of resources 2022-01-08 14:12:09 +01:00
Danhia ceede3cfa0 updated fr translations for events 2022-01-08 11:23:20 +01:00
Danhia ef1673dbd4 updated translation files 2022-01-08 10:55:57 +01:00
Danhia e4f68edeff fixed error when displaying challenge info in solo mode 2022-01-02 21:53:38 +01:00
Danhia 2ab410efdf fixed starting date for graph on event's profile 2022-01-02 21:46:23 +01:00
Danhia dfa5c3830d fixed case where a category has no challenge in an event and profile crash 2022-01-02 21:41:32 +01:00
Danhia 6ec1a20e74 fixed missing team when event is not password protected 2022-01-02 21:00:02 +01:00
Danhia 7ae36e2cee it's possible to modify and leave team 2022-01-02 20:42:10 +01:00
Danhia 411896bf01 you can create and join team + eventplayer and team profile 2021-12-28 20:17:39 +01:00
Danhia 9405fcabde first draft for team events 2021-12-17 19:02:19 +01:00
Danhia 727e11a29e Merge branch 'main' of https://github.com/Danhia/42CTF into main 2021-12-14 21:22:03 +01:00
Danhia be0fc5dd67 added rank on profile page 2021-12-14 21:21:29 +01:00
Danhia d20b3f75d9
Update README.md 2021-12-14 20:38:03 +01:00
Danhia 3d456ea26b little fix for flag length + restrict access for unpublished challenges 2021-12-14 20:35:59 +01:00
ix e5c4a2856e fix access to event challenges when event not begun or user not connected 2021-12-10 09:47:45 +01:00
Danhia 7cf7fd82d4
Merge pull request #3 from Lindoriel/main
correcting syntax error
2021-10-25 21:01:04 +02:00
Maxime ROTH ca34f76465
correcting ". error 2021-10-25 20:58:59 +02:00
Danhia 0123edd87a
Merge pull request #2 from Lindoriel/main
adding french translation
2021-10-25 20:52:14 +02:00
Maxime ROTH a295321f19
adding french translation 2021-10-25 20:22:11 +02:00
ix 2dcea7cd74 update patreon link 2021-10-25 13:22:07 +02:00
Danhia ecd7ca69db first draft for cgu 2021-10-24 20:26:26 +02:00
ix e6e50fcd05 footer reworked, patreon link added, messages recompiled and cgu view added 2021-10-24 16:25:46 +02:00
ix 4dcc953baf fix solve list for event challenges, fix link color 2021-10-23 11:13:02 +02:00
ix a7620eec77 fix template profile 2021-10-22 16:09:05 +02:00
ix baa598f1aa fix template profile 2021-10-22 16:08:22 +02:00
ix ddccb96586 Merge branch 'events' into main 2021-10-22 14:21:16 +02:00
ix 9f0273a85b Merge branch 'main' of github.com:Danhia/42CTF into main 2021-10-22 14:21:12 +02:00
ix 63349df20f Update fix 2021-10-22 14:21:05 +02:00
Ix 1274a6b7fe
Merge pull request #1 from Danhia/events
Update fix
2021-10-22 13:59:27 +02:00
ix f5b54e3ed6 Merge branch 'main' of github.com:Danhia/42CTF into main 2021-10-22 13:58:40 +02:00
ix 0a42af4a9b Update fix 2021-10-22 13:58:23 +02:00
Ix 87b1a5f6f8
Update README.md 2021-10-22 11:48:28 +02:00
ix a379f4934d Update todo 2021-10-22 11:46:48 +02:00
ix 86cc6070e1 Events done 2021-10-22 11:45:50 +02:00
ix c98e89b5ca events added, need to smooth html and css 2021-10-21 15:02:02 +02:00
Ix 8d3cd60ae4
Update README.md 2021-09-21 21:42:55 +02:00
ix e956082385 category challenges listed by point decrease 2021-09-08 21:50:28 +02:00
ix 071ba34792 Discord button removed, css fix when 0 at category stat, messages recompiled 2021-09-08 21:36:15 +02:00
ix 81e283ea69 Categories stats added, css modified, fix responsive display of profile page 2021-09-08 16:53:00 +02:00
ix ed928f6f33 Merge branch 'graph' into main 2021-09-08 04:00:39 +02:00
ix ce31ce30ee Charts changed to highcharts 2021-09-08 03:59:35 +02:00
ix 500d6fe228 Charts added 2021-09-08 00:32:44 +02:00
Danhia 0c0506505b fixed missing translation header in password reset templates 2021-09-07 20:42:18 +00:00
ix 62b3b7e5cd internationalization for news 2021-09-07 21:13:30 +02:00
ix acbf38a6a7 Merge remote-tracking branch 'origin/traduction-fr' into main 2021-09-07 19:54:05 +02:00
ix dbdd6b06f8 internationalization fixed, templates url fixed, messages recompiled 2021-09-07 19:52:40 +02:00
Danhia 428edadb31 changed translation for sign up 2021-09-06 21:34:45 +02:00
Danhia 768e62f369 french translation 2021-09-06 21:04:42 +02:00
ix 52c2dcdec3 last 2021-09-06 20:15:03 +02:00
ix 42441e7854 local settings 2021-09-06 20:14:23 +02:00
ix b0cea92ea8 local settings 2021-09-06 20:12:03 +02:00
ix 0c285cc486 okay it's done i think 2021-09-06 19:59:13 +02:00
ix 5e0da0e8b3 okay it's done i think 2021-09-06 19:42:13 +02:00
Ix faec388ad5
Create settings.py 2021-07-10 12:34:42 +02:00
Ix afb572d091
Update .gitignore 2021-07-10 12:29:40 +02:00
29 changed files with 381 additions and 362 deletions

104
bot.py
View File

@ -1,104 +0,0 @@
import os
import discord
import discord.utils
import urllib.request, json
import asyncio
import json
import logging
TOKEN = os.getenv('DISCORD_TOKEN')
GUILD = '42ctf'
intents = discord.Intents.all()
client = discord.Client(intents=intents)
db_file = open('members.json', 'r')
users = json.load(db_file)
db_file.close()
logging.basicConfig(filename='bot.log', format='%(asctime)s %(message)s', level=logging.INFO)
guild = ''
roles = {}
def get_rank(token):
url = urllib.request.urlopen("https://www.42ctf.org/accounts/rank/" + token)
data = json.loads(url.read().decode())
rank = data['rank']
return rank
async def watch_roles():
global users
await client.wait_until_ready() # ensures cache is loaded
while not client.is_closed():
for member_id, token in users.items():
if (token == "0000"):
continue
member = discord.utils.get(guild.members, id=int(member_id))
rank = get_rank(token)
if rank == 1 and roles['top1'] not in member.roles:
await member.add_roles(roles['top1'])
await member.remove_roles(roles['top10'])
await member.remove_roles(roles['top50'])
elif rank > 1 and rank <= 10 and roles['top10'] not in member.roles:
await member.add_roles(roles['top10'])
await member.remove_roles(roles['top1'])
await member.remove_roles(roles['top50'])
elif rank > 10 and rank <= 50 and roles['top50'] not in member.roles:
await member.add_roles(roles['top50'])
await member.remove_roles(roles['top10'])
await member.remove_roles(roles['top1'])
elif rank > 50:
await member.remove_roles(roles['top1'])
await member.remove_roles(roles['top10'])
await member.remove_roles(roles['top50'])
await asyncio.sleep(60)
@client.event
async def on_ready():
global guild, roles
guild = discord.utils.get(client.guilds, name=GUILD)
roles['top10'] = discord.utils.get(guild.roles, id=801787467064672286)
roles['top1'] = discord.utils.get(guild.roles, id=798638767359524875)
roles['top50'] = discord.utils.get(guild.roles, id=803729539145924649)
logging.info('%s is connected to the following guild: %s(id: %d)', client.user, guild.name, guild.id)
client.loop.create_task(watch_roles())
@client.event
async def on_message(message):
global guild, roles
if message.author == client.user:
return
if '!connect' in message.content:
try:
user_token = message.content.split(' ')[1]
member = discord.utils.get(guild.members, name=message.author.name)
rank = get_rank(user_token)
users[str(member.id)] = user_token
logging.info("MESSAGE: from %s with token %s", message.author.name, user_token)
with open('members.json', 'w') as json_file:
json.dump(users, json_file)
if rank == 1:
await member.add_roles(roles['top1'])
response = "Congratulations, you're now Top 1. But for how long ?"
elif (rank <= 10):
await member.add_roles(roles['top10'])
response = "You've been granted the Top 10 role. Now, go away and flag !"
elif rank <= 50:
await member.add_roles(roles['top50'])
response = "You've been granted the Top 50 role. Now, go away and flag !"
else:
response = "No role for you now, but I'll keep watching you."
except IndexError:
response = 'usage: !connect 42ctf_token'
await message.author.create_dm()
await message.author.dm_channel.send(response)
client.run(TOKEN)

View File

@ -2,67 +2,89 @@
{% block content %}
{% load i18n %}
<div class="row">
<div class="col-sm-12 col-md-9">
<div class="ctf-block">
<div class="ctf-head">
<h3>Edit info</h3>
</div>
<div class="bloc-body">
<div class="col-sm-12 col-md-12 mx-auto">
{{ u_form.non_field_errors }}
{% if error is not None %}
<div class="col-sm-12 col-md-9">
<div class="ctf-block">
<div class="ctf-head">
<h3>Edit info</h3>
</div>
<div class="bloc-body">
<div class="col-sm-12 col-md-12 mx-auto">
{{ u_form.non_field_errors }}
{% if error is not None %}
<span class="message error-msg">{{ error }}</span>
{% elif success is not None %}
{% elif success is not None %}
<span class="message success-msg">{{ success }}</span>
{% endif %}
<form method='POST'>
<div class="edit-infos-grp">
{% endif %}
<form method='POST'>
<div class="edit-infos-grp">
{%csrf_token%}
<label for="{{ u_form.username.id_for_label }}">{% trans "Username" %} *</label>
{{ u_form.username.errors}}
{{u_form.username}}
</br>
<label for="{{ u_form.email.id_for_label }}">{% trans "Email" %} *</label>
{{ u_form.email.errors}}
{{u_form.email}}
</br>
</br>
<label for="{{ p_form.portfolio_site.id_for_label }}">{% trans "Website" %}</label>
{{p_form.portfolio_site}}
</br>
</br>Token
<input type='text' readonly value='{{token}}'>
</br>
<input class="form-control" type="submit" value="{% trans " Apply" %}">
</div>
</form>
</div>
</div>
</div>
<div class="ctf-block">
<div class="ctf-head">
<h3>{% trans "Connected accounts" %}</h3>
</div>
<div class="bloc-body">
<div class="d-flex">
{% if user.userprofileinfo.discord_id|length > 0 %}
<form action="{% url 'accounts:connections-disconnect-discord' %}" method='POST'
class="form-inline p-2">
{%csrf_token%}
<label for="{{ u_form.username.id_for_label }}">{% trans "Username" %} *</label>
{{ u_form.username.errors}}
{{u_form.username}}
</br>
<label for="{{ u_form.email.id_for_label }}">{% trans "Email" %} *</label>
{{ u_form.email.errors}}
{{u_form.email}}
</br>
</br>
<label for="{{ p_form.portfolio_site.id_for_label }}">{% trans "Website" %}</label>
{{p_form.portfolio_site}}
</br>
</br>Token
<input type='text' readonly value='{{token}}'>
</br>
<input class="form-control" type="submit" value="{% trans "Apply" %}">
</div>
</form>
<button class="btn btn-dark" type="submit">{% trans "Disconnect Discord" %}</button>
</form>
{% else %}
<form action="{% url 'accounts:connections-connect-discord' %}" method='POST'
class="form-inline p-2">
{%csrf_token%}
<button class="btn btn-dark" type="submit">{% trans "Connect Discord" %}</button>
</form>
{% endif %}
</div>
</div>
</div>
</div>
</div>
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
<ul class="list-group">
<div class="d-none d-md-block col-10 col-md-3 right-sidebar">
<ul class="list-group">
<li class="list-group-item">{{ user.username }}</li>
<li class="list-group-item">{% trans "Score" %} : {{ user.userprofileinfo.score }}</li>
{% if user.userprofileinfo.portfolio_site %}
<li class="list-group-item">
<a href="{{ user.userprofileinfo.portfolio_site }}" target="_blank">
{{ user.userprofileinfo.portfolio_site }}
</a>
</li>
<li class="list-group-item">
<a href="{{ user.userprofileinfo.portfolio_site }}" target="_blank">
{{ user.userprofileinfo.portfolio_site }}
</a>
</li>
{% endif %}
<li class="list-group-item">{% trans "Registered since" %} {{ user.date_joined|date:"Y-m-d" }}</li>
</ul>
<ul class="list-group">
<form method='GET' action="{% url 'accounts:delete_account' %}">
{%csrf_token%}
<li class="list-group-item">
<input class="form-control" type="submit" value="{% trans "Delete my account" %}">
</li>
{%csrf_token%}
<li class="list-group-item">
<input class="form-control" type="submit" value="{% trans " Delete my account" %}">
</li>
</form>
</ul>
</div>
</ul>
</div>
</div>
{% endblock %}

View File

@ -4,6 +4,7 @@ from django.views.decorators.http import require_POST
from django.views.defaults import bad_request
from django.urls import reverse
from django.shortcuts import redirect
from django.contrib.sites.models import Site
import os
oauth = OAuth()
@ -23,8 +24,9 @@ oauth.register(
def connect(request):
if request.user.userprofileinfo.discord_id:
return bad_request(request, "Already connected")
site = Site.objects.get_current()
redirect_uri = reverse('accounts:connections-connect-discord-authorize')
redirect_uri = request.build_absolute_uri(redirect_uri)
redirect_uri = "https://" + site.domain + redirect_uri[3:] # remove language code
print(redirect_uri)
return oauth.discord.authorize_redirect(request, redirect_uri)

View File

@ -154,17 +154,7 @@ def profile(request, user_name):
return render(request,'accounts/profile.html', {'user':user_obj, 'solves':solves,'solved':solved,'catsDatas': catsDatas, 'pointDatas': pointDatas,
'rank': rank, 'score' : somme, 'member' : member, 'cats':cats})
def rank(request, token):
all_users = UserProfileInfo.objects.filter(score__gt=0).select_related().order_by('-score', 'last_submission_date', 'user__username')
rank = 1
for elem in all_users:
if elem.token == token:
break
rank += 1
data = {"rank": rank}
return JsonResponse(data)
<<<<<<< HEAD
@login_required
def delete_account(request):
@ -182,3 +172,14 @@ def delete_account(request):
else:
return render(request, 'accounts/delete.html', {'deleted': False, 'bad_password': False} )
def rank(request, token):
all_users = UserProfileInfo.objects.filter(score__gt=0).select_related().order_by('-score', 'last_submission_date', 'user__username')
rank = 1
for elem in all_users:
if elem.token == token:
break
rank += 1
data = {"rank": rank}
return JsonResponse(data)

0
src/api/__init__.py Normal file
View File

3
src/api/admin.py Normal file
View File

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

6
src/api/apps.py Normal file
View File

@ -0,0 +1,6 @@
from django.apps import AppConfig
class ApiConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'api'

View File

3
src/api/models.py Normal file
View File

@ -0,0 +1,3 @@
from django.db import models
# Create your models here.

3
src/api/tests.py Normal file
View File

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

6
src/api/urls.py Normal file
View File

@ -0,0 +1,6 @@
from django.urls import path
from . import views
urlpatterns = [
path('bot/discord', views.discord_bot, name='discord_bot'),
]

27
src/api/views.py Normal file
View File

@ -0,0 +1,27 @@
from django.shortcuts import render
from accounts.models import UserProfileInfo
from django.http import JsonResponse
import os
# Create your views here.
def discord_bot(request):
if request.method != 'GET':
return JsonResponse({'error':'bad request'})
token = request.GET.get('token')
auth_token = os.getenv('BOT_TOKEN')
if (token != auth_token or not auth_token):
return JsonResponse({'error':'not authorized'})
all_users = UserProfileInfo.objects.select_related().order_by('-score', 'last_submission_date', 'user__username')
data = {}
rank = 1
for user in all_users:
if user.discord_id:
data[user.discord_id] = rank
rank += 1
return JsonResponse(data)

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: 2022-02-10 19:50+0100\n"
"Last-Translator: Clément Hamada <clementhamada@pm.me>\n"
"Language-Team: \n"
@ -48,7 +48,7 @@ msgstr "Passwort"
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:65
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
@ -60,7 +60,7 @@ msgid "Email"
msgstr "Email"
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:62
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:66
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
@ -74,7 +74,7 @@ msgstr "Anwenden"
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
@ -138,7 +138,7 @@ msgid "Points"
msgstr "Punkte"
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:66
#: events/templates/events/ctf_info.html:67
#: events/templates/events/team.html:23
msgid "Date"
@ -219,66 +219,58 @@ msgstr "Nutzername bereits vergeben."
msgid "Updated."
msgstr "Aktualisiert."
#: ctfs/templates/ctfs/ctf_info.html:10
#: ctfs/templates/ctfs/ctf_info.html:12
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr "Veröffentlichungsdatum"
#: ctfs/templates/ctfs/ctf_info.html:14
#: ctfs/templates/ctfs/ctf_info.html:16
msgid "Challenge is not yet available."
msgstr "Herausforderung ist noch nicht verfügbar."
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
"Keine Übersetzung verfügbar. Bitte versuchen Sie es auf einer anderen "
"Sprache noch einmal (Englisch oder Französisch)."
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:24
msgid "Congratulation !"
msgstr "Herzlichen Glückwunsch!"
#: ctfs/templates/ctfs/ctf_info.html:29
#: ctfs/templates/ctfs/ctf_info.html:31
#: events/templates/events/ctf_info.html:26
msgid "Already flagged"
msgstr "Schon gelöst"
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:36
#: events/templates/events/ctf_info.html:45
msgid "Start the challenge"
msgstr "Herausforderung beginnen"
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
#: events/templates/events/ctf_info.html:38
#: events/templates/events/ctf_info.html:47
msgid "Download"
msgstr "Herunterladen"
#: ctfs/templates/ctfs/ctf_info.html:37
#: ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:42
msgid "Wrong flag ! You can do it !"
msgstr "Falsche flagge! Sie können es schaffen!"
#: ctfs/templates/ctfs/ctf_info.html:56
#: ctfs/templates/ctfs/ctf_info.html:58
#: events/templates/events/ctf_info.html:60
msgid "Solved by"
msgstr "Gelöst von"
#: ctfs/templates/ctfs/ctf_info.html:80
#: ctfs/templates/ctfs/ctf_info.html:82
#: events/templates/events/ctf_info.html:90
msgid "Nobody has solved this challenge yet."
msgstr "Bisher hat noch niemand diese Herausforderung gelöst."
#: ctfs/templates/ctfs/ctf_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:89
#: events/templates/events/ctf_info.html:97
msgid "Author"
msgstr "Autor/-in"
#: ctfs/templates/ctfs/ctf_info.html:88
#: ctfs/templates/ctfs/ctf_info.html:90
#: events/templates/events/ctf_info.html:98
msgid "Point reward"
msgstr "Belohnungspunkte"
@ -371,6 +363,13 @@ msgstr "Finde mir einen Team!"
msgid "Event"
msgstr "Ereignis"
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
"Keine Übersetzung verfügbar. Bitte versuchen Sie es auf einer anderen "
"Sprache noch einmal (Englisch oder Französisch)."
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:18
msgid "This event is over."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -49,7 +49,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:65
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
@ -61,7 +61,7 @@ msgid "Email"
msgstr ""
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:62
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:66
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
@ -75,7 +75,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
@ -139,7 +139,7 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:66
#: events/templates/events/ctf_info.html:67
#: events/templates/events/team.html:23
msgid "Date"
@ -218,64 +218,58 @@ msgstr ""
msgid "Updated."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:10
#: ctfs/templates/ctfs/ctf_info.html:12
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:14
#: ctfs/templates/ctfs/ctf_info.html:16
msgid "Challenge is not yet available."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:24
msgid "Congratulation !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:29
#: ctfs/templates/ctfs/ctf_info.html:31
#: events/templates/events/ctf_info.html:26
msgid "Already flagged"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:36
#: events/templates/events/ctf_info.html:45
msgid "Start the challenge"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
#: events/templates/events/ctf_info.html:38
#: events/templates/events/ctf_info.html:47
msgid "Download"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:37
#: ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:42
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:56
#: ctfs/templates/ctfs/ctf_info.html:58
#: events/templates/events/ctf_info.html:60
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:80
#: ctfs/templates/ctfs/ctf_info.html:82
#: events/templates/events/ctf_info.html:90
msgid "Nobody has solved this challenge yet."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:89
#: events/templates/events/ctf_info.html:97
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:88
#: ctfs/templates/ctfs/ctf_info.html:90
#: events/templates/events/ctf_info.html:98
msgid "Point reward"
msgstr ""
@ -368,6 +362,11 @@ msgstr ""
msgid "Event"
msgstr ""
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:18
msgid "This event is over."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: 2022-02-09 10:55+0100\n"
"Last-Translator: Javier Uhagón (uhagontorralvojavier@gmail.com)\n"
"Language-Team: \n"
@ -49,7 +49,7 @@ msgstr "Contraseña"
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:65
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
@ -61,7 +61,7 @@ msgid "Email"
msgstr "Email"
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:62
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:66
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
@ -75,7 +75,7 @@ msgstr "Aplicar"
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
@ -139,7 +139,7 @@ msgid "Points"
msgstr "Puntos"
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:66
#: events/templates/events/ctf_info.html:67
#: events/templates/events/team.html:23
msgid "Date"
@ -220,65 +220,58 @@ msgstr "Nombre de usuario ya usado."
msgid "Updated."
msgstr "Actualizado."
#: ctfs/templates/ctfs/ctf_info.html:10
#: ctfs/templates/ctfs/ctf_info.html:12
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr "Fecha de publicación"
#: ctfs/templates/ctfs/ctf_info.html:14
#: ctfs/templates/ctfs/ctf_info.html:16
msgid "Challenge is not yet available."
msgstr "El reto aún no está disponible."
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
"Traducción no disponible. Por favor pruebe otro idioma (inglés o francés)."
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:24
msgid "Congratulation !"
msgstr "¡ Felicidades !"
#: ctfs/templates/ctfs/ctf_info.html:29
#: ctfs/templates/ctfs/ctf_info.html:31
#: events/templates/events/ctf_info.html:26
msgid "Already flagged"
msgstr "Flag ya conseguida"
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:36
#: events/templates/events/ctf_info.html:45
msgid "Start the challenge"
msgstr "Comenzar el reto"
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
#: events/templates/events/ctf_info.html:38
#: events/templates/events/ctf_info.html:47
msgid "Download"
msgstr "Descargar"
#: ctfs/templates/ctfs/ctf_info.html:37
#: ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:42
msgid "Wrong flag ! You can do it !"
msgstr "¡ Flag incorrecta ! ¡ Puedes hacerlo !"
#: ctfs/templates/ctfs/ctf_info.html:56
#: ctfs/templates/ctfs/ctf_info.html:58
#: events/templates/events/ctf_info.html:60
msgid "Solved by"
msgstr "Resuelto por"
#: ctfs/templates/ctfs/ctf_info.html:80
#: ctfs/templates/ctfs/ctf_info.html:82
#: events/templates/events/ctf_info.html:90
msgid "Nobody has solved this challenge yet."
msgstr "Nadie ha resuelto este reto aún."
#: ctfs/templates/ctfs/ctf_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:89
#: events/templates/events/ctf_info.html:97
msgid "Author"
msgstr "Autor"
#: ctfs/templates/ctfs/ctf_info.html:88
#: ctfs/templates/ctfs/ctf_info.html:90
#: events/templates/events/ctf_info.html:98
msgid "Point reward"
msgstr "Recompensa de puntos"
@ -371,6 +364,12 @@ msgstr "¡ Encuentrame un equipo !"
msgid "Event"
msgstr "Evento"
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
"Traducción no disponible. Por favor pruebe otro idioma (inglés o francés)."
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:18
msgid "This event is over."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -53,7 +53,7 @@ msgstr "Mot de passe"
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:65
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
@ -65,7 +65,7 @@ msgid "Email"
msgstr "Email"
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:62
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:66
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
@ -79,7 +79,7 @@ msgstr "Appliquer"
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
@ -145,7 +145,7 @@ msgid "Points"
msgstr "Points"
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:66
#: events/templates/events/ctf_info.html:67
#: events/templates/events/team.html:23
msgid "Date"
@ -228,66 +228,60 @@ msgstr "Le pseudo est déjà utilisé."
msgid "Updated."
msgstr "Mis à jour."
#: ctfs/templates/ctfs/ctf_info.html:10
#: ctfs/templates/ctfs/ctf_info.html:12
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr "Date de publication"
#: ctfs/templates/ctfs/ctf_info.html:14
#: ctfs/templates/ctfs/ctf_info.html:16
#, fuzzy
#| msgid "No category available."
msgid "Challenge is not yet available."
msgstr "Il n'y a pas de catégorie disponible."
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:24
msgid "Congratulation !"
msgstr "Félicitations !"
#: ctfs/templates/ctfs/ctf_info.html:29
#: ctfs/templates/ctfs/ctf_info.html:31
#: events/templates/events/ctf_info.html:26
msgid "Already flagged"
msgstr "Déjà résolu"
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:36
#: events/templates/events/ctf_info.html:45
msgid "Start the challenge"
msgstr "Démarrer le challenge"
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
#: events/templates/events/ctf_info.html:38
#: events/templates/events/ctf_info.html:47
msgid "Download"
msgstr "Télécharger"
#: ctfs/templates/ctfs/ctf_info.html:37
#: ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:42
msgid "Wrong flag ! You can do it !"
msgstr "Mauvais flag ! Vous pouvez le faire !"
#: ctfs/templates/ctfs/ctf_info.html:56
#: ctfs/templates/ctfs/ctf_info.html:58
#: events/templates/events/ctf_info.html:60
msgid "Solved by"
msgstr "Résolu par"
#: ctfs/templates/ctfs/ctf_info.html:80
#: ctfs/templates/ctfs/ctf_info.html:82
#: events/templates/events/ctf_info.html:90
msgid "Nobody has solved this challenge yet."
msgstr "Personne n'a résolu ce CTF."
#: ctfs/templates/ctfs/ctf_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:89
#: events/templates/events/ctf_info.html:97
msgid "Author"
msgstr "Auteur"
#: ctfs/templates/ctfs/ctf_info.html:88
#: ctfs/templates/ctfs/ctf_info.html:90
#: events/templates/events/ctf_info.html:98
msgid "Point reward"
msgstr "Points"
@ -386,6 +380,11 @@ msgstr ""
msgid "Event"
msgstr "Événement"
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:18
msgid "This event is over."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -49,7 +49,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:65
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
@ -61,7 +61,7 @@ msgid "Email"
msgstr ""
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:62
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:66
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
@ -75,7 +75,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
@ -139,7 +139,7 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:66
#: events/templates/events/ctf_info.html:67
#: events/templates/events/team.html:23
msgid "Date"
@ -218,64 +218,58 @@ msgstr ""
msgid "Updated."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:10
#: ctfs/templates/ctfs/ctf_info.html:12
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:14
#: ctfs/templates/ctfs/ctf_info.html:16
msgid "Challenge is not yet available."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:24
msgid "Congratulation !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:29
#: ctfs/templates/ctfs/ctf_info.html:31
#: events/templates/events/ctf_info.html:26
msgid "Already flagged"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:36
#: events/templates/events/ctf_info.html:45
msgid "Start the challenge"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
#: events/templates/events/ctf_info.html:38
#: events/templates/events/ctf_info.html:47
msgid "Download"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:37
#: ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:42
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:56
#: ctfs/templates/ctfs/ctf_info.html:58
#: events/templates/events/ctf_info.html:60
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:80
#: ctfs/templates/ctfs/ctf_info.html:82
#: events/templates/events/ctf_info.html:90
msgid "Nobody has solved this challenge yet."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:89
#: events/templates/events/ctf_info.html:97
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:88
#: ctfs/templates/ctfs/ctf_info.html:90
#: events/templates/events/ctf_info.html:98
msgid "Point reward"
msgstr ""
@ -368,6 +362,11 @@ msgstr ""
msgid "Event"
msgstr ""
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:18
msgid "This event is over."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -49,7 +49,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:65
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
@ -61,7 +61,7 @@ msgid "Email"
msgstr ""
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:62
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:66
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
@ -75,7 +75,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
@ -139,7 +139,7 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:66
#: events/templates/events/ctf_info.html:67
#: events/templates/events/team.html:23
msgid "Date"
@ -218,64 +218,58 @@ msgstr ""
msgid "Updated."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:10
#: ctfs/templates/ctfs/ctf_info.html:12
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:14
#: ctfs/templates/ctfs/ctf_info.html:16
msgid "Challenge is not yet available."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:24
msgid "Congratulation !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:29
#: ctfs/templates/ctfs/ctf_info.html:31
#: events/templates/events/ctf_info.html:26
msgid "Already flagged"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:36
#: events/templates/events/ctf_info.html:45
msgid "Start the challenge"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
#: events/templates/events/ctf_info.html:38
#: events/templates/events/ctf_info.html:47
msgid "Download"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:37
#: ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:42
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:56
#: ctfs/templates/ctfs/ctf_info.html:58
#: events/templates/events/ctf_info.html:60
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:80
#: ctfs/templates/ctfs/ctf_info.html:82
#: events/templates/events/ctf_info.html:90
msgid "Nobody has solved this challenge yet."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:89
#: events/templates/events/ctf_info.html:97
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:88
#: ctfs/templates/ctfs/ctf_info.html:90
#: events/templates/events/ctf_info.html:98
msgid "Point reward"
msgstr ""
@ -368,6 +362,11 @@ msgstr ""
msgid "Event"
msgstr ""
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:18
msgid "This event is over."

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -51,7 +51,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:21
#: accounts/templates/accounts/login.html:18
#: accounts/templates/accounts/register.html:22
#: ctfs/templates/ctfs/ctf_info.html:61 ctfs/templates/ctfs/ctfs_list.html:12
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:12
#: events/templates/events/ctf_info.html:65
#: events/templates/events/event_info.html:64
#: scoreboard/templates/scoreboard/scoreboard.html:13
@ -63,7 +63,7 @@ msgid "Email"
msgstr ""
#: accounts/templates/accounts/edit.html:30
#: ctfs/templates/ctfs/ctf_info.html:62
#: ctfs/templates/ctfs/ctf_info.html:64
#: events/templates/events/ctf_info.html:66
#: events/templates/events/event_info.html:65
#: scoreboard/templates/scoreboard/scoreboard.html:14
@ -77,7 +77,7 @@ msgstr ""
#: accounts/templates/accounts/edit.html:47
#: accounts/templates/accounts/profile.html:46
#: ctfs/templates/ctfs/ctf_info.html:63 ctfs/templates/ctfs/ctfs_list.html:13
#: ctfs/templates/ctfs/ctf_info.html:65 ctfs/templates/ctfs/ctfs_list.html:13
#: events/templates/events/event_info.html:66
#: events/templates/events/event_info.html:89
#: events/templates/events/manage_team.html:40
@ -141,7 +141,7 @@ msgid "Points"
msgstr ""
#: accounts/templates/accounts/profile.html:24
#: ctfs/templates/ctfs/ctf_info.html:64
#: ctfs/templates/ctfs/ctf_info.html:66
#: events/templates/events/ctf_info.html:67
#: events/templates/events/team.html:23
msgid "Date"
@ -220,66 +220,60 @@ msgstr ""
msgid "Updated."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:10
#: ctfs/templates/ctfs/ctf_info.html:12
#: events/templates/events/ctf_info.html:12
msgid "Published date"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:14
#: ctfs/templates/ctfs/ctf_info.html:16
#, fuzzy
#| msgid "No article available."
msgid "Challenge is not yet available."
msgstr "Нет доступных статей."
#: ctfs/templates/ctfs/ctf_info.html:21
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:27
#: ctfs/templates/ctfs/ctf_info.html:29
#: events/templates/events/ctf_info.html:24
msgid "Congratulation !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:29
#: ctfs/templates/ctfs/ctf_info.html:31
#: events/templates/events/ctf_info.html:26
msgid "Already flagged"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:31 ctfs/templates/ctfs/ctf_info.html:40
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: events/templates/events/ctf_info.html:36
#: events/templates/events/ctf_info.html:45
msgid "Start the challenge"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:33 ctfs/templates/ctfs/ctf_info.html:42
#: ctfs/templates/ctfs/ctf_info.html:35 ctfs/templates/ctfs/ctf_info.html:44
#: events/templates/events/ctf_info.html:38
#: events/templates/events/ctf_info.html:47
msgid "Download"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:37
#: ctfs/templates/ctfs/ctf_info.html:39
#: events/templates/events/ctf_info.html:42
msgid "Wrong flag ! You can do it !"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:56
#: ctfs/templates/ctfs/ctf_info.html:58
#: events/templates/events/ctf_info.html:60
msgid "Solved by"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:80
#: ctfs/templates/ctfs/ctf_info.html:82
#: events/templates/events/ctf_info.html:90
msgid "Nobody has solved this challenge yet."
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:87
#: ctfs/templates/ctfs/ctf_info.html:89
#: events/templates/events/ctf_info.html:97
msgid "Author"
msgstr ""
#: ctfs/templates/ctfs/ctf_info.html:88
#: ctfs/templates/ctfs/ctf_info.html:90
#: events/templates/events/ctf_info.html:98
msgid "Point reward"
msgstr ""
@ -372,6 +366,11 @@ msgstr ""
msgid "Event"
msgstr ""
#: events/templates/events/ctf_info.html:18
msgid ""
"No translation available. Please try another language (English or French)."
msgstr ""
#: events/templates/events/ctf_info.html:28
#: events/templates/events/event_info.html:18
msgid "This event is over."

View File

@ -38,6 +38,7 @@ INSTALLED_APPS = [
'scoreboard.apps.ScoreboardConfig',
'resources.apps.ResourcesConfig',
'django.contrib.sites',
'api.apps.ApiConfig',
]
MIDDLEWARE = [

View File

@ -24,6 +24,7 @@ urlpatterns = [
path('', include('home.urls')),
path('set_lang/<str:lang_code>', home.views.set_language, name="set_language"),
path('dashboard/secret/admin', admin.site.urls),
path('api/', include('api.urls'))
]
urlpatterns += i18n_patterns(

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: 2022-02-10 19:27+0100\n"
"Last-Translator: Clément Hamada <clementhamada@pm.me>\n"
"Language-Team: \n"
@ -36,7 +36,9 @@ msgstr ""
"die meisten Punkte zu verdienen."
#: resources/templates/resources/42ctf.html:12
msgid "The challenges require participants to find sort of passwords called \\"
msgid ""
"The challenges require participants to find sort of passwords called \"flags"
"\" and to submit them on the platform."
msgstr ""
"Die Herausforderungen bestehen darin eine Art Passwort zu finden: sogenannte "
"\\"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -34,7 +34,9 @@ msgid ""
msgstr ""
#: resources/templates/resources/42ctf.html:12
msgid "The challenges require participants to find sort of passwords called \\"
msgid ""
"The challenges require participants to find sort of passwords called \"flags"
"\" and to submit them on the platform."
msgstr ""
#: resources/templates/resources/42ctf.html:15

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: 2022-02-09 10:55+0100\n"
"Last-Translator: Javier Uhagón (uhagontorralvojavier@gmail.com)\n"
"Language-Team: \n"
@ -37,7 +37,9 @@ msgstr ""
"para ganar puntos y progresar en la Tabla de puntos."
#: resources/templates/resources/42ctf.html:12
msgid "The challenges require participants to find sort of passwords called \\"
msgid ""
"The challenges require participants to find sort of passwords called \"flags"
"\" and to submit them on the platform."
msgstr ""
"Los retos requieren que los participantes encuentren unas contraseñas "
"llamadas \\"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -20,7 +20,7 @@ msgstr ""
#: resources/templates/resources/42ctf.html:7
msgid "What is 42CTF ?"
msgstr "Qu'est ce que 42CTF ?"
msgstr "Qu'est-ce que 42CTF ?"
#: resources/templates/resources/42ctf.html:10
msgid "A short introduction to CTF"
@ -32,90 +32,114 @@ msgid ""
"participants have to solve challenges of various categories to gain points "
"and progress on the scoreboard."
msgstr ""
"CTF veut dire Capture The Flag. C'est une compétition de cybersécurité où "
"les participants doivent résoudre des challenges dans différentes catégories "
"pour gagner des points et progresser dans le classement."
#: resources/templates/resources/42ctf.html:12
msgid "The challenges require participants to find sort of passwords called \\"
#: resources/templates/resources/42ctf.html:122
msgid ""
"The challenges require participants to find sort of passwords called \"flags"
"\" and to submit them on the platform."
msgstr ""
"Les challenges demandent aux participants de trouver des sortes de mots de "
"passe appelés \"flags\" et de les soumettre sur la plateforme."
#: resources/templates/resources/42ctf.html:15
msgid "Functionment of 42CTF"
msgstr ""
msgstr "Fonctionnement de 42CTF"
#: resources/templates/resources/42ctf.html:16
msgid "42CTF is what we call a permanent CTF."
msgstr ""
msgstr "42CTF est ce qu'on appelle un CTF permanent."
#: resources/templates/resources/42ctf.html:17
msgid "Except from the"
msgstr ""
msgstr "Sauf pour les"
#: resources/templates/resources/42ctf.html:17
msgid "events"
msgstr ""
msgstr "évènements"
#: resources/templates/resources/42ctf.html:17
msgid "challenges are available on the platform without time limitations."
msgstr ""
"les challenges sont disponnibles sur la plateforme sans limites de temps."
#: resources/templates/resources/42ctf.html:18
msgid "The registration on 42CTF is open to everyone, 42 students or not."
msgstr ""
msgstr "L'inscription à 42CTF est ouverte à tous, étudiant de 42 ou"
#: resources/templates/resources/42ctf.html:19
msgid ""
"Events may or may not be open. If you would like to organize an event on "
"42CTF, feel free to contact us."
msgstr ""
"Les évènements peuvent être publics ou non. Si vous souhaitez organiser un "
"évènement sur 42CTF, n'hésitez pas à nous contacter."
#: resources/templates/resources/42ctf.html:22
msgid "42CTF Team"
msgstr ""
msgstr "Équipe de 42CTF"
#: resources/templates/resources/42ctf.html:23
msgid "42CTF is managed by 42 students."
msgstr ""
msgstr "42CTF est géré par des étudiants de 42"
#: resources/templates/resources/42ctf.html:24
msgid "You can meet the team on"
msgstr ""
msgstr "Vous pouvez rencontrer l'équipe sur"
#: resources/templates/resources/42ctf.html:25
msgid ""
"Challenges are created by various contributors, not necessarily 42 students."
msgstr ""
"Les challenges sont créés par divers contributeurs, pas nécessairement des "
"étudiants de 42."
#: resources/templates/resources/42ctf.html:26
msgid ""
"Anyone is welcome to submit their own challenges, either on the permanent "
"CTF or for a specific event."
msgstr ""
"Tout le monde est invité à soumettre ses propres défis, que ce soit sur le "
"CTF permanent ou pour un évènement spécifique."
#: resources/templates/resources/create_challenge.html:7
msgid "Create new challenges"
msgstr ""
msgstr "Créer de nouveaux challenges"
#: resources/templates/resources/create_challenge.html:10
msgid "If you want to create new challenges for 42CTF, send us a message on "
msgstr ""
"Si vous souhaitez créer de nouveaux challenges pour 42CTF, envoyez-nous un "
"message sur "
#: resources/templates/resources/create_challenge.html:11
msgid "If your challenge is offline, then you don't have to ask us in advance."
msgstr ""
"Si votre défi est hors ligne, vous n'avez pas besoin de nous demander à "
"l'avance."
#: resources/templates/resources/create_challenge.html:12
msgid ""
"If your challenge is online (for example web or pwn), then you should give "
"us a short description of what you want to do."
msgstr ""
"Si votre challenge est en ligne (par exemple web or pwn), alors vous devrez "
"nous donner une courte description de ce que vous voulez faire."
#: resources/templates/resources/create_challenge.html:13
msgid ""
"We may be able to help you or to give you resources such as dockerfiles."
msgstr ""
"Nous pouvons être en mesure de vous aider ou de vous fournir des ressources "
"comme des dockerfiles."
#: resources/templates/resources/create_challenge.html:14
msgid "We plan to make those resources publicly available in a near future."
msgstr ""
"Nous prévoyons de rendre ces ressources accessibles au public dans un avenir "
"proche."
#: resources/templates/resources/donate.html:7
msgid "Donate"
@ -159,7 +183,7 @@ msgid ""
"in the form of private events with the people of your choice."
msgstr ""
"La possibilité de jouer de nouveau aux CTF passés, avec des challenges qui "
"ne sont plus disponibles, sous la forme d'un événement privé avec les "
"ne sont plus disponibles, sous la forme d'un évènement privé avec les "
"personnes de votre choix."
#: resources/templates/resources/donate.html:18
@ -187,7 +211,7 @@ msgid ""
"for all."
msgstr ""
"Cependant, nous n'organiserons pas de CTF en temps limité réservé aux "
"membres, car cela serait équivalent à organiser des événements payants, and "
"membres, car cela serait équivalent à organiser des évènements payants, et "
"nous voulons que 42CTF reste GRATUIT pour tous."
#: resources/templates/resources/donate.html:26
@ -206,14 +230,14 @@ msgid ""
"cash, send us a message !"
msgstr ""
"Si vous aimeriez qu'on ajoute un autre moyen de paiement, ou si vous voulez "
"payer en liquide, envoyez nous un message !"
"payer en liquide, envoyez-nous un message !"
#: resources/templates/resources/donate.html:48
msgid ""
"If you're paying for your membership, don't forget to send us your first and "
"last name, as well as your 42CTF pseudo."
msgstr ""
"Si vous payez pour l'adhesion, n'oubliez pas de nous envoyer vos noms et "
"Si vous payez pour l'adhésion, n'oubliez pas de nous envoyer vos noms et "
"prénoms, ainsi que votre pseudo 42CTF."
#: resources/templates/resources/donate.html:49
@ -227,61 +251,69 @@ msgstr ""
#: resources/templates/resources/edit.html:7
msgid "Edit this page"
msgstr ""
msgstr "Modifier cette page"
#: resources/templates/resources/edit.html:12
msgid ""
"More information coming soon, but as you can guess it involves making a pull "
"request to your favorite"
msgstr ""
"De plus amples informations seront bientôt disponibles, mais comme vous "
"pouvez le deviner, vous pouvez faire une pull request sur votre bien aimé"
#: resources/templates/resources/tools.html:7
msgid "Recommended Tools"
msgstr ""
msgstr "Outils recommandés"
#: resources/templates/resources/tools.html:10
msgid "To get you started, we built a VM that you can simply import in"
msgstr ""
"Pour commencer, nous avons construit une VM que vous pouvez simplement "
"importer dans"
#: resources/templates/resources/tools.html:10
msgid "with a bunch of useful tools."
msgstr ""
msgstr "avec quelques outils utiles"
#: resources/templates/resources/tools.html:11
msgid "You can dowload this OVA"
msgstr ""
msgstr "Vous pouvez télécharger l'OVA"
#: resources/templates/resources/tools.html:11
msgid "here"
msgstr ""
msgstr "ici"
#: resources/templates/resources/tools.html:13
msgid "Here are the tools installed on the VM:"
msgstr ""
msgstr "Voici la liste des outils installés sur la VM:"
#: resources/templates/resources/tools.html:22
msgid ""
"If you want to solve the challenges on your own machine, we recommend you to "
"use a Linux operating system."
msgstr ""
"Si vous voulez résoudre les challenges sur votre propre machine, nous "
"recommandons l'utilisation de Linux."
#: resources/templates/resources/tools.html:23
msgid ""
"Most of the reverse challenges are ELF binaries and won't run on Mac OS or "
"Windows."
msgstr ""
"La plupart des challenges de reverse sont des binaies ELF et ne "
"fonctionneront pas sur MacOS ou Windows."
#: resources/templates/resources/tools.html:25
msgid "Additionnaly, you will need the following languages interpreters:"
msgstr ""
msgstr "De plus, vous aurez besoin des interpréteurs de langage suivants :"
#: resources/templates/resources/translate.html:7
msgid "Translate 42CTF"
msgstr ""
msgstr "Traduire 42CTF"
#: resources/templates/resources/translate.html:10
msgid "42CTF source code is publicly available on this"
msgstr ""
msgstr "Le code source de 42CTF est publiquement disponible sur ce"
#: resources/templates/resources/translate.html:11
msgid ""
@ -289,21 +321,29 @@ msgid ""
"contribute if you want to help us, by making the platform always more "
"accessible."
msgstr ""
"La traduction ne nécessite aucune compétence en programmation et constitue "
"un bon moyen de contribuer si vous souhaitez nous aider, en rendant la "
"plateforme toujours plus accessible."
#: resources/templates/resources/translate.html:12
msgid "We have a"
msgstr ""
msgstr "Nous avons un"
#: resources/templates/resources/translate.html:12
msgid ""
"describing how to translate pages with the Django internalization module."
msgstr ""
"qui décrit comment traduire des pages avec le module d'internalisation de "
"Django."
#: resources/templates/resources/translate.html:13
msgid ""
"We invite you to read it to know all the details, but it merely requires you "
"to edit text files, so you see, no programming skills required ;)"
msgstr ""
"Nous vous invitons à le lire pour connaitre tous les détails, mais il suffit "
"simplement de modifier des fichiers texte, donc vous voyez, aucune "
"compétence en programmation n'est requise ;)"
#: resources/templates/resources/translate.html:14
msgid ""
@ -311,7 +351,10 @@ msgid ""
"then open a pull request so that we can merge your contributions into our "
"repository."
msgstr ""
"Vous devrez forker le dépôt git, effectuer vos modifications, les push, puis "
"ouvrir une pull request afin que nous puissions merge vos contributions dans "
"notre repo."
#: resources/templates/resources/translate.html:15
msgid "Don't hesitate to reach for help on"
msgstr ""
msgstr "N'hésitez pas à demander de l'aide sur"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -34,7 +34,9 @@ msgid ""
msgstr ""
#: resources/templates/resources/42ctf.html:12
msgid "The challenges require participants to find sort of passwords called \\"
msgid ""
"The challenges require participants to find sort of passwords called \"flags"
"\" and to submit them on the platform."
msgstr ""
#: resources/templates/resources/42ctf.html:15

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -34,7 +34,9 @@ msgid ""
msgstr ""
#: resources/templates/resources/42ctf.html:12
msgid "The challenges require participants to find sort of passwords called \\"
msgid ""
"The challenges require participants to find sort of passwords called \"flags"
"\" and to submit them on the platform."
msgstr ""
#: resources/templates/resources/42ctf.html:15

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-14 19:36+0100\n"
"POT-Creation-Date: 2022-02-16 20:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -36,7 +36,9 @@ msgid ""
msgstr ""
#: resources/templates/resources/42ctf.html:12
msgid "The challenges require participants to find sort of passwords called \\"
msgid ""
"The challenges require participants to find sort of passwords called \"flags"
"\" and to submit them on the platform."
msgstr ""
#: resources/templates/resources/42ctf.html:15

View File

@ -9,7 +9,7 @@
<div class="ctf-body">
<h4>{% trans "A short introduction to CTF" %}</h4>
{% trans "CTF stands for Capture The Flag. It is a cybersecurity competition, where participants have to solve challenges of various categories to gain points and progress on the scoreboard." %}
{% trans "The challenges require participants to find sort of passwords called \"flags\" and to submit them on the platform."%}
{% blocktranslate %}The challenges require participants to find sort of passwords called "flags" and to submit them on the platform.{% endblocktranslate %}
<br><br>
<h4>{% trans "Functionment of 42CTF" %}</h4>