libertree-model 0.9.11

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.
Files changed (45) hide show
  1. checksums.yaml +7 -0
  2. data/lib/libertree/compat.rb +29 -0
  3. data/lib/libertree/console.rb +17 -0
  4. data/lib/libertree/db.rb +37 -0
  5. data/lib/libertree/embedder.rb +69 -0
  6. data/lib/libertree/embedding/custom-providers.rb +148 -0
  7. data/lib/libertree/model/account-settings.rb +14 -0
  8. data/lib/libertree/model/account.rb +487 -0
  9. data/lib/libertree/model/chat-message.rb +75 -0
  10. data/lib/libertree/model/comment-like.rb +68 -0
  11. data/lib/libertree/model/comment.rb +164 -0
  12. data/lib/libertree/model/contact-list.rb +81 -0
  13. data/lib/libertree/model/embed-cache.rb +6 -0
  14. data/lib/libertree/model/file.rb +6 -0
  15. data/lib/libertree/model/forest.rb +82 -0
  16. data/lib/libertree/model/group-member.rb +13 -0
  17. data/lib/libertree/model/group.rb +47 -0
  18. data/lib/libertree/model/has-display-text.rb +34 -0
  19. data/lib/libertree/model/has-searchable-text.rb +19 -0
  20. data/lib/libertree/model/ignored-member.rb +13 -0
  21. data/lib/libertree/model/invitation.rb +6 -0
  22. data/lib/libertree/model/is-remote-or-local.rb +30 -0
  23. data/lib/libertree/model/job.rb +93 -0
  24. data/lib/libertree/model/member.rb +222 -0
  25. data/lib/libertree/model/message.rb +154 -0
  26. data/lib/libertree/model/node.rb +22 -0
  27. data/lib/libertree/model/node_affiliation.rb +14 -0
  28. data/lib/libertree/model/node_subscription.rb +23 -0
  29. data/lib/libertree/model/notification.rb +71 -0
  30. data/lib/libertree/model/pool-post.rb +17 -0
  31. data/lib/libertree/model/pool.rb +172 -0
  32. data/lib/libertree/model/post-hidden.rb +21 -0
  33. data/lib/libertree/model/post-like.rb +72 -0
  34. data/lib/libertree/model/post-revision.rb +9 -0
  35. data/lib/libertree/model/post.rb +735 -0
  36. data/lib/libertree/model/profile.rb +25 -0
  37. data/lib/libertree/model/remote-storage-connection.rb +6 -0
  38. data/lib/libertree/model/river.rb +249 -0
  39. data/lib/libertree/model/server.rb +35 -0
  40. data/lib/libertree/model/session-account.rb +10 -0
  41. data/lib/libertree/model/url-expansion.rb +6 -0
  42. data/lib/libertree/model.rb +48 -0
  43. data/lib/libertree/query.rb +167 -0
  44. data/lib/libertree/render.rb +28 -0
  45. metadata +198 -0
@@ -0,0 +1,21 @@
1
+ module Libertree
2
+ module Model
3
+ class PostHidden < Sequel::Model(:posts_hidden)
4
+ def account
5
+ @account ||= Account[self.account_id]
6
+ end
7
+
8
+ def post
9
+ @post ||= Post[self.post_id]
10
+ end
11
+
12
+ def forests
13
+ if self.post.remote?
14
+ self.post.server.forests
15
+ else
16
+ Libertree::Model::Forest.all_local_is_member
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,72 @@
1
+ module Libertree
2
+ module Model
3
+ class PostLike < Sequel::Model(:post_likes)
4
+ def after_create
5
+ super
6
+ if self.local? && self.post.distribute?
7
+ Libertree::Model::Job.create_for_forests(
8
+ {
9
+ task: 'request:POST-LIKE',
10
+ params: { 'post_like_id' => self.id, }
11
+ },
12
+ *self.forests
13
+ )
14
+ end
15
+ end
16
+
17
+ def local?
18
+ self.remote_id.nil?
19
+ end
20
+
21
+ def member
22
+ @member ||= Member[self.member_id]
23
+ end
24
+
25
+ def post
26
+ @post ||= Post[self.post_id]
27
+ end
28
+
29
+ def before_destroy
30
+ if self.local? && self.post.distribute?
31
+ Libertree::Model::Job.create_for_forests(
32
+ {
33
+ task: 'request:POST-LIKE-DELETE',
34
+ params: { 'post_like_id' => self.id, }
35
+ },
36
+ *self.forests
37
+ )
38
+ end
39
+ super
40
+ end
41
+
42
+ # TODO: the correct method to call is "destroy"
43
+ def delete
44
+ self.before_destroy
45
+ super
46
+ end
47
+
48
+ def delete_cascade
49
+ self.before_destroy
50
+ DB.dbh[ "SELECT delete_cascade_post_like(?)", self.id ].get
51
+ end
52
+
53
+ def self.create(*args)
54
+ like = super
55
+ like.post.notify_about_like like
56
+ account = like.member.account
57
+ if account
58
+ like.post.mark_as_read_by account
59
+ end
60
+ like
61
+ end
62
+
63
+ def forests
64
+ if self.post.remote?
65
+ self.post.server.forests
66
+ else
67
+ Libertree::Model::Forest.all_local_is_member
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,9 @@
1
+ module Libertree
2
+ module Model
3
+ class PostRevision < Sequel::Model(:post_revisions)
4
+ def post
5
+ @post ||= Post[self.post_id]
6
+ end
7
+ end
8
+ end
9
+ end