patch chat and game invite

This commit is contained in:
Xamora 2024-05-15 09:53:44 +02:00
parent f4b7a50269
commit 1ad9d0897b
8 changed files with 33 additions and 27 deletions

View File

@ -20,7 +20,7 @@ class AskView(APIView):
data: dict = request.data
asker_id = request.user.pk
asked_id = data["asked"]
asked_id = data.get("asked")
if (asked_id is None):
return Response(status=status.HTTP_400_BAD_REQUEST)
@ -38,7 +38,7 @@ class AskView(APIView):
def delete(self, request):
data: dict = request.data
asker_id = data["asker"]
asker_id = data.get("asker")
asked_id = request.user.pk
if (asker_id is None):
@ -69,8 +69,6 @@ class AskView(APIView):
return Response(status=status.HTTP_204_NO_CONTENT)
return Response(status=status.HTTP_200_OK)
class AskAcceptView(APIView):
permission_classes = (permissions.IsAuthenticated,)
@ -80,7 +78,7 @@ class AskAcceptView(APIView):
data: dict = request.data
asker_id = data["asker"]
asker_id = data.get("asker")
asked_id = request.user.pk
if (asker_id is None):
@ -92,7 +90,7 @@ class AskAcceptView(APIView):
asker = User.objects.get(pk=asker_id)
asked = request.user
id_game = GameModel().create({asker, asked}).pk
id_game = GameModel(game_type="pong").create([asker, asked]).pk
notice_manager.accept_game(asker, request.user.username, id_game)

View File

@ -1,3 +1,7 @@
body {
overflow: hidden;
}
#gameCanvas {
display: block;
}

View File

@ -24,6 +24,8 @@ export default class Notice {
this._socket.onmessage = async message => {
const data = JSON.parse(message.data);
console.log(data);
if (data.type === 'friend_request') {
this.friend_request(data.author);
} else if (data.type === 'new_friend') {

View File

@ -24,7 +24,7 @@ class Channel {
this.messages.push(new Message(
this.channel,
data.author,
data.author_id,
data.content,
data.time,
));

View File

@ -16,7 +16,6 @@ export default class Channels {
return undefined;
const data = await response.json();
//console.log(data)
this.channel = new Channel(this.client, data.id, members_id, data.messages, reload);
}

View File

@ -280,6 +280,7 @@ class Game {
PADDLESPEED: 3,
BALLRADIUS: 5,
BALLSPEED: 2,
BALLMAXSPEED: 4,
BALLSPEEDINCR: 0.15,
MAXBOUNCEANGLE: 10 * (Math.PI / 12),
MAXSCORE: 2
@ -526,13 +527,13 @@ class Game {
let normRelIntersectY = relativeIntersectY / this.def.PADDLEHEIGHT / 2;
let bounceAngle = normRelIntersectY * this.def.MAXBOUNCEANGLE;
ball.speed += this.def.BALLSPEEDINCR;
ball.speed += ball.speed >= this.def.BALLMAXSPEED ? 0 : this.def.BALLSPEEDINCR;
ball.vx = ball.speed * side * Math.cos(bounceAngle);
ball.vy = ball.speed * -Math.sin(bounceAngle);
}
keyUpHandler(ev) {
let attributes = ev.originalTarget.attributes;
let attributes = ev.target.attributes;
let key = ev.key === undefined ? `${attributes.direction.value}${attributes.user_id.value}` : ev.key;
@ -542,7 +543,7 @@ class Game {
}
keyDownHandler(ev) {
let attributes = ev.originalTarget.attributes;
let attributes = ev.target.attributes;
let key = ev.key === undefined ? `${attributes.direction.value}${attributes.user_id.value}` : ev.key;

View File

@ -155,7 +155,7 @@ export default class extends AbstractView {
let messages = await this.display_messages(chat);
// Input pour rentrer un message
let chat_input = document.getElementById("chat-input") || document.createElement("input");
let chat_input = document.getElementById("chat_input") || document.createElement("input");
chat_input.id="chat_input";
chat_input.type="text";
chat_input.name="message";
@ -186,8 +186,7 @@ export default class extends AbstractView {
// Scroll to the bottom of messages
messages.scrollTop = messages.scrollHeight;
this.display_invite();
await this.display_invite();
}
async display_messages(chat) {
@ -216,7 +215,13 @@ export default class extends AbstractView {
let i = 0;
this.channelManager.channel.messages.forEach((message) => {
if (messages.children[i] == null || message.content != messages.children[i].innerText) {
let content, child_inner;
if (messages.children[i] != null) {
child_inner = messages.children[i].innerText.toLowerCase().replace(/\s/g, '');
content = message.content.toLowerCase().replace(/\s/g, '');
}
if (messages.children[i] == null || content != child_inner) {
let text = document.createElement("p");
let date = new Date(message.time);
text.title = date.toLocaleString("fr-FR");

View File

@ -108,11 +108,8 @@ WSGI_APPLICATION = 'transcendence.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'HOST': 'django-db',
'NAME': os.environ['POSTGRES_DB'],
'USER': os.environ['POSTGRES_USER'],
'PASSWORD': os.environ['POSTGRES_PASSWORD'],
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}