What happened to the Messenger Plus! forums on msghelp.net?
Shoutbox » MsgHelp Archive » Messenger Plus! for Live Messenger » Scripting » Plug-Ins » [REQ] People online

Pages: (4): « First « 1 2 [ 3 ] 4 » Last »
[REQ] People online
Author: Message:
CookieRevised
Elite Member
*****

Avatar

Posts: 15517
Reputation: 173
– / Male / Flag
Joined: Jul 2003
Status: Away
RE: [REQ] People online
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 :p)?

Anyways, I'll sush now :p

PS: I'm not sure I understand the need for (!xwhois_help) though.

.-= A 'frrrrrrrituurrr' for Wacky =-.
12-22-2005 11:33 AM
Profile PM Find Quote Report
Chestah
Veteran Member
*****

Avatar

Posts: 1658
Reputation: 34
36 / Male / –
Joined: Jun 2004
RE: [REQ] People online
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.

I'd have a serious think about how your going to implement this before you start doing it :)
Segosa is newb.
12-22-2005 11:57 AM
Profile E-Mail PM Web Find Quote Report
CookieRevised
Elite Member
*****

Avatar

Posts: 15517
Reputation: 173
– / Male / Flag
Joined: Jul 2003
Status: Away
RE: [REQ] People online
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....

The advantage of his method (if implemented right) is that you can use /xwhois without any parameters (eg: if you use it often worf busy family members, you would need to set that as defaults in the preferences). Though, this can also easly be accomplished with my first method by using a quicktext...

EDIT:
but indeed, the random order isn't a good thing todo and will make your plugin very complex to code and handle. eg: what if I have a group called status:away mostly

then you could need to parse something like:
in case the user decides to use this order: /xwhois [group] [status]
/xwhois status:away mostly status:online

see the difficulty and bugs in that. There is no way you can determine which parameter is which (and also forget about looking up groups and comparing that to parameters etc, this is way too complex and prone to errors; furthermore what if the user typed the grouped name wrong? etc)

On the other hand, if done right (but this is actually making it even more complex I think) you can also allow for multiple statusses and groupnames...

Anyways, what Chestah said is extremely important:
I'd have a serious think about how your going to implement this before you start doing it :)

Think about all the consequences of one method over the other, complexity, structure, advantages (but mostly disadvantages), etc...

;)


This post was edited on 12-22-2005 at 12:36 PM by CookieRevised.
.-= A 'frrrrrrrituurrr' for Wacky =-.
12-22-2005 12:22 PM
Profile PM Find Quote Report
Itsme-HcK
Junior Member
**

Avatar
Geek

Posts: 45
33 / Male / –
Joined: Nov 2005
RE: [REQ] People online
You've got a point there, but your way won't work either. :P
Only one word per status is allowed now.
Default is just all statuses. (I don't think I'm going to make an option to change that, if you use it a lot, just add a quicktext?

There are indeed more statuses allowed per xwhois, by simply doing something like this:
/xwhois group:friends status:online,busy,brb
Or by making more status: statements:
/xwhois group:friends status:online status:busy status:brb
You could also specify more groups:
/xwhois group:friends,family
/xwhois group:friends group:family

A little note on the masks:
I have declared $name$, $email$, $status$ and $group$, should I make more?

I made the order customisable because I normally look again at a command and see I've forgotten something. I never want to raise my whole arm to grab my mouse again, so I have to scroll through it with my keyboard, which really sucks on long commands. With this syntax, you could just add it in the end.

This post was edited on 12-22-2005 at 01:29 PM by Itsme-HcK.
12-22-2005 01:27 PM
Profile E-Mail PM Web Find Quote Report
CookieRevised
Elite Member
*****

Avatar

Posts: 15517
Reputation: 173
– / Male / Flag
Joined: Jul 2003
Status: Away
RE: [REQ] People online
quote:
Originally posted by Itsme-HcK
You've got a point there, but your way won't work either.
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- :p)):

quote:
Originally posted by Itsme-HcK

(...) indeed more statuses allowed per xwhois, by simply doing something like this:
     /xwhois group:friends status:online,busy,brb
Or by making more "status:" statements:
     /xwhois group:friends status:online status:busy status:brb
You could also specify more groups:
     /xwhois group:friends,family
     /xwhois group:friends group:family
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 :p). 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.

This post was edited on 12-23-2005 at 02:57 AM by CookieRevised.
.-= A 'frrrrrrrituurrr' for Wacky =-.
12-23-2005 01:22 AM
Profile PM Find Quote Report
Itsme-HcK
Junior Member
**

Avatar
Geek

Posts: 45
33 / Male / –
Joined: Nov 2005
RE: [REQ] People online
You've got some other points there, again.
Though, the $group$ variabele was added for my first syntax, where the users could add multiple groups; could be usefull.

