hive_sql 1.0.0.pre.1 → 1.0.0.pre.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/README.md +97 -0
- data/Rakefile +43 -2
- data/bin/hive_sql +70 -15
- data/lib/hive_sql/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd5bd8d219c1ad22da6b5d6b7abd76a65792d7d14f194990bda7e3e331e2ba76
|
4
|
+
data.tar.gz: 6fbcc61ef42e6f19dfcf423597b20bfd1bd656c7d055c1cab2980156a94c7ac5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f83ac383174d7021b379fe82363342b2430db26e91714cae04402cc6fca90ac05990f705864d1cbef25c0078d193d3084b2ead582e350362173be96dfc8b7473
|
7
|
+
data.tar.gz: a2398930b03034f4702ade35af0961c10ff776d04f03eb61a8640e7ca64869001c52f8fddf8f64abe60f23ca5e4f3840e6afb878d6911dcd29e99bbc99943b09
|
data/README.md
ADDED
@@ -0,0 +1,97 @@
|
|
1
|
+
# Hive SQL
|
2
|
+
|
3
|
+
Access [HiveSQL.io](https://hivesql.io) data from your ruby/rails application.
|
4
|
+
|
5
|
+
[](https://badge.fury.io/rb/hive_sql)
|
6
|
+
|
7
|
+
### How to Subscribe
|
8
|
+
|
9
|
+
**Note:** HiveSQL is a monthly subscription. To use this gem, you must subscribe to @hivesql and store the credentials as environment variables.
|
10
|
+
|
11
|
+
See: https://hivesql.io
|
12
|
+
|
13
|
+
### Installation
|
14
|
+
|
15
|
+
First, install ruby. One way to do this is install [rvm](https://rvm.io/install). Once ruby is installed, install `hive_sql` with the `gem` command:
|
16
|
+
|
17
|
+
```bash
|
18
|
+
gem install hive_sql
|
19
|
+
```
|
20
|
+
|
21
|
+
Or, add it to your `Gemfile`:
|
22
|
+
|
23
|
+
```ruby
|
24
|
+
gem 'hive_sql'
|
25
|
+
```
|
26
|
+
|
27
|
+
### How To Use (Standalone)
|
28
|
+
|
29
|
+
```bash
|
30
|
+
gem install hive_sql
|
31
|
+
export HIVESQL_HOST=<your hivesql host>
|
32
|
+
export HIVESQL_USERNAME=<your hivesql username>
|
33
|
+
export HIVESQL_PASSWORD=<your hivesql password>
|
34
|
+
hive_sql top upvoted
|
35
|
+
```
|
36
|
+
|
37
|
+
The above example will query the top upvoted content for the last 7 days.
|
38
|
+
|
39
|
+
### Models
|
40
|
+
- Account
|
41
|
+
- Block
|
42
|
+
- Transaction
|
43
|
+
- *various operations*
|
44
|
+
- Comment
|
45
|
+
- Community
|
46
|
+
- Role
|
47
|
+
- Subscriber
|
48
|
+
- Follower
|
49
|
+
- Reblog
|
50
|
+
- Tag
|
51
|
+
- Token
|
52
|
+
- Witness
|
53
|
+
|
54
|
+
### Followers
|
55
|
+
|
56
|
+
How to query today's followers:
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
followers = HiveSQL::Tx::Custom::Follow
|
60
|
+
followers.following(:alice).today.count
|
61
|
+
```
|
62
|
+
|
63
|
+
### Reblog
|
64
|
+
|
65
|
+
How to query today's reblogs:
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
reblogs = HiveSQL::Tx::Custom::Reblog
|
69
|
+
reblogs.author(:alice).today.count
|
70
|
+
```
|
71
|
+
|
72
|
+
### Account Witness Proxy
|
73
|
+
|
74
|
+
How to query current accounts that are actively using a proxy:
|
75
|
+
|
76
|
+
```ruby
|
77
|
+
proxied = HiveSQL::Tx::AccountWitnessProxy.active('alice')
|
78
|
+
proxied.pluck(:account)
|
79
|
+
```
|
80
|
+
|
81
|
+
### Applications
|
82
|
+
|
83
|
+
How to query comments by application:
|
84
|
+
|
85
|
+
```ruby
|
86
|
+
comments = HiveSQL::Comment.app('esteem').where(author: 'good-karma')
|
87
|
+
```
|
88
|
+
|
89
|
+
## Get in touch!
|
90
|
+
|
91
|
+
If you're using HiveSQL with ruby, I'd love to hear from you. Drop me a line and tell me what you think! I'm @inertia on Hive.
|
92
|
+
|
93
|
+
Please note that this gem just provides access to the HiveSQL data services are provided by @arcange.
|
94
|
+
|
95
|
+
## License
|
96
|
+
|
97
|
+
I don't believe in intellectual "property". If you do, consider Radiator as licensed under a Creative Commons [](http://creativecommons.org/publicdomain/zero/1.0/) License.
|
data/Rakefile
CHANGED
@@ -454,7 +454,10 @@ task :proxied, [:days_ago] do |t, args|
|
|
454
454
|
ap proxied.count(:all)
|
455
455
|
end
|
456
456
|
|
457
|
-
desc
|
457
|
+
desc <<~EOF
|
458
|
+
Claimed Rewards.
|
459
|
+
Use the "account_name" of a user or '%' to match on any user.
|
460
|
+
EOF
|
458
461
|
task :claimed, [:account_name, :days_ago, :symbol] do |t, args|
|
459
462
|
now = Time.now.utc
|
460
463
|
account_name = args[:account_name] || '%'
|
@@ -473,7 +476,7 @@ task :claimed, [:account_name, :days_ago, :symbol] do |t, args|
|
|
473
476
|
when :mvests then claims.where("reward_vests > 0")
|
474
477
|
when :hive then claims.where("reward_steem > 0")
|
475
478
|
when :hbd then claims.where("reward_sbd > 0")
|
476
|
-
else; raise "Unknown symbol: #{symbol}"
|
479
|
+
else; raise "Unknown symbol: #{symbol.to_s.upcase} (allowed: VESTS, MVESTS, HIVE, HBD)"
|
477
480
|
end
|
478
481
|
|
479
482
|
claims = claims.group("FORMAT(timestamp, 'yyyy-MM')")
|
@@ -492,6 +495,10 @@ task :claimed, [:account_name, :days_ago, :symbol] do |t, args|
|
|
492
495
|
puts "# Total claimed #{symbol}: #{claims.values.sum}"
|
493
496
|
end
|
494
497
|
|
498
|
+
desc <<~EOF
|
499
|
+
Balance for given parties.
|
500
|
+
Where "party_a" is the first account, "party_b" is the second account and "symbol" is a valid native symbol.
|
501
|
+
EOF
|
495
502
|
task :balance, [:party_a, :party_b, :symbol] do |t, args|
|
496
503
|
party_a = args[:party_a]
|
497
504
|
party_b = args[:party_b]
|
@@ -504,6 +511,40 @@ task :balance, [:party_a, :party_b, :symbol] do |t, args|
|
|
504
511
|
puts "#{party_b}: %.3f #{symbol}, difference: %.3f #{symbol}" % [balance_b, (balance_b - balance_a)]
|
505
512
|
end
|
506
513
|
|
514
|
+
desc <<~EOF
|
515
|
+
Top what ...
|
516
|
+
Allowed \"what\" options: upvoted downvoted
|
517
|
+
EOF
|
518
|
+
task :top, [:what, :limit] do |t, args|
|
519
|
+
what = args[:what].to_s.downcase.to_sym
|
520
|
+
limit = (args[:limit] || '10').to_i
|
521
|
+
since = 1.week.ago
|
522
|
+
|
523
|
+
case what
|
524
|
+
when :upvoted, :downvoted
|
525
|
+
comments = HiveSQL::Comment.after(since)
|
526
|
+
comments = if what == :upvoted
|
527
|
+
comments.where('net_rshares > 0')
|
528
|
+
comments = comments.order('sum_net_rshares DESC')
|
529
|
+
elsif what == :downvoted
|
530
|
+
comments.where('net_rshares < 0')
|
531
|
+
comments = comments.order('sum_net_rshares ASC')
|
532
|
+
end
|
533
|
+
|
534
|
+
comments = comments.group(:author, :permlink, :created)
|
535
|
+
comments = comments.limit(limit)
|
536
|
+
|
537
|
+
comments = comments.sum(:net_rshares)
|
538
|
+
|
539
|
+
comments.each do |k, v|
|
540
|
+
url = "https://hive.blog/@#{k[0]}/#{k[1]}"
|
541
|
+
created = (Time.now - k[2]) / 60 / 60 / 24
|
542
|
+
|
543
|
+
puts "#{v}; #{created.round(2)} days ago: #{url}"
|
544
|
+
end
|
545
|
+
end
|
546
|
+
end
|
547
|
+
|
507
548
|
# Doesn't look like this table exists.
|
508
549
|
# desc 'List conversion HBD conversion request sums grouped by day.'
|
509
550
|
# task :convert, [:days_ago] do |t, args|
|
data/bin/hive_sql
CHANGED
@@ -1,23 +1,78 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'rake'
|
4
|
+
require 'pp'
|
3
5
|
require 'hive_sql'
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
gem_dir = File.expand_path("..", File.dirname(__FILE__))
|
8
|
+
$LOAD_PATH.unshift gem_dir
|
9
|
+
|
10
|
+
pwd = Dir.pwd
|
11
|
+
Dir.chdir(gem_dir)
|
12
|
+
Rake::TaskManager.record_task_metadata = true
|
13
|
+
Rake.application.init
|
14
|
+
Rake.application.load_rakefile
|
15
|
+
Dir.chdir(pwd)
|
16
|
+
|
17
|
+
EXCLUDED_TASKS = %w(build clean clobber default install install:local push
|
18
|
+
release release:guard_clean release:rubygem_push release:source_control_push
|
19
|
+
test)
|
20
|
+
|
21
|
+
def version
|
22
|
+
puts "HiveSQL Version: #{HiveSQL::VERSION}\n\n"
|
23
|
+
end
|
24
|
+
|
25
|
+
def help(task_name = ARGV[1])
|
26
|
+
if !!task_name && task_name != 'help'
|
27
|
+
task = Rake::Task[task_name]
|
28
|
+
|
29
|
+
help_text = if !!task.full_comment
|
30
|
+
task.full_comment.split("\n").map{|c| "\n #{c}"}.join("\n") + "\n\n"
|
31
|
+
else
|
32
|
+
"\n"
|
33
|
+
end
|
34
|
+
|
35
|
+
help_text += " hive_sql #{task.name} #{task.arg_names.map{|a| "[#{a}]"}.join(' ')}"
|
36
|
+
|
37
|
+
STDOUT.puts <<~EOF
|
38
|
+
Usage:
|
39
|
+
#{help_text}
|
40
|
+
EOF
|
41
|
+
else
|
42
|
+
tasks = Rake::Task.tasks.map do |task|
|
43
|
+
next if EXCLUDED_TASKS.include? task.name
|
44
|
+
|
45
|
+
help_text = if !!task.comment
|
46
|
+
"\n > #{task.comment}\n"
|
47
|
+
else
|
48
|
+
"\n"
|
49
|
+
end
|
50
|
+
|
51
|
+
help_text += " hive_sql #{task.name} #{task.arg_names.map{|a| "[#{a}]"}.join(' ')}"
|
52
|
+
end.compact
|
53
|
+
|
54
|
+
STDOUT.puts <<~EOF
|
55
|
+
Please provide command name
|
56
|
+
|
57
|
+
Usage:
|
58
|
+
#{tasks.join("\n")}
|
59
|
+
|
60
|
+
hive_sql help [command]
|
61
|
+
|
62
|
+
hive_sql version
|
63
|
+
EOF
|
64
|
+
end
|
65
|
+
end
|
11
66
|
|
12
67
|
case ARGV[0]
|
13
|
-
when '
|
14
|
-
|
68
|
+
when 'version' then version
|
69
|
+
when 'help' then help
|
15
70
|
else
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
71
|
+
begin
|
72
|
+
Rake::Task[ARGV[0]].invoke(*ARGV[1..-1])
|
73
|
+
rescue => e
|
74
|
+
puts e
|
75
|
+
|
76
|
+
help ARGV[0]
|
77
|
+
end
|
23
78
|
end
|
data/lib/hive_sql/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hive_sql
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.pre.
|
4
|
+
version: 1.0.0.pre.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Martin (inertia)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -323,6 +323,7 @@ files:
|
|
323
323
|
- ".gitignore"
|
324
324
|
- Gemfile
|
325
325
|
- LICENSE
|
326
|
+
- README.md
|
326
327
|
- Rakefile
|
327
328
|
- bin/hive_sql
|
328
329
|
- hive_sql.gemspec
|