:- ensure_loaded(library(slack_client)). % slack_send(WsOutput,Data):- is_dict(Data),!,json_write_dict(WsOutput,Data),json_write_dict(user_error,Data),!. % slack_get_websocket(WS),format(WS,'~w~n',[Data]). % curl -X POST --data-urlencode 'payload={"channel": "logicmoo", "username": "@prologmud_connection", "text": "This isosted to #general and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/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 % curl -X POST --data-urlencode 'payload={"channel":"D3U47CE4W", "username": "@prologmud_connection" , "text":to #general and comes from a bot named webhookbot.", "icon_emoji": ":ghost:"}' https://hooks.slack.com/services/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 :- listing(slack_websocket/3). :- if(( \+ (is_thread_running(slack_start_listener)))). :- thread_create(slack_start_listener,_,[alias(slack_start_listener)]). :- endif. :- if(( \+ (is_thread_running(slack_start_listener)))). :- slack_start_listener. :- endif. % :- trace. :- $gvar.foo = 1. :- writeln($gvar.foo). :- trace. :- $bar.set(1). write_vars :- writeln($foo.get). test:- $foo.set(33), write_vars. end_of_file. :- $app.client = slack_client.clients.new(). :- $Client.register(hello , debug.print. ["Successfully connected, welcome ", $Client.self.name, "to the '", $Client.team.name,"' team at https://", team.domain, ".slack.com."]). :- $Client.register(message , data.text.contains("bot hi") -> message(channel: data.channel, text: ["Hi <@",data.user,">!"]) ; not(data.text.contains('bot')) -> message( channel: data.channel, text: ["Sorry <@",data.user,">, what?"])). :- $Client.register(close , debug.print( "Client is about to disconnect")). % can register on the last created client (returned by slack_client.clients.new ) :- slack_client.current.register(closed , debug.print. "Client has disconnected successfully!"). :- $Client.start().