Forum for English speaking Miranda NG users > Development
Discord protocol
mnguser:
Impressive. I briefly compared running standalone client next to a plugin.
First of all, amazing job. Discord standalone client consumes more than a 100mb of RAM, while miranda is under 10mb for many protocols at once. That's a major debloating for something as basic as text IM when voice chat is not required.
Online status seems to work fine, however, client sees itself as online in group chats lists even when invisible, but it's probably an intended behavior.
Most of the unimplemented stuff, unsurprisingly, goes under group chats.
Group chat nicknames are not working (everyone is displayed as accountname#nnnn, including own name). I assume, this is because discord user can have unique nickname on per-group basis and it's not supported yet.
Group chat motd/channel title is not displayed in group chat window.
Group chat direct highlights don't work yet (@nickname as seen in Discord becomes <@nnnnnnnnnnnnnnnnn> in Miranda).
Group chat channel highlights are not decyphered (<#nnnnnnnnnnnnnnnnnnn> instead of #channel in Discord).
Group chat log is named after internal channel id (nnnnnnnnnnnnnnnnnnn.log) instead of group#channel.log.
Users with group chat moderation rights are not marked or highlighted via color in the channel chat window in any way.
The biggest disadvantage compared to native discord is probably the lack of discord group chat history sync (i.e. listing messages sent per channel while offline). Is this supported in miranda globally? I've noticed this is most likely the case with skypeweb and other group chats, excluding third-party assisted (IRC BNC services).
Thanks for keeping desktop instant messaging alive.
Vulpix:
Yeah, group chats were somewhat "out of scope" (or rather the message syncing) when I posted bounty on the discord support ( https://github.com/miranda-ng/miranda-ng/issues/629#issuecomment-268559665 )
Ghazan has done an amazing job implementing it because for better or worse, the actual messaging is not documented in the API.
At any rate, miranda isn't all that great for group chat history and syncing right now; we don't save history (we can log it into a text file) and in general group chats are handled differently than regular 1on1 conversations.
But I'm sure ghazan could make it work eventually :p hehe.
Vulpix:
Experienced a random crash today after messaging someone:
--- Quote ---Miranda Crash Report from 6 Feb 2017 0:50:42. Crash Dumper v.0.0.5.2
Likely cause of the crash plugin: Discord protocol
Exception: Access Violation at address 6E550A21. Writing to address 00000064.
Stack Trace:
---------------------------------------------------------------
6E550A21 (MSVCR100 6E540000): (filename not available) (0): unlock
100083A9 (Discord 10000000): w:\miranda-ng\protocols\discord\src\gateway.cpp (237): CDiscordProto::GatewayThreadWorker
100085FB (Discord 10000000): w:\miranda-ng\protocols\discord\src\gateway.cpp (133): CDiscordProto::GatewayThread
1232CFBD (mir_core 12320000): c:\sources\miranda_ng_compilation\src\mir_core\src\threads.cpp (159): forkthreadex_r
768762C4 (KERNEL32 76860000): (filename not available) (0): BaseThreadInitThunk
77E60FD9 (ntdll 77E00000): (filename not available) (0): RtlSubscribeWnfStateChangeNotification
77E60FA4 (ntdll 77E00000): (filename not available) (0): RtlSubscribeWnfStateChangeNotification
1232CF94 (mir_core 12320000): c:\sources\miranda_ng_compilation\src\mir_core\src\threads.cpp (284): Thread_Wait
0966FE38 ((module-name not available) 00000000): (filename not available) (0): (function-name not available)
--- End quote ---
Another one after just logging in:
--- Quote ---Miranda Crash Report from 6 Feb 2017 3:07:58. Crash Dumper v.0.0.5.2
Likely cause of the crash plugin: Discord protocol
Exception: Access Violation at address 118484AA. Reading from address 1DD208E0.
Stack Trace:
---------------------------------------------------------------
118484AA (Discord 11840000): w:\miranda-ng\protocols\discord\src\gateway.cpp (265): CDiscordProto::GatewayThreadWorker
118485FB (Discord 11840000): w:\miranda-ng\protocols\discord\src\gateway.cpp (133): CDiscordProto::GatewayThread
1232CFBD (mir_core 12320000): c:\sources\miranda_ng_compilation\src\mir_core\src\threads.cpp (159): forkthreadex_r
768762C4 (KERNEL32 76860000): (filename not available) (0): BaseThreadInitThunk
77E60FD9 (ntdll 77E00000): (filename not available) (0): RtlSubscribeWnfStateChangeNotification
77E60FA4 (ntdll 77E00000): (filename not available) (0): RtlSubscribeWnfStateChangeNotification
1232CF94 (mir_core 12320000): c:\sources\miranda_ng_compilation\src\mir_core\src\threads.cpp (284): Thread_Wait
22F3FE8C ((module-name not available) 00000000): (filename not available) (0): (function-name not available)
--- End quote ---
ghazan:
--- Quote from: mnguser on 03 02 2017, 18:24:31 ---Impressive. I briefly compared running standalone client next to a plugin.
--- End quote ---
Well, the "standalone client" is nothing but a Chromium, that executes tons of js :) So it's not so hard to outperform it considering RAM usage, though Miranda always was (and forever will be) very concerned about memory footprint :-)
--- Quote from: mnguser on 03 02 2017, 18:24:31 ---First of all, amazing job. Discord standalone client consumes more than a 100mb of RAM, while miranda is under 10mb for many protocols at once. That's a major debloating for something as basic as text IM when voice chat is not required.
--- End quote ---
Thanks for the flattering review, the fact is that this plugin is in the very beginning, so your opinions and remarks are greatly appreciated. I'll implement them when I have spare time.
ghazan:
--- Quote from: mnguser on 03 02 2017, 18:24:31 ---Group chat nicknames are not working (everyone is displayed as accountname#nnnn, including own name). I assume, this is because discord user can have unique nickname on per-group basis and it's not supported yet.
--- End quote ---
done. also I implemented joining / leaving guilds on the fly
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version