• [Mystic] GE, MPL, and USES

    From Digital Avatar@46:1/145 to All on Friday, September 27, 2019 19:16:13
    So here's a fun question: You're trying to design a replacement for newuserapp.mpx that is configurable with respect to what fields it asks for
    (on the idea it might be useful to others and they don't necessarily want to ask for the same information you do). So you go about listing all the
    different fields that might be asked for and what USER variables they correspond to in MPL ... and then you see it. There's a great big gap where certain variables appear to be missing. So, for example, there's no variable exported for the user's HomePhone or DataPhone (corresponding to ThisUser.HomePhone and ThisUser.DataPhone, respectively). There are other examples, but I won't boor you with the details. (And no, I don't really care about anyone's phone number, but I'm just using it as an example and it was
    the first I could think of.)

    So this leads you to consider some workaround using StuffKeys and MenuCmd to try to hook the GE command to accept validated data for the fields that
    aren't otherwise exported into their own variables in MPL. However, this
    raises two obvious questions:

    1. Will input to StuffKeys be buffered such that when MenuCMD('GE','foo') is invoked it will be sitting there waiting to be consumed by the GE handler? I mean, that is its purpose, right? I'm not misreading the documentation, am I?

    2. Does GE even work in this condition? What I mean is -- is GE strictly for editing an existing user record stored in the database, or does it modify a temporary record in memory such that it would be suitable for handling
    new user applications as in this example?

    ........this would be the point where g00r00's presence would be welcome.

    --- Mystic BBS v1.12 A43 2019/03/03 (Windows/32)
    * Origin: d i s t o r t i o n // d1st.org (46:1/145)
  • From xqtr@46:20/102 to Digital Avatar on Saturday, September 28, 2019 13:31:25
    1. Will input to StuffKeys be buffered such that when
    MenuCMD('GE','foo') is invoked it will be sitting there waiting to be consumed by the GE handler? I mean, that is its purpose, right? I'm not misreading the documentation, am I?

    I can only answer for this, as i have used it before... if you also pass a CR in the keyboard, it will fill the field and continue. If you dont, pass the
    CR, it will wait for response in the field.

    :: XQTR :: Another Droid BBS :: andr01d.zapto.org:9999 :: xqtr@gmx.com

    --- Mystic BBS v1.12 A43 2019/03/03 (Raspberry Pi/32)
    * Origin: Another Droid BBS # andr01d.zapto.org:9999 (46:20/102)
  • From Accession@46:1/100 to Digital Avatar on Saturday, September 28, 2019 08:07:22
    Hello Digital,

    On Fri Sep 27 2019 19:16:12, Digital Avatar wrote to All:

    So here's a fun question: You're trying to design a replacement for newuserapp.mpx that is configurable with respect to what fields it
    asks for (on the idea it might be useful to others and they don't necessarily want to ask for the same information you do). So you go
    about listing all the different fields that might be asked for and
    what USER variables they correspond to in MPL ... and then you see it. There's a great big gap where certain variables appear to be missing.
    So, for example, there's no variable exported for the user's HomePhone
    or DataPhone (corresponding to ThisUser.HomePhone and
    ThisUser.DataPhone, respectively). There are other examples, but I
    won't boor you with the details. (And no, I don't really care about anyone's phone number, but I'm just using it as an example and it was
    the first I could think of.)

    Holy sheeyat batman! I set my board back up after a long hiatus back in '04, and am fairly certain I've known you for most of that time. So for ~15 years, I
    have never seen you show so much interest in setting up a BBS. Not really sure why I brought it up, but it's pretty cool to see, to be honest. When do we get to come troll your oneliners and message areas? ;)

    As for the above, is it just in this newuserapp.mpx you're seeing this stuff missing? I was led to believe newuserapp.mpx was like a starter platform type thing, and never finished. Just something someone could base something of their
    own off of. It's possible whoever made it didn't care much about phone numbers either, so just left them out.

    However, I vaguely recall (and actually, sometime in the last couple/few months) someone mentioning that some of these variables went missing at some point from MPL altogether?

    2. Does GE even work in this condition? What I mean is -- is GE
    strictly for editing an existing user record stored in the database,
    or does it modify a temporary record in memory such that it would be suitable for handling new user applications as in this example?

    Unfortunately, I've never been able to grasp MPL. I've been able to edit existing ones to make them do what I want, but maybe since I never had much pascal experience, or the severe lack of documentation for a n00b to be able to
    understand anything, I never got into it. Every mod I've ever made have been menu editing, with lots of MCI codes for X/Y coordinate positioning. ;)

    ........this would be the point where g00r00's presence would be
    welcome.

    Agreed. Unfortunately, when he leaves for long periods of time and I run into things I can't figure out or get answered, I tend to leave it all alone for lengthy intervals. Which is probably why I haven't used Mystic as my main BBS since 1.08A31. Then again, not actually taking the plunge and *making* it my main system leaves me with the comfort of already having a working system, so it makes trying to fix things on a secondary system not as important. ;)

    After the last update, I had a couple questions that have still been unanswered. Either nobody else using Mystic has run into the same issue, or I'm
    the only person going about doing things the way I have been and it's my own damn fault. *shrug*

    Regards,
    Nick

    ... "I don't suffer from insanity; I enjoy every minute of it."
    --- GoldED+/LNX 1.1.5-b20181215
    * Origin: thePharcyde_ distribution system (Wisconsin) (46:1/100)
  • From Digital Avatar@46:1/145 to xqtr on Saturday, September 28, 2019 10:08:48
    on 28 Sep 2019, xqtr said...

    1. Will input to StuffKeys be buffered such that when MenuCMD('GE','foo') is invoked it will be sitting there waiting to be consumed by the GE handler? I mean, that is its purpose, right? I'm n misreading the documentation, am I?

    I can only answer for this, as i have used it before... if you also pass
    a CR in the keyboard, it will fill the field and continue. If you dont, pass the CR, it will wait for response in the field.

    Excellent. Precisely what I needed to know. Thanks.

    --- Mystic BBS v1.12 A43 2019/03/03 (Windows/32)
    * Origin: d i s t o r t i o n // d1st.org (46:1/145)
  • From Digital Avatar@46:1/145 to Accession on Saturday, September 28, 2019 10:16:11
    on 28 Sep 2019, Accession said...

    Holy sheeyat batman! I set my board back up after a long hiatus back in '04, and am fairly certain I've known you for most of that time. So for ~15 years, I have never seen you show so much interest in setting up a BBS. Not really sure why I brought it up, but it's pretty cool to see,
    to be honest. When do we get to come troll your oneliners and message areas? ;)

    I've wanted to run a board for some time, but there was always a reason not
    to. After buying an RPi I was able to use it as a development environment for the board, so things have progressed swiftly. I'm really only able to work on it on weekends, so it's taking a while. Also, I've convinced myself that I should run it on AWS (probably under Devuan) since I can't stand the noise of the fan I bought for the RPi4. Overall I'd say it'll be up in a few weeks.

    As for the above, is it just in this newuserapp.mpx you're seeing this stuff missing? I was led to believe newuserapp.mpx was like a starter

    No, I'm saying that the user variables in question don't have corresponding variables that can be accessed from MPL by invoking 'Uses USER'. I know since
    I checked the source code for the last open source release. It's possible
    some of these things were added more recently (in which case it's a matter of trolling the WhatsNew of subsequent versions to find them), but for shit like the user's phone# and zipcode? Come on.

    Unfortunately, I've never been able to grasp MPL. I've been able to edit existing ones to make them do what I want, but maybe since I never had much pascal experience, or the severe lack of documentation for a n00b
    to be able to understand anything, I never got into it. Every mod I've

    If you're not into programming then it'll probably look like meaningless crap to you. It's not the language, I can tell you that much. I never used Pascal
    at all. I was always a C guy. Nevertheless, the syntax is pretty easy to
    grasp. Just reading some of the example MPLs out there is enough to get an
    idea of what the rules are, so it's pretty rare that I have to look to the documentation to figure out how something's done.

    to be able to understand anything, I never got into it. Every mod I've ever made have been menu editing, with lots of MCI codes for X/Y coordinate positioning. ;)

    MCI codes for positioning? Ew. That shit's the bane of my existence. GotoXY
    for the win.

    After the last update, I had a couple questions that have still been unanswered. Either nobody else using Mystic has run into the same issue, or I'm the only person going about doing things the way I have been and it's my own damn fault. *shrug*

    Well, that's like that pause on connection I ran into earlier... nobody
    besides Maskreet's replied to that. *shrug*

    --- Mystic BBS v1.12 A43 2019/03/03 (Windows/32)
    * Origin: d i s t o r t i o n // d1st.org (46:1/145)
  • From Accession@46:1/100 to Digital Avatar on Sunday, September 29, 2019 09:05:56
    Hello Digital,

    On Sat Sep 28 2019 10:16:10, Digital Avatar wrote to Accession:

    No, I'm saying that the user variables in question don't have corresponding variables that can be accessed from MPL by invoking
    'Uses USER'. I know since I checked the source code for the last open source release. It's possible some of these things were added more recently (in which case it's a matter of trolling the WhatsNew of subsequent versions to find them), but for shit like the user's phone#
    and zipcode? Come on.

    Yep, and as I said.. I think there was someone else somewhat recently that mentioned those fields missing also.

    to be able to understand anything, I never got into it. Every mod
    I've ever made have been menu editing, with lots of MCI codes for
    X/Y coordinate positioning. ;)

    MCI codes for positioning? Ew. That shit's the bane of my existence. GotoXY for the win.

    While you type GotoXY however many times, I just use a pipe code in the ansi (or string) (pipe)[Xxx(pipe)[Yyy. So it's no more difficult, and maybe even a little easier seeing as though you just have to redraw the screen while logged into the board to test and see if it works.. rather than re-compiling your MPL and possibly having to restart MIS. *shrug*

    Well, that's like that pause on connection I ran into earlier...
    nobody besides Maskreet's replied to that. *shrug*

    Right! Mine was actually a pause was mysteriously added into my last callers. It would list the first node, then pause. Hit enter and it would list the rest of the nodes in the proper location just fine. I had to actually add a PO MCI code in some of the last caller display strings.. which I've _never_ had to do before.

    Regards,
    Nick

    ... "Take my advice, I don't use it anyway."
    --- GoldED+/LNX 1.1.5-b20181215
    * Origin: thePharcyde_ distribution system (Wisconsin) (46:1/100)
  • From Analog@46:1/123 to Accession on Wednesday, December 04, 2019 19:11:10
    Unfortunately, I've never been able to grasp MPL. I've been able to edit existing ones to make them do what I want, but maybe since I never had much pascal experience, or the severe lack of documentation for a n00b

    Just an FYI, I've been reversing the USERS.DAT file for a few weeks. There
    are a few fields I can't figure out. One thing I was always complaining to myself about is the even more lack of support in the PYTHON mystic bbs
    module. MPL isn't bad, but PYTHON could be really capable of creating some
    nice interfaces for MYSTIC. One thing in particular, I wrote a MPY file to detect any new message since the the user last logged on. However, you have
    no access to the users last login field. I also wanted to toggle FLAGS from
    MPY which isn't supported yet.

    So what I've done is create a single user USERS.DAT and put known responses
    to all the USER's fields in MYSTIC user editor. Then whipped out my Hex
    Editor and started finding offsets of all the data. The hardest was figuring out the TIME. It's in EPOC time (https://www.epochconverter.com).

    Anyways, I plan on releasing the PYTHON support module that will at least let you edit users. Of course the password is well encrypted so it doesn't open
    up any cans of worms.

    Cheers,
    Analog

    --- Mystic BBS v1.12 A43 2019/03/03 (Windows/32)
    * Origin: deadbeatz.org (46:1/123)
  • From xqtr@46:20/102 to Analog on Thursday, December 05, 2019 16:23:50
    complaining to myself about is the even more lack of support in the
    PYTHON mystic bbs module. MPL isn't bad, but PYTHON could be really capable of creating some nice interfaces for MYSTIC. One thing in

    ...hmmm it is :)

    particular, I wrote a MPY file to detect any new message since the the user last logged on. However, you have no access to the users last login field. I also wanted to toggle FLAGS from MPY which isn't supported yet.

    Check the records.112 file inside the /doc dir., in the RecUser record it has
    a value for LastOn: Longint ;)

    field. I also wanted to toggle FLAGS from MPY which isn't supported yet.

    You can use Python bit operators to do so. The field you want is named Flags, also in the RecUser record and above that, there are the flags you can use. Check my PyJam python source code to see how to use bit operators.

    :: XQTR :: Another Droid BBS :: andr01d.zapto.org:9999 :: xqtr@gmx.com

    --- Mystic BBS v1.12 A43 2019/03/03 (Raspberry Pi/32)
    * Origin: Another Droid BBS # andr01d.zapto.org:9999 (46:20/102)