saber 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.bundle/config ADDED
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_DISABLE_SHARED_GEMS: '1'
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 1.1.0 (Sep 12, 2012)
2
+
3
+ **Improvements**
4
+
5
+ - Replace 'xmpp4r' with beeter one 'blather'
6
+
1
7
  ## 1.0.2 (Sep 12, 2012)
2
8
 
3
9
  **Bugfixes**
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ gem "pa", "~>1.3.2"
7
7
  gem "retort", "~>0.0.6"
8
8
  gem "thor", "~>0.16.0"
9
9
  gem "net-ssh", "~>2.5.2"
10
- gem "xmpp4r", "~>0.5"
10
+ gem "blather", "~>0.8.0"
11
11
  gem "mechanize", "~>2.5.1"
12
12
  gem "highline", "~>1.6.14"
13
13
  gem "reverse_markdown", "~>0.3.0"
data/Gemfile.lock CHANGED
@@ -5,11 +5,21 @@ GEM
5
5
  i18n (~> 0.6)
6
6
  multi_json (~> 1.0)
7
7
  addressable (2.3.2)
8
+ blather (0.8.0)
9
+ activesupport (>= 2.3.11)
10
+ eventmachine (>= 0.12.6)
11
+ girl_friday
12
+ niceogiri (~> 1.0)
13
+ nokogiri (~> 1.5.5)
14
+ connection_pool (0.9.2)
8
15
  crack (0.3.1)
9
16
  diff-lcs (1.1.3)
10
17
  domain_name (0.5.3)
11
18
  unf (~> 0.0.3)
19
+ eventmachine (1.0.0)
12
20
  ffi (1.1.5)
21
+ girl_friday (0.10.0)
22
+ connection_pool (~> 0.9.0)
13
23
  guard (1.3.2)
14
24
  listen (>= 0.4.2)
15
25
  thor (>= 0.14.6)
@@ -32,6 +42,8 @@ GEM
32
42
  net-http-digest_auth (1.2.1)
33
43
  net-http-persistent (2.7)
34
44
  net-ssh (2.5.2)
45
+ niceogiri (1.0.2)
46
+ nokogiri (~> 1.4)
35
47
  nokogiri (1.5.5)
36
48
  ntlm-http (0.1.1)
37
49
  optimism (3.3.1)
@@ -65,12 +77,12 @@ GEM
65
77
  addressable (>= 2.2.7)
66
78
  crack (>= 0.1.7)
67
79
  webrobots (0.0.13)
68
- xmpp4r (0.5)
69
80
 
70
81
  PLATFORMS
71
82
  ruby
72
83
 
73
84
  DEPENDENCIES
85
+ blather (~> 0.8.0)
74
86
  guard
75
87
  guard-rspec
76
88
  highline (~> 1.6.14)
@@ -87,4 +99,3 @@ DEPENDENCIES
87
99
  thor (~> 0.16.0)
88
100
  vcr
89
101
  webmock
90
- xmpp4r (~> 0.5)
data/README.md CHANGED
@@ -122,7 +122,7 @@ Automatically fetch: when a file is finished download in rutorrent with label 's
122
122
 
123
123
  Manually fetch: right click 'Saber Fetch' in rutorrent web ui, then it'll add to aria2.
124
124
 
125
- Or from command line, send a download file to client: `saber drb_add <hash_id> saber`
125
+ Or from command line, send a download file to client: `saber drb_add <hash_id> saber`, sometime the client need a long time(2 minutes) to recive the file list sent by server.
126
126
 
127
127
  For ArchLinux, you can install `saber-server-daemon`, `user-saber-client-daemon`, `user-aria2-daemon` packages.
128
128
 
@@ -1,5 +1,4 @@
1
- require "tagen/xmpp4r"
2
- require "xmpp4r/client"
1
+ require "blather/client/dsl"
3
2
  require "drb"
4
3
 
5
4
  module Saber
@@ -7,52 +6,47 @@ module Saber
7
6
  class Client
8
7
  class << self
9
8
  def start
