Difference between revisions of "Mibbit Wiki:Wishlist"

From Mibbit Wiki
Jump to: navigation, search
(User Interface)
(Commands: CTCP commands for Mibbit to respond to.)
Line 88: Line 88:
* /awayall <reason>
* /awayall <reason>
* /findchannels <search> -- Basically does what that thing in the top-right portion of the client does.  Shows a search.
* /findchannels <search> -- Basically does what that thing in the top-right portion of the client does.  Shows a search.
* /ctcp (For what doesn't work)
** TIME -- Shows the time the user sees.
** WEBSITE -- Only for the widget, shows what website they are coming from.  On main client, shows 'Main'
** GENDER -- From the 'Profile' field.  If not set, shows unknown.
** AGE -- From the 'Profile' field.  If not set, shows unknown.
** LOCATION -- From the 'Profile' field.  If not set, shows unknown.
** URL -- From the 'Profile' field.  If not set, shows unknown.

Revision as of 05:24, 15 July 2008

Welcome to the Wish List. If you would like a feature for Mibbit that isn't currently in it, suggest it here in the correct category. The "To Be Done Soon" category is for axod, the programmer of Mibbit. Put yours in the correct subcategory of "User Suggested Features". Use "Other" if you don't know.

User Suggested Features


  • Add the ability to add input and output language to the link variables.Azerthoth
  • Play a sound when someone says something while I'm on a different tab or have the window minimized, similar to the functionality of the embedded Google Talk in Gmail.
  • Switch to toggle play sound when my nick has been written, play sound when query is active
  • Leave the default away/unaway behavior as is - 10 minutes or so. But change the default display setting so that it won't leave the little messages all over the place. This lets those users who want to know who's here or not know, but also makes it so us who really don't care aren't spammed with "xxxxx is away" messages(Which is really annoying. We know they're not here--they haven't SAID anything for 10 minutes! ) EugeneKay (chat) 07:50, 25 January 2008 (UTC)
    • word! pls. greetz wurtl
  • Preference for having userlist pane on left. Havvy 21:10, 3 February 2008 (UTC)
  • Preference to toogle "SOMEONE SAID SOMETHING" in Title
  • Preference to toggle the On Mibbit/Off Mibbit icons. Havvy 21:44, 3 February 2008 (UTC)
  • Include some short instructions on the preferences page, explaining what each field is for. Especially explaining syntax for adding multiple channels.
  • Preference to toggle the warning dialog box that pops up when you close a server tab.
  • Preference to toggle seeing the host mask of a user entering or leaving the channel (just like "Username (hostmask) joined/left #channelname"). That helps channel ops a lot.
  • Hiding the <title> for work or school irc ;)
  • Dragable pane borders (or at least user-defined column width) -- HerculeP, 14 January 2008 (UTC)
  • Using cookies, allow guests to have preferences. Cookie is made when they view the prefs tab and aren't logged in. Show Prefs button when they aren't logged is needed for this. Havvy 20:47, 8 March 2008 (UTC)
  • Allow for easy rejoining of rooms that have been peered/kicked from. Folks use it as jokes where I hang out, and I had to type join in an entirely different chat window and have a new chat window pop up after a kick rather than just being able to type /join #room in the same window and have it rejoin and continue.
  • Thanks to 'Lean' in #help for suggesting allowing show join/part per channel or network. Using a huge change in the prefs page, make it so users can choose prefs for general IRC, a server, and a channel, with the lower you go in, the more it overwrites. Havvy 05:04, 22 April 2008 (UTC)
  • Allow for auto-rejoin preference that re-joins the channel when kicked.
  • Preference to change the color swatches for 0-15 so that skins don't conflict. roboticaust 22:09, 22 June 2008 (UTC)

