saber 1.1.1 → 1.2.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/.gitignore +1 -0
- data/CHANGELOG.md +8 -1
- data/Gemfile +6 -1
- data/Gemfile.lock +58 -14
- data/README.md +40 -125
- data/bin/saber +4 -2
- data/bin/saber.bb +3 -0
- data/bin/saber.stp +3 -0
- data/lib/saber.rb +5 -0
- data/lib/saber/autofetcher/server.rb +1 -1
- data/lib/saber/book.rb +36 -0
- data/lib/saber/cli.rb +45 -19
- data/lib/saber/core_ext.rb +68 -0
- data/lib/saber/fetcher.rb +2 -2
- data/lib/saber/rc.rb +6 -0
- data/lib/saber/task.rb +3 -0
- data/lib/saber/task/base.rb +6 -1
- data/lib/saber/task/chd.rb +10 -2
- data/lib/saber/task/clean.rb +2 -2
- data/lib/saber/task/find_uploads.rb +53 -0
- data/lib/saber/task/generate.rb +37 -20
- data/lib/saber/task/make.rb +20 -8
- data/lib/saber/task/send.rb +1 -1
- data/lib/saber/task/upload.rb +29 -19
- data/lib/saber/tracker.rb +8 -4
- data/lib/saber/tracker/base.rb +36 -15
- data/lib/saber/tracker/bb.rb +4 -10
- data/lib/saber/tracker/bib.rb +27 -11
- data/lib/saber/tracker/chd.rb +4 -4
- data/lib/saber/tracker/gazelle.rb +7 -0
- data/lib/saber/tracker/ptp.rb +2 -2
- data/lib/saber/tracker/stp.rb +53 -0
- data/lib/saber/tracker/what.rb +2 -2
- data/lib/saber/tracker2.rb +31 -0
- data/lib/saber/tracker2/base.rb +126 -0
- data/lib/saber/tracker2/bb.rb +211 -0
- data/lib/saber/tracker2/bib.rb +162 -0
- data/lib/saber/tracker2/gazelle.rb +52 -0
- data/lib/saber/tracker2/stp.rb +136 -0
- data/lib/saber/tracker2/what.rb +51 -0
- data/lib/saber/version.rb +1 -1
- data/lib/saber/watir_ext.rb +95 -0
- data/saber.gemspec +6 -1
- data/spec/saber/autofetcher/server_spec.rb +1 -1
- data/spec/saber/task_spec.rb +1 -1
- data/systemd/saber-chd@.service +12 -0
- data/systemd/saber-client@.service +12 -0
- data/systemd/saber-server@.service +12 -0
- data/templates/_saberrc +29 -8
- data/templates/article.yml +18 -0
- data/templates/bib/application.yml +8 -8
- data/templates/bib/audiobook.yml +12 -14
- data/templates/comic.yml +25 -0
- data/templates/ebook.yml +35 -0
- data/templates/journal.yml +19 -0
- data/templates/magazine.yml +41 -0
- data/templates/manual.yml +6 -0
- data/templates/newspaper.yml +6 -0
- metadata +109 -13
- data/templates/bb/comic.yml +0 -7
- data/templates/bb/ebook.yml +0 -8
- data/templates/bb/magazine.yml +0 -6
- data/templates/bib/article.yml +0 -18
- data/templates/bib/comic.yml +0 -22
- data/templates/bib/ebook.yml +0 -20
- data/templates/bib/journal.yml +0 -18
- data/templates/bib/magazine.yml +0 -18
- data/templates/what/ebook.yml +0 -6
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,15 @@
|
|
1
|
+
## 1.2.0 (xx)
|
2
|
+
|
3
|
+
**Improvements**
|
4
|
+
|
5
|
+
- add watir (javascript) support.
|
6
|
+
- add bB, STP
|
7
|
+
|
1
8
|
## 1.1.0 (Sep 12, 2012)
|
2
9
|
|
3
10
|
**Improvements**
|
4
11
|
|
5
|
-
- Replace 'xmpp4r' with beeter one 'blather'
|
12
|
+
- Replace 'xmpp4r' with beeter one 'blather' *Guten Ye*
|
6
13
|
|
7
14
|
## 1.0.2 (Sep 12, 2012)
|
8
15
|
|
data/Gemfile
CHANGED
@@ -3,7 +3,7 @@ source "https://rubygems.org"
|
|
3
3
|
gem "pd"
|
4
4
|
gem "tagen", "~>2.0.1"
|
5
5
|
gem "optimism", "~>3.3.1"
|
6
|
-
gem "pa", "~>1.3.
|
6
|
+
gem "pa", "~>1.3.3"
|
7
7
|
gem "retort", "~>0.0.6"
|
8
8
|
gem "thor", "~>0.16.0"
|
9
9
|
gem "net-ssh", "~>2.5.2"
|
@@ -11,6 +11,11 @@ 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"
|
14
|
+
gem "watir", "~>4.0.1"
|
15
|
+
gem "faraday", "~>0.8.4"
|
16
|
+
gem "faraday_middleware", "~>0.8.8"
|
17
|
+
gem "isbn", "~>2.0.7"
|
18
|
+
gem "sys-filesystem", "~>1.0.0"
|
14
19
|
|
15
20
|
group :development do
|
16
21
|
gem "rspec"
|
data/Gemfile.lock
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
PATH
|
2
|
+
remote: /home/guten/dev/one/pa
|
3
|
+
specs:
|
4
|
+
pa (1.3.3)
|
5
|
+
pd
|
6
|
+
|
1
7
|
GEM
|
2
8
|
remote: https://rubygems.org/
|
3
9
|
specs:
|
@@ -5,30 +11,45 @@ GEM
|
|
5
11
|
i18n (~> 0.6)
|
6
12
|
multi_json (~> 1.0)
|
7
13
|
addressable (2.3.2)
|
8
|
-
blather (0.8.
|
14
|
+
blather (0.8.1)
|
9
15
|
activesupport (>= 2.3.11)
|
10
16
|
eventmachine (>= 0.12.6)
|
11
17
|
girl_friday
|
12
18
|
niceogiri (~> 1.0)
|
13
19
|
nokogiri (~> 1.5.5)
|
20
|
+
childprocess (0.3.6)
|
21
|
+
ffi (~> 1.0, >= 1.0.6)
|
22
|
+
coderay (1.0.8)
|
23
|
+
commonwatir (4.0.0)
|
14
24
|
connection_pool (0.9.2)
|
15
25
|
crack (0.3.1)
|
16
26
|
diff-lcs (1.1.3)
|
17
|
-
domain_name (0.5.
|
27
|
+
domain_name (0.5.4)
|
18
28
|
unf (~> 0.0.3)
|
19
29
|
eventmachine (1.0.0)
|
30
|
+
faraday (0.8.4)
|
31
|
+
multipart-post (~> 1.1)
|
32
|
+
faraday_middleware (0.8.8)
|
33
|
+
faraday (>= 0.7.4, < 0.9)
|
20
34
|
ffi (1.1.5)
|
21
35
|
girl_friday (0.10.0)
|
22
36
|
connection_pool (~> 0.9.0)
|
23
|
-
guard (1.
|
37
|
+
guard (1.5.0)
|
24
38
|
listen (>= 0.4.2)
|
39
|
+
lumberjack (>= 1.0.2)
|
40
|
+
pry (>= 0.9.10)
|
25
41
|
thor (>= 0.14.6)
|
26
|
-
guard-rspec (
|
42
|
+
guard-rspec (2.1.0)
|
27
43
|
guard (>= 1.1)
|
28
|
-
|
44
|
+
rspec (~> 2.11)
|
45
|
+
highline (1.6.15)
|
29
46
|
i18n (0.6.1)
|
47
|
+
isbn (2.0.7)
|
30
48
|
json (1.7.5)
|
31
|
-
|
49
|
+
libwebsocket (0.1.5)
|
50
|
+
addressable
|
51
|
+
listen (0.5.3)
|
52
|
+
lumberjack (1.0.2)
|
32
53
|
mechanize (2.5.1)
|
33
54
|
domain_name (~> 0.5, >= 0.5.1)
|
34
55
|
mime-types (~> 1.17, >= 1.17.2)
|
@@ -37,10 +58,12 @@ GEM
|
|
37
58
|
nokogiri (~> 1.4)
|
38
59
|
ntlm-http (~> 0.1, >= 0.1.1)
|
39
60
|
webrobots (~> 0.0, >= 0.0.9)
|
61
|
+
method_source (0.8.1)
|
40
62
|
mime-types (1.19)
|
41
63
|
multi_json (1.3.6)
|
64
|
+
multipart-post (1.1.5)
|
42
65
|
net-http-digest_auth (1.2.1)
|
43
|
-
net-http-persistent (2.
|
66
|
+
net-http-persistent (2.8)
|
44
67
|
net-ssh (2.5.2)
|
45
68
|
niceogiri (1.0.2)
|
46
69
|
nokogiri (~> 1.4)
|
@@ -49,9 +72,11 @@ GEM
|
|
49
72
|
optimism (3.3.1)
|
50
73
|
json
|
51
74
|
pd
|
52
|
-
pa (1.3.2)
|
53
|
-
pd
|
54
75
|
pd (1.1.0)
|
76
|
+
pry (0.9.10)
|
77
|
+
coderay (~> 1.0.5)
|
78
|
+
method_source (~> 0.8)
|
79
|
+
slop (~> 3.3.1)
|
55
80
|
rb-inotify (0.8.8)
|
56
81
|
ffi (>= 0.5.0)
|
57
82
|
retort (0.0.6)
|
@@ -62,9 +87,18 @@ GEM
|
|
62
87
|
rspec-expectations (~> 2.11.0)
|
63
88
|
rspec-mocks (~> 2.11.0)
|
64
89
|
rspec-core (2.11.1)
|
65
|
-
rspec-expectations (2.11.
|
90
|
+
rspec-expectations (2.11.3)
|
66
91
|
diff-lcs (~> 1.1.3)
|
67
|
-
rspec-mocks (2.11.
|
92
|
+
rspec-mocks (2.11.3)
|
93
|
+
rubyzip (0.9.9)
|
94
|
+
selenium-webdriver (2.25.0)
|
95
|
+
childprocess (>= 0.2.5)
|
96
|
+
libwebsocket (~> 0.1.3)
|
97
|
+
multi_json (~> 1.0)
|
98
|
+
rubyzip
|
99
|
+
slop (3.3.3)
|
100
|
+
sys-filesystem (1.0.0)
|
101
|
+
ffi (>= 1.0.0)
|
68
102
|
tagen (2.0.1)
|
69
103
|
activesupport
|
70
104
|
pd
|
@@ -72,8 +106,13 @@ GEM
|
|
72
106
|
unf (0.0.5)
|
73
107
|
unf_ext
|
74
108
|
unf_ext (0.0.5)
|
75
|
-
vcr (2.2.
|
76
|
-
|
109
|
+
vcr (2.2.5)
|
110
|
+
watir (4.0.1)
|
111
|
+
commonwatir (~> 4)
|
112
|
+
watir-webdriver
|
113
|
+
watir-webdriver (0.6.1)
|
114
|
+
selenium-webdriver (>= 2.18.0)
|
115
|
+
webmock (1.8.11)
|
77
116
|
addressable (>= 2.2.7)
|
78
117
|
crack (>= 0.1.7)
|
79
118
|
webrobots (0.0.13)
|
@@ -83,19 +122,24 @@ PLATFORMS
|
|
83
122
|
|
84
123
|
DEPENDENCIES
|
85
124
|
blather (~> 0.8.0)
|
125
|
+
faraday
|
126
|
+
faraday_middleware
|
86
127
|
guard
|
87
128
|
guard-rspec
|
88
129
|
highline (~> 1.6.14)
|
130
|
+
isbn
|
89
131
|
mechanize (~> 2.5.1)
|
90
132
|
net-ssh (~> 2.5.2)
|
91
133
|
optimism (~> 3.3.1)
|
92
|
-
pa
|
134
|
+
pa!
|
93
135
|
pd
|
94
136
|
rb-inotify
|
95
137
|
retort (~> 0.0.6)
|
96
138
|
reverse_markdown (~> 0.3.0)
|
97
139
|
rspec
|
140
|
+
sys-filesystem
|
98
141
|
tagen (~> 2.0.1)
|
99
142
|
thor (~> 0.16.0)
|
100
143
|
vcr
|
144
|
+
watir
|
101
145
|
webmock
|
data/README.md
CHANGED
@@ -1,73 +1,76 @@
|
|
1
1
|
Saber, a complete solution for PT users. [](http://travis-ci.org/SaberSalv/saber)
|
2
2
|
==========================================
|
3
3
|
|
4
|
-
| |
|
5
|
-
|
4
|
+
| | |
|
5
|
+
|----------------|-------------------------------------------|
|
6
6
|
| Homepage: | https://github.com/SaberSalv/saber |
|
7
|
-
| Author: | Saber
|
8
|
-
| License: | MIT-LICENSE
|
7
|
+
| Author: | Saber |
|
8
|
+
| License: | MIT-LICENSE |
|
9
9
|
| Documentation: | https://github.com/SaberSalv/saber/wiki |
|
10
10
|
| Issue Tracker: | https://github.com/SaberSalv/saber/issues |
|
11
|
+
| Operation Systems: | Linux, Mac OS X |
|
11
12
|
|
12
13
|
**Features:**
|
13
14
|
|
14
|
-
* Add Torrent
|
15
|
-
*
|
16
|
-
*
|
17
|
-
* Other Tasks
|
18
|
-
- Make
|
19
|
-
- Send
|
20
|
-
- Clean
|
15
|
+
* **Add Torrent**: send a torrent file from website to rutorrent.
|
16
|
+
* **Upload**: upload a torrent file from command line to the site.
|
17
|
+
* **Fetch**: automatically/manually fetch files from seedbox to home-laptop.
|
18
|
+
* **Other Tasks**:
|
19
|
+
- **Make**: make a torrent file and copy it to local and remote watch directory.
|
20
|
+
- **Send**: send files from home-laptop to seedbox.
|
21
|
+
- **Clean**: remove files which are not seeded in rtorrent.
|
21
22
|
|
22
23
|
you can find more tools at [here](https://github.com/SaberSalv/saber/wiki/Tools).
|
23
24
|
|
24
25
|
Getting Started
|
25
26
|
----------------
|
26
27
|
|
27
|
-
Create
|
28
|
+
Create `~/.saberrc` configuration file from [template](https://github.com/SaberSalv/saber/blob/master/templates/_saberrc).
|
28
29
|
|
29
30
|
### Add Torrent
|
30
31
|
|
31
32
|
See [saber-addtorrent](https://github.com/SaberSalv/saber-addtorrent) project.
|
32
33
|
|
34
|
+
### Upload
|
33
35
|
|
34
|
-
|
36
|
+
Because of lacking APIs in major PT sites, so I write this small script to help uploading a torrent from cmdline. Good news is BTN v2.0 will include API. And BTN already has an official autobot which grabs scene releases. :)
|
35
37
|
|
36
|
-
|
38
|
+
> Support sites: BIB, bB, STP
|
39
|
+
|
40
|
+
> Support upload types: ebook, magazine
|
41
|
+
|
42
|
+
Manual fill \<info-data>.yml file and upload it.
|
37
43
|
|
38
|
-
|
44
|
+
$ saber.bib g magazine hello.pdf
|
45
|
+
> create hello.yml
|
46
|
+
$ edit hello.yml
|
39
47
|
|
40
|
-
|
41
|
-
|
48
|
+
type: magazines
|
49
|
+
title: Hello
|
50
|
+
description: Hello World
|
51
|
+
...
|
42
52
|
|
43
|
-
|
44
|
-
|
53
|
+
$ saber.bib upload pdf hello.yml
|
54
|
+
> it opens a firefox browser
|
55
|
+
> it fills data and submit it
|
56
|
+
> upload complete
|
45
57
|
|
46
|
-
|
47
|
-
jid = "x1@gmail.com" # need register a gtalk account.
|
48
|
-
password = "y1"
|
49
|
-
host = nil
|
50
|
-
port = nil
|
58
|
+
Auto fill \<info-data>.yml file from ISBN.
|
51
59
|
|
52
|
-
|
53
|
-
|
54
|
-
jid = "x2@gmail.com"
|
55
|
-
password = "y2"
|
56
|
-
host = nil
|
57
|
-
port = nil
|
60
|
+
$ saber.bib g ebook hello.epub:1781100055
|
61
|
+
> create hello.yml
|
58
62
|
|
59
|
-
|
63
|
+
### Fetch
|
60
64
|
|
61
|
-
|
65
|
+
#### AutoFetch
|
62
66
|
|
63
|
-
|
67
|
+
Start saber-server at server side.
|
64
68
|
|
65
69
|
$ saber server -V
|
66
70
|
|
67
71
|
Start saber-client at client side.
|
68
72
|
|
69
73
|
$ aria2c --enable-rpc --save-session session.lock -i session.lock
|
70
|
-
|
71
74
|
$ saber client -V
|
72
75
|
|
73
76
|
Test if it works
|
@@ -81,115 +84,34 @@ Manually fetch: right click 'Saber Fetch' in rutorrent web ui, then it'll add to
|
|
81
84
|
|
82
85
|
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.
|
83
86
|
|
84
|
-
For ArchLinux, you can install `saber-server-daemon`, `user-saber-client-daemon`, `user-aria2-daemon` packages.
|
85
|
-
|
86
87
|
#### ManualFetch
|
87
88
|
|
88
|
-
Configure ~/.saberrc
|
89
|
-
|
90
|
-
p:
|
91
|
-
fetcher_download = Pa("~/download")
|
92
|
-
remote_download = Pa("~/bt")
|
93
|
-
|
94
|
-
server:
|
95
|
-
user = "x"
|
96
|
-
host = "seedbox"
|
97
|
-
ftp = "ftp://seedbox/bt"
|
98
|
-
|
99
89
|
Begin fetch a file from seedbox
|
100
90
|
|
101
91
|
$ saber fetch foo
|
102
92
|
> begin to download ftp://seedbox/bt/foo/a.epub via aria2
|
103
93
|
> begin to download ftp://seedbox/bt/foo/b.epub via aria2
|
104
94
|
|
105
|
-
### Upload
|
106
|
-
|
107
|
-
Because of lacking APIs in major PT sites, so I write this small script to help uploading a torrent from cmdline. Good news is BTN v2.0 will include API. And BTN already has an official autobot which grabs scene releases. :)
|
108
|
-
|
109
|
-
> Support sites: BIB
|
110
|
-
|
111
|
-
Configure ~/.saberrc
|
112
|
-
|
113
|
-
p:
|
114
|
-
watch = Pa("~/bt/watch")
|
115
|
-
remote_watch = Pa("bt/watch")
|
116
|
-
|
117
|
-
username = "foo"
|
118
|
-
bib:
|
119
|
-
username = "bar"
|
120
|
-
announce_url = "x"
|
121
|
-
|
122
|
-
server:
|
123
|
-
user = "x"
|
124
|
-
host = "y"
|
125
|
-
|
126
|
-
Fill \<info-data>.yml file and upload it.
|
127
|
-
|
128
|
-
$ saber.bib g magazine hello.pdf
|
129
|
-
> create hello.pdf.yml
|
130
|
-
$ vim hello.pdf.yml
|
131
|
-
|
132
|
-
type: magazines
|
133
|
-
Title: Hello
|
134
|
-
Description: Hello World
|
135
|
-
...
|
136
|
-
|
137
|
-
$ saber.bib upload hello.pdf.torrent
|
138
|
-
> Upload Complete
|
139
|
-
|
140
|
-
$ saber.bib upload hello.pdf # short cut
|
141
|
-
> make hello.pdf.torrent
|
142
|
-
> Upload Complete
|
143
|
-
|
144
|
-
Auto fill \<info-data>.yml file from isbn.
|
145
|
-
|
146
|
-
$ saber.bib g ebook hello.epub 1781100055
|
147
|
-
> create hello.epub.yml
|
148
|
-
|
149
95
|
### Tasks
|
150
96
|
|
151
97
|
#### Make
|
152
98
|
|
153
|
-
Configure ~/.saberrc
|
154
|
-
|
155
|
-
p:
|
156
|
-
watch = Pa("~/bt/watch")
|
157
|
-
remote_watch = Pa("bt/watch")
|
158
|
-
|
159
|
-
bib:
|
160
|
-
announce_url = "x"
|
161
|
-
|
162
|
-
server:
|
163
|
-
user = "x"
|
164
|
-
host = "y"
|
165
|
-
|
166
99
|
Make a torrent
|
167
100
|
|
168
|
-
$ saber make hello.epub
|
169
|
-
> mktorrent -p -a
|
101
|
+
$ saber.bib make hello.epub
|
102
|
+
> mktorrent -p -a ANNOUNCE_URL hello.epub
|
170
103
|
> cp hello.epub.torrent ~/bt/watch
|
171
104
|
> rsync -Phr hello.epub.torrent user@host:bt/watch
|
172
105
|
|
173
106
|
#### Send
|
174
107
|
|
175
|
-
Configure ~/.saberrc
|
176
|
-
|
177
|
-
server:
|
178
|
-
user = "x"
|
179
|
-
host = "y"
|
180
|
-
|
181
108
|
Send files to seedbox
|
182
109
|
|
183
110
|
$ saber send1 hello.epub bt
|
184
|
-
> rsync -
|
111
|
+
> rsync -ahP hello.epub user@host:bt
|
185
112
|
|
186
113
|
#### Clean
|
187
114
|
|
188
|
-
Configure ~/.saberrc
|
189
|
-
|
190
|
-
p:
|
191
|
-
download = Pa("~/bt")
|
192
|
-
|
193
115
|
Clean up unseeded files in rtorrent.
|
194
116
|
|
195
117
|
$ saber clean
|
@@ -216,13 +138,6 @@ Please see [Contibution Documentation](https://github.com/SaberSalv/saber/blob/m
|
|
216
138
|
|
217
139
|
A list of [Contributors](https://github.com/SaberSalv/saber/contributors).
|
218
140
|
|
219
|
-
Resources
|
220
|
-
---------
|
221
|
-
|
222
|
-
* [Archlinux](http://www.archlinux.org): A simple, lightweight linux distribution.
|
223
|
-
* [pacaur](https://github.com/Spyhawk/pacaur): An AUR helper for ArchLinux.
|
224
|
-
* [YAAW](https://github.com/binux/yaaw): Yet Another Aria2 Web Frontend in pure HTML/CSS/Javascirpt.
|
225
|
-
|
226
141
|
Copyright
|
227
142
|
---------
|
228
143
|
|
data/bin/saber
CHANGED
@@ -4,11 +4,13 @@ require_relative "../lib/saber"
|
|
4
4
|
begin
|
5
5
|
Saber::CLI.start
|
6
6
|
rescue Interrupt => e
|
7
|
-
Saber.ui.
|
7
|
+
Saber.ui.say "\nQuitting..."
|
8
8
|
Saber.ui.debug e.backtrace.join("\n")
|
9
9
|
exit 1
|
10
|
+
rescue SyntaxError
|
11
|
+
raise
|
10
12
|
rescue Exception => e
|
11
13
|
Saber.ui.error "#{e.class.name}: #{e.message}"
|
12
|
-
Saber.ui.
|
14
|
+
Saber.ui.say e.backtrace.join("\n")
|
13
15
|
exit 1
|
14
16
|
end
|