10
- client = Client.new
9
+ c = Client.new
10
+ c.start
11
11
 
12
- client.start
13
- p Thread.list
14
-
15
- Thread.list.each{|v| v.join}
12
+ EM.run { c.run }
16
13
  end
17
14
  end
18
15
 
19
- attr_reader :client, :fetcher
16
+ include Blather::DSL
17
+
18
+ attr_reader :fetcher
20
19
 
21
20
  def initialize
22
- @client = Jabber::Client.new(Jabber::JID.new(Rc.client.xmpp.jid))
23
21
  @fetcher = Fetcher.new
24
22
  end
25
23
 
24
+ def run
25
+ client.run
26
+ end
27
+
26
28
  def start
27
- client.connect Rc.client.xmpp.host, Rc.client.xmpp.port
28
- client.auth Rc.client.xmpp.password
29
+ rc = Rc.client.xmpp
30
+ setup rc.jid, rc.password, rc.host, rc.port
31
+ when_ready { Saber.ui.say ">> Connected to xmpp at #{jid}" }
32
+ disconnected { client.connect }
29
33
 
30
- at_exit do
31
- pd Thread.current
32
- begin
33
- client.send Jabber::Presence.new.set_type(:unavaliable)
34
- rescue IOError # closed stream
35
- Saber.ui.error "closed stream (IOError)"
36
- end
34
+ message :chat?, :body, :from => /#{Rc.server.xmpp.jid}/ do |m|
35
+ process_msg m.body
37
36
  end
38
-
39
- client.add_message_callback { |msg|
40
- if msg.from.bare == Rc.server.xmpp.jid
41
- files = msg.body.split("\n")
42
- Saber.ui.debug "RECV #{files}"
43
- fetcher.add *files
44
- end
45
- pd "add done"
46
- }
47
-
48
- client.send Jabber::Iq.new_rosterget
49
- client.send Jabber::Presence.new.set_type(:avaliable)
50
- Saber.ui.say ">> Connected to xmpp with #{Rc.client.xmpp.jid}"
51
37
  end
52
38
 
53
39
  def stop
54
40
  @client.close!
55
41
  end
42
+
43
+ protected
44
+
45
+ def process_msg(body)
46
+ files = body.split("\n")
47
+ Saber.ui.debug files.map{|v| "RECV #{v}"}.join("\n")
48
+ fetcher.add *files
49
+ end
56
50
  end
57
51
 
58
52
  class DRbClient
@@ -65,9 +59,11 @@ module Saber
65
59
  end
66
60
 
67
61
  def add(*names)
68
- Saber.ui.say "ADD #{names}"
62
+ Saber.ui.debug "DRbClient-ADD #{names.inspect}"
69
63
  server.add(*names)
70
64
  end
71
65
  end
72
66
  end
73
67
  end
68
+
69
+ # vim: fdn=4
@@ -1,42 +1,35 @@
1
- require "tagen/xmpp4r"
2
- require "xmpp4r/client"
1
+ require "blather/client/dsl"
3
2
  require "drb"
4
3
 
5
4
  module Saber
6
5
  module AutoFetcher
7
6
  class Server
7
+ include Blather::DSL
8
+
8
9
  def self.start
9
10
  s = Server.new
10
11
  DRbServer.start(s)
11
12
  s.start
12
13
 
13
- Thread.list.each {|v| v.join}
14
+ EM.run { s.run }
14
15
  end
15
16
 
16
- attr_reader :client
17
-
18
- def initialize
19
- @client = Jabber::Client.new(Jabber::JID.new(Rc.server.xmpp.jid))
17
+ def run
18
+ client.run
20
19
  end
21
20
 
22
21
  def start
23
- client.connect Rc.server.xmpp.host, Rc.server.xmpp.port
24
- client.auth Rc.server.xmpp.password
25
-
26
- at_exit do
27
- client.send Jabber::Presence.new.set_type(:unavaliable)
28
- end
29
-
30
- client.send Jabber::Iq.new_rosterget
31
- client.send Jabber::Presence.new.set_type(:avaliable)
22
+ rc = Rc.server.xmpp
23
+ setup rc.jid, rc.password, rc.host, rc.port
32
24
 
