dominikh changed the topic of #cinch to: The IRC Framework | Latest version: Cinch 2.0.9
Spami has quit [Read error: Operation timed out]
Spami has joined #cinch
space has joined #cinch
jonahR has joined #cinch
jonahR has left #cinch [#cinch]
space has quit [Read error: Connection reset by peer]
rickmasta has quit [Quit: Leaving...]
rickmasta has joined #cinch
rickmasta has quit [Client Quit]
Spami has quit [Quit: This computer has gone to sleep]
rickmasta has joined #cinch
Spami has joined #cinch
Spami has quit [Quit: Leaving]
v0n has quit [Ping timeout: 260 seconds]
kludge` has quit [Ping timeout: 245 seconds]
kludge` has joined #cinch
rickmasta has quit [Quit: Leaving...]
waxjar has quit [Ping timeout: 245 seconds]
waxjar has joined #cinch
v0n has joined #cinch
rickmasta has joined #cinch
rickmasta has quit [Client Quit]
rickmasta has joined #cinch
UberDragon has joined #cinch
space has joined #cinch
rickmasta has quit [Quit: Leaving...]
v0n has quit [Quit: WeeChat 0.4.3-dev]
v0n has joined #cinch
rickmasta has joined #cinch
v1n has joined #cinch
v0n has quit [Ping timeout: 240 seconds]
space has quit [Read error: Connection reset by peer]
rickmasta has quit [Quit: Leaving...]
space has joined #cinch
julian_ has joined #cinch
<julian_>
Hello!
<julian_>
I'm thinking of creating an online IRC client
<julian_>
just as a bit of fun
<julian_>
would the cinch framework be a good choice?
space has quit [Excess Flood]
<julian_>
Use it to connect, and ignore its bot functionality?
<dominikh>
I've once written a PoC graphical IRC client with Cinch, so yeah, it's doable
<dominikh>
but you'd need one instance of Cinch per client; might be a bit memory hungry
space has joined #cinch
<julian_>
Ah I see, I thought there'd be something like that.
<julian_>
Can you recommend a framework for simply interfacing with IRC, if one exists?
<dominikh>
not really. the one's that "just interface with IRC" are so simplistic that you end up implementing most of IRC yourself, anyway
<dominikh>
as they only handle the bare protocol
<dominikh>
and at that point you're likely back to the same memory consumption as Cinch ;)
julian_ has quit [Remote host closed the connection]
<catepillar>
i dont think he liked your answers :(
<dominikh>
*shrug*
<catepillar>
lol
rickmasta has joined #cinch
julian_ has joined #cinch
<julian_>
dominikh: Could you name one of these minimalist frameworks :) ?
<dominikh>
julian_: isaac if you want an ugly one that's still geared at bots but cannot do anything useful, maybe http://ruby-irc-yail.nerdbucket.com/ if that's still maintained
<Cinchy>
[URL] net-yail-1.6.1 Documentation
<julian_>
hmm
<julian_>
thankyou
<julian_>
maybe creating something from scratch would be a better idea.
<dominikh>
maybe, yeah
<julian_>
Like I say, I can create bespoke ecommerce, so do you reckon I could be able to build an IRC client okay? Any resources online?
<dominikh>
uh, if you want to start from scratch there are various RFCs on IRC you want to read, then fight with various non-standard implementations you will encounter, funny bugs, etc. that's for the protocol.
<dominikh>
most of the work that went into Cinch aren't bot-related but just to provide an OO layer on top of the protocol and all its quirks
<julian_>
Yes, having that layer is literally what I'm looking for
<julian_>
but you say it's not designed for a large number of users?
<julian_>
it's designed more for one person
<julian_>
one 'bot'
<dominikh>
well, each instance of Cinch::Bot can only handle a single connection; so you'd have a lot of duplicate data in memory for multiple users
<julian_>
still, it sounds like an easier option
<dominikh>
I mean, you can take the existing project, fork it and hack on it, it's MIT licensed; but it might take some time to get into the existing code base
<julian_>
Superficially, it appears a lot of the heavy lifting is done by Ruby's 'socket' library
<dominikh>
that's really just the most minimal amount of work you can do to get a working connection that's not dealing with *any* of the important stuff
<julian_>
This is a brand new field for me
<dominikh>
IRC is asynchronous. say you want to display a user's information in a fancy dialog in your IRC client. you need to send a WHOIS, wait for each part, parse it, handle the case of the server not responding due to throttling
<dominikh>
say you want to handle ban lists intelligently. one network in particular lacks a specific field in the ban information that should be there. do you handle that?
<dominikh>
will you support more advanced features? then you need to implement the CAP protocol
<dominikh>
the socket does exactly what a socket does. opens a connection, allows reading and writing data. there's not much magic there.
<julian_>
I'll admit that's all I thought an IRC client needed to be. I see I was wrong...doesn't help that it isn't really standardized
<julian_>
Saying that, there must be a very finite amount of features a good IRC client needs
<julian_>
is there somewhere I could read up on this?
<dominikh>
I mean, take a look at the source bases of irssi or weechat, those are plain IRC clients, and there's still tons of work in those
<dominikh>
it also depends how good your client is supposed to be ;) whether it's just dumb text in text out, or feature rich.
<julian_>
OKay, well let's start at square one. :)
<dominikh>
(fwiw, there are already a number of decent web irc clients out there; the market seems somewhat saturated)
<julian_>
That is true
<dominikh>
https://www.irccloud.com/ is still beta, you could look at that to see what people expect
<Cinchy>
[URL] IRCCloud
<dominikh>
but I reckon it's doing relatively little of the extra stuff like handling bans
<julian_>
good idea, thanks a lot for your time by the way
<dominikh>
sure, no problem
<julian_>
Literally I only use Irssi to talk to people about RoR, that's it. So I don't really know much. Ban lists and the like.
<julian_>
I'll have a look at irccloud, see what kind of feature's they're offering
<julian_>
but is there some sort of list that a good IRC client should have?
<dominikh>
(I have no idea what they offer, I just know that people who don't expect the entirety of IRC features like that service)
<dominikh>
uh, not really per se. the stuff you know from using IRC clients ;) also local clients have more features, like DCC
<dominikh>
I suppose reading the manual of any good IRC client lists its features
<julian_>
Yeah...I was just wondering if there was some sort of IRC consortium :)
<dominikh>
haha.
<julian_>
Do you know, I think this will be a great learning experience for me. I'll take a good read of Irssi documentation, and use Ruby's standard libraries.
<julian_>
thanks a lot!
<dominikh>
cheers, have fun
<dominikh>
there's ~1 year of actual work in Cinch :P
<julian_>
well, I won't take over the world with one version :)
<julian_>
I'll start off simple
<dominikh>
hehe
rickmasta has quit [Quit: Leaving...]
Spami has joined #cinch
postmodern has joined #cinch
julian_ has quit [Ping timeout: 260 seconds]
julian has joined #cinch
julian is now known as Guest71515
rickmasta has joined #cinch
Spami has quit [Ping timeout: 272 seconds]
Spami has joined #cinch
Spami has joined #cinch
jonahR has joined #cinch
jonahR has left #cinch [#cinch]
v1n has quit [Quit: WeeChat 0.4.3-dev]
space has quit [Remote host closed the connection]
v0n has joined #cinch
Cinchy_ has joined #cinch
Cinchy has quit [Remote host closed the connection]
v0n has quit [Ping timeout: 245 seconds]
v0n has joined #cinch
Spami__ has joined #cinch
Spami has quit [Ping timeout: 272 seconds]
Spami__ has quit [Read error: Connection timed out]