After all this useless syntax-sp0m, I'm still not sure which I'm going to use. :P
My syntax has bugs, so that one already disappears.
However, yours doesn't give enough freedom, imho. ;)
It should be possible to give an own way of showing it; your way can only show OR the e-mail, OR the name, not both. And it should be possible to do that for only ONE statement, and different for the other.
After reconsidering all this; maybe the next one is better:
/xwhois group:"groupname","another one","another two" status:brb,busy mask:Online on group $group$: $name$ ($email$) (And maybe more groups or statuses.)
The quotes in the groupname could then just be escaped using the backslash.
The tag would be something like this:
(!XWHOIS_statuses_return value_groupname) (return value being $email$ or $name$ or such.)
12-23-2005 02:01 PM
Profile E-Mail PM Web Find Quote Report
CookieRevised
Elite Member
*****

Avatar

Posts: 15517
Reputation: 173
– / Male / Flag
Joined: Jul 2003
Status: Away
RE: [REQ] People online
quote:
Originally posted by Itsme-HcK
Though, the $group$ variabele was added for my first syntax, where the users could add multiple groups; could be usefull.
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:
Originally posted by Itsme-HcK
However, yours doesn't give enough freedom, imho.
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:
Originally posted by Itsme-HcK
It should be possible to give an own way of showing it; your way can only show OR the e-mail, OR the name, not both.
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:
Originally posted by Itsme-HcK
And it should be possible to do that for only ONE statement, and different for the other.
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:
Originally posted by Itsme-HcK
After reconsidering all this; maybe the next one is better:
/xwhois group:"groupname","another one","another two" status:brb,busy mask:online on group $group$: $name$ ($email$) (And maybe more groups or statuses.)
The quotes in the groupname could then just be escaped using the backslash.
The tag would be something like this:
(!XWHOIS_statuses_return value_groupname) (return value being $email$ or $name$ or such.)
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).

This post was edited on 12-23-2005 at 03:50 PM by CookieRevised.
.-= A 'frrrrrrrituurrr' for Wacky =-.
12-23-2005 03:39 PM
Profile PM Find Quote Report
Itsme-HcK
Junior Member
**

Avatar
Geek

Posts: 45
33 / Male / –
Joined: Nov 2005
RE: [REQ] People online
About my other problem; that's one big misunderstanding, I guess. :)
I was talking about Windows messages, you were talking about Messenger messages.

Now about this one, I think a command could still be usefull. Typing everything uppercase sucks as hell. I'll think about the syntax some time, and come up with a new plan then. :)
12-23-2005 08:16 PM
Profile E-Mail PM Web Find Quote Report
CookieRevised
Elite Member
*****

Avatar

Posts: 15517
Reputation: 173
– / Male / Flag
Joined: Jul 2003
Status: Away
RE: [REQ] People online
quote:
Originally posted by Itsme-HcK
About my other problem; that's one big misunderstanding, I guess. :)
I was talking about Windows messages, you were talking about Messenger messages.
Yeah, apparently. Though you don't need to parse any windows message at all. Unless you're doing subclassing and stuff, but even then a plugin doesn't need to be "active" all the time as windows itself will call the subclassing functions of your plugin (is called callback functions and setting hooks, so that windows knows what to call). In normal circumstances you don't need to subclass or hook anything.


quote:
Originally posted by Itsme-HcK
Now about this one, I think a command could still be usefull. Typing everything uppercase sucks as hell.
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 ;)

This post was edited on 12-24-2005 at 12:42 AM by CookieRevised.
.-= A 'frrrrrrrituurrr' for Wacky =-.
12-24-2005 12:41 AM
Profile PM Find Quote Report
Itsme-HcK
Junior Member
**

Avatar
Geek

Posts: 45
33 / Male / –
Joined: Nov 2005
RE: [REQ] People online
A true word.
Now, how about this command then (again):
/xwhois "group1","group2" "status1","status2" "mask"
Escaping quotes with teh backslash.
The group and status parameter could also be "all".
The tag:
(!XWHOIS_group_status_return parameter)
12-24-2005 09:04 AM
Profile E-Mail PM Web Find Quote Report
Pages: (4): « First « 1 2 [ 3 ] 4 » Last »
« Next Oldest Return to Top Next Newest »


Threaded Mode | Linear Mode
View a Printable Version
Send this Thread to a Friend
Subscribe | Add to Favorites
Rate This Thread:

Forum Jump:

Forum Rules:
You cannot post new threads
You cannot post replies
You cannot post attachments
You can edit your posts
HTML is Off
myCode is On
Smilies are On
[img] Code is On