can send messages to weechat
This commit is contained in:
parent
251d2ae5a9
commit
d4b760fc04
3 changed files with 71 additions and 105 deletions
116
js/websockets.js
116
js/websockets.js
|
@ -1,62 +1,68 @@
|
||||||
function WeechatCtrl ($scope) {
|
var weechat = angular.module('weechat', []);
|
||||||
|
|
||||||
|
weechat.factory('connection', ['$rootScope', function($scope) {
|
||||||
|
|
||||||
|
var websocket = null;
|
||||||
|
var doSend = function(message) {
|
||||||
|
msgs = message.replace(/[\r\n]+$/g, "").split("\n");
|
||||||
|
for (var i = 0; i < msgs.length; i++) {
|
||||||
|
console.log("sent", "⇐ " + msgs[i]);
|
||||||
|
$scope.commands.push(msgs[i]);
|
||||||
|
}
|
||||||
|
websocket.send(message);
|
||||||
|
}
|
||||||
|
var connect = function (hostport, proto, password) {
|
||||||
|
websocket = new WebSocket("ws://" + hostport + "/weechat");
|
||||||
|
|
||||||
|
|
||||||
|
websocket.onopen = function (evt) {
|
||||||
|
if (proto == "weechat") {
|
||||||
|
doSend("init password=" + password + "\ninfo version\ntest\n");
|
||||||
|
} else {
|
||||||
|
doSend("PASS " + password + "\r\nNICK test\r\nUSER test 0 * :test\r\n");
|
||||||
|
}
|
||||||
|
$scope.connected = true;
|
||||||
|
$scope.$apply();
|
||||||
|
}
|
||||||
|
websocket.onclose = function (evt) {
|
||||||
|
console.log("disconnected", "Disconnected");
|
||||||
|
$scope.connected = false;
|
||||||
|
}
|
||||||
|
websocket.onmessage = function (evt) {
|
||||||
|
console.log("recv", "⇒ " + evt.data);
|
||||||
|
$scope.commands.push(evt.data);
|
||||||
|
$scope.$apply();
|
||||||
|
}
|
||||||
|
websocket.onerror = function (evt) {
|
||||||
|
console.log("error", "ERROR: " + evt.data);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.websocket = websocket;
|
||||||
|
}
|
||||||
|
|
||||||
|
var sendMessage = function(message) {
|
||||||
|
doSend(message);
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
connect: connect,
|
||||||
|
sendMessage: sendMessage
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
weechat.controller('WeechatCtrl', ['$rootScope', '$scope', 'connection', function ($rootScope, $scope, connection) {
|
||||||
|
$rootScope.commands = []
|
||||||
|
|
||||||
$scope.status = { connected: false }
|
|
||||||
$scope.hostport = "localhost:9001"
|
$scope.hostport = "localhost:9001"
|
||||||
$scope.proto = "weechat"
|
$scope.proto = "weechat"
|
||||||
$scope.password = ""
|
$scope.password = ""
|
||||||
|
|
||||||
|
$scope.sendMessage = function() {
|
||||||
|
connection.sendMessage($scope.command);
|
||||||
|
$scope.command = "";
|
||||||
|
},
|
||||||
|
|
||||||
$scope.connect = function() {
|
$scope.connect = function() {
|
||||||
|
connection.connect($scope.hostport, $scope.proto, $scope.password);
|
||||||
}
|
}
|
||||||
|
}]
|
||||||
}
|
);
|
||||||
|
|
||||||
var output;
|
|
||||||
var hostport;
|
|
||||||
var proto;
|
|
||||||
var password;
|
|
||||||
function init() {
|
|
||||||
output = document.getElementById("output");
|
|
||||||
// hostport = prompt("Enter hostname:port of WeeChat/relay", "hostname:5000")
|
|
||||||
// proto = prompt("Protocol (weechat / irc)", "weechat")
|
|
||||||
// password = prompt("Password (for relay)", "")
|
|
||||||
hostport = "localhost:9001"
|
|
||||||
proto = "weechat"
|
|
||||||
password = ""
|
|
||||||
/* websocket = new WebSocket("ws://" + hostport + "/weechat");
|
|
||||||
websocket.onopen = function(evt) { onOpen(evt) };
|
|
||||||
websocket.onclose = function(evt) { onClose(evt) };
|
|
||||||
websocket.onmessage = function(evt) { onMessage(evt) };
|
|
||||||
websocket.onerror = function(evt) { onError(evt) };*/
|
|
||||||
}
|
|
||||||
function onOpen(evt) {
|
|
||||||
display("connected", "Connected to " + hostport);
|
|
||||||
if (proto == "weechat") {
|
|
||||||
doSend("init password=" + password + "\ninfo version\ntest\n");
|
|
||||||
} else {
|
|
||||||
doSend("PASS " + password + "\r\nNICK test\r\nUSER test 0 * :test\r\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function onClose(evt) {
|
|
||||||
display("disconnected", "Disconnected");
|
|
||||||
}
|
|
||||||
function onMessage(evt) {
|
|
||||||
display("recv", "⇒ " + evt.data);
|
|
||||||
}
|
|
||||||
function onError(evt) {
|
|
||||||
display("error", "ERROR: " + evt.data);
|
|
||||||
}
|
|
||||||
function doSend(message) {
|
|
||||||
msgs = message.replace(/[\r\n]+$/g, "").split("\n");
|
|
||||||
for (var i = 0; i < msgs.length; i++) {
|
|
||||||
display("sent", "⇐ " + msgs[i]);
|
|
||||||
}
|
|
||||||
websocket.send(message);
|
|
||||||
}
|
|
||||||
function display(class_name, message) {
|
|
||||||
var div = document.createElement("div");
|
|
||||||
div.className = class_name;
|
|
||||||
div.innerHTML = message;
|
|
||||||
output.appendChild(div);
|
|
||||||
}
|
|
||||||
window.addEventListener("load", init, false);
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html ng-app>
|
<html ng-app="weechat">
|
||||||
<head>
|
<head>
|
||||||
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
|
<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">
|
||||||
<script type="text/javascript" src="js/angular.min.js"></script>
|
<script type="text/javascript" src="js/angular.min.js"></script>
|
||||||
|
@ -7,7 +7,7 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div ng-controller="WeechatCtrl">
|
<div ng-controller="WeechatCtrl">
|
||||||
<div ng-hide="status.connected">
|
<div ng-hide="connected">
|
||||||
<form class="form-horizontal">
|
<form class="form-horizontal">
|
||||||
<legend>Connection</legend>
|
<legend>Connection</legend>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
|
@ -30,12 +30,18 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<button class="btn btn-primary">Connect!</button>
|
<button class="btn btn-primary" ng-click="connect()">Connect!</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div ng-show="status.connected">
|
<div ng-show="connected">
|
||||||
|
{{ commands }}
|
||||||
|
<div ng-repeat="command in commands">
|
||||||
|
{{ command }}
|
||||||
|
</div>
|
||||||
|
<input type="text" ng-model="command"></input>
|
||||||
|
<button class="btn btn-primary" ng-click="sendMessage()">Send</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
var output;
|
|
||||||
var hostport;
|
|
||||||
var proto;
|
|
||||||
var password;
|
|
||||||
function init() {
|
|
||||||
output = document.getElementById("output");
|
|
||||||
hostport = prompt("Enter hostname:port of WeeChat/relay", "hostname:5000")
|
|
||||||
proto = prompt("Protocol (weechat / irc)", "weechat")
|
|
||||||
password = prompt("Password (for relay)", "")
|
|
||||||
websocket = new WebSocket("ws://" + hostport + "/weechat");
|
|
||||||
websocket.onopen = function(evt) { onOpen(evt) };
|
|
||||||
websocket.onclose = function(evt) { onClose(evt) };
|
|
||||||
websocket.onmessage = function(evt) { onMessage(evt) };
|
|
||||||
websocket.onerror = function(evt) { onError(evt) };
|
|
||||||
}
|
|
||||||
function onOpen(evt) {
|
|
||||||
display("connected", "Connected to " + hostport);
|
|
||||||
if (proto == "weechat") {
|
|
||||||
doSend("init password=" + password + "\ninfo version\ntest\n");
|
|
||||||
} else {
|
|
||||||
doSend("PASS " + password + "\r\nNICK test\r\nUSER test 0 * :test\r\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function onClose(evt) {
|
|
||||||
display("disconnected", "Disconnected");
|
|
||||||
}
|
|
||||||
function onMessage(evt) {
|
|
||||||
display("recv", "⇒ " + evt.data);
|
|
||||||
}
|
|
||||||
function onError(evt) {
|
|
||||||
display("error", "ERROR: " + evt.data);
|
|
||||||
}
|
|
||||||
function doSend(message) {
|
|
||||||
msgs = message.replace(/[\r\n]+$/g, "").split("\n");
|
|
||||||
for (var i = 0; i < msgs.length; i++) {
|
|
||||||
display("sent", "⇐ " + msgs[i]);
|
|
||||||
}
|
|
||||||
websocket.send(message);
|
|
||||||
}
|
|
||||||
function display(class_name, message) {
|
|
||||||
var div = document.createElement("div");
|
|
||||||
div.className = class_name;
|
|
||||||
div.innerHTML = message;
|
|
||||||
output.appendChild(div);
|
|
||||||
}
|
|
||||||
window.addEventListener("load", init, false);
|
|
Loading…
Reference in a new issue