ordinals 1.0.2 → 1.0.3

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
  SHA256:
3
- metadata.gz: a7a362c24bda8951706799ad74ddd75b148b94353166d4bf807b2b929ec1c1a1
4
- data.tar.gz: ee12466f380d678b7f652a33a4035fb66e593ece071d5489777abf121c1fbef7
3
+ metadata.gz: e10555694ad5291381edc71af98ba868a6f1f51a42236445873a27e4afbcd177
4
+ data.tar.gz: a751e7a56a4437d162f055fcf838acbf926a8ab0d89ac7559e99ec2a6f312882
5
5
  SHA512:
6
- metadata.gz: 73cf537fef77274ef1a6acb568fe2a516bec3c4cf3eeceef32e51e8e43df27cbf8236d304897b957a462f1946466db2b38d79969d5ad9228e917a99d32189c4b
7
- data.tar.gz: f45716b1e22dcdc42542e5972c1df9635272af900187ce61796d9cf5916a785c65d9c8bca74943733d069b80d7f3acaed78e231820a9a58ad806d31387cb7470
6
+ metadata.gz: f40f08b9217c1b85a45b3310f21b5acdd14a01d051b989d8abc78cdd88198ec76184b35488fc1f4f5f849224c1793b8e6b23b3ac38b4f36e723b5518b6db8fd6
7
+ data.tar.gz: bf8d701dd8d75045dc049a7aad636328f616c3a07a5d2a14781b4ac1953dd8a29dfdbea830693ba3e75390fc598e5aa2e06f58d8e6d209e65a19058c5e18b901
data/Manifest.txt CHANGED
@@ -4,3 +4,4 @@ README.md
4
4
  Rakefile
5
5
  lib/ordinals.rb
6
6
  lib/ordinals/api.rb
7
+ lib/ordinals/stats.rb
data/README.md CHANGED
@@ -3,8 +3,8 @@
3
3
  ordinals gem - ordinals (inscription) api wrapper & helpers for Bitcoin, Litcoin, Dogecoin & co.
4
4
 
5
5
 
