[REQ] People online - Printable Version -Shoutbox (https://shoutbox.menthix.net) +-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58) +--- Forum: Messenger Plus! for Live Messenger (/forumdisplay.php?fid=4) +---- Forum: Scripting (/forumdisplay.php?fid=39) +----- Forum: Plug-Ins (/forumdisplay.php?fid=28) +------ Thread: [REQ] People online (/showthread.php?tid=54031) [REQ] People online by huwnet on 12-18-2005 at 09:07 PM
Often people will ask me who is online on Messenger. RE: [REQ] People online by J-Thread on 12-18-2005 at 10:10 PM
That's a really nice idea! It isn't even hard to make, let's not say it's easy... RE: [REQ] People online by Supersonicdarky on 12-18-2005 at 10:18 PM
i'd love that! I always have to type the people who are online, especially when u have about 30 RE: [REQ] People online by DJKAL on 12-18-2005 at 10:31 PM yup agreed...a good plugin ida RE: [REQ] People online by Itsme-HcK on 12-19-2005 at 10:13 PM
Hmm, to push myself more to program something, I will put this on my to-do list too. (Just as the SendStatus thingy.) RE: [REQ] People online by DJKAL on 12-19-2005 at 10:15 PM
quote: as a question ... would those of us who have ALREADY posted in this post be able to be BETA testers for you? RE: [REQ] People online by CookieRevised on 12-19-2005 at 10:21 PM
Somebody is already busy with it RE: [REQ] People online by Itsme-HcK on 12-19-2005 at 10:27 PM
DJKAL: Sure, I'll make a new topic containing the Beta, so everyone can test it. RE: [REQ] People online by DJKAL on 12-19-2005 at 10:31 PM cool...tha'd be great ...good luck with it RE: RE: [REQ] People online by CookieRevised on 12-19-2005 at 10:44 PM
quote:The topic doesn't say much. Read the thread It is the same as far as I can decypher from the OP's request there. Also, Matty's code is exactly what is requested here. RE: [REQ] People online by Itsme-HcK on 12-20-2005 at 07:23 PM
Not entirely. RE: [REQ] People online by CookieRevised on 12-20-2005 at 11:39 PM
quote:That is exactly the same, only the output is different. The code shown by Matty is simply a quick example, but is also basically the whole plugin. What you do after you got your list with online buddies doesn't really matter, and isn't a big part of to the core of the plugin. Matty simply added it to a listview for the sole purpose of keeping the code short and as a quick example; you can add the contact name to whatever you want; that doesn't matter to show how the plugin would work. The important part of the plugin is how to get them, which is exactly the same. In other words, simply change a line or two of that sample code and you have your plugin. RE: RE: [REQ] People online by huwnet on 12-21-2005 at 03:35 PM
quote: Sorry for not making myself clear . Looking forward to the beta RE: [REQ] People online by DJKAL on 12-21-2005 at 04:06 PM
quote: what would be the use of this ..... you can show only online contacts in WLM 8.0 anyway RE: [REQ] People online by haydos on 12-21-2005 at 04:18 PM
quote:He is trying to say that you could show your online contacts from a specific group to a contact, not what the user will see in the contact list. eg. (pretend the following is a conversation window) My friend says: hey who is online? Me says: "/xwonline <groupname>" Of course, instead of /xwonline <groupname> appearing, all online contacts in the group would be displayed ie. the final result would be My friend says: hey who is online? Me says: John Bill etc etc etc RE: [REQ] People online by Itsme-HcK on 12-21-2005 at 10:02 PM
Finally someone who understands. RE: [REQ] People online by Supersonicdarky on 12-21-2005 at 10:10 PM
you should add a feature to choose to send their emails/names/custom names RE: [REQ] People online by Itsme-HcK on 12-21-2005 at 10:31 PM
Already thought of that. RE: RE: [REQ] People online by CookieRevised on 12-22-2005 at 01:03 AM
quote:Ok, but that's another issue. Though the core of the program will exactly be the same as what is shown in that other thread. quote:If I may suggest something, do it in another way (which looks a bit more logical and above all more generic IMHO) eg: /xwhois [required status] [groupname] [mask] Make status the first parameter, as this is a required parameter (can't be "nothing") and groupname and mask are optional. (required parameters always come before optional parameters) This also reduces the need for the "status:" prefix. eg: /xwhois online /xwhois away <of the group> friends (italic is imaginary of course; those are the words which makes the whole command into an logical english sentence) Also, and what my main suggestion is, don't forget about the possebility you have with tags. A plugin can also output tags. With this the user has all the possebilities he whishes. And it doesn't require much from the plugin/programmer itself... eg: - (!XWHOIS_AWAY) will show everybody who is away in one string (seperated by whatever is set in the preferences of the plugin; by default a comma) - (!XWHOIS_ONLINE_FRIENDS) The user can make his own quicktext in that way. eg: quicktext alias: /showbusyfamily quicktext text: These are the ones from my family who are busy: (!XWHOIS_BUSY_FAMILY) In fact you can program your plugin around this tag, and actually make the parsing of the command a kind of "special case" of that tag-use. eg: The main routine is to parse the tag and is what the plugin is about: seperating the different fields inside the tag. Now you can make the routine for the command to actually call this same parsing tag routine (with the appropiate parameters). In other words, you only need to have 1 major parsing routine. ------- Anyhow, that's how I would make it (in VB ... if I had the time). Nevertheless I look forward to see what you make it into (in C++, which is better as it doesn't require runtimes) . Iether way, it has great potential for being a much used plugin... go for it [*] [*]this said, it should even be a standard function in Plus IMHO! RE: [REQ] People online by Itsme-HcK on 12-22-2005 at 07:10 AM
Hehe, thanks. (I hope) RE: [REQ] People online by CookieRevised on 12-22-2005 at 11:33 AM
Then what are you going to show when the user simply types /xwhois or uses only (!xwhois)? And what to show when there is no status is given (or a certain other parameter is not given for that matter)? I assume in that case that the plugin will use what has been set as default in the preferences of the plugin (hint )? RE: [REQ] People online by Chestah on 12-22-2005 at 11:57 AM
Just think about the audience for this plugin when your making it and the level of user-friendlyness it provides. CookieRevised's method is very simple and easy to understand. The way your doing it at the moment looks complex (syntax) and doesn't follow the syntax's in which other Msgplus! plugins follow. RE: [REQ] People online by CookieRevised on 12-22-2005 at 12:22 PM
hmmm dunno... his current worked out method is indeed a bit more complex, but has some advantage also though (that the order doesn't matter), although this comes with the disadvantage that you need those "status:", "group:" prefixes.... RE: [REQ] People online by Itsme-HcK on 12-22-2005 at 01:27 PM
You've got a point there, but your way won't work either. RE: [REQ] People online by CookieRevised on 12-23-2005 at 01:22 AM
quote:what wouldn't work? The multiple stuff? It is perfectly possible though. In case the user wants more group names or statusses, he can always create a quicktext calling the whois command/tag multiple times, since a contact can only be in one group at the time and only have one status at the time. In fact, you do not need a command at all for this whole plugin idea, only 1 tag (with 2 parameters). bare with me (it's very long as all this is hard to explain (and I like writing long stuff they say -I wonder why- )): quote:I don't recommend using the comma as delimiter. It would work for the statusses (because a comma isn't part of any status text), but not for the groups. Because a comma is a much used character, also in group names themselfs. And there is another common and more important problem which I already explained, but I wish to emphasize again using your latest examples as a guide: Using text as a parameter isn't that strait forward to implement as you might think (though, I don't know what you might think of course ). Especially if prefixes used in parameters can actually also be part of the text you need to enter after the prefixes. And especially in cases were parameters do not have a fixed order, you really making it yourself much harder to code this and to avoid bugs. eg: /xwhois group:friends group:family What is the actual first group name here? "friends" or "friends group" or maybe even "friends group:family"? All three are perfectly possible, valid and even logical group names... Remember that you can use any character in groupnames, including comma's, spaces, quotes, etc... This is exactly what I meant with "using that method will make your plugin, aka the parsing of commands, very complex and prone to errors/bugs" (but not impossible to make). And if you are including that mask-as-a-parameter idea in all this, the problem gets even worse (and almost not possible anymore to make it properly). ------- Thus because of all this, I think this is a case were too much freedom in your command and/or tags structure results in buggy usage and code. And thus the reason why I would only make it useable for single parameters (at least for the group name in your latest method) and with a fixed order. Aka: you don't need to make it so complex in order to provide freedom to the user (but more about this later). The status parameter could contain multiple statusses. Though it is not really needed as the user could call the whois command/tag multiple times anyways. But if you really want it in one syntax anyways, then only delimit it by a comma (or other character for that matter). Thus only using one single "status:" prefix and not the possebility to enter more "status:" prefixes. Otherwise you would have again the same problem as described in the first section of this post; where does one prefix/parameter end and where does another one begin. The mask idea is nice, but again prone to problems as described above. Where does the group name end, and where does the mask begin? Note: using a "mask:" prefix would work, but limits again the group names themselfs. And actually even limits what you can do with the mask! Unless you use it again in combination with quicktexts. But then again why using a "mask" parameter in the first place when the user needs to make quicktexts anyways in order to have total freedom (eg: I'm thinking of the use of carriage returns for example). Hence why I would not implement the mask idea at all and certainly not as a parameter. ------- Thus to conclude this long rant (almost): after analyzing all this from scratch using your latest method and thinking about it for the second time, I come again to the same syntax as I mentionned before (only now, I even realize you do not even need a command at all, only 1 tag): (!XWHOIS_STATUS_GROUPNAME) Where the layout of the output (what you called the "mask") is set in a preference dialog (thus not as parameter). And this "mask" is only for the relevant output itself, not for the words or whatever that would come before or after the output and make up a sentence, as that can be done using quicktexts anyways. So the mask is not something like a textbox (or parameter) where the user can define: "These are all the people from the group $groupsname$ who are $status$: $names$" because all that can be done in a quicktext anyways: These are all the people from the group family who are busy: (!XWHOIS_BUSY_FAMILY) which also enables the user to use multiple lines if he wants, because... The "layout" is defined in a preference panel where the user must select what is been shown (what the result of the tag will be): option: [ ] show friendly name option: [X] show email small textbox or combobox or something: delimiter = [ ... ] Where the delimiter can be a carriage return (aka line feed) for example or even something like: "<ctrl+o>,<ctrl+k>5" making the individual parts even colored if they want, etc... etc... In fact, like this the user can make his own /xwhois command (or multiple commands)! ------- Additional note about supporting possible other more specific tags like one for the group name, one for the status, etc: Since the groupname is specified as a parameter inside the main tag anyways, the user also already knows which group name he is selecting (otherwise he wouldn't be able to enter the group name as a parameter of course). This means you don't need a (!xgroup) tag either to make up some mask or layout or something inside quicktexts... same story with the statusses btw. thus not: These are all the people from the group (!xgroup) who are (!xstatus): #(!XWHOIS_AWAY_FAMILY),(!XWHOIS_AWAY_FRIENDS) but: These are all the people from the group family and friends who are away: #(!XWHOIS_AWAY_FAMILY),(!XWHOIS_AWAY_FRIENDS) ------- So, you see, with an extremely simplyfied and fixed method, you actually give the user far more possebilities. And above all, it would be dead easy to program something like this (compared to the extremely complex parsing you would need with multiple same parameters, random orders, etc) ------- Anyways, all this is IMHO (in my humble opinion) of course; This is how I think about all this, not how you must program it. Just giving my point of view about this (as I find this a potential usefull plugin and interesting subject to think, wonder and talk about)... EDIT: Come to think of it, another advantage of my single tag method is the ability to enter only a part of the group name instead of the full group name, since it is very clear what the full groupname parameter is (as you can't have multiple ones, and the order is fixed, and it is the last parameter). In your method, this would even add more troubles (on the already existing parsing problems) in determining what the complete groupname parameter would be. RE: [REQ] People online by Itsme-HcK on 12-23-2005 at 02:01 PM
You've got some other points there, again. RE: [REQ] People online by CookieRevised on 12-23-2005 at 03:39 PM
quote:You can already do that without the $group$ variable if you simplify your whole syntax and the logic of the plugin. You make it far too complex then actually needed for what you want. quote:It is only the result of leaving all the complex stuff out of your syntax by simplifying the use of it and the logic behind it. The result has even more freedom than the first complex syntax of yours... That was the whole point of my previous post: that you can greatly simplify stuff without reducing any of the possebilities. quote:That's only a matter of how you design the preference dialog (what I gave was just a simple example). It hasn't got much todo in how you create the syntax or if you use a command or tag or whatever. quote:Again, only a matter of how you design the preference screen and also why there are quicktexts. So the user can make his own commands and combinations. Why making it so complex when there is already a perfect way for the user to make their own output using quicktexts. And quicktexts is what he is going to use anyways, so it would be kind of stupid for not using its capabilities. quote:Make your parameters consistent. Why using quotes in one parameter, but not in the other one? If a program uses parameters, it is supposed to be done in a consistant way; each parameter should have the exact same set of 'syntax rules'. And if you make it consistent (and fixed), you'll also will find that you don't need the prefixes anymore either, since each parameter is delimited by a space (as it is standard thruout windows). But forgot about the command, you only need a tag. As I said in my previous post, you don't need a command at all! The user can create there own commands. And this also means you do not need a $group$, $email$ or $name$ thingie at all. ------------ I only want you to give some advise which prevents making something which possible contains limits, bugs, inconsistancies and a too complex syntax from the start. You are going to experience a lot of coding problems otherwise (also seeing your other programming question). RE: [REQ] People online by Itsme-HcK on 12-23-2005 at 08:16 PM
About my other problem; that's one big misunderstanding, I guess. RE: [REQ] People online by CookieRevised on 12-24-2005 at 12:41 AM
quote:Very true. However, you don't have to type everything always in uppercase, as the tag will almost always and only be used in a quicktext. And a quicktext can have his own command (and tag for that matter) set and choosen by the user himself RE: [REQ] People online by Itsme-HcK on 12-24-2005 at 09:04 AM
A true word. RE: [REQ] People online by CookieRevised on 12-24-2005 at 08:36 PM looks much better; a whole lot more consistant, cleaner and easier than your first syntaxes. |