artbase 0.2.1 → 0.3.0
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/Manifest.txt +0 -10
- data/Rakefile +4 -3
- data/lib/artbase/tool.rb +74 -24
- data/lib/artbase/version.rb +2 -2
- data/lib/artbase.rb +12 -78
- metadata +11 -21
- data/lib/artbase/attributes.rb +0 -83
- data/lib/artbase/collection/base.rb +0 -306
- data/lib/artbase/collection/image.rb +0 -39
- data/lib/artbase/collection/opensea.rb +0 -297
- data/lib/artbase/collection/token.rb +0 -372
- data/lib/artbase/collection.rb +0 -12
- data/lib/artbase/helper.rb +0 -169
- data/lib/artbase/image/sample.rb +0 -31
- data/lib/artbase/image.rb +0 -31
- data/lib/artbase/retry.rb +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1060552f98ae102ea9d98593be2cb3dafd13d07e7d5ef20eb77cc4176c7fd94
|
4
|
+
data.tar.gz: 239322b6fcab84714305f14c2bfc91a488dba35b653b906f484f7690a99abec4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c99a8d16e494bf0572db121c2b19843d2db20b8084df874ce123c10a99cfc39a3508733f9b7eb8da450cf95bea019fe8de66cbbb7771f8e007fbaf828bcb65b
|
7
|
+
data.tar.gz: aadfdb81650d27d1f8830755b41c5ab314b2b3de9efe54c76a2b2afa121809123f686438d415d0fb55df02b5fdf498ba6bd9333a8b9e8db4fd4d6dc60e7fad44
|
data/Manifest.txt
CHANGED
@@ -4,15 +4,5 @@ README.md
|
|
4
4
|
Rakefile
|
5
5
|
bin/artbase
|
6
6
|
lib/artbase.rb
|
7
|
-
lib/artbase/attributes.rb
|
8
|
-
lib/artbase/collection.rb
|
9
|
-
lib/artbase/collection/base.rb
|
10
|
-
lib/artbase/collection/image.rb
|
11
|
-
lib/artbase/collection/opensea.rb
|
12
|
-
lib/artbase/collection/token.rb
|
13
|
-
lib/artbase/helper.rb
|
14
|
-
lib/artbase/image.rb
|
15
|
-
lib/artbase/image/sample.rb
|
16
|
-
lib/artbase/retry.rb
|
17
7
|
lib/artbase/tool.rb
|
18
8
|
lib/artbase/version.rb
|
data/Rakefile
CHANGED
@@ -26,9 +26,10 @@ Hoe.spec 'artbase' do
|
|
26
26
|
self.history_file = 'CHANGELOG.md'
|
27
27
|
|
28
28
|
self.extra_deps = [
|
29
|
-
['cocos', '>= 0.1
|
30
|
-
['
|
31
|
-
['
|
29
|
+
['artbase-cocos', '>= 0.0.1'],
|
30
|
+
# ['artbase-importers', '>= 0.0.1'], ## note: make "heavy" sql/sqlite db support "soft" dependency
|
31
|
+
['artserve'],
|
32
|
+
['artq'],
|
32
33
|
]
|
33
34
|
|
34
35
|
self.licenses = ['Public Domain']
|
data/lib/artbase/tool.rb
CHANGED
@@ -16,7 +16,11 @@ class Tool
|
|
16
16
|
puts "==> welcome to collection tool with args:"
|
17
17
|
pp args
|
18
18
|
|
19
|
-
|
19
|
+
|
20
|
+
options = { faster: false,
|
21
|
+
mirror: false,
|
22
|
+
}
|
23
|
+
|
20
24
|
parser = OptionParser.new do |opts|
|
21
25
|
|
22
26
|
opts.on("--offset NUM", Integer,
|
@@ -35,6 +39,15 @@ class Tool
|
|
35
39
|
## options[ :range] = range
|
36
40
|
## end
|
37
41
|
|
42
|
+
opts.on( "--faster", "Use faster (optional) pixelate binary (default: false)") do
|
43
|
+
options[ :faster ] = true
|
44
|
+
end
|
45
|
+
|
46
|
+
opts.on( "--mirror", "Mirror (or flip) images (default: false)" ) do
|
47
|
+
options[ :mirror ] = true
|
48
|
+
end
|
49
|
+
|
50
|
+
|
38
51
|
opts.on("-h", "--help", "Prints this help") do
|
39
52
|
puts opts
|
40
53
|
exit
|
@@ -58,23 +71,29 @@ class Tool
|
|
58
71
|
command = args[1]
|
59
72
|
subcommand = args[2]
|
60
73
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
74
|
+
if File.exist?( "./#{name}/collection.yml" )
|
75
|
+
path = "./#{name}/collection.yml"
|
76
|
+
puts "==> reading collection config >#{path}<..."
|
77
|
+
self.collection = TokenCollection.read( path )
|
78
|
+
else
|
79
|
+
## todo/check: keep config.rb alternate name - why? why not?
|
80
|
+
## or use collection.rb only ???
|
81
|
+
path = if File.exist?( "./#{name}/config.rb" )
|
82
|
+
"./#{name}/config.rb"
|
83
|
+
else
|
84
|
+
"./#{name}/collection.rb"
|
85
|
+
end
|
86
|
+
puts "==> reading collection config >#{path}<..."
|
87
|
+
|
88
|
+
## note: assume for now global const COLLECTION gets set/defined!!!
|
89
|
+
## use/change to a script/dsl loader/eval later!!!
|
90
|
+
load( path )
|
91
|
+
|
92
|
+
## pp COLLECTION
|
93
|
+
|
94
|
+
## configure collection (note: requires self)
|
95
|
+
self.collection = COLLECTION
|
96
|
+
end
|
78
97
|
|
79
98
|
if ['d','dl','down', 'download'].include?( command )
|
80
99
|
if subcommand
|
@@ -88,7 +107,8 @@ class Tool
|
|
88
107
|
download_images
|
89
108
|
end
|
90
109
|
elsif ['p', 'px', 'pix', 'pixel', 'pixelate'].include?( command )
|
91
|
-
pixelate( offset: options[ :offset]
|
110
|
+
pixelate( offset: options[ :offset],
|
111
|
+
faster: options[ :faster] )
|
92
112
|
elsif ['m', 'meta'].include?( command )
|
93
113
|
download_meta( offset: options[ :offset] )
|
94
114
|
elsif ['i', 'img', 'image', 'images'].include?( command )
|
@@ -99,8 +119,11 @@ class Tool
|
|
99
119
|
dump_attributes
|
100
120
|
elsif ['x', 'exp', 'export'].include?( command )
|
101
121
|
export_attributes
|
122
|
+
elsif ['b', 'build'].include?( command )
|
123
|
+
build_database
|
102
124
|
elsif ['c', 'composite'].include?( command )
|
103
|
-
make_composite
|
125
|
+
make_composite( limit: options[ :limit],
|
126
|
+
mirror: options[ :mirror ])
|
104
127
|
elsif ['strip'].include?( command )
|
105
128
|
make_strip
|
106
129
|
elsif ['t', 'test'].include?( command )
|
@@ -112,9 +135,34 @@ class Tool
|
|
112
135
|
puts "bye"
|
113
136
|
end
|
114
137
|
|
115
|
-
|
138
|
+
|
139
|
+
|
140
|
+
def self.build_database
|
141
|
+
puts "===> build database"
|
142
|
+
|
143
|
+
### note. load database "heavy" machinery only on-demand
|
144
|
+
## make it a "soft" dependency for now - why? why not?
|
145
|
+
require 'artbase-importers'
|
146
|
+
|
147
|
+
|
148
|
+
slug = @collection.slug
|
149
|
+
|
150
|
+
importer = Importer.read( "./#{slug}/build.rb" )
|
151
|
+
|
152
|
+
columns = importer.metadata_columns
|
153
|
+
pp columns
|
154
|
+
|
155
|
+
Database.connect( "./#{slug}/artbase.db" )
|
156
|
+
Database.auto_migrate!( columns )
|
157
|
+
|
158
|
+
@collection.import( importer )
|
159
|
+
end
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
def self.make_composite( limit: nil, mirror: false )
|
116
164
|
puts "==> make composite"
|
117
|
-
@collection.make_composite
|
165
|
+
@collection.make_composite( limit: limit, mirror: mirror )
|
118
166
|
end
|
119
167
|
|
120
168
|
def self.convert_images
|
@@ -165,7 +213,9 @@ class Tool
|
|
165
213
|
@collection.download_images( range )
|
166
214
|
end
|
167
215
|
|
168
|
-
|
216
|
+
|
217
|
+
def self.pixelate( offset:,
|
218
|
+
faster: )
|
169
219
|
puts "==> pixelate"
|
170
220
|
|
171
221
|
range = if offset
|
@@ -174,7 +224,7 @@ class Tool
|
|
174
224
|
@collection._range
|
175
225
|
end
|
176
226
|
|
177
|
-
@collection.pixelate( range )
|
227
|
+
@collection.pixelate( range, faster: faster )
|
178
228
|
end
|
179
229
|
end # class Tool
|
180
230
|
|
data/lib/artbase/version.rb
CHANGED
data/lib/artbase.rb
CHANGED
@@ -1,78 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
### add (shared) "global" config
|
16
|
-
module Artbase
|
17
|
-
class Configuration
|
18
|
-
|
19
|
-
#######################
|
20
|
-
## accessors
|
21
|
-
|
22
|
-
## todo/check: keep trailing / in ipfs_gateway - why? why not?
|
23
|
-
def ipfs_gateway() @ipfs_gateway || 'https://ipfs.io/ipfs/'; end
|
24
|
-
def ipfs_gateway=(value) @ipfs_gateway = value; end
|
25
|
-
end # class Configuration
|
26
|
-
|
27
|
-
|
28
|
-
## lets you use
|
29
|
-
## Artbase.configure do |config|
|
30
|
-
## config.ipfs_gateway = 'https://cloudflare-ipfs.com/ipfs/'
|
31
|
-
## end
|
32
|
-
def self.configure() yield( config ); end
|
33
|
-
def self.config() @config ||= Configuration.new; end
|
34
|
-
end # module Artbase
|
35
|
-
|
36
|
-
|
37
|
-
require_relative 'artbase/image'
|
38
|
-
|
39
|
-
|
40
|
-
require_relative 'artbase/helper'
|
41
|
-
require_relative 'artbase/retry' ## (global) retry_on_error helper
|
42
|
-
|
43
|
-
require_relative 'artbase/collection'
|
44
|
-
require_relative 'artbase/attributes'
|
45
|
-
|
46
|
-
|
47
|
-
require_relative 'artbase/tool'
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
######
|
52
|
-
## move to helper - why? why not?
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
## quick ipfs (interplanetary file system) hack
|
57
|
-
## - make more reuseable
|
58
|
-
## - different name e.g. ipfs_to_http or such - why? why not?
|
59
|
-
## change/rename parameter str to url or suc - why? why not?
|
60
|
-
def handle_ipfs( str, normalize: true,
|
61
|
-
ipfs_gateway: Artbase.config.ipfs_gateway )
|
62
|
-
|
63
|
-
if normalize && str.start_with?( 'https://ipfs.io/ipfs/' )
|
64
|
-
str = str.sub( 'https://ipfs.io/ipfs/', 'ipfs://' )
|
65
|
-
end
|
66
|
-
|
67
|
-
if str.start_with?( 'ipfs://' )
|
68
|
-
str = str.sub( 'ipfs://', ipfs_gateway ) # use/replace with public gateway
|
69
|
-
end
|
70
|
-
str
|
71
|
-
end
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
puts Artbase.banner
|
78
|
-
puts Artbase.root
|
1
|
+
|
2
|
+
require 'artbase-cocos'
|
3
|
+
|
4
|
+
|
5
|
+
|
6
|
+
## our own code
|
7
|
+
require_relative 'artbase/version'
|
8
|
+
require_relative 'artbase/tool'
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
puts Artbase.banner # say hello
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: artbase
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gerald Bauer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: cocos
|
14
|
+
name: artbase-cocos
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.1
|
19
|
+
version: 0.0.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.1
|
26
|
+
version: 0.0.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: artserve
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0
|
33
|
+
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: artq
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rdoc
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,16 +102,6 @@ files:
|
|
102
102
|
- Rakefile
|
103
103
|
- bin/artbase
|
104
104
|
- lib/artbase.rb
|
105
|
-
- lib/artbase/attributes.rb
|
106
|
-
- lib/artbase/collection.rb
|
107
|
-
- lib/artbase/collection/base.rb
|
108
|
-
- lib/artbase/collection/image.rb
|
109
|
-
- lib/artbase/collection/opensea.rb
|
110
|
-
- lib/artbase/collection/token.rb
|
111
|
-
- lib/artbase/helper.rb
|
112
|
-
- lib/artbase/image.rb
|
113
|
-
- lib/artbase/image/sample.rb
|
114
|
-
- lib/artbase/retry.rb
|
115
105
|
- lib/artbase/tool.rb
|
116
106
|
- lib/artbase/version.rb
|
117
107
|
homepage: https://github.com/pixelartexchange/artbase
|
data/lib/artbase/attributes.rb
DELETED
@@ -1,83 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
def counter_to_text( counter )
|
4
|
-
|
5
|
-
counter = counter.to_a
|
6
|
-
|
7
|
-
attribute_counter = counter[0]
|
8
|
-
more_counter = counter[1..-1]
|
9
|
-
|
10
|
-
|
11
|
-
puts "Attribute Counts\n"
|
12
|
-
trait_type, h = attribute_counter
|
13
|
-
|
14
|
-
total = h[:by_type].values.reduce(0) { |sum,count| sum+count }
|
15
|
-
|
16
|
-
|
17
|
-
types = h[:by_type]
|
18
|
-
types = types.sort { |l,r| l[0]<=>r[0] } ## sort by name
|
19
|
-
|
20
|
-
puts "\n"
|
21
|
-
puts "|Name|Total (%)|"
|
22
|
-
puts "|--------|----------:|"
|
23
|
-
|
24
|
-
types.each do |rec|
|
25
|
-
name = rec[0]
|
26
|
-
count = rec[1]
|
27
|
-
percent = Float(count*100)/Float(total)
|
28
|
-
|
29
|
-
puts "| **#{name} Attributes** | #{count} (#{'%.2f' % percent}) |"
|
30
|
-
end
|
31
|
-
puts "\n"
|
32
|
-
|
33
|
-
more_counter.each_with_index do |(trait_type, h),i|
|
34
|
-
print " · " if i > 0 ## add separator
|
35
|
-
print "#{trait_type } (#{h[:by_type].size})"
|
36
|
-
end
|
37
|
-
puts "\n\n"
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
more_counter.each do |trait_type, h|
|
42
|
-
print "### #{trait_type } (#{h[:by_type].size}) - "
|
43
|
-
print "∑Total #{h[:count]}/#{total}\n"
|
44
|
-
|
45
|
-
puts "\n"
|
46
|
-
puts "|Name|Total (%)|"
|
47
|
-
puts "|--------|----------:|"
|
48
|
-
|
49
|
-
types = h[:by_type]
|
50
|
-
types = types.sort do |l,r|
|
51
|
-
# sort by 1) by count
|
52
|
-
# 2) by name a-z
|
53
|
-
res = r[1] <=> l[1]
|
54
|
-
res = l[0] <=> r[0] if res == 0
|
55
|
-
res
|
56
|
-
end ## sort by count
|
57
|
-
types.each do |rec|
|
58
|
-
name = rec[0]
|
59
|
-
count = rec[1]
|
60
|
-
percent = Float(count*100)/Float(total)
|
61
|
-
|
62
|
-
puts "| **#{name}** | #{count} (#{'%.2f' % percent}) |"
|
63
|
-
end
|
64
|
-
puts "\n\n"
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
def counter_to_csv( counter )
|
72
|
-
|
73
|
-
puts "type, name, count"
|
74
|
-
counter.each do |trait_type, h|
|
75
|
-
puts "#{trait_type}, ∑ Total, #{h[:count]}"
|
76
|
-
h[:by_type].each do |trait_value, count|
|
77
|
-
puts "#{trait_type}, #{trait_value}, #{count}"
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
|
83
|
-
|