diaspora_federation 0.1.9 → 0.2.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/Changelog.md +34 -0
- data/lib/diaspora_federation/discovery/discovery.rb +2 -2
- data/lib/diaspora_federation/discovery/h_card.rb +2 -10
- data/lib/diaspora_federation/discovery/host_meta.rb +1 -1
- data/lib/diaspora_federation/discovery/web_finger.rb +47 -87
- data/lib/diaspora_federation/discovery/xrd_document.rb +20 -7
- data/lib/diaspora_federation/entities/account_migration.rb +74 -0
- data/lib/diaspora_federation/entities/comment.rb +0 -4
- data/lib/diaspora_federation/entities/event_participation.rb +0 -8
- data/lib/diaspora_federation/entities/like.rb +6 -10
- data/lib/diaspora_federation/entities/message.rb +14 -49
- data/lib/diaspora_federation/entities/participation.rb +23 -13
- data/lib/diaspora_federation/entities/poll_participation.rb +0 -4
- data/lib/diaspora_federation/entities/profile.rb +5 -0
- data/lib/diaspora_federation/entities/related_entity.rb +17 -0
- data/lib/diaspora_federation/entities/relayable.rb +82 -113
- data/lib/diaspora_federation/entities/relayable_retraction.rb +4 -43
- data/lib/diaspora_federation/entities/request.rb +4 -12
- data/lib/diaspora_federation/entities/reshare.rb +11 -7
- data/lib/diaspora_federation/entities/retraction.rb +4 -5
- data/lib/diaspora_federation/entities/signable.rb +54 -0
- data/lib/diaspora_federation/entities/signed_retraction.rb +4 -44
- data/lib/diaspora_federation/entities.rb +2 -0
- data/lib/diaspora_federation/entity.rb +74 -96
- data/lib/diaspora_federation/federation/fetcher.rb +1 -1
- data/lib/diaspora_federation/federation/receiver.rb +1 -1
- data/lib/diaspora_federation/federation/sender/hydra_wrapper.rb +37 -12
- data/lib/diaspora_federation/federation/sender.rb +2 -2
- data/lib/diaspora_federation/parsers/base_parser.rb +61 -0
- data/lib/diaspora_federation/parsers/json_parser.rb +60 -0
- data/lib/diaspora_federation/parsers/relayable_json_parser.rb +25 -0
- data/lib/diaspora_federation/parsers/relayable_xml_parser.rb +22 -0
- data/lib/diaspora_federation/parsers/xml_parser.rb +84 -0
- data/lib/diaspora_federation/parsers.rb +13 -0
- data/lib/diaspora_federation/properties_dsl.rb +1 -1
- data/lib/diaspora_federation/salmon/encrypted_magic_envelope.rb +1 -1
- data/lib/diaspora_federation/salmon/encrypted_slap.rb +2 -99
- data/lib/diaspora_federation/salmon/magic_envelope.rb +3 -19
- data/lib/diaspora_federation/salmon/slap.rb +1 -42
- data/lib/diaspora_federation/salmon/xml_payload.rb +0 -19
- data/lib/diaspora_federation/schemas/federation_entities.json +379 -0
- data/lib/diaspora_federation/validators/account_deletion_validator.rb +1 -1
- data/lib/diaspora_federation/validators/account_migration_validator.rb +12 -0
- data/lib/diaspora_federation/validators/contact_validator.rb +2 -2
- data/lib/diaspora_federation/validators/conversation_validator.rb +1 -1
- data/lib/diaspora_federation/validators/event_validator.rb +1 -1
- data/lib/diaspora_federation/validators/h_card_validator.rb +2 -5
- data/lib/diaspora_federation/validators/message_validator.rb +1 -1
- data/lib/diaspora_federation/validators/participation_validator.rb +1 -1
- data/lib/diaspora_federation/validators/person_validator.rb +2 -2
- data/lib/diaspora_federation/validators/photo_validator.rb +1 -1
- data/lib/diaspora_federation/validators/profile_validator.rb +1 -1
- data/lib/diaspora_federation/validators/related_entity_validator.rb +1 -1
- data/lib/diaspora_federation/validators/relayable_validator.rb +1 -1
- data/lib/diaspora_federation/validators/reshare_validator.rb +2 -2
- data/lib/diaspora_federation/validators/retraction_validator.rb +1 -1
- data/lib/diaspora_federation/validators/rules/boolean.rb +2 -2
- data/lib/diaspora_federation/validators/status_message_validator.rb +1 -1
- data/lib/diaspora_federation/validators/web_finger_validator.rb +5 -6
- data/lib/diaspora_federation/validators.rb +1 -5
- data/lib/diaspora_federation/version.rb +1 -1
- data/lib/diaspora_federation.rb +6 -2
- metadata +14 -11
- data/lib/diaspora_federation/validators/relayable_retraction_validator.rb +0 -15
- data/lib/diaspora_federation/validators/request_validator.rb +0 -12
- data/lib/diaspora_federation/validators/signed_retraction_validator.rb +0 -15
- data/lib/tasks/build.rake +0 -14
- data/lib/tasks/diaspora_federation_tasks.rake +0 -4
- data/lib/tasks/rails4.rake +0 -15
- data/lib/tasks/tests.rake +0 -18
@@ -2,14 +2,11 @@ module DiasporaFederation
|
|
2
2
|
module Validators
|
3
3
|
# This validates a {Discovery::HCard}.
|
4
4
|
#
|
5
|
-
# @todo activate guid and public key validation after all pod have it in
|
6
|
-
# the hcard.
|
7
|
-
#
|
8
5
|
# @note
|
9
6
|
class HCardValidator < Validation::Validator
|
10
7
|
include Validation
|
11
8
|
|
12
|
-
|
9
|
+
rule :guid, :guid
|
13
10
|
|
14
11
|
# The name must not contain a semicolon because of mentions.
|
15
12
|
# @{<full_name> ; <diaspora_id>}
|
@@ -22,7 +19,7 @@ module DiasporaFederation
|
|
22
19
|
rule :photo_medium_url, [:not_nil, URI: [:path]]
|
23
20
|
rule :photo_small_url, [:not_nil, URI: [:path]]
|
24
21
|
|
25
|
-
|
22
|
+
rule :public_key, :public_key
|
26
23
|
|
27
24
|
rule :searchable, :boolean
|
28
25
|
end
|
@@ -4,7 +4,7 @@ module DiasporaFederation
|
|
4
4
|
class ParticipationValidator < Validation::Validator
|
5
5
|
include Validation
|
6
6
|
|
7
|
-
rule :author, %i
|
7
|
+
rule :author, %i[not_empty diaspora_id]
|
8
8
|
rule :guid, :guid
|
9
9
|
rule :parent_guid, :guid
|
10
10
|
rule :parent_type, [:not_empty, regular_expression: {regex: /\APost\z/}]
|
@@ -6,7 +6,7 @@ module DiasporaFederation
|
|
6
6
|
# @param [Validation::Validator] validator the validator in which it is included
|
7
7
|
def self.included(validator)
|
8
8
|
validator.class_eval do
|
9
|
-
rule :author, %i
|
9
|
+
rule :author, %i[not_empty diaspora_id]
|
10
10
|
rule :guid, :guid
|
11
11
|
rule :parent_guid, :guid
|
12
12
|
rule :parent, :not_nil
|
@@ -4,11 +4,11 @@ module DiasporaFederation
|
|
4
4
|
class ReshareValidator < Validation::Validator
|
5
5
|
include Validation
|
6
6
|
|
7
|
-
rule :root_author, %i
|
7
|
+
rule :root_author, %i[not_empty diaspora_id]
|
8
8
|
|
9
9
|
rule :root_guid, :guid
|
10
10
|
|
11
|
-
rule :author, %i
|
11
|
+
rule :author, %i[not_empty diaspora_id]
|
12
12
|
|
13
13
|
rule :guid, :guid
|
14
14
|
|
@@ -20,8 +20,8 @@ module Validation
|
|
20
20
|
if value.is_a?(String)
|
21
21
|
true if value =~ /\A(true|false|t|f|yes|no|y|n|1|0)\z/i
|
22
22
|
elsif value.is_a?(Integer)
|
23
|
-
true if
|
24
|
-
elsif [true, false].include?
|
23
|
+
true if [1, 0].include?(value)
|
24
|
+
elsif [true, false].include?(value)
|
25
25
|
true
|
26
26
|
else
|
27
27
|
false
|
@@ -9,12 +9,11 @@ module DiasporaFederation
|
|
9
9
|
|
10
10
|
rule :acct_uri, :not_empty
|
11
11
|
|
12
|
-
rule :
|
13
|
-
rule :
|
14
|
-
rule :
|
15
|
-
rule :
|
16
|
-
rule :
|
17
|
-
rule :salmon_url, URI: %i(host path)
|
12
|
+
rule :hcard_url, [:not_nil, URI: %i[host path]]
|
13
|
+
rule :seed_url, %i[not_nil URI]
|
14
|
+
rule :profile_url, URI: %i[host path]
|
15
|
+
rule :atom_url, URI: %i[host path]
|
16
|
+
rule :salmon_url, URI: %i[host path]
|
18
17
|
end
|
19
18
|
end
|
20
19
|
end
|
@@ -41,6 +41,7 @@ require "diaspora_federation/validators/relayable_validator"
|
|
41
41
|
|
42
42
|
# types
|
43
43
|
require "diaspora_federation/validators/account_deletion_validator"
|
44
|
+
require "diaspora_federation/validators/account_migration_validator"
|
44
45
|
require "diaspora_federation/validators/comment_validator"
|
45
46
|
require "diaspora_federation/validators/contact_validator"
|
46
47
|
require "diaspora_federation/validators/conversation_validator"
|
@@ -61,8 +62,3 @@ require "diaspora_federation/validators/reshare_validator"
|
|
61
62
|
require "diaspora_federation/validators/retraction_validator"
|
62
63
|
require "diaspora_federation/validators/status_message_validator"
|
63
64
|
require "diaspora_federation/validators/web_finger_validator"
|
64
|
-
|
65
|
-
# deprecated
|
66
|
-
require "diaspora_federation/validators/relayable_retraction_validator"
|
67
|
-
require "diaspora_federation/validators/request_validator"
|
68
|
-
require "diaspora_federation/validators/signed_retraction_validator"
|
data/lib/diaspora_federation.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require "nokogiri"
|
2
|
+
require "openssl"
|
3
|
+
|
1
4
|
require "diaspora_federation/version"
|
2
5
|
|
3
6
|
require "diaspora_federation/logging"
|
@@ -10,6 +13,7 @@ require "diaspora_federation/validators"
|
|
10
13
|
require "diaspora_federation/http_client"
|
11
14
|
|
12
15
|
require "diaspora_federation/entities"
|
16
|
+
require "diaspora_federation/parsers"
|
13
17
|
|
14
18
|
require "diaspora_federation/discovery"
|
15
19
|
require "diaspora_federation/salmon"
|
@@ -19,7 +23,7 @@ require "diaspora_federation/federation"
|
|
19
23
|
module DiasporaFederation
|
20
24
|
extend Logging
|
21
25
|
|
22
|
-
@callbacks = Callbacks.new %i
|
26
|
+
@callbacks = Callbacks.new %i[
|
23
27
|
fetch_person_for_webfinger
|
24
28
|
fetch_person_for_hcard
|
25
29
|
save_person_after_webfinger
|
@@ -32,7 +36,7 @@ module DiasporaFederation
|
|
32
36
|
fetch_public_entity
|
33
37
|
fetch_person_url_to
|
34
38
|
update_pod
|
35
|
-
|
39
|
+
]
|
36
40
|
|
37
41
|
# defaults
|
38
42
|
@http_concurrency = 20
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: diaspora_federation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Neff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: 0.9.0
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.
|
42
|
+
version: 0.13.0
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
version: 0.9.0
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version: 0.
|
52
|
+
version: 0.13.0
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: faraday_middleware
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,6 +121,7 @@ files:
|
|
121
121
|
- lib/diaspora_federation/discovery/xrd_document.rb
|
122
122
|
- lib/diaspora_federation/entities.rb
|
123
123
|
- lib/diaspora_federation/entities/account_deletion.rb
|
124
|
+
- lib/diaspora_federation/entities/account_migration.rb
|
124
125
|
- lib/diaspora_federation/entities/comment.rb
|
125
126
|
- lib/diaspora_federation/entities/contact.rb
|
126
127
|
- lib/diaspora_federation/entities/conversation.rb
|
@@ -143,6 +144,7 @@ files:
|
|
143
144
|
- lib/diaspora_federation/entities/request.rb
|
144
145
|
- lib/diaspora_federation/entities/reshare.rb
|
145
146
|
- lib/diaspora_federation/entities/retraction.rb
|
147
|
+
- lib/diaspora_federation/entities/signable.rb
|
146
148
|
- lib/diaspora_federation/entities/signed_retraction.rb
|
147
149
|
- lib/diaspora_federation/entities/status_message.rb
|
148
150
|
- lib/diaspora_federation/entity.rb
|
@@ -157,6 +159,12 @@ files:
|
|
157
159
|
- lib/diaspora_federation/federation/sender/hydra_wrapper.rb
|
158
160
|
- lib/diaspora_federation/http_client.rb
|
159
161
|
- lib/diaspora_federation/logging.rb
|
162
|
+
- lib/diaspora_federation/parsers.rb
|
163
|
+
- lib/diaspora_federation/parsers/base_parser.rb
|
164
|
+
- lib/diaspora_federation/parsers/json_parser.rb
|
165
|
+
- lib/diaspora_federation/parsers/relayable_json_parser.rb
|
166
|
+
- lib/diaspora_federation/parsers/relayable_xml_parser.rb
|
167
|
+
- lib/diaspora_federation/parsers/xml_parser.rb
|
160
168
|
- lib/diaspora_federation/properties_dsl.rb
|
161
169
|
- lib/diaspora_federation/salmon.rb
|
162
170
|
- lib/diaspora_federation/salmon/aes.rb
|
@@ -166,8 +174,10 @@ files:
|
|
166
174
|
- lib/diaspora_federation/salmon/magic_envelope.rb
|
167
175
|
- lib/diaspora_federation/salmon/slap.rb
|
168
176
|
- lib/diaspora_federation/salmon/xml_payload.rb
|
177
|
+
- lib/diaspora_federation/schemas/federation_entities.json
|
169
178
|
- lib/diaspora_federation/validators.rb
|
170
179
|
- lib/diaspora_federation/validators/account_deletion_validator.rb
|
180
|
+
- lib/diaspora_federation/validators/account_migration_validator.rb
|
171
181
|
- lib/diaspora_federation/validators/comment_validator.rb
|
172
182
|
- lib/diaspora_federation/validators/contact_validator.rb
|
173
183
|
- lib/diaspora_federation/validators/conversation_validator.rb
|
@@ -185,9 +195,7 @@ files:
|
|
185
195
|
- lib/diaspora_federation/validators/poll_validator.rb
|
186
196
|
- lib/diaspora_federation/validators/profile_validator.rb
|
187
197
|
- lib/diaspora_federation/validators/related_entity_validator.rb
|
188
|
-
- lib/diaspora_federation/validators/relayable_retraction_validator.rb
|
189
198
|
- lib/diaspora_federation/validators/relayable_validator.rb
|
190
|
-
- lib/diaspora_federation/validators/request_validator.rb
|
191
199
|
- lib/diaspora_federation/validators/reshare_validator.rb
|
192
200
|
- lib/diaspora_federation/validators/retraction_validator.rb
|
193
201
|
- lib/diaspora_federation/validators/rules/birthday.rb
|
@@ -198,14 +206,9 @@ files:
|
|
198
206
|
- lib/diaspora_federation/validators/rules/not_nil.rb
|
199
207
|
- lib/diaspora_federation/validators/rules/public_key.rb
|
200
208
|
- lib/diaspora_federation/validators/rules/tag_count.rb
|
201
|
-
- lib/diaspora_federation/validators/signed_retraction_validator.rb
|
202
209
|
- lib/diaspora_federation/validators/status_message_validator.rb
|
203
210
|
- lib/diaspora_federation/validators/web_finger_validator.rb
|
204
211
|
- lib/diaspora_federation/version.rb
|
205
|
-
- lib/tasks/build.rake
|
206
|
-
- lib/tasks/diaspora_federation_tasks.rake
|
207
|
-
- lib/tasks/rails4.rake
|
208
|
-
- lib/tasks/tests.rake
|
209
212
|
homepage: https://github.com/diaspora/diaspora_federation
|
210
213
|
licenses:
|
211
214
|
- AGPL-3.0
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module DiasporaFederation
|
2
|
-
module Validators
|
3
|
-
# This validates a {Entities::RelayableRetraction}.
|
4
|
-
# @deprecated The {Entities::RelayableRetraction} will be replaced with {Entities::Retraction}.
|
5
|
-
class RelayableRetractionValidator < Validation::Validator
|
6
|
-
include Validation
|
7
|
-
|
8
|
-
rule :target_guid, :guid
|
9
|
-
rule :target_type, :not_empty
|
10
|
-
rule :target, :not_nil
|
11
|
-
|
12
|
-
rule :author, %i(not_empty diaspora_id)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
module DiasporaFederation
|
2
|
-
module Validators
|
3
|
-
# This validates a {Entities::Request}.
|
4
|
-
# @deprecated The {Entities::Request} will be replaced with {Entities::Contact}.
|
5
|
-
class RequestValidator < Validation::Validator
|
6
|
-
include Validation
|
7
|
-
|
8
|
-
rule :author, %i(not_empty diaspora_id)
|
9
|
-
rule :recipient, %i(not_empty diaspora_id)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module DiasporaFederation
|
2
|
-
module Validators
|
3
|
-
# This validates a {Entities::SignedRetraction}.
|
4
|
-
# @deprecated The {Entities::RelayableRetraction} will be replaced with {Entities::Retraction}.
|
5
|
-
class SignedRetractionValidator < Validation::Validator
|
6
|
-
include Validation
|
7
|
-
|
8
|
-
rule :target_guid, :guid
|
9
|
-
rule :target_type, :not_empty
|
10
|
-
rule :target, :not_nil
|
11
|
-
|
12
|
-
rule :author, %i(not_empty diaspora_id)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
data/lib/tasks/build.rake
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
desc "Build gem into the pkg directory"
|
2
|
-
task build: :test do
|
3
|
-
FileUtils.rm_rf("pkg")
|
4
|
-
Dir["*.gemspec"].each do |gemspec|
|
5
|
-
system "gem build #{gemspec}"
|
6
|
-
end
|
7
|
-
FileUtils.mkdir_p("pkg")
|
8
|
-
FileUtils.mv(Dir["*.gem"], "pkg")
|
9
|
-
end
|
10
|
-
|
11
|
-
desc "Tags version, pushes to remote, and pushes gem"
|
12
|
-
task release: :build do
|
13
|
-
sh "ls pkg/diaspora_federation-*-*.gem | xargs -n 1 gem push"
|
14
|
-
end
|
data/lib/tasks/rails4.rake
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
if defined?(RSpec)
|
2
|
-
namespace :rails4 do
|
3
|
-
desc "Run all specs that generate fixtures for rspec with rails 4"
|
4
|
-
RSpec::Core::RakeTask.new(:generate_fixtures) do |t|
|
5
|
-
t.rspec_opts = ["--tag fixture4"]
|
6
|
-
end
|
7
|
-
|
8
|
-
desc "Run all specs in spec directory (exluding controller specs)"
|
9
|
-
RSpec::Core::RakeTask.new(:spec) do |task|
|
10
|
-
task.pattern = FileList["spec/**/*_spec.rb"].exclude("spec/controllers/**/*_spec.rb")
|
11
|
-
end
|
12
|
-
|
13
|
-
task test: %w(spec:prepare_db generate_fixtures spec)
|
14
|
-
end
|
15
|
-
end
|
data/lib/tasks/tests.rake
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
if defined?(RSpec)
|
2
|
-
namespace :spec do
|
3
|
-
task prepare_db: %w(db:create db:test:load)
|
4
|
-
task :prepare_fixtures do
|
5
|
-
ENV["NO_COVERAGE"] = "true"
|
6
|
-
Rake::Task["spec:generate_fixtures"].invoke
|
7
|
-
ENV["NO_COVERAGE"] = "false"
|
8
|
-
end
|
9
|
-
|
10
|
-
desc "Prepare for rspec"
|
11
|
-
task prepare: %w(db:environment:set prepare_db prepare_fixtures)
|
12
|
-
|
13
|
-
desc "Run all specs that generate fixtures for rspec"
|
14
|
-
RSpec::Core::RakeTask.new(:generate_fixtures) do |t|
|
15
|
-
t.rspec_opts = ["--tag fixture"]
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|