urbit-api 0.2.1 → 0.5.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/lib/urbit/bucket.rb +45 -0
- data/lib/urbit/channel.rb +4 -5
- data/lib/urbit/fact/base_fact.rb +97 -0
- data/lib/urbit/fact/graph_fact.rb +90 -0
- data/lib/urbit/fact/group_fact.rb +124 -0
- data/lib/urbit/fact/metadata_fact.rb +57 -0
- data/lib/urbit/fact/settings_fact.rb +120 -0
- data/lib/urbit/fact.rb +49 -60
- data/lib/urbit/graph.rb +44 -2
- data/lib/urbit/group.rb +164 -0
- data/lib/urbit/group_parser.rb +71 -0
- data/lib/urbit/groups.rb +100 -0
- data/lib/urbit/link.rb +69 -0
- data/lib/urbit/links.rb +39 -0
- data/lib/urbit/message.rb +2 -2
- data/lib/urbit/parser.rb +23 -3
- data/lib/urbit/poke_message.rb +2 -2
- data/lib/urbit/receiver.rb +15 -5
- data/lib/urbit/setting.rb +71 -0
- data/lib/urbit/settings.rb +36 -0
- data/lib/urbit/ship.rb +69 -28
- data/lib/urbit/version.rb +5 -0
- data/lib/{urbit/urbit.rb → urbit.rb} +3 -2
- data/urbit-api.gemspec +7 -8
- metadata +35 -28
- data/.gitignore +0 -25
- data/.rspec +0 -1
- data/.ruby-version +0 -2
- data/CHANGELOG.md +0 -1
- data/Gemfile +0 -6
- data/LICENSE.txt +0 -21
- data/README.gem.md +0 -4
- data/README.md +0 -240
- data/Rakefile +0 -10
- data/_config.yml +0 -2
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/bin/test +0 -2
- data/lib/urbit/api/version.rb +0 -5
- data/misc/graph-store_graph +0 -51
- data/misc/graph-store_keys +0 -15
- data/misc/graph-store_node +0 -34
- data/misc/graph-store_update +0 -76
- data/misc/graph-update_add-graph +0 -20
- data/misc/graph-update_add-nodes +0 -75
- data/misc/post +0 -12
data/README.md
DELETED
@@ -1,240 +0,0 @@
|
|
1
|
-
# Urbit::Api
|
2
|
-
|
3
|
-
## The Ruby interface to the Urbit HTTP API
|
4
|
-
|
5
|
-
This library wraps the Urbit ship http interface exposing it as a Ruby gem.
|
6
|
-
|
7
|
-
[](https://github.com/urbit/awesome-urbit)
|
8
|
-
[](https://badge.fury.io/rb/urbit-api)
|
9
|
-
[](https://github.com/Zaxonomy/urbit-ruby/blob/master/LICENSE.txt)
|
10
|
-
|
11
|
-
## Installation
|
12
|
-
|
13
|
-
Add this line to your application's Gemfile:
|
14
|
-
|
15
|
-
```ruby
|
16
|
-
gem 'urbit-api'
|
17
|
-
```
|
18
|
-
|
19
|
-
And then execute:
|
20
|
-
|
21
|
-
$ bundle install
|
22
|
-
|
23
|
-
Or install it yourself as:
|
24
|
-
|
25
|
-
$ gem install urbit-api
|
26
|
-
|
27
|
-
## Usage
|
28
|
-
|
29
|
-
```sh
|
30
|
-
> bin/console
|
31
|
-
|
32
|
-
# This will instantiate a ship that connects to the fake `~zod` dev server by default
|
33
|
-
# See Urbit docs for more info: https://urbit.org/using/develop/
|
34
|
-
[1] pry(main)> ship = Urbit.new
|
35
|
-
=> #<Urbit::Ship:0x00007fa74b87f920 ...
|
36
|
-
|
37
|
-
OR... with config file...
|
38
|
-
> ship = Urbit.connect(config_file: '_config-barsyr-latreb.yml')
|
39
|
-
|
40
|
-
> ship.logged_in?
|
41
|
-
=> false
|
42
|
-
|
43
|
-
> ship.login
|
44
|
-
=> #<Urbit::Ship:0x00007fa74b87f920 ...
|
45
|
-
|
46
|
-
> ship.logged_in?
|
47
|
-
=> true
|
48
|
-
|
49
|
-
> ship.to_s
|
50
|
-
=> "a Ship(name: '~barsyr-latreb', host: 'http://localhost', port: '8080')"
|
51
|
-
|
52
|
-
> channel = ship.subscribe(app: 'graph-store', path: '/updates')
|
53
|
-
=> a Channel (Open) on ~barsyr-latreb(name: 'Channel-0', key: '1622836437b540b4')
|
54
|
-
|
55
|
-
# Subscribing works by opening a Channel. Your ships has a collection of all it's open Channels.
|
56
|
-
> channel = ship.open_channels.first
|
57
|
-
=> a Channel (Open) on ~barsyr-latreb(name: 'Channel-0', key: '1622836437b540b4')
|
58
|
-
|
59
|
-
# Notice that it's the same one.
|
60
|
-
|
61
|
-
# Every Channel has a unique key to identify it.
|
62
|
-
> channel.key
|
63
|
-
=> "16142890875c348d"
|
64
|
-
|
65
|
-
# The Channel has a Receiver that will now be listening on the app and path you specified. Each time an event is sent in it will be stored in the receiver's facts collection.
|
66
|
-
> channel.receiver.facts.count
|
67
|
-
=> 12
|
68
|
-
|
69
|
-
# Perform any action through landscape that would initiate an update into %graph-store...
|
70
|
-
# In this case I have added a comment to a local notebook.
|
71
|
-
> channel.receiver.facts.last
|
72
|
-
=> a Fact({:ship=>{:name=>"~barsyr-latreb", :host=>"http://localhost", :port=>"8080"}, :resource=>"~barsyr-latreb/test0-996", :acknowleged=>true, :is_graph_update=>true})
|
73
|
-
|
74
|
-
# Your ship keeps a collection of all the messages sent to urbit:
|
75
|
-
> channel.sent_messages.collect {|m| m.to_s}
|
76
|
-
=> [
|
77
|
-
"a Message({:action=>"poke", :app=>"hood", :id=>1, :json=>"Opening Airlock", :mark=>"helm-hi", :ship=>"barsyr-latreb"})",
|
78
|
-
"a Message({:action=>"subscribe", :app=>"graph-store", :id=>2, :path=>"/updates", :ship=>"barsyr-latreb"})",
|
79
|
-
"a Message({"id"=>3, "action"=>"ack", "event-id"=>"0"})",
|
80
|
-
"a Message({"id"=>4, "action"=>"ack", "event-id"=>"1"})",
|
81
|
-
"a Message({"id"=>5, "action"=>"ack", "event-id"=>"2"})"
|
82
|
-
]
|
83
|
-
|
84
|
-
#
|
85
|
-
# --------------------------------------------------------------------
|
86
|
-
# Poke
|
87
|
-
# --------------------------------------------------------------------
|
88
|
-
#
|
89
|
-
> ship.poke(app: 'hood', mark: 'helm-hi', message: 'Opening Airlock')
|
90
|
-
=> a Channel (Open) on ~barsyr-latreb(name: 'Channel-0', key: '1630355920a717e1')
|
91
|
-
|
92
|
-
#
|
93
|
-
# --------------------------------------------------------------------
|
94
|
-
# Scry
|
95
|
-
# --------------------------------------------------------------------
|
96
|
-
#
|
97
|
-
# Retrieving your ship's base hash using scry....
|
98
|
-
> ship.scry(app: 'file-server', path: '/clay/base/hash')
|
99
|
-
# => {:status=>200, :code=>"ok", :body=>"\"e75k5\""}
|
100
|
-
|
101
|
-
#
|
102
|
-
# --------------------------------------------------------------------
|
103
|
-
# Spider
|
104
|
-
# --------------------------------------------------------------------
|
105
|
-
#
|
106
|
-
# Creating a new Notebook in "My Channels" using %spider....
|
107
|
-
> create_json = %Q(
|
108
|
-
{"create": {"resource": { "ship": "~zod", "name": "random_name"},
|
109
|
-
"title": "Testing",
|
110
|
-
"description": "Testing Un-Managed Graph Creation",
|
111
|
-
"associated" : {"policy": {"invite": {"pending": []}}},
|
112
|
-
"module": "publish", "mark": "graph-validator-publish"}}
|
113
|
-
)
|
114
|
-
> ship.spider(mark_in: 'graph-view-action', mark_out: 'json', thread: 'graph-create', data: create_json)
|
115
|
-
# => {:status=>200, :code=>"ok", :body=>"\"e75k5\""}
|
116
|
-
|
117
|
-
#
|
118
|
-
# --------------------------------------------------------------------
|
119
|
-
# %graph-store
|
120
|
-
# --------------------------------------------------------------------
|
121
|
-
#
|
122
|
-
> puts ship.graph_names
|
123
|
-
~barsyr-latreb/dm-inbox
|
124
|
-
~darlur/announce
|
125
|
-
~bitbet-bolbel/urbit-community-5.963
|
126
|
-
~winter-paches/top-shelf-6391
|
127
|
-
~winter-paches/the-great-north-7.579
|
128
|
-
~barsyr-latreb/test0-996
|
129
|
-
~fabled-faster/test-chat-a-5919
|
130
|
-
~barsyr-latreb/test1-4287
|
131
|
-
~darrux-landes/welcome-to-urbit-community
|
132
|
-
~millyt-dorsen/finance-2.962
|
133
|
-
~fabled-faster/interface-testing-facility-683
|
134
|
-
~darlur/help-desk-4556
|
135
|
-
=>
|
136
|
-
|
137
|
-
# Reference a graph by name and return a single node.
|
138
|
-
> puts ship.graph(resource: '~winter-paches/top-shelf-6391').node(index: "170.141.184.505.207.751.870.046.689.877.378.990.080")
|
139
|
-
a Node({:index=>"170.141.184.505.207.751.870.046.689.877.378.990.080", :author=>"witfyl-ravped", :contents=>[{"text"=>"the patches don't really bother me though tbh"}], :time_sent=>1629316468195, :is_parent=>false, :child_count=>0})
|
140
|
-
=>
|
141
|
-
|
142
|
-
# You can also reference a graph by its index in the graphs collection.
|
143
|
-
> puts ship.graphs[3].node(index: "170.141.184.505.207.751.870.046.689.877.378.990.080")
|
144
|
-
a Node({:index=>"170.141.184.505.207.751.870.046.689.877.378.990.080", :author=>"witfyl-ravped", :contents=>[{"text"=>"the patches don't really bother me though tbh"}], :time_sent=>1629316468195, :is_parent=>false, :child_count=>0})
|
145
|
-
=>
|
146
|
-
|
147
|
-
# Return the contents of the 5 oldest nodes of a graph
|
148
|
-
> graph = ship.graph(resource: '~winter-paches/top-shelf-6391')
|
149
|
-
> graph.oldest_nodes(count: 5).sort.each {|n| p n.contents};nil
|
150
|
-
[{"text"=>"watching the 2020 stanley cup finals (tampa (sigh) just went up 2-0 in game 3) and i thought: \"the great north has to have a hockey chat, eh?\""}]
|
151
|
-
[{"text"=>"we'll see if this has legs. ;)"}]
|
152
|
-
[{"text"=>"shortie! now 2-1 tampa."}]
|
153
|
-
[{"text"=>"looks like tampa's going to go up 2-1. as a canadian this geographically depresses me. :/"}]
|
154
|
-
[{"text"=>"anyone in the stands?"}]
|
155
|
-
=>
|
156
|
-
|
157
|
-
# A single Node. In this case, the 3rd oldest node in the graph.
|
158
|
-
> puts graph.nodes[2].contents
|
159
|
-
{"text"=>"shortie! now 2-1 tampa."}
|
160
|
-
=>
|
161
|
-
|
162
|
-
# Getting the next newer Node. Remember that it always returns an Array, hence the '#first'.
|
163
|
-
> puts graph.nodes[2].next.first.contents
|
164
|
-
{"text"=>"looks like tampa's going to go up 2-1. as a canadian this geographically depresses me. :/"}
|
165
|
-
=>
|
166
|
-
|
167
|
-
# Return the indexes of the newest 5 nodes of a graph
|
168
|
-
> ship.graph(resource: '~winter-paches/top-shelf-6391').newest_nodes(count: 5).sort.each {|n| p n.index};nil
|
169
|
-
"170.141.184.505.209.257.330.601.508.862.548.770.816"
|
170
|
-
"170.141.184.505.209.375.247.350.471.711.992.578.048"
|
171
|
-
"170.141.184.505.209.545.972.004.310.065.795.301.376"
|
172
|
-
"170.141.184.505.209.627.337.970.761.265.544.429.568"
|
173
|
-
"170.141.184.505.209.644.102.846.398.558.514.446.336"
|
174
|
-
=>
|
175
|
-
|
176
|
-
# Fetching nodes older relative to another node. (See indexes above)
|
177
|
-
> puts (node = ship.graph(resource: '~winter-paches/top-shelf-6391').node(index: "170.141.184.505.209.644.102.846.398.558.514.446.336"))
|
178
|
-
a Node({:index=>"170.141.184.505.209.644.102.846.398.558.514.446.336", :author=>"winter-paches", :contents=>[{"text"=>"yep. that's how i did it as a kid. harry caray was the white sox announcer before he turned traitor and went to the cubs."}], :time_sent=>1629419046028, :is_parent=>false, :child_count=>0})
|
179
|
-
=>
|
180
|
-
|
181
|
-
> puts node.previous
|
182
|
-
a Node({:index=>"170.141.184.505.209.627.337.970.761.265.544.429.568", :author=>"pathus-hiddyn", :contents=>[{"text"=>"Lol oh man I haven’t listened to a baseball game on the radio in forever. It is great isn’t it. "}], :time_sent=>1629418137668, :is_parent=>false, :child_count=>0})
|
183
|
-
=>
|
184
|
-
|
185
|
-
> node.previous(count: 4).each {|n| p n.index};nil
|
186
|
-
"170.141.184.505.209.257.330.601.508.862.548.770.816"
|
187
|
-
"170.141.184.505.209.375.247.350.471.711.992.578.048"
|
188
|
-
"170.141.184.505.209.545.972.004.310.065.795.301.376"
|
189
|
-
"170.141.184.505.209.627.337.970.761.265.544.429.568"
|
190
|
-
```
|
191
|
-
### Configuration
|
192
|
-
|
193
|
-
Configure your ship using a config file or constructor keyword arguments. Either or both can be used; the keyword args will override any values set via config file.
|
194
|
-
|
195
|
-
Supported keys:
|
196
|
-
- `code` - the auth code
|
197
|
-
- `host` - the ship's host (e.g., 'localhost' or 'myship.net')
|
198
|
-
- `name` - the ship's name (e.g, '~zod')
|
199
|
-
- `port` - the open www port on your ship ('80' by default)
|
200
|
-
|
201
|
-
#### Config File
|
202
|
-
|
203
|
-
See [`_config.yml`](_config.yml) for an example config file. This will connect to a local fake zod, see creation instructions below.
|
204
|
-
|
205
|
-
```rb
|
206
|
-
ship = Urbit.new(config_file: 'my-moon.yml')
|
207
|
-
```
|
208
|
-
|
209
|
-
#### Constructor Keyword Arguments
|
210
|
-
|
211
|
-
```rb
|
212
|
-
ship = Urbit.new(host: '127.0.0.1', port: '8080')
|
213
|
-
```
|
214
|
-
|
215
|
-
## Testing
|
216
|
-
|
217
|
-
```sh
|
218
|
-
bin/test
|
219
|
-
```
|
220
|
-
Tests assume that an instance of a ["fake" development Urbit ship](https://urbit.org/using/develop/) (one not connected to the live network) will be running, available at `http://localhost:8080`.
|
221
|
-
### "fake" ~zod
|
222
|
-
|
223
|
-
To create this development ship:
|
224
|
-
```sh
|
225
|
-
./urbit -F zod
|
226
|
-
```
|
227
|
-
## Development
|
228
|
-
|
229
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
230
|
-
|
231
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
232
|
-
|
233
|
-
## Contributing
|
234
|
-
|
235
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/urbit-api.
|
236
|
-
|
237
|
-
|
238
|
-
## License
|
239
|
-
|
240
|
-
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
DELETED
data/_config.yml
DELETED
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "pry"
|
5
|
-
require "urbit/urbit"
|
6
|
-
|
7
|
-
puts "Welcome! This is an interactive environment to explore your Urbit ship."
|
8
|
-
puts "You create a config file with connection details for your ship and off you go."
|
9
|
-
puts ""
|
10
|
-
puts "e.g., ship = Urbit.new(config_file: 'my_config.yml')"
|
11
|
-
puts "=> a Ship(name: '~barsyr-latreb', host: 'http://localhost', port: '8080')"
|
12
|
-
|
13
|
-
Pry.config.print = proc { |output, value| output.puts "=> #{value}" }
|
14
|
-
Pry.start
|
data/bin/setup
DELETED
data/bin/test
DELETED
data/lib/urbit/api/version.rb
DELETED
data/misc/graph-store_graph
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
{
|
2
|
-
:status => 200,
|
3
|
-
:code => "ok",
|
4
|
-
:body =>" {
|
5
|
-
"graph-update": {
|
6
|
-
"add-graph": {
|
7
|
-
"graph":{},
|
8
|
-
"resource" : {
|
9
|
-
"name": "dec74689ad",
|
10
|
-
"ship": "zod"
|
11
|
-
},
|
12
|
-
"mark" : "graph-validator-chat",
|
13
|
-
"overwrite":true
|
14
|
-
}
|
15
|
-
}
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
|
20
|
-
{
|
21
|
-
"status": 200,
|
22
|
-
"code": "ok",
|
23
|
-
"body": {
|
24
|
-
"graph-update": {
|
25
|
-
"add-graph": {
|
26
|
-
"graph": {
|
27
|
-
"170141184505196673936784618510385938432": {
|
28
|
-
"post" : {
|
29
|
-
"index": "/170141184505196673936784618510385938432",
|
30
|
-
"author": "zod",
|
31
|
-
"time-sent": 1628715932642,
|
32
|
-
"signatures": [
|
33
|
-
{"signature": "0x2.7d8e.58d0.ee70.c720.e0c7.0fbe.40be.f68c.0401.950e.1bb8.9eda.cb66.3726.8995.3ca2.2d51.aa34.fcc8.ea00.1193.9145.38c9.7fea.8285.bd4e.d390.a195.f7e6.0870.5f7c.c73b.67a7.d19c.375b.fc29.aac7.6879.04fa.6a0f.cb7f.9001", "life": 1 ,"ship": "zod\}
|
34
|
-
],
|
35
|
-
"contents": [
|
36
|
-
{"text" : "test?"}
|
37
|
-
],
|
38
|
-
"hash": "0x9f63.9634.3b9c.31c8.3831.c3ef.902f.bda3"},
|
39
|
-
"children":null
|
40
|
-
}
|
41
|
-
},
|
42
|
-
"resource" : {
|
43
|
-
"name": "dec74689ad",
|
44
|
-
"ship": "zod"
|
45
|
-
},
|
46
|
-
"mark": "graph-validator-chat",
|
47
|
-
"overwrite": true
|
48
|
-
}
|
49
|
-
}
|
50
|
-
}
|
51
|
-
}
|
data/misc/graph-store_keys
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
{
|
2
|
-
:status => 200,
|
3
|
-
:code => "ok",
|
4
|
-
:body => {
|
5
|
-
"graph-update": {
|
6
|
-
"keys": [
|
7
|
-
{"name": "announce", "ship": "darlur"},
|
8
|
-
{"name": "test0-996", "ship": "barsyr-latreb"},
|
9
|
-
{"name": "test1-4287", "ship": "barsyr-latreb"},
|
10
|
-
{"name": "welcome-to-urbit-community", "ship": "darrux-landes"},
|
11
|
-
{"name": "help-desk-4556", "ship": "darlur"}
|
12
|
-
]
|
13
|
-
}
|
14
|
-
}
|
15
|
-
}
|
data/misc/graph-store_node
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
[1] pry(main)> ship = Urbit.connect(config_file: '_config-barsyr-latreb.yml')
|
2
|
-
=> a Ship(name: '~barsyr-latreb', host: 'http://localhost', port: '8080')
|
3
|
-
|
4
|
-
[2] pry(main)> ship.scry('graph-store', "/graph/~darlur/announce/node/siblings/newest/lone/1")
|
5
|
-
=>
|
6
|
-
:status => 200,
|
7
|
-
:code => "ok",
|
8
|
-
:body => {
|
9
|
-
"graph-update": {
|
10
|
-
"add-nodes": {
|
11
|
-
"resource": {
|
12
|
-
"name": "announce",
|
13
|
-
"ship": "darlur"
|
14
|
-
},
|
15
|
-
"nodes" : {
|
16
|
-
"/170141184505036957608427254348286787584": {
|
17
|
-
"post" : {
|
18
|
-
"index": "/170141184505036957608427254348286787584",
|
19
|
-
"author": "darlur",
|
20
|
-
"time-sent": 1620057693019,
|
21
|
-
"signatures": [
|
22
|
-
{"signature": "0x5468.e5ec.1955.3e10.14a6.5fc0.054e.0e1b.fe01.1272.0a2c.e3c8.37a5.6717.ed7d.4b0c.3102.3966.4caa.edeb.e89e.3194.be17.f6a7.0622.4775.5e8f.7e92.16d2.c552.5ecd.d28b.17a6.aad5.089b.3623.eb8b.1b62.1525.0571.2d9f.9001", "life ": 3, "ship": "darlur"}
|
23
|
-
],
|
24
|
-
"contents": [
|
25
|
-
{\"text\":\"We are now running urbit v1.5."}
|
26
|
-
],
|
27
|
-
"hash": "0x5468.e5ec.1955.3e10.14a6.5fc0.054e.0e1b"
|
28
|
-
},
|
29
|
-
"children":null
|
30
|
-
}
|
31
|
-
}
|
32
|
-
}
|
33
|
-
}
|
34
|
-
}
|
data/misc/graph-store_update
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
[8] pry(main)> channel.receiver.facts.each {|f| puts f};nil
|
2
|
-
{:message => {
|
3
|
-
"ok" => "ok",
|
4
|
-
"id" => 1,
|
5
|
-
"response" => "subscribe"}
|
6
|
-
}
|
7
|
-
{:message => {
|
8
|
-
"json" => {
|
9
|
-
"graph-update" => {
|
10
|
-
"add-nodes" => {
|
11
|
-
"resource" => {
|
12
|
-
"name" => "top-shelf-6391",
|
13
|
-
"ship" => "winter-paches"
|
14
|
-
},
|
15
|
-
"nodes" => {
|
16
|
-
"/170141184505207442993270453156437819392" => {
|
17
|
-
"post" => {
|
18
|
-
"index"=>"/170141184505207442993270453156437819392",
|
19
|
-
"author"=>"winter-paches",
|
20
|
-
"time-sent"=>1629299723410,
|
21
|
-
"signatures"=>[{"signature"=>"0x1.5003.94a6.2a10.7baf.ba44.a4d9.0353.e61a.0200.fdb2.fccf.f760.e1a0.bd20.dafa.f17e.e759.c8ab.f3b2.bb03.ccfa.1f10.c060.b063.cf32.48f6.ce27.4cae.462a.a228.47e9.5642.6476.5664.a918.839b.4053.91fe.b08c.f18c.525f.7001", "life"=>3, "ship"=>"winter-paches"}],
|
22
|
-
"contents"=>[{"text"=>"i will be really sad if hockey goes even more the way of the other sports."}],
|
23
|
-
"hash"=>"0xa801.ca53.1508.3dd7.dd22.526c.81a9.f30d"},
|
24
|
-
"children"=>nil
|
25
|
-
}
|
26
|
-
}
|
27
|
-
}
|
28
|
-
}
|
29
|
-
}, "id"=>1, "response"=>"diff"}}
|
30
|
-
{:message => {
|
31
|
-
"json" => {
|
32
|
-
"graph-update"=>{"add-nodes"=>{"resource"=>{"name"=>"top-shelf-6391", "ship"=>"winter-paches"}, "nodes"=>{"/170141184505207446323799471187231244288"=>{"post"=>{"index"=>"/170141184505207446323799471187231244288", "author"=>"rivlyt-dotnet", "time-sent"=>1629299904766, "signatures"=>[{"signature"=>"0x668d.5edb.31d1.18ee.fb3a.7bd0.e6e6.6582.fe01.d7c0.61a7.aadf.c1b0.7e9c.26ad.8412.c3a5.6221.eff0.d25f.f505.18d9.693c.a888.debd.635d.c692.b138.9f5e.d52d.513d.291f.326b.2261.4a08.7680.58d0.e654.3556.bbd5.d43f.9001", "life"=>1, "ship"=>"rivlyt-dotnet"}], "contents"=>[{"url"=>"http://www.hockeyworldblog.com/wp-content/uploads/2009/07/SamiKapanenKalPa.jpg"}, {"text"=>""}], "hash"=>"0x668d.5edb.31d1.18ee.fb3a.7bd0.e6e6.6582"}, "children"=>nil}}}}}, "id"=>1, "response"=>"diff"}}
|
33
|
-
{:message => {
|
34
|
-
"json" => {
|
35
|
-
"graph-update" => {
|
36
|
-
"add-nodes" => {
|
37
|
-
"resource" => {
|
38
|
-
"name" => "dm-inbox",
|
39
|
-
"ship" => "barsyr-latreb"
|
40
|
-
},
|
41
|
-
"nodes" => {
|
42
|
-
"/3830645248/170141184505207462626569476439992696832" => {
|
43
|
-
"post" => {
|
44
|
-
"index" => "/3830645248/170141184505207462626569476439992696832",
|
45
|
-
"author" => "winter-paches",
|
46
|
-
"time-sent" => 1629300788090,
|
47
|
-
"signatures" => [
|
48
|
-
{"signature" => "0x8b2.4b04.d55d.38fb.3561.6840.7312.2c5d.3e80.6494.9c69.0c8c.5480.21d8.87e1.93d4.79ca.e299.8482.17d6.b1d5.075f.837e.e1c9.9776.1a10.1710.f62a.6f68.8415.e85f.62c9.ff0f.b5b7.e605.bb8f.ee6e.d856.8505.08eb.901f.5001",
|
49
|
-
"life"=>3,
|
50
|
-
"ship"=>"winter-paches"}
|
51
|
-
],
|
52
|
-
"contents"=>[
|
53
|
-
{"text"=>"still there?"}
|
54
|
-
],
|
55
|
-
"hash" => "0x22c9.2c13.5574.e3ec.d585.a101.cc48.b174"
|
56
|
-
},
|
57
|
-
"children" => {
|
58
|
-
"170141184505210800341365283904498434048" :{
|
59
|
-
"post" : {
|
60
|
-
"index": "/3830645248/170141184505210800341365283904498434048",
|
61
|
-
"author": "winter-paches",
|
62
|
-
"time-sent\":1629481725905,
|
63
|
-
"signatures\":[{\"signature\":\"0x2cbc.3fa5.5e05.1851.0bc0.c139.7356.86dc.fa01.24bf.82c7.078d.59b7.7365.de54.87de.6043.7cca.1bcc.5746.cb4e.6585.f81e.ab97.edf4.9b5e.e499.1df3.486f.965b.0247.6cdd.8ed8.2a70.37f1.f9ec.97dd.6d55.19f5.0b0d.e17f.9001\",\"life\":3,\"ship\":\"winter-paches\"}],
|
64
|
-
"contents\":[{\"text\":\"two\"}],
|
65
|
-
"hash\":\"0x2cbc.3fa5.5e05.1851.0bc0.c139.7356.86dc\"
|
66
|
-
},
|
67
|
-
"children": null
|
68
|
-
}
|
69
|
-
}
|
70
|
-
}
|
71
|
-
}
|
72
|
-
}
|
73
|
-
}
|
74
|
-
},
|
75
|
-
"id"=>1,
|
76
|
-
"response"=>"diff"}}
|
data/misc/graph-update_add-graph
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
{
|
2
|
-
:message=> {
|
3
|
-
"json"=> {
|
4
|
-
"graph-update"=> {
|
5
|
-
"add-graph"=> {
|
6
|
-
"graph" => {
|
7
|
-
},
|
8
|
-
"resource" => {
|
9
|
-
"name" => "test1-4287",
|
10
|
-
"ship" => "barsyr-latreb"
|
11
|
-
},
|
12
|
-
"mark" => "graph-validator-publish",
|
13
|
-
"overwrite" => true
|
14
|
-
}
|
15
|
-
}
|
16
|
-
},
|
17
|
-
"id" => 2,
|
18
|
-
"response" => "diff"
|
19
|
-
}
|
20
|
-
}
|
data/misc/graph-update_add-nodes
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
{
|
2
|
-
:message => {
|
3
|
-
"json" => {
|
4
|
-
"graph-update" => {
|
5
|
-
"add-nodes" => {
|
6
|
-
"resource" => {
|
7
|
-
"name" => "test1-4287",
|
8
|
-
"ship" => "barsyr-latreb"
|
9
|
-
},
|
10
|
-
"nodes" => {
|
11
|
-
"/170141184505020984719232265951207489536/2" => {
|
12
|
-
"post" => {
|
13
|
-
"index" => "/170141184505020984719232265951207489536/2",
|
14
|
-
"author" => "barsyr-latreb",
|
15
|
-
"time-sent" => 1619191801085,
|
16
|
-
"signatures"=> [
|
17
|
-
{
|
18
|
-
"signature" => "0x1.284d.9ddd.b0ca.3b77.ce22.bea4.4fad.1018.0200.fb46.de9e.541a.7c0d.c680.20a3.986c.ce0f.944b.4f48.cdb1.64aa.bc8a.ce34.c7ee.bcc4.47ce.7dd2.8b98.12b8.c69b.98ae.73e3.3a40.592e.11b2.1445.6cbf.bfbc.6e60.6815.e1bf.7001",
|
19
|
-
"life"=>3,
|
20
|
-
"ship"=>"barsyr-latreb"
|
21
|
-
}
|
22
|
-
],
|
23
|
-
"contents" => [],
|
24
|
-
"hash" =>"0x9426.ceee.d865.1dbb.e711.5f52.27d6.880c"
|
25
|
-
},
|
26
|
-
"children" => nil
|
27
|
-
},
|
28
|
-
"/170141184505020984719232265951207489536/1/1" => {
|
29
|
-
"post" => {
|
30
|
-
"index" => "/170141184505020984719232265951207489536/1/1",
|
31
|
-
"author" => "barsyr-latreb",
|
32
|
-
"time-sent" =>1619191801085,
|
33
|
-
"signatures" => [
|
34
|
-
{
|
35
|
-
"signature" => "0x4abf.c85f.4db6.bda6.a5ca.155c.f479.c1ee.0080.36c0.7fc4.fc07.5492.fba6.0eac.bcd1.6cde.3f05.46cb.7654.cb78.8baa.f398.37d6.5098.a7ce.6a07.6cfe.5f99.6ee2.b3a1.6717.ac2d.c396.6a86.5495.d88e.fc55.cbbf.0e1e.70ff.3001",
|
36
|
-
"life" =>3,
|
37
|
-
"ship" => "barsyr-latreb"
|
38
|
-
}
|
39
|
-
],
|
40
|
-
"contents" => [
|
41
|
-
{"text" => "Post 1"},
|
42
|
-
{"text" => "First post of the graph store portion of the airlock implementation."}
|
43
|
-
],
|
44
|
-
"hash" => "0x957f.90be.9b6d.7b4d.4b94.2ab9.e8f3.83dc"
|
45
|
-
},
|
46
|
-
"children" => nil
|
47
|
-
},
|
48
|
-
"/170141184505020984719232265951207489536"=>
|
49
|
-
{"post"=>
|
50
|
-
{"index"=>"/170141184505020984719232265951207489536",
|
51
|
-
"author"=>"barsyr-latreb",
|
52
|
-
"time-sent"=>1619191801085,
|
53
|
-
"signatures"=>
|
54
|
-
[{"signature"=>
|
55
|
-
"0x6401.1904.eca5.c18c.d9a4.cf52.d00d.6bc5.8080.247c.6a06.3709.44ce.ad7e.fd14.bccb.c982.3df6.dba3.c727.cccd.f433.47b5.2342.780c.0b27.4fd8.85eb.4c67.5466.565c.3fc6.66c5.1832.72da.2557.940b.3549.14a7.66ab.e1df.3001",
|
56
|
-
"life"=>3,
|
57
|
-
"ship"=>"barsyr-latreb"}],
|
58
|
-
"contents"=>[],
|
59
|
-
"hash"=>"0xc802.3209.d94b.8319.b349.9ea5.a01a.d78b"},
|
60
|
-
"children"=>nil},
|
61
|
-
"/170141184505020984719232265951207489536/1"=>
|
62
|
-
{"post"=>
|
63
|
-
{"index"=>"/170141184505020984719232265951207489536/1",
|
64
|
-
"author"=>"barsyr-latreb",
|
65
|
-
"time-sent"=>1619191801085,
|
66
|
-
"signatures"=>
|
67
|
-
[{"signature"=>
|
68
|
-
"0x1.284d.9ddd.b0ca.3b77.ce22.bea4.4fad.1018.0200.fb46.de9e.541a.7c0d.c680.20a3.986c.ce0f.944b.4f48.cdb1.64aa.bc8a.ce34.c7ee.bcc4.47ce.7dd2.8b98.12b8.c69b.98ae.73e3.3a40.592e.11b2.1445.6cbf.bfbc.6e60.6815.e1bf.7001",
|
69
|
-
"life"=>3,
|
70
|
-
"ship"=>"barsyr-latreb"}],
|
71
|
-
"contents"=>[],
|
72
|
-
"hash"=>"0x9426.ceee.d865.1dbb.e711.5f52.27d6.880c"},
|
73
|
-
"children"=>nil}}}}},
|
74
|
-
"id"=>2,
|
75
|
-
"response"=>"diff"}}
|
data/misc/post
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
"post" => {
|
2
|
-
"index" => "/170141184504863525594513045663867817951",
|
3
|
-
"author" => "barsyr-latreb",
|
4
|
-
"time-sent" => 1610655924876,
|
5
|
-
"signatures" => [],
|
6
|
-
"contents" => [
|
7
|
-
{"text" => "~all : another new planet has coalesced..."},
|
8
|
-
{"mention"=> "barsyr-latreb"},
|
9
|
-
{"text" => "."}
|
10
|
-
],
|
11
|
-
"hash" => nil
|
12
|
-
},
|