• DDMsgReader - MCI Color Code Conversion

    From Codefenix@VERT/CONCHAOS to Nightfox on Sun Jan 8 12:31:26 2023
    Hi Nightfox,

    I made a local modification to DDMsgReader yesterday to convert Y-style MCI color codes on Amiga systems to CTRL-A codes.

    function convertYStyleMciCodesToCtrlA (str) {
    if (/\x19c/.test(str)) {
    return str.replace(/\x19c0/g, "\x01n\x01k" // Normal Black
    ).replace(/\x19c1/g, "\x01n\x01r" // Normal Red
    ).replace(/\x19c2/g, "\x01n\x01g" // Normal Green
    ).replace(/\x19c3/g, "\x01n\x01y" // Brown
    ).replace(/\x19c4/g, "\x01n\x01b" // Normal Blue
    ).replace(/\x19c5/g, "\x01n\x01m" // Normal Magenta
    ).replace(/\x19c6/g, "\x01n\x01c" // Normal Cyan
    ).replace(/\x19c7/g, "\x01n\x01w" // Normal White
    ).replace(/\x19c8/g, "\x01k\x01h" // High Intensity Black
    ).replace(/\x19c9/g, "\x01r\x01h" // High Intensity Red
    ).replace(/\x19c[Aa]/g, "\x01g\x01h" // High Intensity Green
    ).replace(/\x19c[Bb]/g, "\x01y\x01h" // Yellow
    ).replace(/\x19c[Cc]/g, "\x01b\x01h" // High Intensity Blue
    ).replace(/\x19c[Dd]/g, "\x01m\x01h" // High Intensity Magenta
    ).replace(/\x19c[Ee]/g, "\x01c\x01h" // High Intensity Cyan
    ).replace(/\x19c[Ff]/g, "\x01w\x01h" // High Intensity White
    ).replace(/\x19z0/g, "\x010" // Background Black
    ).replace(/\x19z1/g, "\x011" // Background Red
    ).replace(/\x19z2/g, "\x012" // Background Green
    ).replace(/\x19z3/g, "\x013" // Background Brown
    ).replace(/\x19z4/g, "\x014" // Background Blue
    ).replace(/\x19z5/g, "\x015" // Background Magenta
    ).replace(/\x19z6/g, "\x016" // Background Cyan
    ).replace(/\x19z7/g, "\x017"); // Background White
    } else {
    return str; // Just return the original string if no "Y" MCI codes found.
    }
    }

    Right now I'm just calling it everywhere msgbase.get_msg_body gets called, but realized today it might make more sense if it were added to attr_conv.js where the rest of the conversion functions live. :)

    There are also Q-style codes, which I didn't bother converting yet. I think they're older and less often seen.

    There are a handful of Amiga boards on ArakNet and I think fsxNet and FidoNet too, so thought it might be worth converting the Y-style codes. Hope you find it useful.

    |01<|09co|03d|11e|15ƒ|11e|03n|09ix|01>|07

    ---
    ■ Synchronet ■ -=[ ConstructiveChaos BBS | conchaos.synchro.net ]=-
  • From Nightfox@VERT/DIGDIST to Codefenix on Mon Jan 9 10:24:13 2023
    Re: DDMsgReader - MCI Color Code Conversion
    By: Codefenix to Nightfox on Sun Jan 08 2023 12:31 pm

    I made a local modification to DDMsgReader yesterday to convert Y-style MCI color codes on Amiga systems to CTRL-A codes.

    function convertYStyleMciCodesToCtrlA (str) {

    There are a handful of Amiga boards on ArakNet and I think fsxNet and FidoNet too, so thought it might be worth converting the Y-style codes. Hope you find it useful.

    I'm not familiar with Y-style MCI color codes. I didn't know there were message boards where people were using those, but it would be good to support converting them. The only issue is if someone wants to use one of the character combinations in their message and don't intend for it to be a color code, it could be converted and then it would change the color but the person's message would not appear as intended.

    Right now I'm just calling it everywhere msgbase.get_msg_body gets called, but realized today it might make more sense if it were added to attr_conv.js where the rest of the conversion functions live. :)

    Yes, attr_conv.js would be the best place for that. :)
    Most of the conversion functions in attr_conv.js are there to support Synchronet's settings for extra attribute codes (SCFG > Message Options > Extra Attribute Codes), where you can toggle whether those other attribute codes should be converted and used as color codes in messages. Currently, Y-style MCI color codes are not in there, but I suppose DDMsgReader could just go ahead and convert them by default (or maybe there could be a setting in DDMsgReader.cfg for whether or not to convert those).

    Nightfox

    ---
    ■ Synchronet ■ Digital Distortion: digitaldistortionbbs.com