Mystic Relay Chat by Darryl Perry 2015 Version 0.01 First release Version 0.02 Second release Version 0.03 Change the way the directories are represented. Moved the mrc_client.py to the main Mystic dir Used the mrc_config.py include file so that no editing will be needed on the client Added a means to shutdown the client from the command line. (CQUIT) Version 0.04 Added /BBSES command that will show all the connected clients, even if nobody is in chat. Version 0.05 Fixed an issue where if a user type /command (slash)command in the middle of the line, it would not get displayed. MRC now checks the first char of the line to determine if it is a command or not. Added time.sleep(0.25) to the while loop of the mrc_client.py client. It apparently was pegging out the CPU on some hosts. Version 0.06 Added code to the mrc_client.py to support windows as well as linux. Moved the WHOON and BBSES functionality from the MPL script to the python client. Added /channel command to show who all is in your channel with you. Added /chatting command to show only those users in chat. It will show chatters in all channels Version 0.07 Added code that I hope will help to fix the timeout issues. Reports of clients being connected but the port is closed. Attempted to make it so the same client app can be used for windows and linux. Fixed an issue where the MPL would try to delete a file without having closed it first. This caused an infinite loop in windows instances. The /chatting and /channel commands will now show what channel the user is in on his local BBS. In the future, I expect to make it so that when a client connects, it will download the chatroom.dat on the the server. Version 0.08 Still having reports of Linux users still having issues with keep alive. Tried some new things to see if it would help. Added private messaging to the MPL app. The /T, /MSG and /TELL commands will allow users to send a private message to a connected user. However, if the same user is connected on multiple BBSes, then that user will receive the message on all instances. Added the /CLS command. When invoked, it will clear out the text screen. Added the /SCROLL command. MRC has a 300-line buffer. When invoked, the user can scroll up and down, or page up (CTL-R) or page down (CTL-C) and view previous texts. Fixed the /CHANNEL command. It will now show who is in the channel with you. Fixed an issue with the /WHOON command. The /WHOON would kill the client if it encounted a user that was not in chat. Version 0.09 Discovered that the private message option (/T, /MSG, /TELL) would not work if the target user had a space in the name. Now the target user will work if only a partial name matches. Added the /ROOMS command. /ROOMS will shows all non-default rooms. Version 0.10 FULL Included mrc_server.py with the archive. It is now possible to create separate independent MRC chat networks. Version 1.0 <05/25/2016> This is a complete revamp of MRC. - Eliminated local chatrooms. This was a problem because I didn't have a good method for updating all the chatrooms on the local BBS, if somebody changed the topic. Opted instead for using a server-side chatroom list. + Added IRC-like chatrooms. The chatrooms are now maintained on the server, and not on the individual BBSes. These bahave more like IRC, where they only exist when somebody is actually in the room. Once all users leave the room, the room is eliminated. ! fixed an issue where the MPL client would seem to hang. If somebody hit a key, it would then wait for input, and stop all incoming text from being displayed until some text was entered. It now will check to see if or were hit before going into input line mode. If or were hit, it would just go back into waiting mode. + Added the ability for individual users to change their name prompts and their entrance/exit prompts. Full MCI color codes are supported. Type /SET HELP for a list of configurable prompts. Type /SET LIST to see your current prompt settings + Users can now set their default room. Use the '/set defaultroom myroom' command to define your default room. You will be taken to that room when you join into chat. + Added the /LIST command to see the list of chatrooms with their respective topics. ! Revamped much of the way MRC did its job. Move many of the tasks from the client to the server. ! MRC is now significantly different than the local Mystic teleconference, that it no longer uses the ANSITELE and TELEHELP ansi files. MRC now needs the MRCMAIN.ANS, MRCHELP.ANS and MRCSCRL.ANS in the Mystic TEXT directory. + The /SCROLL function has been changed. Previously, the chat text was held in memory. That has been eliminated, and now the chat log is held in a file in the user's home directory. + The chat log can now be downloaded. Use /DLCHATLOG to download your current chat log. You will be prompted as to whether or not to strip the color codes. + Added a timestamp to the chat. The user has the means to turn it off or on, and to decide which format (12 or 24 hour) Use '/SET USECLOCK ON (or TRUE) or OFF (or FALSE)' to turn it on or off Use '/SET CLOCKFORMAT 12 or 24' to set to 12 or 24 hour clock + Added the /VERSION command. This will show the user the MRC versions of the Client MPL, the mrc_client.py and mrc_servery.py Version 1.1 ! Fixed an issue with /CLS in the MPL client. It added two blank lines to the chat window after it was all cleared. + Fixed up the display in the MPL client so that column 80 will get cleared instead of having stray chars sitting there. ! Removed the function that clears the server lists after x amount of minutes. There doesn't seem to be a need for this like I thought, and it was causing confusion in the lists. ! Fixed an issue in the MPL client where using /JOIN with no following room name would result in a blank room name. + Changed the way that /BBSES displays the list of BBSes. Previously, it listed all the BBSES on a single line. Unfortunately, the line length was too long for MPL to handle, so it was not displaying all the BBSes in the list. /BBSES now shows each BBS on a line all by it self. + Added a client side chat log. It is found in MYSTIC/DATA/MRC/MRCCHAT.LOG This log will gather all chats even if nobody local is in chat. ! Fixed issue in the server where it would crash if it tried to receive data from a client that had dropped. + Added the Message Of the Day functionallity. Use /MOTD on the client to see the contents of the motd.txt file on the server. The MPL client will cause the MOTD to be displayed at user login.