User Interface

  • Scrolling the channel/server-tabs with mouse-wheel (like firefox-tabscrolling) - someting like jQuery HorizonMenu. Patrick
  • Right to left languages support.
  • A way to re-arrange tabs, or separate server tabs from chat tabs.
  • Increase the icons for the on Mibbit/off Mibbit icons. The thing with the green or blue person or IPod. Havvy 20:47, 8 March 2008 (UTC)
    • CZ logo for Chatzilla people.
    • Mirc logo for Mirc people.
    • Change the on Mibbit icon to a frog.
    • X-Chat logo;
    • Konquerer logo;
    • Pidgin logo;
  • Making it so that pressing a letter on the keyboard when you have selected the users list (list of users in that channel) will jump to the next user with a nick starting with that letter.
  • Allow Stalk Words
  • Have topic always visible on top of chat screen, like how ChatZilla does it? Have the preference for this set to off by default. Havvy 17:22, 1 March 2008 (UTC)
  • Smilies for ;( [crying] and D: [uh, don't know name]. 23:26, 2 March 2008 (UTC)
    • Also for <3 >:) and >:(
  • When logged in Mibbit, have the nickname in "Username" field be your sign up nick instead of mib_randomness on the Home tab User:Havvy
  • Away messages in whois. These are supported by many servers/clients, but we can't see them in mibbit, when (for example) they are set by irssi users 06:59, 2 April 2008 (UTC)
  • From 'lean' in #help. Allow tiling of tabbar. I think it'd be best with a prefrence for how many lines it goes down before having to use the <>s Havvy 05:04, 22 April 2008 (UTC)
  • Add a link/button to the widget that shows/hides the user list and have the default status be a preference Pb30 16:09, 4 May 2008 (UTC)
  • parse and make URLs like www.woot.com clickable
    • Try putting a http:// before it to make it a true URL. Havvy 13:51, 11 July 2008 (UTC)
  • Make so we can click on nick in the chat display (Gilou)
    • I'd do it as a double-click, if the pref is on for it.
  • improve the completion system for nicknames, maybe like xchat does by displaying a list of matching nicks, or by cycling through available completions rather than just stopping the way it does (Gilou)
  • Have a simple sound notification when a user needs to get everybody's attention in the channel
    • IRC does not work this way last I checked. There is no standard way of setting that flag off. Havvy 13:51, 11 July 2008 (UTC)
  • From molkmin: Ability to hide the header of Mibbit
    • I'd say that would everything above the prefs line, and have the Kenneth image go hidden. Also, before doing this, I would suggestion adding in the /findchannels or whatever I called it command implemented. Havvy 05:20, 15 July 2008 (UTC)

Raw Numerics Look A Bit Lame ATM

stuff like this look lame:

1:32	broadway.ny.us.dal.net	255: | [0] Sadie|AjaxIRC, [1] I have 98 clients and 1 servers
1:32	broadway.ny.us.dal.net	265: | [0] Sadie|AjaxIRC, [1] Current local users: 98 Max: 15001
1:32	broadway.ny.us.dal.net	266: | [0] Sadie|AjaxIRC, [1] Current global users: 26806 Max: 56468

it could be implemented like this

1:15 broadway.ny.us.dal.net [RAW=255] I have '''2492''' clients and '''0''' servers
1:15 broadway.ny.us.dal.net [RAW=265] Current local  users: '''2492'''  Max: '''2868'''
1:15 broadway.ny.us.dal.net [RAW=266] Current global users: '''38649'''  Max: '''44966'''


  • /ping that ctcp pings users would be handy.
  • /slap
  • /hide (To still be on a channel but no one can see you pm you or have you appear at all.
  • /hideall to hide from all channels.
  • /dcc support for those who wish to transfer files
  • /tos
  • /dcca (support to receive dcc transfered files)
  • /mop - gives ops to everyone in the channel
  • /mdop - removes ops from everyone in the channel but you
  • Oper commands for people who are IRC operators (who use mibbit) (/kill, /oper, etc.)
  • /quit - Allow a "/quit" to use the default mibbit quit line) "/quit msg" works already ...
  • /website <url> - If you put 'http://google.com', it acts like you pressed a link to it. Havvy 20:43, 13 July 2008 (UTC)
  • /pastebin - Lets you open the pastebin. Also on that note, /smilies, /translation (if nothing placed in), and /colors
  • /prefs, /account, /channels, /logs, & /logout for logged in users;
  • /login <user> <password> and /register <user> <password>
  • /quitall <reason>
  • /awayall <reason>
  • /findchannels <search> -- Basically does what that thing in the top-right portion of the client does. Shows a search.
  • /ctcp (For what doesn't work)
    • TIME -- Shows the time the user sees.
    • WEBSITE -- Only for the widget, shows what website they are coming from. On main client, shows 'Main'
    • GENDER -- From the 'Profile' field. If not set, shows unknown.
    • AGE -- From the 'Profile' field. If not set, shows unknown.
    • LOCATION -- From the 'Profile' field. If not set, shows unknown.
    • URL -- From the 'Profile' field. If not set, shows unknown.


  • HanIRC Support - irc.hanirc.org (a Korean IRC Server with CP949 encoding)
  • SILCnet support - http://silcnet.org/
  • Abducted-IRC support - irc.abducted.us (they dont have a site - currenty 523 users connected) --Sadie 14:57, 4 February 2008 (UTC)
  • Increase the # of connections to Rizon.net servers
  • Open Server on the Telnet for connection to other MUDs/MUSHes/MOOs/MUXes.
  • Austnet.org Support - restored.il.us.austnet.org
  • Worldnet support - irc.worldnet.net
  • euIRC trust - irc.euirc.net (http://www.euirc.net)
  • Gamesurge trust - irc.gamesurge.net G-Lines pretty conistantly (http://gamesurge.net)
  • rc.Team-BT.Com - Under Gaming category.
  • irc.oftc.net - I'm so damn lazy.
  • PSP compatible interface. The www.mibbit.com interface doesn't load fully on the PSP's web browser...
  • Have a way different from bitlbee to only connect to MSN or Aim (but not both from the same thing). Useful for easier learning of the engine.
  • Support for (Windows) pocket devices.
  • Quakenet trust - Whenever they want to increase it, Mibbit.com can't it..


  • Opt-out/blacklist of channels that do not want to have their chat logged and displayed to joining mibbit users.
    • Doesn't that feature only work on Mibbit channels? It doesn't work on other servers. Havvy 04:27, 7 February 2008 (UTC)
      • It works on our Freenode.net channel. 05:57, 17 February 2008 (UTC)


  • Optional username/ident support - useful for BNC users.
  • Release your amazing source code under a license that allows people to improve it for you (and curious people to see how it works).
    • Not gonna happen. Havvy 22:32, 13 July 2008 (UTC)
  • Allow user to specify external CSS file to control look and feel.
    • Try the Stylish extension out on Firefox.
  • A way to setup Alternative nick, to avoid nick colisions in direct connections to the server.
  • Alert() confirm before closing in some cases.


  • Preference to disallow right-clicking on the widget, namely to avoid handing out chankeys via the source. I feel this is a security risk since no amount of scrambling, right click denied on my end can conceal that and all it takes is for a user to make an account on my site and right click to be back on irc attacking me with several bot clients. Seriously, 1 small line of code and a end code is all it takes. roboticaust 07:04, 23 June 2008 (UTC)
    • Moved to Embed


Axod, eventually having scripting capabilities on Mibbit could make Mibbit profitable as people would use it for easy scripting if done right. While the following suggestion doesn't have to be done soon, I would like to see it eventually.

Front Page

First, a new group of pages must be made, a set of scripting pages. Since I'm low on time to make this, I'll just explain the page that lists all the scripts you have. Basically, it is a table of scripts that a person has made. It shows the name, and if you click the name, it takes you to the edit screen. Next to the name there will be links: Rename; Edit; Delete; Share; De/Activate. It also shows an ID for the script.

Rename allows you to change the name of the script to something else. It must follow variable naming conventions (Can't start with number or symbol, but can start with _) and can't share the same name as another of your scripts.

Edit takes you to the edit screen, which allows you to edit the script. More on it later.

Delete allows you to delete your script into obscurity. Have a warning before deleting it. Also, might want to have a 24 grace period for getting them back.

Share allows you to copy your script to another person if they so choose. Basically, it sends a copy of the script to the other user. If a user doesn't want to get new scripts, they can block it. If multiple people want to work on one copy of a script, there should be a sharing feature for that also.

De/Active is a checkbox for whether or not the script is loaded or not. Off by default.

Scripting Engine

  • Idea: Rather than spending time on writing your own language which users would have to learn and would be fairly useless elsewhere, why not just add support for existing languages, and add in a Mibbit class with functions in or implement a way of hooking events.
    • This would work also. Havvy 13:51, 11 July 2008 (UTC)

I am thinking a C-like language would be best. Basically, every line you send is sent to the scripting engine, processed, and then sent to the server, along with messages sent to you. Let me see how specific I can be...

  1. Do a search for a string such as *:word:* and replace it with something like the following usage: change *:mibnick:* to *You can change your nick with /nick newnick* . Thus, if I put in "mib_24576b:  :mibnick: FYI" it'll process it and send it out as "mib_24576b: You can change your nick with /nick newnick FYI"
    • function for parsing messages you send.
    • non-regular expression text search with * of course
    • ability to replace an expression with another one.

So, what does it need in it in terms of functions/variables/ect.

  1. Integer
  2. String (as an array)
  3. Double
  4. Random

Having array support is very very useful... Having object support would make it very powerful. Very very powerful.

For specific variables, having these would be useful:

  1. time - Has the current time.
  2. date - Has the current date.
  3. Object: sentMessage
    • time - Time the message you sent went out.
    • command - If there is a / first, show what's to the right of it. So, if //, it'll be / and if it's /join, it'll show join. If no command, it'll be an empty string, but not null.
    • value - Everything after the first space of the message. Thus, for /join #mibbit, it'd be "#mibbit".
    • server - String showing what server you sent it to.
    • channel - String showing the channel you sent it to. (Look at the next channel variable for more information)
  4. Object: receivedMessage
    • time - Time you received the message.
    • user - User who sent the message.
    • value - String showing the message sent to you.
    • server - String showing the server you received it in.
    • channel - String showing the channel you received it in. An example would be "#mibbit". If it's a Private Message, have it be "H:(hostname)" without the ().
  5. Can't explain, but basically, an array of servers holding an array of channels/private messages either being '#channel' or 'H:(hostname)' without the ().

Feel free to add other missed variables...


These are defined on Mibbit side and called on Mibbit side. The users can modify contents in it these functions. They can also be called. Maybe put them into a user file called "default.script" or something? Also, make it so that you can always get a copy if you need.

parseRegular(sentMessage) returns null - Called when you send a message without a / as the first key.

parseSentMessage(sentMessage) returns null - Called when a value is sent with a / as the first key.

An example is that a person does "/msg Axod test". It is sent to parseFunction with the value being the sentMessage object. If they haven't modified the /msg function it'd look something like this (not actual code):

If sentMessage.command = "msg"
Then {
/* No error handling in this ATM... */
Declare fistPos = findPosition(sentMessage.value, " ", 1) + 1
Declare secondPos = findPosition(sentMessage.value, " ", 2) - 1
Declare user = stringOut(sentMesssage.value, firstPos, secondPos)
Declare hostname = "H:" + hostname(user) [concatenating with the +, and since this is not the  actual code, can be changed.)
Declare message = stringOut(sentMessage.value, findPosition(sentMessage.value, " ", 2) + 1, -1)
openConnection(sentMessage.server, hostname)
/* showConnection(sentMessage.server, hostname) *//* This part isn't in it currently */
sendMessage(message, sentMessage.server, hostname)

findPosition(affectedString, value, whichMatch) returns Integer - The first value is the string that people search. The second is the string in the string they are looking for. The whichMatch variable is an integer that is optional, and basically says to skip all finds before the xth find. So, if I do findPosition("Test String ", " ", 2), it'd return 11. Remember arrays start at 0, not 1. If not found, returns -1.

stringOut(affectedString, firstPos, secondPos) returns String - Takes a string out of another string from the first position to the second position. The name sucks for it. If the first number is higher than the last number, do a cycle of the string, so the following would happen: stringOut("Mibbit", 4, 2) returns "itMib". -1 is 'end of string' so stringOut("Mibbit", 4, -1) returns "it".

hostname(user) returns String - Put a user in like "mibbit" and it returns the value mib-80131E0.range86-143.btcentralplus.com

openConnection(server, value) returns null - Opens a channel if the server specified in the first value is open to the channel or hostname in the value. Channel is detonated as #channel and hostname is H:(hostname) without (). You can't send/receive messages without it being open.

closeConnection(server, value) returns null - does the opposite of openConnection()

showConnection(server, value) returns null - makes it so that if the connection isn't shown in a tab, it is now.

hideConnection(server, value) returns null - does the opposite of showConnection()

sendMessage(message, server, channel) returns null - Sends 'message' to the channel in that server if the connection is open. channel can either be a hostname "H:(hostname)" without the () or a channel "#channel".