Difference between revisions of "Mibbit Wiki:Wishlist"

From Mibbit Wiki
Jump to: navigation, search
(Scripting Engine)
m (Scripting)
Line 226: Line 226:
 
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".
 
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".
 
----
 
----
 
====Highlighting Nicks and Words, Logging all messages from one person====
 
These would be very nice! --[[User:207.190.226.22|207.190.226.22]] 20:38, 5 May 2008 (UTC)
 

Revision as of 21:10, 6 May 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.

To Be Done Soon

  • Implement an option for ChanServ/NickServ/OperServ/MemoServ /msgs to go to a private message window, just like a regular user. Set this to "off" by default, as the current behavior is preferred by the majority of users(not me) EugeneKay (chat)
  • Fix /join 0 error
  • Put left/right arrows up, with a down arrow on the right for a list of all in a dropdown fashion.
  • Ability to log chat

User Suggested Features

Preferences

  • 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.
  • A ban list that anyone can view for a specific channel.
  • 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)

User Interface

  • nicklist on the left and a right to left languages support.
  • A paging function for the /list command that have more than 25 channels.
  • A way to re-arrange tabs, or separate server tabs from chat tabs.
  • A graphical front-end to Bitlbee - this would make Mibbit much more popular as you could use it as an IM client with ease.
  • Increase the colors 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.
  • 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. 24.20.25.120 17:22, 1 March 2008 (UTC)
  • Smilies for ;( [crying] and D: [uh, don't know name]. 24.20.25.120 23:26, 2 March 2008 (UTC)
    • Also for <3 >:) and >:(
  • When logged in Mibbit, have the nickname in "Find Channels" tab be your sign up nick instead of mib_randomness 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 71.105.107.54 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)
  • Merge the footer and the input options bar into one footer on the main client. Remove the parts to the right of slashes on links, and include a new link called 'bugs' to goto bugs.mibbit.com.
  • 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)
  • Pass connection error messages to the user, instead of just displaying 'Terminated' 71.87.59.112 18:08, 5 May 2008 (UTC)
  • Keyboard shortcuts for fast tab navigation.
  • remember-line. insert a line when changing from tab to tab, so that when the user returns he can see what has been said from the time he left the tab.

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'''

Commands

  • /verify <nick> should should what client that the the person is using. Use /verify <nick> on CZ for more info. Havvy 23:37, 3 February 2008 (UTC)
    • In my opinion i think that /version is a better command for checking what client someone uses ;) --Sadie 14:57, 4 February 2008 (UTC)
  • /say support would be nice, especially with the Alias idea below.
  • /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 t hide from all channels.
  • /dcc support for those who wish to transfer files
  • /tos

Alias

Alias Commands similar to Chatzilla or even irssi. FAQ for Alias

Aliases provide this "watered down" power, by letting you quickly and simply create a new 
command that performs a set of other commands (which may themselves be aliases)

In its simplest form, an alias is simply renaming a command and fixing some parameters:

/alias help join #help

/alias <new command name> <old command> [<parameters>]

The new command doesn't override the old command.

Servers/Devices

  • 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.veekun.com - Under Gaming category I think... HTTP website is a Pokemon thing...
  • 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 - irc.quakenet.org (http://www.quakenet.org/faq/faq.php?c=128&f=200#200)

Websites

  • skins.mibbit.com skin exchange interface

Security

  • 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. 141.209.216.49 05:57, 17 February 2008 (UTC)

Other

  • Make is possible to have a direct link to a server and channel. e.g. mibbit.com/link/irc.freenode.net/#channel to join #channel on freenode
  • skins (user creatable?), maybe integrated in the forthcoming GUI
  • 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).
  • Allow user to specify external CSS file to control look and feel.

Scripting

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

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.

Variables
  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...

Functions

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".