addic7ed 4.0.0.pre.beta.5 → 4.0.0.pre.beta.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f35a03ffc86438dec745786eb22f8eeb7b9921e7
4
- data.tar.gz: 933523356c8b9f5e33675c71695a033cebb11053
3
+ metadata.gz: c2a0a0fd093c29b07a62a7259c773df5343c4c2c
4
+ data.tar.gz: 03110733e1ba66da173b5ad852ea3668dcbc7f4a
5
5
  SHA512:
6
- metadata.gz: 0228eb701d71be54816022ff1ee625de7dc1d1d27ef6e60b59378087afb34bf1f45e3a011807bc55439af8ae3336c642cf64db098ccb5c6eb05daceaa51c64f0
7
- data.tar.gz: f07949fa8ca57cf05655ffeb11a711e47d9ec14567f2c2647987b9b1240b7947d4d2dbf05f06f799033f7442ea3959029094b8f4f11cfe6a85b4b70b305a79c9
6
+ metadata.gz: c06455d2aad3610b7321dffd54f88f6d426087872083d96ae3284d21e6853936d883d76eff11390f7ffd8774ff0177126edce6460bec03288d1ad1789e6ec89d
7
+ data.tar.gz: 6b2a108af177c4b6096ef55152b233319893a7cd967e1e1a11daea8006f76933ecc783a44b585fdceb29f0dd32e446b0865a363c553fe20e7d027536d46e8fd4
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Dir[
2
4
  File.join(File.dirname(__FILE__), "addic7ed/*.rb"),
3
5
  File.join(File.dirname(__FILE__), "addic7ed/services/**/*.rb"),
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "json"
2
4
 
3
5
  module Addic7ed
4
6
  CONFIG_FILE = File.join(File.dirname(__FILE__), "config.json").freeze
5
- CONFIG = JSON.load(File.open(CONFIG_FILE), nil, symbolize_names: true).freeze
7
+ CONFIG = JSON.parse(File.read(CONFIG_FILE), symbolize_names: true).freeze
6
8
  LANGUAGES = CONFIG[:languages].freeze
7
9
  USER_AGENTS = CONFIG[:user_agents].freeze
8
10
  SHOWS_URL = CONFIG[:urls][:shows].freeze
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  class InvalidFilename < StandardError; end
3
5
  class ShowNotFound < StandardError; end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "net/http"
2
4
  require "open-uri"
3
5
 
@@ -91,7 +93,7 @@ module Addic7ed
91
93
  localized_urls[language]
92
94
  end
93
95
 
94
- private
96
+ private
95
97
 
96
98
  def localized_urls
97
99
  @localized_urls ||= languages_hash { |code, lang| { code => localized_url(lang[:id]) } }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  # Represents a subtitle search for a +video_filename+ in a +language+ with
3
5
  # multiple search +criterias+.
@@ -79,7 +81,7 @@ module Addic7ed
79
81
  @best_subtitle ||= matching_subtitles.most_popular
80
82
  end
81
83
 
82
- private
84
+ private
83
85
 
84
86
  def default_criterias
85
87
  {
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  # Represents a subtitle on Addic7ed.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  # Represents a collection of {Subtitle} objects.
3
5
  #
@@ -54,7 +56,7 @@ module Addic7ed
54
56
  sort_by(&:downloads).last
55
57
  end
56
58
 
57
- private
59
+ private
58
60
 
59
61
  def select
60
62
  SubtitlesCollection.new(super)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  # Represents the video file you're looking a subtitle for.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  module Service
3
5
  def self.included(base)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  class CheckCompatibility
3
5
  include Service
@@ -13,7 +15,7 @@ module Addic7ed
13
15
  defined_as_compatible? || generally_compatible? || commented_as_compatible?
14
16
  end
15
17
 
16
- private
18
+ private
17
19
 
18
20
  def defined_as_compatible?
19
21
  subtitle.version.split(",").include? group
@@ -24,13 +26,21 @@ module Addic7ed
24
26
  end
25
27
 
26
28
  def commented_as_compatible?
27
- return false if /(won'?t|doesn'?t|not) +work/i =~ subtitle.comment
28
- return false if /resync +(from|of|for)/i =~ subtitle.comment
29
- !!comment_matches_a_compatible_group?
29
+ return false if comment_explicitely_wont_work?
30
+ return false if comment_is_a_resync?
31
+ comment_matches_a_compatible_group?
30
32
  end
31
33
 
32
34
  def comment_matches_a_compatible_group?
33
- Regexp.new("(#{compatible_groups.join('|')})", "i") =~ subtitle.comment
35
+ !Regexp.new("(#{compatible_groups.join("|")})", "i").match(subtitle.comment).nil?
36
+ end
37
+
38
+ def comment_explicitely_wont_work?
39
+ !/(won'?t|doesn'?t|not) +work/i.match(subtitle.comment).nil?
40
+ end
41
+
42
+ def comment_is_a_resync?
43
+ !/resync +(from|of|for)/i.match(subtitle.comment).nil?
34
44
  end
35
45
 
36
46
  def compatible_groups
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  class DownloadSubtitle
3
5
  include Service
@@ -15,17 +17,21 @@ module Addic7ed
15
17
 
16
18
  def call
17
19
  raise DownloadError, "Too many HTTP redirections" if redirect_count >= HTTP_REDIRECT_LIMIT
18
- raise DailyLimitExceeded, "Daily limit exceeded" if %r{^/downloadexceeded.php} =~ url
20
+ raise DailyLimitExceeded, "Daily limit exceeded" if download_limit_exceeded?
19
21
  return follow_redirection(response["location"]) if response.is_a? Net::HTTPRedirection
20
22
  write(response.body)
21
23
  end
22
24
 
23
- private
25
+ private
24
26
 
25
27
  def uri
26
28
  @uri ||= URI(url)
27
29
  end
28
30
 
31
+ def download_limit_exceeded?
32
+ !%r{^/downloadexceeded.php}.match(url).nil?
33
+ end
34
+
29
35
  def response
30
36
  @response ||= Net::HTTP.start(uri.hostname, uri.port) do |http|
31
37
  request = Net::HTTP::Get.new(uri.request_uri)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "singleton"
2
4
 
3
5
  module Addic7ed
@@ -9,13 +11,13 @@ module Addic7ed
9
11
  end
10
12
 
11
13
  def call
12
- @shows ||= homepage_body.css("select#qsShow option:not(:first-child)").map(&:text)
14
+ @shows ||= homepage_body.css("select#qsShow option").to_a[1..-1].map(&:text)
13
15
  end
14
16
 
15
- private
17
+ private
16
18
 
17
19
  def homepage_body
18
- @homepage_body ||= Oga.parse_html(addic7ed_homepage.body)
20
+ Oga.parse_html(addic7ed_homepage.body)
19
21
  end
20
22
 
21
23
  def addic7ed_homepage
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  class NormalizeComment
3
5
  include Service
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  class NormalizeVersion
3
5
  include Service
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "oga"
2
4
  require "net/http"
3
5
  require "open-uri"
@@ -17,7 +19,7 @@ module Addic7ed
17
19
  subtitles_nodes.map { |subtitle_node| Addic7ed::ParseSubtitle.call(subtitle_node) }
18
20
  end
19
21
 
20
- private
22
+ private
21
23
 
22
24
  def page_dom
23
25
  raise EpisodeNotFound if server_response.body.nil? || server_response.body.empty?
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "oga"
2
4
 
3
5
  module Addic7ed
@@ -6,7 +8,7 @@ module Addic7ed
6
8
 
7
9
  attr_reader :subtitle_node
8
10
 
9
- FIELDS = [:version, :language, :status, :url, :source, :hi, :downloads, :comment].freeze
11
+ FIELDS = %i[version language status url source hi downloads comment].freeze
10
12
 
11
13
  def initialize(subtitle_node)
12
14
  @subtitle_node = subtitle_node
@@ -16,7 +18,7 @@ module Addic7ed
16
18
  Addic7ed::Subtitle.new(extract_fields)
17
19
  end
18
20
 
19
- private
21
+ private
20
22
 
21
23
  def extract_fields
22
24
  FIELDS.map do |field|
@@ -48,7 +50,7 @@ module Addic7ed
48
50
 
49
51
  def extract_url
50
52
  extract_field("a.buttonDownload:last-of-type") do |node|
51
- "http://www.addic7ed.com#{node['href']}"
53
+ "http://www.addic7ed.com#{node["href"]}"
52
54
  end
53
55
  end
54
56
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
4
  class URLEncodeShowName
3
5
  include Service
@@ -18,7 +20,7 @@ module Addic7ed
18
20
  matching_shows.last.tr(" ", "_")
19
21
  end
20
22
 
21
- private
23
+ private
22
24
 
23
25
  def matching_shows(opts)
24
26
  addic7ed_shows.select { |show_name| matching?(show_name, opts) }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Addic7ed
2
- VERSION = "4.0.0-beta.5".freeze
4
+ VERSION = "4.0.0-beta.6".freeze # rubocop:disable Style/RedundantFreeze
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: addic7ed
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.pre.beta.5
4
+ version: 4.0.0.pre.beta.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Baudino
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-04 00:00:00.000000000 Z
11
+ date: 2017-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -122,20 +122,6 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '2.7'
125
- - !ruby/object:Gem::Dependency
126
- name: json
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: 1.8.3
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: 1.8.3
139
125
  description: Ruby script (cli) to fetch subtitles on Addic7ed
140
126
  email: michael.baudino@alpine-lab.com
141
127
  executables: []
@@ -182,9 +168,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
182
168
  version: 1.3.1
183
169
  requirements: []
184
170
  rubyforge_project:
185
- rubygems_version: 2.4.8
171
+ rubygems_version: 2.6.11
186
172
  signing_key:
187
173
  specification_version: 4
188
174
  summary: Addic7ed auto-downloader
189
175
  test_files: []
190
- has_rdoc: