Browse Source

Fix race condition which could cause crahses on start

Alex Taber 6 years ago
parent
commit
e160be4b27
1 changed files with 16 additions and 4 deletions
  1. 16
    4
      app.py

+ 16
- 4
app.py View File

15
 """
15
 """
16
 
16
 
17
 from matrix_client.client import MatrixClient
17
 from matrix_client.client import MatrixClient
18
+
18
 import discord
19
 import discord
19
-from discord import Webhook, RequestsWebhookAdapter
20
+import requests
20
 import re
21
 import re
22
+
21
 from config import *
23
 from config import *
22
 
24
 
23
 matrix_client = MatrixClient(matrix_homeserver)
25
 matrix_client = MatrixClient(matrix_homeserver)
41
 guild = None
43
 guild = None
42
 channel = None
44
 channel = None
43
 emojis = {}
45
 emojis = {}
44
-webhook = None
45
 
46
 
46
 @discord_client.event
47
 @discord_client.event
47
 async def on_ready():
48
 async def on_ready():
52
 	channel = discord_client.get_channel(discord_channel)
53
 	channel = discord_client.get_channel(discord_channel)
53
 	guild = channel.guild
54
 	guild = channel.guild
54
 	emojis = {":{}:".format(emoji.name): "<:{}:{}>".format(emoji.name, emoji.id) for emoji in guild.emojis}
55
 	emojis = {":{}:".format(emoji.name): "<:{}:{}>".format(emoji.name, emoji.id) for emoji in guild.emojis}
55
-	webhook = Webhook.from_url(webhook_url, adapter=RequestsWebhookAdapter())
56
 
56
 
57
 @discord_client.event
57
 @discord_client.event
58
 async def on_message(message):
58
 async def on_message(message):
86
 
86
 
87
 def send_webhook(username, avatar_url, content, matrix_id):
87
 def send_webhook(username, avatar_url, content, matrix_id):
88
 	unmatched_messages_cache[username] = matrix_id;
88
 	unmatched_messages_cache[username] = matrix_id;
89
-	webhook.send(content=content, username=username, avatar_url=avatar_url)
89
+
90
+	payload = {}
91
+
92
+	payload['content'] = content
93
+	payload['avatar_url'] = avatar_url
94
+	payload['username'] = username
95
+
96
+	for tries in range(5):
97
+		r = requests.post(webhook_url, data = payload)
98
+		if r.ok:
99
+			return
100
+		else:
101
+			print(r.status_code)
90
 
102
 
91
 def prepare_discord_content(content):
103
 def prepare_discord_content(content):
92
 	content = content.replace("@everyone", "@\u200Beveryone")
104
 	content = content.replace("@everyone", "@\u200Beveryone")