summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-05-31 17:17:27 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2020-05-31 17:17:27 +0200
commit72ef0918580d015d11c4fc464a424e6411dfdc3d (patch)
tree4f6b03f518c39cb2cfe4db1e0e24f006053af0db
parentfd3d958533a5d438b97e5d1d703ef6afab9fb46a (diff)
Updates code for discord.py 1.0.0+ support.
-rw-r--r--jh-discord.py46
1 files changed, 28 insertions, 18 deletions
diff --git a/jh-discord.py b/jh-discord.py
index 57116bf..af849c3 100644
--- a/jh-discord.py
+++ b/jh-discord.py
@@ -39,14 +39,15 @@ parser.add_argument(
)
args = parser.parse_args()
-is_connected = False
server = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
client = discord.Client()
server_mutex = Lock()
+already_disconnected = False
def get_jh_reply ():
global server
+ server_mutex
is_done = False
result = ""
jh_reply = b""
@@ -72,19 +73,34 @@ def get_jh_reply ():
return result
+
@client.event
-async def on_ready():
- global is_connected
- global server
+async def on_disconnect ():
+ global already_disconnected
+
+ if (not already_disconnected):
+ print('Disconnecting from JH network from on_disconnect?!')
+ time.sleep(10)
+ server.shutdown()
+ server.close()
+
+@client.event
+async def on_connect ():
global args
+ global client
+ global server
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
- if (not is_connected):
+
+ try:
server.connect(args.destination)
- is_connected = True
+ except Exception as exception:
+ print('Could not connect to JH network: ' + str(exception))
+ time.sleep(10)
+ client.close()
@client.event
async def on_message(message):
@@ -110,7 +126,7 @@ async def on_message(message):
if (args.print_chat):
print(
- str(message.server)
+ str(message.guild)
+ "#"
+ str(message.channel.name)
+ " <"
@@ -123,20 +139,14 @@ async def on_message(message):
print("#" + str(message.channel.name) + " <- " + str(result.encode('utf-8')))
if (len(result) > 0):
- await client.send_message(message.channel, result)
+ await message.channel.send(result)
except Exception as exception:
if (has_lock):
server_mutex.release()
print(exception)
+ time.sleep(10)
+ server.shutdown()
+ server.close()
+ client.close()
-def exit_if_disconnected ():
- while True:
- time.sleep(61)
-
- if ((not client.is_logged_in) or client.is_closed):
- print("Timed out.")
- server.close()
- sys.exit()
-
-threading.Thread(target=exit_if_disconnected).start()
client.run(args.token)