16
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to. 17
News / OmnomIRC Release - Current Version: Alpha 2« on: June 24, 2011, 05:39:55 pm »
Here's a release of OmnomIRC Alpha 1!
I just finished the installer, so I cannot guarantee that it is bug-free, but it seems to be working for me. It currently doesn't have any of the forum integration with it. To use: Upload to a web server. Make sure that the web server has write permissions to the folder(for writing the config) Go to the folder. The installer will request SQL information from you and set up the config and everything. Then go back to the index and enter a username. Right now, there is no login system either(To be coming soon!), so usernames are unprotected(anyone can use anyones name.) Download: http://netham45.org/OmnomIRC_Releases/OmnomIRC_Alpha2.zip Also, along with this release, I will be temporarily ceasing updates on Omnimaga's OmnomIRC while I work on getting this version compatible with SMFs login system. EDIT: Ohey, we're up to Alpha 2 already! Fixed file paths(were windows paths, now unix paths), and fixed a bug corrupting cookies. 18
Computer Projects and Ideas / Seamless RDP« on: June 24, 2011, 01:44:49 am »
Just made this nifty program that makes RDP somewhat more seamless to the host desktop. It's really small, and pretty much complete for what I'm going to do with it.
What I'm doing to make it work is this: Set the wallpaper on the client to 77,77,77 RGB, and set that as the RDP window's transparency key. Known bugs: 77,77,77 RGB requires 24-bit color depth Attached is the a bin. Doesn't relate to calcs, but it's still nifty. Edit: SCREENSHOT! EDIT2: No need for the entire project. Here's the source in entirety (Set as multi-byte in project properties): Code: [Select] #include <windows.h> Edit3: Here's a lite version. run it once on launch. Bin attached. Code: [Select] #include <windows.h> Edit4: Performance is awful when Aero is disabled on the host. 19
OmnomIRC Development / OmnomIRC Protocol Information« on: June 20, 2011, 01:22:28 am »
OmnomIRC Protocol Stuffs (Giant wall of post go!)
All code is javascript Required functions: addLine(ircMessage) - This function is called from the load.php to load messages. addUser(userMessage) - This function is called from the load.php to keep track of users. The ircMessage message is pretty simple. There is a common header. Common Header: Message Number:Message Type:Online:Time Message Number -- Corresponds to the auto-incrementing primary key in the SQL DB. You will need to put this on the update.php call to not return already-parsed lines. Message Type -- pm,message,action,join,part,kick,quit,mode,nick,topic,curline, check the next section. Online -- Boolean value to tell if the source was from OmnomIRC or IRC. I use this to check if I should apply links to OmnomIRC names. Time -- UNIX Timestamp After the common header, all elements are base64 encoded. Check btoa.js for a cross-browser base64 implementation. Specific Types: pm, message, action, part, quit, mode, topic - These share paramaters :Name 1:Message join :Name 1 nick :Name 1:Name 2 curline No parts, used to set the current line. Examples: pm, message, action, part, quit, mode, topic Decoded: 1:message:0:12345:Netham45:Test Encoded: 1:message:0:12345:TmV0aGFtNDU=:VGVzdA== Join Decoded: 1:join:0:12345:Netham45 Encoded: 1:message:0:12345:TmV0aGFtNDU= Nick Decoded: 1:nick:0:12345:Netham45:Netham46 Encoded: 1:nick:0:12345:TmV0aGFtNDU=:TmV0aGFtNDY= curline: -- This does not return a proper timestamp, as it is not actually matched to an event in the SQL DB. 1:curline:0:0 To parse in javascript, this is a simple method (assuming you're using the btoa.js included): Code: [Select] function addLines(message) userMessage information: These are simpler, only composed of two parts. They are all the same. They are only sent from the load.php for now. userName:Online userName is a base64 encoded name Online is a boolean value for if they're on OmnomIRC or not Example: Decoded: Netham45:1 Encoded: TmV0aGFtNDU=:1 Here is the code from Omnom_Parser.js that deals with users: Code: [Select] //****************************** To "subscribe" to updates: Request load.php. This returns a javascript file that calls addLine and addUser nick and signature are optional, they are only used to return PMs. Channel is required for what channel you're querying. Signature and nick need to be in place to request PMs. All paramaters except count are base64 encoded. Here's the URL: Decoded: http://omnom.omnimaga.org/OmnomIRC_Dev/load.php?count=50&channel=#Omnimaga&nick=Netham45&signature=No sig for you! Encoded: http://omnom.omnimaga.org/OmnomIRC_Dev/load.php?count=50&channel=I09tbmltYWdh&nick=TmV0aGFtNDU=&signature=Tm8gc2lnIGZvciB5b3Uh Once load.php is parsed, you need to request update.php. This does not return a javascript file, but instead just returns the message. lineNum is not base64 encoded, but everything else is. Here's the URL: Decoded: http://omnom.omnimaga.org/OmnomIRC_Dev/update.php?lineNum=1&channel=#omnimaga&nick=Netham45&signature=No sig for you! Encoded: http://omnom.omnimaga.org/OmnomIRC_Dev/update.php?lineNum=1&channel=I09tbmltYWdh&nick=TmV0aGFtNDU=&signature=Tm8gc2lnIGZvciB5b3Uh Here is the code from Omnom_Parser that handles 'subscribing' and updating: Code: [Select] function load()
20
OmnomIRC Development / OmnomIRC SVN Information« on: June 19, 2011, 11:45:00 pm »
Here's what I believe to be the complete source code for OmnomIRC + all other things required.
Click here to open it in your browser https://netham45.org:444/svn/OmnomIRC/ Username: guest Password: guest Read-Only access, sorry. If anyone actually wants to get this up and running for themselves, feel free to ask for help. It will function as a full-fledged client/server architecture without the IRC bot, too. There are a few places where I am using full file paths (includes, mostly). Also note that the GPL'd code in btoa(the unicode conversion code) is 100% unmodified. The base64 tools (after the lower copyright notice) are slightly modified to add calls to the unicode code, and to remove errors that I thought weren't needed(My code compensated for them.) Edit: OmnomIRC has been released under GPL. The SVN has been updated to include this license. Edit2: The SVN was changed to port 444 from 443 due to a conflict. I forgot to update that here, mah bad. 21
OmnomIRC Development / OmnomIRC Modes« on: June 18, 2011, 12:48:47 am »
I'm getting to the point where I can implement modes for users on OmnomIRC(per-channel).
I'm thinking this: User modes: +b - banned, cannot speak or view chat. Equivalent to +b on IRC. +m - muted, cannot speak, but can view chat (This would be closest to +m -v user on IRC) +o - operator, can set +d, +m on users, can always speak/see chat (This would be closest to +a on admin chans) +i - invited, this user has been invited to the chan by an operator. This would be overridden by +d, +m. +o would imply the first user to join a channel will receive a +o flag, along with all Omni staff. We can remove/add +o's. Chan-wise modes: +s - secret, won't be displayed on the list when I get it added +c - closed, will only be settable by Omni admins. Effectively a ban on *. It'd be used for channels like @cemetech or @goatse, since they don't need to be on OmnomIRC. +i - invite only, user must have +i in the chan to join (will effectively be a +b on the user unless they have +i) Commands: @(un)ban nick - (un)sets +b on nick @(un)mute nick - (un)sets +m on nick @(un)invite nick - (un)sets +i on nick @(de)op nick - (un)sets +o on nick @close/open chan - (un)sets mode +c on chan @drop chan - drops chan, removes all entries from the permissions table, the next user to join would then get +o. It'd be useful for a chan that was last used 4 months ago that someone wants now. I won't be implementing kicks, I just don't think they'd be any good to have. Close/open will obviously only work for non-IRC chans. I will try to make invite respect the chan modes, so @(un)invite doesn't need to be set from Omnom on them. IRC operators will also have +o on OmnomIRC for them, and will be able to execute @defaen, @mute, @op, and @invite from within the chan. Any suggestions on this? I'ma see about getting it started tomorrow. 22
OmnomIRC Development / OmnomIRC updates - 06/16« on: June 16, 2011, 07:58:56 pm »
I pushed a fair number of OmnomIRC updates today.
Server-side:
Client-side:
Please clear your caches on your client, if it is not working properly. See http://ourl.ca/10749 for more help on that. 23
OmnomIRC Development / OmnomIRC/IRCD/SpyBot45 outage -TAKE TWO-« on: June 06, 2011, 10:05:04 am »
Okay, once again, I'm going to be working on moving it all to a new server. Hopefully this one won't have the issues the other one did, so I won't have to revert after 12 hours.
OmnomIRC/netham45.irc.omnimaga.org/SpyBot45 is going to be periodically down throughout the day today, though I don't expect it to be down for more than an hour total. Please don't make threads when they're down. 24
OmnomIRC Development / New OmnomIRC Features« on: May 13, 2011, 06:59:19 am »
I'm going to make a new post here every time I add a major feature.
05-13-2011 Chrome Desktop Notification support Audible Notification Support (Ding on Highlight) Edit: I don't need another changelog. Go look at the other one if you want updates. 25
Site Feedback and Questions / Christmas theme!« on: May 13, 2011, 05:40:23 am »
I used to love the Christmas theme we had in 2006, bring it back!
26
OmnomIRC Development / Merging bots« on: May 11, 2011, 05:48:59 pm »
I'd like to merge the bots(Spybot45 & OmnomIRC) into one bot for simplicity purposes on my end, any ideas/thoughts about that?
27
OmnomIRC Development / OmnomIRC Numbers!« on: May 11, 2011, 03:40:40 am »
The current version requests the chat log every 4.5 seconds. That's 4300 bytes or 4.3KB every 5 seconds.
4.3 * 12 = 51.6kb/min 51.6 * 60 = 3,096kb(3MB)/hr One of the userlist files that refreshes every 15 seconds is 700 bytes. 700*4=2800b(2.8kb)/min 2.8*60 = 168kb/hr 3096+168 = 3264kb/hr The other userlist is about 800b every 15 seconds. 800*4=3200b/m 3.2*60 = 192kb/hr 3264kb/hr+192kb/hr = 3456 kb/hour, or 3.4MB in usage. The new Omnom engine uses 2,067 bytes for the initial request(only ran once per tab), and uses at max 500 bytes about every 30 seconds afterwards(45 second timeout, guesstimating the messages averaged in bring that to 30). 500 * 2 = 1000b/m 1000*60 = 60,000b(6kb/h)/h 60,000+2067 = 62,067b/hour 62kb is 1/55th of 3456kb, meaning the new Omnom engline should use about 1/55th of the bandwidth on your end, or what lasted you about a minute and 6 seconds on the old OmnomIRC will now last you for an hour on the new one. 28
OmnomIRC Development / Spybot45 Dev Ideas« on: May 10, 2011, 01:44:16 am »
Since I can get external access to the Omni DB, I'ma do something like this for SpyBot45.
Code: (pseudo -almost- PHP code) [Select] message = mysql_fetch_array(sql_query("SELECT MAX(`id_msg`) FROM `omnitempboard_messages`")); I hate SQL sometimes. SMF DB layout even more. What this does is:
That's actually almost all that's required for it, I just need to get it done. That will make it so the site won't slow down really bad when posting if my server is acting up. Right now it's requesting a PHP page off my server every post. 29
OmnomIRC Development / OmnomIRC Dev Ideas« on: May 10, 2011, 01:21:41 am »
Posting some thoughts I've been having about updating Omnom to be less resource intensive. Just throwing some of this stuff out there if anyone wants to comment.
Don't refresh every 5 seconds or so, but use long polling loop and just return a result when something is said(Would need some sort of client-side parser, but that could be really easy to do.) Basically, request update.php, update.php waits with server-side sleep()'s. When something is updated, it finishes update.php and returns the event, something like this: eventType:base64(message) Join:base64("Netham45") the client-side parser would then split it based off of the :, and run Join('Netham45') which would update the textbox, which would print something like 'Netham45 has joined.' or something. Here is what I was thinking for those: names,messages,modes,targets would be base64_encode'd line would be the current line, a unique ID for the last line its gotten, for keeping track of where it should check server-side Code: [Select] line:join:name I was also planning on storing however many lines I'm displaying in an array. Code: [Select] Lines = Array(); and to parse, something similar: Code: (parserish thingey javascript-ish code) [Select] etc...Server-side, I plan on having an IRC bot that logs the last 1000 or so lines to a SQL table as they're said. Any more is worthless, half that would still be worthless. irc_lines = (`line_number`k,ai,`name1`,`name2`,`message`) Code: (pseudo) [Select] curPos = sql_query("SELECT MAX(`line_number') FROM `irc_lines`"); And to get it from the server, something like this:Code: (more pseudo) [Select] getLines() Gimmeh ideas/suggestions. 30
OmnomIRC Development / OmnomIRC temporarily disabled« on: May 06, 2011, 06:01:24 pm »
OmnomIRC is temporarily disabled until we can track down the source of the site slowness.
iOmnom and iOmnom_Mini are unaffected. |
|