initial draft
This commit is contained in:
commit
fa34e0c422
9 changed files with 85 additions and 0 deletions
2
.bundle/config
Normal file
2
.bundle/config
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
---
|
||||||
|
BUNDLE_PATH: "vendor"
|
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
config.yml
|
||||||
|
vendor
|
3
Gemfile
Normal file
3
Gemfile
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
gem 'rocketchat'
|
13
Gemfile.lock
Normal file
13
Gemfile.lock
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
GEM
|
||||||
|
remote: https://rubygems.org/
|
||||||
|
specs:
|
||||||
|
rocketchat (0.1.15)
|
||||||
|
|
||||||
|
PLATFORMS
|
||||||
|
ruby
|
||||||
|
|
||||||
|
DEPENDENCIES
|
||||||
|
rocketchat
|
||||||
|
|
||||||
|
BUNDLED WITH
|
||||||
|
1.16.2
|
3
config.yml.sample
Normal file
3
config.yml.sample
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
server: 'http://your.server.address'
|
||||||
|
user: 'user'
|
||||||
|
pass: 'password'
|
16
lib/rocketchat/channel.rb
Normal file
16
lib/rocketchat/channel.rb
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
module RocketChat
|
||||||
|
module Messages
|
||||||
|
class Channel < Room
|
||||||
|
def history(room: nil, since: nil, count: 10)
|
||||||
|
response = session.request_json(
|
||||||
|
'/api/v1/channels.history',
|
||||||
|
body: {
|
||||||
|
roomId: room,
|
||||||
|
oldest: since,
|
||||||
|
count: count
|
||||||
|
})
|
||||||
|
response['messages'] if response['success']
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
6
lib/rocketweekly.rb
Normal file
6
lib/rocketweekly.rb
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
$:.unshift File.dirname(__FILE__) unless $:.include? File.dirname(__FILE__)
|
||||||
|
|
||||||
|
require 'rocketchat'
|
||||||
|
require 'rocketchat/channel'
|
||||||
|
|
||||||
|
require 'rocketweekly/connect'
|
19
lib/rocketweekly/connect.rb
Normal file
19
lib/rocketweekly/connect.rb
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
module RocketWeekly
|
||||||
|
class Connect
|
||||||
|
attr_reader :session
|
||||||
|
|
||||||
|
def initialize
|
||||||
|
config = YAML.load_file(File.expand_path('../../../config.yml', __FILE__))
|
||||||
|
server = RocketChat::Server.new config['server']
|
||||||
|
@session = server.login(config['user'], config['pass'])
|
||||||
|
end
|
||||||
|
|
||||||
|
def channels_list
|
||||||
|
@session.channels.list(offset: 0, count: 200)
|
||||||
|
end
|
||||||
|
|
||||||
|
def channel_history(id)
|
||||||
|
@session.channels.history(room: id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
21
run.rb
Normal file
21
run.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
require 'yaml'
|
||||||
|
require_relative './lib/rocketweekly'
|
||||||
|
|
||||||
|
rocket = RocketWeekly::Connect.new
|
||||||
|
|
||||||
|
output = {}
|
||||||
|
rocket.channels_list.each do |channel|
|
||||||
|
output[channel.name] = {
|
||||||
|
'id' => channel.id,
|
||||||
|
'owner' => channel.owner ? channel.owner['username'] : '----'
|
||||||
|
}
|
||||||
|
puts '--------------'
|
||||||
|
puts channel.name
|
||||||
|
rocket.channel_history(channel.id).each do |m|
|
||||||
|
printf "%s %-20s\n", m['u']['username'], m['msg']
|
||||||
|
puts
|
||||||
|
end
|
||||||
|
break
|
||||||
|
end
|
||||||
|
|
||||||
|
puts '--------------'
|
Loading…
Reference in a new issue