== Summary (TL;DR version) ==
The Looking-For-Guild tool per default does NOT sort the browse list in a way that prioritizes guilds closest to your selected profile over guilds quite different to your selected profile. This addon tries to alleviate that by sorting the list in a sensible way.
In addition it allows you to set a stronger emphasis on your primary activity focus and dislikes (called MUST / MUSTN'T choices) by RIGHT-clicking on a checkbox (which (un-)marks the option with a !). If the checkbox is checked and marked, a guild MUST offer this to be of interest, if the checkbox is not checked but marked, a guild MUST NOT offer this to be of interest.
Besides that, it allows to sort the list by guild name (helps when looking for some specific guild), by size (because sometimes bigger is better...) or by rank (perks!!).
Per commandline you can also search by guild name ("/LFGBS findname ...") or by guild note ("/LFGBS findcomment ..."), and setup play days ("/LFGBS days mtwTFSs" for Thu/Fri/Sat) and times ("/LFGBS times 19:00 23:30") or minimum guild size ("/LFGBS size 25") - but the latter options also require someone else to also have this addon to decipher your entries.
The code that reads activity days from the guild comment is untested, but might happen to work. (If player and guild have days set, then the best match is defined as the largest number of days the both share in playing *and* in not-playing, i.e. player Thu/Fri/Sat guild Fri/Sat/Sun is *worse* than player Fri/Sat guild Fri/Sat, because in the first pairing the player will always miss the Sunday activity and the guild won't offer a Thursday activity to participate.)
Added UI elements/reactions to the Blizzard tool as shortcut for LFGBS commands:
- clicking the checkbox now toggles the MUST|MUSTN'T state automatically when the checkbox changes from checked to unchecked (i.e. it's now: unchecked, checked, unchecked + MUSTN'T, checked + MUST)
- MUST|MUSTN'T options are now marked with an exclamation mark after the checkbox and before the description (also updates after a comment change)
- guild names are now color coded according to 'tier' of matching (v40100.3)
- comment is now color coded:
white = guild offers, player doesn't care
blue = guild offers, player likes
green = guild offers, player likes strongly (MUST)
red = guild offers, player dislikes strongly (MUSTN'T)
- added button at the bottom which switches the sort modes (SCORE->RANK->NAME->SIZE->SCORE)
Added commands 'days' and 'size' for setting of play schedule and min. guild size. (v40100.3)
== Lengthy Description ==
You can choose what you want in a guild (7 options) and Blizzard's tool will list all guilds which claim to support (some of) your style.
Unfortunately, per default the list is completely randomized: There is no order in it whatsoever.
What I wanted, was that guilds which prefer the same "vector" as I do to be listed atop, and guilds which just happen to share *one* common interest to be listed at the bottom.
Say you choose "Dungeons, Raids, Roleplay". Guild A lists "Dungeons, Raids", guild B lists "PvP, Roleplay", guild C lists "Dungeons, Raids, Roleplay" and finally guild D lists "Dungeons, Roleplay". The current implementation will list the 4 guilds in a random order.
The order I wanted (which is what this addon provides) is:
2. A, D (order not relevant here yet, read on)
But I also wanted to emphasize some choices. I wouldn't join a guild which doesn't do dungeons, but I can live without roleplay (but still want guilds that DO roleplay listed first).
So I added another level: You can define which choices MUST or MUSTN'T be fulfilled.
My selection is then (see screenshot):
- not Questing, Dungeons (MUST), Raids, not PvP (MUSTN'T), Roleplay, Weekends (MUST).
The basic choices are obvious, and the MUST/MUSTN'T is achieved with the comment: $DPOE$ means that the settings for D(ungeons), P(vP), (R)O(leplay) and (Week)E(nd) are mandatory.
That means, guilds are listed first tier when: they do Dungeons (MUST), they might or might not raid (if they do, they are listed higher in the tier), they don't do PvP (MUSTN'T), they might or might not do roleplay (higher listed if yes), and they do stuff on weekends (MUST).
That leaves me with three guilds listed as first tier on the PTR.
Of the remaining guilds, 32 do ALL I want but also other stuff (2nd tier, e.g. also pvp, or also weekday activity or also questing), and 58 have only a cut-set to offer (which might be just 'roleplay'). If multiple guilds are of the same match value (a value which basically sums the difference between what you want and what the guild wants), the higher ranked/larger guild will be listed first.
- added minimum guild rank (A# = rank 0, Z# = rank 25), too low is treated like too small (i.e. is thrown into the "grey" category)
- added sorting by rank (2nd criteria then is size)
- added new command to hide red/grey entries in score-listing: /lfgbs hideredgrey (toggles on/off)
- added update of tooltip to the current guild the mouse is over when scrolling
- added a subroutine to track a guild for its *actual* size (sends /who for that guild at regular intervals and stores the maximum amount of people seen)
- added new command 'tracktoggle' to toggle tracking for a guild, 'tracklist' shows the tracked guilds and their maximum size seen up to now; the "actual" size versus the Blizzard given one is also shown in the list when available ("50 members" => "4 (50) members" means Blizzard says the guild has 50 members and tracking revealed that at most 4 of them are actively playing)
- fixed bug introduced with hideredgrey command
- everything is now stored per server, existing data will be migrated as being valid for the server you login first
- 'tracktoggle' now stores less data per default, to get back to the previous mode (which wasn't fully used yet) there's 'tracktogglefull'
- when full track data is available, the display will show e.g. as "4.4 <18%> (50) members", the 4.4 is an averaged top online count, and the percent tells, how often that many people were online parallel to you (18% of the /whos the addon tried returned at least maximum seen - 3 people)
- various commands shouldn't negate each other's effect any longer (i.e. setting times shouldn't lose days etc.)
- modified tracking to tolerate larger absolute differences in members online
- number of tracked guilds per category added to output when the list is created/updated
- tooltip shows the five highest member counts and their relative percentage of present versus checked
- times: added option "--" to allow removing a time frame
- times: when set, tracking will only happen in that timeframe
- added new command "trackreset" to reset the statistics for a guild
- unbroke tracking again
- adopted to forced switch to GetRealmName()
- switched to right-clicks for MUST/-N'T
- delayed the too early MapReset() until the updated data is available