All pastes #885651 Raw Edit

bopl 0.0.1

public text v1 · immutable
#885651 ·published 2008-01-31 00:59 UTC
rendered paste body
create_client(Host, Port) :-
        tcp_socket(Socket),
        tcp_connect(Socket, Host:Port),
        tcp_open_socket(Socket, ReadFd, WriteFd),
	set_stream(WriteFd, buffer(false)),
	set_stream(ReadFd, buffer(false)),
	repeat,
	read_line_to_codes(ReadFd, Data),
	string_to_atom(Data, String),
	process(WriteFd,String),
        close(ReadFd),
        close(WriteFd).

process(Stream, String) :-
	concat_atom(Atoms, ' ', String),
	[User, Event, Channel, FirstWord | Tail] = Atoms,
	write([User,Event,Channel,FirstWord,Tail]), nl,
	process(Stream, User, Event, Channel, FirstWord, [Tail]),
	fail.

process(Stream, 'NOTICE AUTH :*** No identd (auth) response') :-
	write(Stream, 'USER foo boo coo moo'), nl(Stream),
	write(Stream, 'NICK boply'), nl(Stream),
	write(Stream, 'JOIN #bfirc'), nl(Stream), !, fail.

process(Stream, _,'PRIVMSG',Channel, ':boply:', [Head|Tail]) :-
	write(Stream, 'PRIVMSG #bfirc :cow dung'), nl(Stream),
	write(Tail), nl, fail.

process(Stream,end_of_file) :- !.