junkie 0.0.12 → 0.0.13
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/junkie.gemspec +1 -1
- data/lib/junkie/patched/sjunkieex.rb +0 -19
- data/lib/junkie/reactor.rb +43 -27
- data/lib/junkie/version.rb +1 -1
- metadata +7 -8
data/junkie.gemspec
CHANGED
@@ -30,5 +30,5 @@ Gem::Specification.new do |gem|
|
|
30
30
|
gem.add_runtime_dependency('twitter', ["~> 4.4.0"])
|
31
31
|
gem.add_runtime_dependency('thin')
|
32
32
|
gem.add_runtime_dependency('sinatra')
|
33
|
-
gem.add_runtime_dependency('sinatra-websocket')
|
33
|
+
gem.add_runtime_dependency('sinatra-websocket', ["~> 0.2.1"])
|
34
34
|
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'em-http'
|
2
|
-
require 'fiber'
|
3
1
|
require 'junkie/log'
|
4
2
|
require 'sjunkieex'
|
5
3
|
|
@@ -81,22 +79,5 @@ module Junkie
|
|
81
79
|
return []
|
82
80
|
end
|
83
81
|
|
84
|
-
private
|
85
|
-
|
86
|
-
def get_page_data(link)
|
87
|
-
f = Fiber.current
|
88
|
-
http = EventMachine::HttpRequest.new(link).get :timeout => 10
|
89
|
-
|
90
|
-
http.callback { f.resume(http) }
|
91
|
-
http.errback { f.resume(http) }
|
92
|
-
|
93
|
-
Fiber.yield
|
94
|
-
|
95
|
-
if http.error
|
96
|
-
raise IOError, http.error
|
97
|
-
end
|
98
|
-
|
99
|
-
http.response
|
100
|
-
end
|
101
82
|
end
|
102
83
|
end
|
data/lib/junkie/reactor.rb
CHANGED
@@ -39,33 +39,6 @@ module Junkie
|
|
39
39
|
build_procs # has to be called here
|
40
40
|
end
|
41
41
|
|
42
|
-
def build_procs
|
43
|
-
|
44
|
-
# Proc that looks for new episodes on Seriesjunkies.org and adds them to
|
45
|
-
# the episode_queue if they are new
|
46
|
-
@look_for_new_episodes = Proc.new {
|
47
|
-
in_fiber {
|
48
|
-
|
49
|
-
log.debug "Reload Sindex from file"
|
50
|
-
# TODO refactor this so that we can detect if we have to reload the
|
51
|
-
# index (by MD5sum)
|
52
|
-
sindex = Sindex::SeriesIndex.new(index_file: @config[:series_index_file])
|
53
|
-
sjunkieex = Sjunkieex::Interface.new(sindex)
|
54
|
-
|
55
|
-
log.info "Looking for new episodes"
|
56
|
-
sjunkieex.get_links_for_downloads.each do |episode|
|
57
|
-
identifier = "%s@%s" % [episode.id, episode.series]
|
58
|
-
|
59
|
-
if not @found_episodes.has_key? identifier
|
60
|
-
log.info("Found new episode '#{episode}'")
|
61
|
-
|
62
|
-
@channels[:episodes].push(episode)
|
63
|
-
@found_episodes[identifier] = episode
|
64
|
-
end
|
65
|
-
end
|
66
|
-
}
|
67
|
-
}
|
68
|
-
end
|
69
42
|
|
70
43
|
###########################################################################
|
71
44
|
#################### The Reactor ##########################################
|
@@ -97,5 +70,48 @@ module Junkie
|
|
97
70
|
Junkie::Webinterface::Interface.setup(@channels)
|
98
71
|
end
|
99
72
|
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
def build_procs
|
77
|
+
|
78
|
+
# Proc that looks for new episodes on Seriesjunkies.org and adds them to
|
79
|
+
# the episode_queue if they are new
|
80
|
+
@look_for_new_episodes = proc {
|
81
|
+
|
82
|
+
operation = proc {
|
83
|
+
log.debug "Reload Sindex from file"
|
84
|
+
sindex = Sindex::SeriesIndex.new(index_file: @config[:series_index_file])
|
85
|
+
|
86
|
+
sjunkieex = Sjunkieex::Interface.new(sindex)
|
87
|
+
|
88
|
+
log.info "Looking for new episodes"
|
89
|
+
sjunkieex.get_links_for_downloads
|
90
|
+
}
|
91
|
+
|
92
|
+
callback = proc { |episodes|
|
93
|
+
|
94
|
+
episodes.each do |episode|
|
95
|
+
identifier = "%s@%s" % [episode.id, episode.series]
|
96
|
+
|
97
|
+
if not @found_episodes.has_key? identifier
|
98
|
+
log.info("Found new episode '#{episode}'")
|
99
|
+
|
100
|
+
@channels[:episodes].push(episode)
|
101
|
+
@found_episodes[identifier] = episode
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
# send out the current time out of the websocket
|
106
|
+
@channels[:info].push({
|
107
|
+
key: "Last Episode Search",
|
108
|
+
desc: "The last time <strong>junkie</strong> has searched for new episodes",
|
109
|
+
value: Time.new.strftime("%d.%m.%Y %H:%M:%S")
|
110
|
+
})
|
111
|
+
}
|
112
|
+
|
113
|
+
EM.defer(operation, callback)
|
114
|
+
}
|
115
|
+
end
|
100
116
|
end
|
101
117
|
end
|
data/lib/junkie/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: junkie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.13
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-03-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|
@@ -208,17 +208,17 @@ dependencies:
|
|
208
208
|
requirement: !ruby/object:Gem::Requirement
|
209
209
|
none: false
|
210
210
|
requirements:
|
211
|
-
- -
|
211
|
+
- - ~>
|
212
212
|
- !ruby/object:Gem::Version
|
213
|
-
version:
|
213
|
+
version: 0.2.1
|
214
214
|
type: :runtime
|
215
215
|
prerelease: false
|
216
216
|
version_requirements: !ruby/object:Gem::Requirement
|
217
217
|
none: false
|
218
218
|
requirements:
|
219
|
-
- -
|
219
|
+
- - ~>
|
220
220
|
- !ruby/object:Gem::Version
|
221
|
-
version:
|
221
|
+
version: 0.2.1
|
222
222
|
description: TV series management application
|
223
223
|
email:
|
224
224
|
- philipp-boehm@live.de
|
@@ -277,7 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
277
277
|
version: '0'
|
278
278
|
requirements: []
|
279
279
|
rubyforge_project:
|
280
|
-
rubygems_version: 1.8.
|
280
|
+
rubygems_version: 1.8.23
|
281
281
|
signing_key:
|
282
282
|
specification_version: 3
|
283
283
|
summary: TV series managament tool that does all the work you have with your series.
|
@@ -288,4 +288,3 @@ test_files:
|
|
288
288
|
- spec/pyload_api_spec.rb
|
289
289
|
- spec/pyload_observer_spec.rb
|
290
290
|
- spec/spec_helper.rb
|
291
|
-
has_rdoc:
|