fyt 1.0.0 → 1.1.0.pre

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1cfe8a3d2d043c10d0556c4e0abe003dd0e9d792
4
- data.tar.gz: 7f0d6d7f9e296cdce98b7fe33100244822ba8ae6
3
+ metadata.gz: 8092f5a8ee7b7a7d00abd196a38b8f77e3b1c085
4
+ data.tar.gz: 7321598ee061f2afd9d814a1ba313ae52e35aae8
5
5
  SHA512:
6
- metadata.gz: 3812e0c3e763f9623ec6e369d310b100832adc9f7d7a0178e00efdda4e7b28c76a54421a1bd67f6f68bfb8abfcb79306d6b068cb353720aa2d37aaa86ab81efb
7
- data.tar.gz: 0532aaa8d5d01e05ef6cd01a743a38c94ac78df93730f3b10aef8e6f4ab3ff692fee2261d19ca1d0887de29a4b0e20daa9cbc4b317b2ef5d593d888a85b062e3
6
+ metadata.gz: 1cd4f4500809e7bce98fa08736ddfe1f209db04285781afcfdce40d2c48025e450cdce1ec3c23e6bbdbe3f779b5fd5341f451a8598b6683deaf1fda194d6da22
7
+ data.tar.gz: 198e910963312074d2eb278b3e976398396ee055c98adbe57b2bfef5eed418c4387a288a078f9ab0f9ee3279f889a1778dc525fe6705b8dc27601d3058689cd7
data/lib/fyt/base.rb CHANGED
@@ -8,7 +8,7 @@ module FYT
8
8
 
9
9
  def logger
10
10
  @@logger ||= Logger.new(STDOUT).tap do |logger|
11
- logger.level = Logger::INFO
11
+ logger.level = Logger::DEBUG
12
12
  end
13
13
  end
14
14
  end
data/lib/fyt/builder.rb CHANGED
@@ -41,7 +41,7 @@ module FYT
41
41
  def add_image(youtube_url, title)
42
42
  youtube_url = youtube_url.gsub('http:', 'https:')
43
43
 
44
- open(youtube_url, proxy: @proxy) do |file|
44
+ open(youtube_url, proxy: 'http://' + @proxy.url) do |file|
45
45
  image_url =
46
46
  file.read.scan(/<meta property=\"og:image\" content=\"(.*)\">/)
47
47
  .flatten.first
data/lib/fyt/parser.rb CHANGED
@@ -11,7 +11,7 @@ module FYT
11
11
  end
12
12
 
13
13
  def read
14
- open(@url, proxy: @proxy) do |rss|
14
+ open(@url, proxy: 'http://' + @proxy.url) do |rss|
15
15
  return RSS::Parser.parse(rss, false)
16
16
  end
17
17
  end
data/lib/fyt/storage.rb CHANGED
@@ -2,11 +2,11 @@
2
2
  module FYT
3
3
  # Manages file downloads and storage
4
4
  class Storage < FYT::Base
5
- def initialize(path, format_options, output_format, proxy = nil)
5
+ def initialize(path, format_options, output_format, proxy_manager = nil)
6
6
  @path = path || ''
7
7
  @format_options = format_options
8
8
  @output_format = output_format
9
- @proxy = proxy
9
+ @proxy_manager = proxy_manager
10
10
  @known_files = []
11
11
  end
12
12
 
@@ -15,6 +15,7 @@ module FYT
15
15
 
16
16
  path = path_for(item)
17
17
  download_file!(url, path)
18
+
18
19
  @known_files << File.basename(path)
19
20
  File.basename(path)
20
21
  end
@@ -50,12 +51,14 @@ module FYT
50
51
  private
51
52
 
52
53
  def download_file!(url, output_path)
54
+ proxy = @proxy_manager.get!
55
+
53
56
  options = [
54
57
  "-f '#{@format_options}'",
55
58
  "--merge-output-format '#{@output_format}'",
56
59
  "-o '#{output_path}'"
57
60
  ]
58
- options << "--proxy '#{@proxy}'" if @proxy
61
+ options << "--proxy 'http://#{proxy.url}'" if proxy
59
62
  options << "'#{url}'"
60
63
 
61
64
  options_string = options.join(' ')
@@ -63,6 +66,8 @@ module FYT
63
66
  logger.debug "Executing: youtube-dl #{options_string}"
64
67
 
65
68
  execute "youtube-dl #{options_string}"
69
+ rescue
70
+ download_file!(url, output_path)
66
71
  end
67
72
 
68
73
  def execute(command_string)
data/lib/fyt.rb CHANGED
@@ -7,6 +7,8 @@ require_relative 'fyt/storage'
7
7
 
8
8
  require 'fileutils'
9
9
 
10
+ require 'proxy_fetcher'
11
+
10
12
  # handles the general behaviour of FYT
11
13
  module FYT
12
14
  def self.lock
@@ -24,17 +26,19 @@ module FYT
24
26
 
25
27
  def self.run
26
28
  config = FYT::Config.new
29
+ manager =
30
+ ProxyFetcher::Manager.new(filters: { country: 'DE', maxtime: '500' })
27
31
  storage = FYT::Storage.new(
28
32
  config[:storage_path],
29
33
  config[:format_options],
30
34
  config[:output_format],
31
- config[:proxy]
35
+ manager
32
36
  )
33
37
 
34
38
  config[:feeds].each do |feed_config|
35
- source_feed = FYT::Parser.new(feed_config[:url], config[:proxy]).read
39
+ source_feed = FYT::Parser.new(feed_config[:url], manager.get!).read
36
40
 
37
- new_feed = FYT::Builder.new(source_feed, storage, config[:server_prefix], config[:proxy]).build
41
+ new_feed = FYT::Builder.new(source_feed, storage, config[:server_prefix], manager.get!).build
38
42
 
39
43
  storage.add_feed(feed_config[:name], new_feed)
40
44
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fyt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steffen Schröder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-21 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2017-10-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: proxy_fetcher
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
13
27
  description: Downloads a youtube channel and its videos and stores them locally as
14
28
  a podcatcher-friendly feed
15
29
  email: steffen@schröder.xyz
@@ -40,12 +54,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
40
54
  version: '0'
41
55
  required_rubygems_version: !ruby/object:Gem::Requirement
42
56
  requirements:
43
- - - ">="
57
+ - - ">"
44
58
  - !ruby/object:Gem::Version
45
- version: '0'
59
+ version: 1.3.1
46
60
  requirements: []
47
61
  rubyforge_project:
48
- rubygems_version: 2.6.10
62
+ rubygems_version: 2.6.13
49
63
  signing_key:
50
64
  specification_version: 4
51
65
  summary: fyt