6
- * home :: [github.com/pixelartexchange/artbase](https://github.com/pixelartexchange/artbase)
7
- * bugs :: [github.com/pixelartexchange/artbase/issues](https://github.com/pixelartexchange/artbase/issues)
6
+ * home :: [github.com/ordbase/ordbase](https://github.com/ordbase/ordbase)
7
+ * bugs :: [github.com/ordbase/ordbase/issues](https://github.com/ordbase/ordbase/issues)
8
8
  * gem :: [rubygems.org/gems/ordinals](https://rubygems.org/gems/ordinals)
9
9
  * rdoc :: [rubydoc.info/gems/ordinals](http://rubydoc.info/gems/ordinals)
10
10
 
@@ -14,7 +14,7 @@ ordinals gem - ordinals (inscription) api wrapper & helpers for Bitcoin, Litcoin
14
14
 
15
15
  For now ordinal inscription api queries are supported on
16
16
  - Bitcoin (via <https://ordinals.com>)
17
- - Litecoin (via <https://litecoin.earlyordies.com>) and
17
+ - Litecoin (via <https://ordinalslite.com>) and
18
18
  - Dogecoin (via <https://doginals.com>)
19
19
 
20
20
 
@@ -65,7 +65,7 @@ Ordinals.chain = :ltc
65
65
 
66
66
 
67
67
  # get the inscription binary blob / data by id
68
- # e.g. GET https://litecoin.earlyordies.com/inscription/f2b6adf7b2d0f128fb14817ff37f5f36e9176b17571e20c49871875553f937b4i0...
68
+ # e.g. GET https://ordinalslite.com/inscription/f2b6adf7b2d0f128fb14817ff37f5f36e9176b17571e20c49871875553f937b4i0...
69
69
 
70
70
  id = 'f2b6adf7b2d0f128fb14817ff37f5f36e9176b17571e20c49871875553f937b4i0'
71
71
  content = Ordinals.content( id )
@@ -77,7 +77,7 @@ pp content
77
77
 
78
78
 
79
79
  # get the inscription meta data by id
80
- # e.g GET https://litecoin.earlyordies.com/inscription/f2b6adf7b2d0f128fb14817ff37f5f36e9176b17571e20c49871875553f937b4i0...
80
+ # e.g GET https://ordinalslite.com/inscription/f2b6adf7b2d0f128fb14817ff37f5f36e9176b17571e20c49871875553f937b4i0...
81
81
  data = Ordinals.inscription( id )
82
82
  pp data
83
83
  #=> {"title"=>"Inscription 642",
@@ -104,7 +104,7 @@ That's it for now.
104
104
  ## Bonus: Ordinal Pixel Art Collections
105
105
 
106
106
 
107
- See the [**Ordinals (Pixel Art) Sandbox (& Cache)**](https://github.com/pixelartexchange/ordinals.sandbox)
107
+ See the [**Ordinals (Pixel Art) Sandbox (& Cache)**](https://github.com/ordbase/ordinals.sandbox)
108
108
  for collections incl. Ordinal Punks & Phunks (24×24), Bitcoin Punks (24×24), Ordinal Mini Doges (24×24), Ordinal Doggies (32×32),
109
109
  Extra Ordinal Women (32×32), Ordinal Penguins (35×35),
110
110
  Ordinal Birds (42×42), Bitcoin Bears (48×48) and much more.
data/Rakefile CHANGED
@@ -10,15 +10,15 @@ end
10
10
 
11
11
  Hoe.spec 'ordinals' do
12
12
 
13
- self.version = '1.0.2'
13
+ self.version = '1.0.3'
14
14
 
15
15
  self.summary = 'ordinals gem - ordinals (inscription) api wrapper & helpers for Bitcoin, Litecoin, Dogecoin & co.'
16
16
  self.description = summary
17
17
 
18
- self.urls = { home: 'https://github.com/pixelartexchange/artbase' }
18
+ self.urls = { home: 'https://github.com/ordbase/ordbase' }
19
19
 
20
20
  self.author = 'Gerald Bauer'
21
- self.email = 'wwwmake@googlegroups.com'
21
+ self.email = 'gerald.bauer@gmail.com'
22
22
 
23
23
  # switch extension to .markdown for gihub formatting
24
24
  self.readme_file = 'README.md'
data/lib/ordinals/api.rb CHANGED
@@ -5,7 +5,8 @@ module Ordinals
5
5
 
6
6
  class Api ## change/rename Api to Client - why? why not?
7
7
  def self.litecoin
8
- @litecoin ||= new( 'https://litecoin.earlyordies.com' )
8
+ ## @litecoin ||= new( 'https://litecoin.earlyordies.com' )
9
+ @litecoin ||= new( 'https://ordinalslite.com' )
9
10
  @litecoin
10
11
  end
11
12
 
@@ -0,0 +1,145 @@
1
+
2
+
3
+ class InscriptionStats
4
+
5
+ TITLE_RX = /^(Inscription|Shibescription)[ ]+(?<ord>[0-9]+)$/
6
+ BYTES_RX = /^(?<bytes>[0-9]+)[ ]+bytes$/
7
+
8
+ def initialize
9
+ @stats = {
10
+ count: 0,
11
+ ord: { '<100' => 0,
12
+ '<1000' => 0,
13
+ '<10000' => 0,
14
+ '<100000' => 0,
15
+ '<1000000' => 0,
16
+ 'min' => nil,
17
+ 'max' => nil, },
18
+ type: Hash.new(0),
19
+ bytes: { '<100' => 0,
20
+ '<1000' => 0,
21
+ '<10000' => 0,
22
+ '<100000' => 0,
23
+ '<1000000' => 0,
24
+ 'min' => nil,
25
+ 'max' => nil, },
26
+ }
27
+
28
+ @days = Hash.new(0)
29
+ end
30
+
31
+ def size() @stats[:count]; end
32
+
33
+
34
+
35
+ def update( data )
36
+ data = JSON.parse( data) if data.is_a?( String )
37
+
38
+ @stats[ :count ] += 1
39
+
40
+
41
+ ord = nil
42
+ if m=TITLE_RX.match( data['title'] )
43
+ ord = m[:ord].to_i(10)
44
+ else
45
+ puts "!! ERROR - cannot find ord in inscription title; sorry"
46
+ pp data
47
+ exit 1
48
+ end
49
+
50
+ if ord < 100 then @stats[:ord]['<100'] += 1
51
+ elsif ord < 1000 then @stats[:ord]['<1000'] += 1
52
+ elsif ord < 10000 then @stats[:ord]['<10000'] += 1
53
+ elsif ord < 100000 then @stats[:ord]['<100000'] += 1
54
+ elsif ord < 1000000 then @stats[:ord]['<1000000'] += 1
55
+ else
56
+ puts "!! ERROR ord out-of-bounds"
57
+ exit 1
58
+ end
59
+
60
+ ## update min/max
61
+ @stats[:ord]['min'] = ord if ord < (@stats[:ord]['min'] || 9999999)
62
+ @stats[:ord]['max'] = ord if ord > (@stats[:ord]['max'] || -1)
63
+
64
+
65
+ bytes = nil
66
+ if m=BYTES_RX.match( data['content length'] )
67
+ bytes = m[:bytes].to_i(10)
68
+ else
69
+ puts "!! ERROR - cannot find bytes in inscription content length; sorry"
70
+ pp data
71
+ exit 1
72
+ end
73
+
74
+ if bytes < 100 then @stats[:bytes]['<100'] += 1
75
+ elsif bytes < 1000 then @stats[:bytes]['<1000'] += 1
76
+ elsif bytes < 10000 then @stats[:bytes]['<10000'] += 1
77
+ elsif bytes < 100000 then @stats[:bytes]['<100000'] += 1
78
+ elsif bytes < 1000000 then @stats[:bytes]['<1000000'] += 1
79
+ else
80
+ puts "!! ERROR bytes (content-length) out-of-bounds"
81
+ exit 1
82
+ end
83
+
84
+ ## update min/max
85
+ @stats[:bytes]['min'] = bytes if bytes < (@stats[:bytes]['min'] || 9999999)
86
+ @stats[:bytes]['max'] = bytes if bytes > (@stats[:bytes]['max'] || -1)
87
+
88
+
89
+ type = data['content type']
90
+
91
+ @stats[:type][ type ] += 1
92
+
93
+ ## "timestamp"=>"2023-02-05 01:45:22 UTC",
94
+ ts = Time.strptime( data['timestamp'], '%Y-%m-%d %H:%M:%S' )
95
+
96
+ @days[ ts.strftime('%Y-%m-%d') ] +=1
97
+ end # method update
98
+
99
+
100
+ def data ## rename to model or such - why? why not?
101
+ ## sort days
102
+ days = @days.sort {|l,r| l[0] <=> r[0] }
103
+ ## add to stats
104
+ @stats[:days] = {}
105
+ days.each {|k,v| @stats[:days][k] = v }
106
+ @stats
107
+ end
108
+
109
+ =begin
110
+ {:count=>101,
111
+ :ord=>{"<1000"=>0, "<10000"=>0, "<100000"=>101, "<1000000"=>0, "min"=>14343, "max"=>42901},
112
+ :type=>{"image/png"=>101},
113
+ :bytes=>{"<100"=>0, "<1000"=>101, "<10000"=>0, "<100000"=>0, "<1000000"=>0, "min"=>274, "max"=>512},
114
+ :days=>{"2023-02-22"=>10, "2023-02-25"=>17, "2023-02-26"=>74}}
115
+ =end
116
+
117
+ def format ## rename to pretty_print or such - why? why not?
118
+ stat = data
119
+
120
+ buf = String.new('')
121
+ buf << "#{stat[:count]} inscription(s)\n"
122
+
123
+ buf << "- from ##{stat[:ord]['min']} to ##{stat[:ord]['max']} (min. to max.)\n"
124
+ buf << " - <100 => #{stat[:ord]['<100']}\n" if stat[:ord]["<100"] > 0
125
+ buf << " - <1000 => #{stat[:ord]['<1000']}\n" if stat[:ord]["<1000"] > 0
126
+ buf << " - <10000 => #{stat[:ord]['<10000']}\n" if stat[:ord]["<10000"] > 0
127
+ buf << " - <100000 => #{stat[:ord]['<100000']}\n" if stat[:ord]["<100000"] > 0
128
+ buf << " - <1000000 => #{stat[:ord]['<1000000']}\n" if stat[:ord]["<1000000"] > 0
129
+
130
+ buf << "- format(s)\n"
131
+ stat[:type].each do |k,v|
132
+ buf << " - #{k} => #{v}\n"
133
+ end
134
+
135
+ buf << "- day(s)\n"
136
+ stat[:days].each do |k,v|
137
+ buf << " - #{k} => #{v}\n"
138
+ end
139
+
140
+ buf
141
+ end
142
+
143
+ end ## class InscriptionStats
144
+
145
+
data/lib/ordinals.rb CHANGED
@@ -85,5 +85,7 @@ end # module Ordinals
85
85
 
86
86
  ## our own code
87
87
  require_relative 'ordinals/api'
88
+ require_relative 'ordinals/stats'
89
+
88
90
 
89
91
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ordinals
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-23 00:00:00.000000000 Z
11
+ date: 2023-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cocos
@@ -74,7 +74,7 @@ dependencies:
74
74
  version: '3.23'
75
75
  description: ordinals gem - ordinals (inscription) api wrapper & helpers for Bitcoin,
76
76
  Litecoin, Dogecoin & co.
77
- email: wwwmake@googlegroups.com
77
+ email: gerald.bauer@gmail.com
78
78
  executables: []
79
79
  extensions: []
80
80
  extra_rdoc_files:
@@ -88,7 +88,8 @@ files:
88
88
  - Rakefile
89
89
  - lib/ordinals.rb
90
90
  - lib/ordinals/api.rb
91
- homepage: https://github.com/pixelartexchange/artbase
91
+ - lib/ordinals/stats.rb
92
+ homepage: https://github.com/ordbase/ordbase
92
93
  licenses:
93
94
  - Public Domain
94
95
  metadata: {}