yadisk 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c51aa5b0b7d65604215a3580d5ff32ba59665179cdf38605e3dec7a5263a9b17
4
+ data.tar.gz: 2705caa4477857a2af13863b44ef3dc4651fb8c36dc26d04cd2a406bc26b3044
5
+ SHA512:
6
+ metadata.gz: 00adeabe1183fe6eb9801fb7d3532b86a349b129af334fe8d8c8556e670cd88ada6fb64bb27ec6df9398422e6f0c3a19a1ed5eed58eef5edaf2939406cddb730
7
+ data.tar.gz: 600ff3fc155af1a524a52987097c9e376a9a84aef94f813a4fe0c22e6e499b38da2dfbbcf0ee105a419d80b4708cdf56212d9e043d17b6664d177da39e2b05db
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: utf-8
3
+
4
+ require 'yadisk'
5
+ require 'yadisk/check_runtime'
6
+
7
+ Yadisk::CheckRuntime.check_wget
8
+
9
+ if ARGV.length == 1
10
+ Yadisk::Main.new.download(ARGV[0])
11
+ elsif ARGV.length == 2
12
+ Yadisk::Main.new.download(ARGV[0], folder: ARGV[1])
13
+ else
14
+ puts "Use: $ yadisk url [/path/to/download/local/folder]\n"
15
+ end
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+
3
+ require 'cgi'
4
+ require 'cgi/util'
5
+ require 'uri'
6
+ require 'io/console'
7
+ require 'json'
8
+
9
+ module Yadisk
10
+ class Main
11
+ BASE_URL = 'https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key='
12
+ def download(url, folder: './')
13
+ enc_url = CGI::escape(url)
14
+
15
+ puts "wget -qO - #{BASE_URL}#{enc_url}"
16
+ res = IO.popen("wget -qO - #{BASE_URL}#{enc_url}").read
17
+ json_res = JSON.parse(res)
18
+ download_url = json_res['href']
19
+ filename = CGI::parse(URI(download_url).query)["filename"][0]
20
+ folder = folder + "/" if not folder.end_with?('/')
21
+
22
+ system("wget '#{download_url}' -O '#{folder}#{filename}'")
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,14 @@
1
+ require "io/console"
2
+
3
+ module Yadisk
4
+ class CheckRuntime
5
+ def self.check_wget
6
+ output = IO.popen("which wget").read
7
+ if output.empty?
8
+ puts "Please install wget or add it to 'PATH' and try again\n"
9
+ abort
10
+ end
11
+ end
12
+ end
13
+ end
14
+
@@ -0,0 +1,3 @@
1
+ module Yadisk
2
+ VERSION = '0.0.1'
3
+ end
metadata ADDED
@@ -0,0 +1,68 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: yadisk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Artem Yegorov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-01-25 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 3.7.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '4.0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 3.7.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '4.0'
33
+ description: Command line tool for download file from Yandex.Disk through share link
34
+ email: yegorov0725@yandex.ru
35
+ executables:
36
+ - yadisk
37
+ extensions: []
38
+ extra_rdoc_files: []
39
+ files:
40
+ - bin/yadisk
41
+ - lib/yadisk.rb
42
+ - lib/yadisk/check_runtime.rb
43
+ - lib/yadisk/version.rb
44
+ homepage: https://github.com/yegorov/yadisk
45
+ licenses:
46
+ - MIT
47
+ metadata: {}
48
+ post_install_message:
49
+ rdoc_options: []
50
+ require_paths:
51
+ - lib
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ required_rubygems_version: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ requirements: []
63
+ rubyforge_project:
64
+ rubygems_version: 2.7.3
65
+ signing_key:
66
+ specification_version: 4
67
+ summary: Download file from Yandex.Disk through share link
68
+ test_files: []