mktorrent 1.0.0 → 1.1.0

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: 22f0156acd8ad036cc4ca9cf7e95287c3397261d
4
- data.tar.gz: 7600dab3997a9bda87b6ee57b60b6a1878137ca1
3
+ metadata.gz: 24c89cf5bda2e0a13113f67d8edfe1fa0a9ce16b
4
+ data.tar.gz: 8a069ce3dd0c5679dc9f802a7c96c6dcf351509e
5
5
  SHA512:
6
- metadata.gz: 6c30391db7f9542c5fed7c46e1d917d99de6e7bce8a0d8fff6e5c2c9a41b6f62d888e5b4aaad8f119255679d1123a916daf269439f1117f9ddfe2a54269fb284
7
- data.tar.gz: 6aec4ef17e999b554029e0c1cb994a04732527a2a222dc17d1b6a12650e1f6242ddeda61864db5cc692ab8fda51c54fad6ad93233148a75b2557081894bff745
6
+ metadata.gz: 021db7bb59be186ff270de9b5f142efa4dedd66ee3ec36af1ab7c7c8540b05c391902bbf03fb96636c5e3088e68c2f14957af05febcd3061fd684251039b63b6
7
+ data.tar.gz: a1419d33ed0bb33060ebc78c370fba58c5f3a9ee5414d2eaa45ec1477fbb68925768c080327d980691b4798c0e3e4bae67dc618ee19bfcf3e413d88f47b1541a
data/lib/mktorrent.rb CHANGED
@@ -11,7 +11,7 @@ require 'date'
11
11
  # Support tracker-list
12
12
 
13
13
  class Torrent
14
- attr_accessor :info, :filehashes, :piecelength, :files, :defaultdir, :tracker, :size
14
+ attr_accessor :info, :filehashes, :piecelength, :files, :defaultdir, :tracker, :size, :privacy
15
15
 
16
16
  # optionally initialize filename
17
17
  def initialize(tracker)
@@ -21,6 +21,7 @@ class Torrent
21
21
  @filehashes = []
22
22
  @size = 0
23
23
  @defaultdir = "torrent"
24
+ @privacy = 0
24
25
  build_the_torrent
25
26
  end
26
27
 
@@ -63,8 +64,8 @@ class Torrent
63
64
  :'creation date' => DateTime.now.strftime("%s"),
64
65
  :info => { :name => @defaultdir,
65
66
  :'piece length' => @piecelength,
66
- :files => @files
67
- #:private => 1,
67
+ :files => @files,
68
+ :private => @privacy
68
69
  }
69
70
  }
70
71
  @info[:info][:pieces] = ""
@@ -84,7 +85,6 @@ class Torrent
84
85
  build_the_torrent
85
86
  open(filename, 'w') do |torrentfile|
86
87
  torrentfile.write self.to_s
87
- #torrentfile.puts self.to_s
88
88
  end
89
89
  torrent_file = "#{`pwd`.chomp}/#{filename}"
90
90
  puts "Wrote #{torrent_file}"
@@ -103,7 +103,7 @@ class Torrent
103
103
  raise IOError, "Can't add duplicate file #{File.basename(filepath)}"
104
104
  end
105
105
 
106
- if File.exists?(filepath)
106
+ if File.exist?(filepath)
107
107
  #filesize = hash_pieces(filepath)
108
108
  # TODO tidy the path up...
109
109
  @files << { path: filepath.split('/'), length: File::open(filepath, "rb").size }
@@ -118,8 +118,6 @@ class Torrent
118
118
  f = File::open(file, "rb")
119
119
  @size += f.size
120
120
  while offset < f.size do
121
- # This is wrong :(
122
- #@filehashes << Digest::SHA1.digest(IO::binread(f, offset, @piecelength))
123
121
  offset += @piecelength
124
122
  STDOUT.write "\r#{File.basename(file)}: hashed #{(offset.to_f / f.size.to_f)*100}%"
125
123
  STDOUT.flush
@@ -127,5 +125,13 @@ class Torrent
127
125
  return f.size
128
126
  end
129
127
 
128
+ def set_private
129
+ @privacy = 1
130
+ end
131
+
132
+ def set_public
133
+ @privacy = 0
134
+ end
135
+
130
136
  alias build_the_torrent build
131
137
  end
@@ -1,14 +1,17 @@
1
- require 'test/unit'
1
+ require 'minitest/autorun'
2
2
  require File.join(File.dirname(__FILE__), '..', 'lib', 'mktorrent')
3
3
 
4
- class MktorrentTest < Test::Unit::TestCase
4
+ class MktorrentTest < Minitest::Test
5
5
  TRACKER = "http://test.example.com"
6
- VALIDFILEPATH = File.expand_path("#{File.dirname(__FILE__)}/../tmp/randomfile.vhd")
6
+ VALIDFILEPATH = File.expand_path("#{File.dirname(__FILE__)}/test_data/sample_file1.vhd")
7
+ VALIDFILE2PATH = File.expand_path("#{File.dirname(__FILE__)}/test_data/sample_file2.vhd")
7
8
  VALIDFILENAME = "randomfile.vhd"
8
- VALIDFILE2PATH = File.expand_path("#{File.dirname(__FILE__)}/../tmp/randomfile2.vhd")
9
9
 
10
10
  def setup
11
11
  @torrent = Torrent.new(TRACKER)
12
+ # Lol. This is pretty bad :)
13
+ fail "Could not find #{VALIDFILEPATH}" unless File.exist? VALIDFILEPATH
14
+ fail "Could not find #{VALIDFILE2PATH}" unless File.exist? VALIDFILE2PATH
12
15
  end
13
16
 
14
17
  def test_create_torrent
@@ -16,7 +19,7 @@ class MktorrentTest < Test::Unit::TestCase
16
19
  end
17
20
 
18
21
  def test_add_file_with_invalid_file
19
- assert_raise(IOError) { @torrent.add_file("../tmp/bogusfile.vhd") }
22
+ assert_raises(IOError) { @torrent.add_file("../tmp/bogusfile.vhd") }
20
23
  end
21
24
 
22
25
  def test_add_single_valid_file
@@ -33,7 +36,18 @@ class MktorrentTest < Test::Unit::TestCase
33
36
 
34
37
  def test_prevent_duplicate_file_from_being_added
35
38
  @torrent.add_file(VALIDFILEPATH)
36
- assert_raise(IOError) { @torrent.add_file(VALIDFILEPATH) }
39
+ assert_raises(IOError) { @torrent.add_file(VALIDFILEPATH) }
40
+ end
41
+
42
+ def test_default_privacy
43
+ @torrent.add_file(VALIDFILEPATH)
44
+ assert_equal 0, @torrent.privacy
45
+ end
46
+
47
+ def test_set_privacy
48
+ test_default_privacy
49
+ @torrent.set_private
50
+ assert_equal 1, @torrent.privacy
37
51
  end
38
52
 
39
53
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mktorrent
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timothy Mukaibo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-21 00:00:00.000000000 Z
11
+ date: 2014-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bencode
@@ -42,17 +42,17 @@ require_paths:
42
42
  - lib
43
43
  required_ruby_version: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  required_rubygems_version: !ruby/object:Gem::Requirement
49
49
  requirements:
50
- - - '>='
50
+ - - ">="
51
51
  - !ruby/object:Gem::Version
52
52
  version: '0'
53
53
  requirements: []
54
54
  rubyforge_project:
55
- rubygems_version: 2.0.0.rc.2
55
+ rubygems_version: 2.2.2
56
56
  signing_key:
57
57
  specification_version: 4
58
58
  summary: Create .torrent files easily with this gem