bin zhang avatar bin zhang committed 03da5e6

init

Comments (0)

Files changed (7)

+node_modules
+github hubot redis adapter

examples/__init__.py

+#!/usr/bin/env python
+#-*- coding: utf-8 -*-
+__author__ = 'iamsk'
+__email__ = 'iamsk.info@gmail.com'
+#!/usr/bin/env python
+#-*- coding: utf-8 -*-
+__author__ = 'iamsk'
+__email__ = 'iamsk.info@gmail.com'
+
+import redis
+
+client = redis.Redis()
+client.publish('hubot', 'hello world')
+#!/usr/bin/env python
+#-*- coding: utf-8 -*-
+__author__ = 'iamsk'
+__email__ = 'iamsk.info@gmail.com'
+
+import redis
+
+client = redis.Redis()
+ps = client.pubsub()
+ps.subscribe(['hubot'])
+for item in ps.listen():
+    print item
+{
+  "name": "hubot-redis",
+  "version": "0.0.1",
+  "author": "iamsk",
+  "keywords": [
+    "github hubot redis adapter"
+    ],
+  "description": "A Redis adapter for github hubot",
+    "repository": {
+      "type": "git",
+      "url": "git@github.com:iamsk/hubot-redis.git"
+    },
+    "dependencies": {
+      "redis" : ">= 0.8.2"
+    },
+    "devDependencies": {
+      "coffee-script": "1.4.0"
+    },
+    "main": "./src/redis_adapter",
+    "engine": "node >= 0.8.14",
+    "engines": {
+      "node": "*"
+    }
+}

src/redis_adapter.coffee

+Robot   = require("hubot").robot()
+Adapter = require("hubot").adapter()
+
+redis = require('redis')
+
+class Redis extends Adapter
+  constructor: (robot) ->
+    @redis_host = process.env.HUBOT_REDIS_HOST || 'localhost'
+    @redis_port = process.env.HUBOT_REDIS_PORT || 6379
+    @redis_db = process.env.HUBOT_REDIS_DB || 0
+    super robot
+
+  send: (user, strings...) ->
+    answer = strings.join "\n"
+    console.log("answer : " + answer + " to user " + user)
+    @client.publish("hubot", {answer: answer})
+
+  reply: (user, strings...) ->
+    console.log("reply: " + user + " with " + stings.join(', '))
+    @send user, str for str in strings
+
+  run: ->
+    @client = redis.createClient({host: @redis_host, port: @redis_port});
+    @client.subscribe("hubot");
+    @client.on("message", function (channel, message) {
+      console.log("client channel " + channel + ": " + message);
+      message = new Robot.TextMessage user, message
+      @receive message
+    });
+
+exports.use = (robot) ->
+  new Redis robot
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.