33
- Saber.ui.say ">> Connected to xmpp with #{Rc.server.xmpp.jid}"
25
+ when_ready { Saber.ui.say ">> Connected to xmpp at #{jid}" }
26
+ disconnected { client.connect }
34
27
  end
35
28
 
36
29
  def send(files)
37
- Saber.ui.debug "SEND #{files.join("\n")}"
38
- #client.send Jabber::Presence.new
39
- client.send Jabber::Message.new(Rc.client.xmpp.jid, files.join("\n")).set_type(:chat)
30
+ msg = files.join("\n")
31
+ Saber.ui.debug files.map{|v| "SEND #{v}"}.join("\n")
32
+ say Rc.client.xmpp.jid , msg
40
33
  end
41
34
  end
42
35
 
@@ -61,9 +54,7 @@ module Saber
61
54
 
62
55
  # drb. add a complete torrent.
63
56
  def add(*names)
64
- Saber.ui.debug "DRbServer-ADD #{names.inspect}"
65
57
  files = build_files(*names)
66
-
67
58
  saber_server.send(files)
68
59
  end
69
60
 
data/lib/saber/rc.rb CHANGED
@@ -11,3 +11,13 @@ aria2:
11
11
  port = 3014
12
12
  token = "641a16655dad688ab681c0279a4369b5"
13
13
  drb_uri = "druby://localhost:3015"
14
+
15
+ server:
16
+ xmpp:
17
+ host = nil
18
+ port = nil
19
+
20
+ client:
21
+ xmpp:
22
+ host = nil
23
+ port = nil
data/lib/saber/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Saber
2
- VERSION = "1.0.2"
2
+ VERSION = "1.1.0"
3
3
  end
data/saber.gemspec CHANGED
@@ -24,7 +24,7 @@ A complete solution for PT users.
24
24
  s.add_dependency "retort", "~> 0.0.6"
25
25
  s.add_dependency "thor", "~> 0.16.0"
26
26
  s.add_dependency "net-ssh", "~> 2.5.2"
27
- s.add_dependency "xmpp4r", "~> 0.5"
27
+ s.add_dependency "blather", "~> 0.8.0"
28
28
  s.add_dependency "mechanize", "~> 2.5.1"
29
29
  s.add_dependency "highline", "~> 1.6.14"
30
30
  s.add_dependency "reverse_markdown", "~> 0.3.0"
data/templates/_saberrc CHANGED
@@ -19,18 +19,13 @@ bib:
19
19
  # [saber-fetch]
20
20
  server:
21
21
  ftp = "ftp://seedbox/bt"
22
-
23
22
  xmpp:
24
23
  jid = "x1@gmail.com"
25
24
  password = "y1"
26
- host = nil
27
- port = nil
28
25
 
29
26
  client:
30
27
  xmpp:
31
28
  jid = "x2@gmail.com"
32
29
  password = "y2"
33
- host = nil
34
- port = nil
35
30
 
36
31
  # vim: ft=ruby
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saber
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -124,13 +124,13 @@ dependencies:
124
124
  - !ruby/object:Gem::Version
125
125
  version: 2.5.2
126
126
  - !ruby/object:Gem::Dependency
127
- name: xmpp4r
127
+ name: blather
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
131
  - - ~>
132
132
  - !ruby/object:Gem::Version
133
- version: '0.5'
133
+ version: 0.8.0
134
134
  type: :runtime
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
@@ -138,7 +138,7 @@ dependencies:
138
138
  requirements:
139
139
  - - ~>
140
140
  - !ruby/object:Gem::Version
141
- version: '0.5'
141
+ version: 0.8.0
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: mechanize
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -197,6 +197,7 @@ extensions:
197
197
  - extconf.rb
198
198
  extra_rdoc_files: []
199
199
  files:
200
+ - .bundle/config
200
201
  - .gitignore
201
202
  - .rspec
202
203
  - .travis.yml