saber 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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