c3d 0.3.5 → 0.4.2
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 +4 -4
- data/Gemfile +1 -7
- data/Gemfile.lock +22 -21
- data/Rakefile +12 -0
- data/bin/c3d +40 -0
- data/c3d.gemspec +6 -4
- data/lib/c3d/actors/blacklist.rb +13 -0
- data/lib/c3d/actors/crawler.rb +30 -0
- data/lib/c3d/actors/getter.rb +18 -0
- data/lib/c3d/actors/subscribe.rb +14 -0
- data/lib/c3d/connectors/connect_ethereum.rb +146 -0
- data/lib/c3d/connectors/connect_torrent.rb +148 -0
- data/lib/c3d/util/blobber.rb +84 -0
- data/lib/c3d/util/processes.rb +64 -0
- data/lib/c3d/util/purger.rb +22 -0
- data/lib/c3d/util/setup.rb +123 -0
- data/lib/c3d/util/trees.rb +226 -0
- data/lib/c3d/util/util.rb +16 -0
- data/lib/c3d/util/watch.rb +71 -0
- data/lib/c3d/version.rb +1 -1
- data/lib/c3d.rb +42 -18
- data/settings/c3d-config.json +22 -12
- data/settings/transmission.json +64 -64
- data/spec/{tmp → fixtures/tmp} +0 -0
- data/spec/spec_helper.rb +52 -0
- data/spec/unit/1.setup_spec.rb +32 -0
- metadata +61 -28
- data/lib/c3d/connect_ethereum_rpc.rb +0 -147
- data/lib/c3d/connect_ethereum_socket.rb +0 -122
- data/lib/c3d/connect_torrent.rb +0 -147
- data/lib/c3d/connect_ui.rb +0 -102
- data/lib/c3d/get.rb +0 -0
- data/lib/c3d/processes.rb +0 -44
- data/lib/c3d/publish.rb +0 -101
- data/lib/c3d/setup.rb +0 -105
- data/lib/c3d/subscribe.rb +0 -138
- data/lib/c3d/util.rb +0 -22
- data/spec/checker.rb +0 -44
- data/spec/checker2.rb +0 -10
data/spec/checker.rb
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'cgi'
|
5
|
-
require 'openssl'
|
6
|
-
|
7
|
-
def require_gem(name)
|
8
|
-
require(name)
|
9
|
-
rescue LoadError
|
10
|
-
abort "[ERROR] Missing the '#{name}' gem, install it with 'gem install #{name}'"
|
11
|
-
end
|
12
|
-
|
13
|
-
require_gem 'bencode'
|
14
|
-
require_gem 'base32'
|
15
|
-
require_gem 'rack/utils'
|
16
|
-
|
17
|
-
# We cannot trust .torrent file data
|
18
|
-
ARGF.set_encoding 'BINARY'
|
19
|
-
|
20
|
-
# Read torrent from STDIN / ARGV filepath
|
21
|
-
torrent_data = ARGF.read
|
22
|
-
|
23
|
-
# Parse the torrent data
|
24
|
-
torrent = BEncode.load(torrent_data)
|
25
|
-
|
26
|
-
# Calculate the info_hash (actually, info_sha1 *is* the info_hash)
|
27
|
-
info_hash = torrent["info"].bencode
|
28
|
-
info_sha1 = OpenSSL::Digest::SHA1.digest(info_hash)
|
29
|
-
|
30
|
-
# Build the magnet link
|
31
|
-
params = {}
|
32
|
-
params[:xt] = "urn:btih:" << Base32.encode(info_sha1)
|
33
|
-
params[:dn] = CGI.escape(torrent["info"]["name"])
|
34
|
-
|
35
|
-
# params[:tr] = [] << to complement DHT we can add trackers too
|
36
|
-
magnet_uri = "magnet:?xt=#{params.delete(:xt)}"
|
37
|
-
magnet_uri << "&" << Rack::Utils.build_query(params)
|
38
|
-
|
39
|
-
puts "Magnet URI for #{params[:dn]}:"
|
40
|
-
puts " #{magnet_uri}"
|
41
|
-
|
42
|
-
|
43
|
-
# magnet:?xt=urn:btih:048ea0d1a27f702ba5e8f7890915d4d6a2454e20&dn=cdae42af3e2d9b7f208f8ec3
|
44
|
-
# magnet:?xt=urn:btih:048ea0d1a27f702ba5e8f7890915d4d6a2454e20&dn=cdae42af3e2d9b7f208f8ec3
|