Commit graph

481 commits

Author SHA1 Message Date
Bat
82d3afe7b6 Implement Deletable for Reshare 2018-06-19 10:47:11 +01:00
Bat
78be09c47c Use the webfinger crate for fetching resources too 2018-06-18 22:54:13 +01:00
Bat
5415b70854 Use the webfinger crate 2018-06-18 22:50:40 +01:00
Bat
0dfc303c83 Fix Blog::find_by_name 2018-06-18 18:44:18 +01:00
Bat
51571d6320 may_fail! macro
Returns an error template if an Option is None, else runs the given block
2018-06-18 18:28:28 +01:00
Bat
7e3cdec0b6 Add some to_json functions to models for serialization in templates 2018-06-18 17:34:29 +01:00
Bat
58cc35691d Add generic error catchers 2018-06-18 16:59:49 +01:00
Bat
bb682a1cc1 Don't sign activities for each target inbox, do it only once 2018-06-18 16:16:18 +01:00
Bat
fa2435e725 Improve the find_by! macro to allow multiple columns 2018-06-18 16:13:09 +01:00
Bat
cd1d0d9627 Introduce an insert! macro to avoid some code duplication 2018-06-18 14:57:38 +01:00
Bat
94af0b9a7d Introduce a get! macro to avoid some code duplication 2018-06-18 14:44:23 +01:00
Bat
3c9210a0ed Introduce a find_by! macro to avoid some code duplication 2018-06-18 14:37:49 +01:00
Bat
36bf2e114c Fix local notifications 2018-06-18 12:32:03 +01:00
Bat
ae4bcabc53 Make notifications translatable 2018-06-17 21:19:27 +01:00
Bat
0ea8c882ad Actually use the activity_pub::inbox::Notify trait for notifications
It won't work for local events until we use AP internally too
2018-06-17 20:37:10 +01:00
Bat
0b9515645c De-duplicate some parts of the users templates 2018-06-17 18:48:22 +01:00
Bat
152eafc06f Translate Rust strings 2018-06-17 17:06:47 +01:00
Bat
3207aa0e22 Make the UI translatable 2018-06-17 16:26:15 +01:00
Bat
cafb0e2277 Use the rocket_i18n crate 2018-06-17 15:28:44 +01:00
Bat
23982d00fc Use the choosen domain when compiling templates 2018-06-17 11:37:24 +01:00
Bat
a8f27a71b9 Compile translations at run time 2018-06-17 11:33:50 +01:00
Bat
25ec318f3f Inject ngettext into Tera templates
Fix .po updating (without the -U option, the result was written to stdout, not the .po file)
2018-06-17 11:16:20 +01:00
Bat
657a0837e2 Use filters for gettext in Tera 2018-06-17 10:38:59 +01:00
Bat
1092ceba76 Fix locale switching + Make the gettext Tera function work 2018-06-16 23:49:44 +01:00
Bat
b18aa33c70 Update to the latest version of Rocket, to use rocket_contrib::Template::custom 2018-06-16 18:39:22 +01:00
Bat
7313f60d14 Compile .po files
Since cargo is usually not run as root, we can't install .mo files to the standard location (/usr/local/share/locale/),
so we install them to ./translations and load them from there.
2018-06-15 18:43:24 +01:00
Bat
327768d3fe I18n fairing 2018-06-15 14:55:14 +01:00
Bat
c9b4c40fa1 Add the gettext-rs crate 2018-06-15 14:08:38 +01:00
Bat
a4a8446d45 Make the follow button a bit smarter 2018-06-13 19:06:14 +01:00
Bat
1c287c6dfe View remote profiles locally
Add a link to the profile on the real instance
2018-06-13 18:48:37 +01:00
Bat
4185ba230e Add a link to user profile in comments
And move back {% if %} inside of {% block %}, so they get interpreted.
2018-06-12 21:14:49 +01:00
Bat
4c3e63ec16 Merge branch 'master' of github.com:Plume-org/Plume 2018-06-12 20:10:32 +01:00
Bat
36c11182f4 Introduce some traits for handling incoming activities 2018-06-12 20:10:08 +01:00
Trinity Pointard
d8f32afeb0 allow html on user.summary 2018-06-11 16:05:18 +02:00
Bat
7d17751f50 Definitively get rid of the activitystreams crates 2018-06-11 13:30:14 +01:00
Trinity Pointard
7d9609671c change post.content and comment.content's types from String to SafeString 2018-06-11 12:22:43 +02:00
Trinity Pointard
bb1442db8a create new type SafeString to sanitise and store unsafe html 2018-06-11 11:44:17 +02:00
Bat
d8bd9dbfca Add NodeInfo endpoints (fixes #11) 2018-06-10 20:33:42 +01:00
Bat
7fd152e270 Add a button to write a new article 2018-06-10 19:16:25 +01:00
Bat
edbeeef640 Add a dashboard 2018-06-10 18:55:08 +01:00
Bat
7a3215edaa Show 6 articles on the home and on profiles 2018-06-10 17:37:02 +01:00
Bat
e403099f47 CWs are optional 2018-06-10 12:53:39 +01:00
Bat
6544d7d1da Note's actor is usually just an ID, not a full object 2018-06-10 12:41:43 +01:00
Bat
78362feffb Use the activitypub crate 2018-06-10 12:13:07 +01:00
Bat
40d87e746d One less unhandled error 2018-06-10 11:01:02 +01:00
Trinity Pointard
3dcd78f205 fix redirection to login in src/routes/user.rs 2018-06-07 10:39:22 +02:00
Trinity Pointard
8158f19b85 add fallback to url generating 404 2018-06-04 21:57:03 +02:00
Trinity Pointard
2fde47d909 add optional login message and callback 2018-06-04 20:21:43 +02:00
Bat
d604b62917 Make it easier to debug inbox errors 2018-05-24 12:20:11 +01:00
Bat
93eb89bc77 Markdown!
Fixes #18
2018-05-24 11:42:45 +01:00
Bat
a0b4a6eacb Order notifications by creation date 2018-05-24 11:12:27 +01:00
Bat
daf9120fba Send a notification when one of your article is reshared
Fixes #14
Fixes #19
2018-05-24 11:03:37 +01:00
Bat
e9cd48ecca Display reshares on profile page 2018-05-24 10:45:36 +01:00
Bat
94beaaca76 Merge branch 'master' of github.com:Plume-org/Plume 2018-05-23 18:56:16 +01:00
Bat
c0d1a914c4 Handle reshares from AP 2018-05-23 18:09:59 +01:00
Trinity Pointard
a8aeb40b95 add trailing slashes to links where they were missing
Signed-off-by: Trinity Pointard <trinity.pointard@insa-rennes.fr>
2018-05-22 17:35:16 +02:00
Bat
9b98a45f2e Add a button to reshare 2018-05-19 10:57:39 +01:00
Bat
63eb1a7e98 Add a route to reshare posts 2018-05-19 10:51:10 +01:00
Bat
0ac3cb4c0f Fix AP link serialization 2018-05-19 10:50:56 +01:00
Bat
045e885821 Add a Reshare model 2018-05-19 10:23:02 +01:00
Bat
14bf3f00aa Make post metadata look nicer 2018-05-19 08:53:51 +01:00
Baptiste Gelez
73512a4fdc
Merge pull request #30 from JosephKiranBabu/display-post-author
Display post author and date in the post view
2018-05-19 08:44:39 +01:00
Bat
b55622f2b1 Reorganize use statements 2018-05-19 08:39:59 +01:00
Joseph Nuthalapati
ff50143c1c
Display post author and date in the post view
Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
2018-05-19 10:16:05 +05:30
Bat
aa233abb41 Remove useless trait 2018-05-18 23:28:55 +01:00
Bat
0b32650c00 Remove legacy AP modules 2018-05-18 23:17:11 +01:00
Baptiste Gelez
d7552ba369
Merge pull request #27 from Plume-org/activitystreams
Use the Activitystreams crate
2018-05-18 23:14:55 +01:00
Bat
4a86af6fc1 Resolve activitystream TODOs 2018-05-18 23:04:30 +01:00
Bat
e83226ae85 Validate data before creating a new account
Fix #28
2018-05-18 21:48:07 +01:00
Bat
0e24ccbf29 Use activitystreams in the Inbox trait 2018-05-18 09:04:40 +01:00
Bat
c779b1c58a WIP: use the activitystreams crate 2018-05-16 19:20:44 +01:00
Bat
9c9799eee2 Add support for shared inboxes for users 2018-05-13 19:12:27 +01:00
Bat
a7342f49a0 Reorganize routes
Order them alphabetically
2018-05-13 18:41:49 +01:00
Bat
dfab0290e4 Shared inbox endpoint 2018-05-13 18:39:18 +01:00
Bat
91b19bccb5 Add a link to author's profile on article card
Use a macro to render those cards too
2018-05-13 18:19:23 +01:00
Bat
5e7d513a7e Make it possible to display remote blogs 2018-05-13 18:00:47 +01:00
Bat
fdc481e384 Use shared inbox when available
But it is not yet stored in the database, so it means never
2018-05-13 15:39:55 +01:00
Bat
b91f567777 Display notifications 2018-05-13 14:35:55 +01:00
Bat
726c2c7e82 Add some notifications
When liking, commenting or following
2018-05-13 14:03:35 +01:00
Bat
780a51157f Add a notification model 2018-05-13 13:44:18 +01:00
Bat
c6b2560eb0 Followers listing
And clean up models functions a bit
2018-05-13 12:53:58 +01:00
Bat
601fe7cf4f Allow likes to be deleted with AP 2018-05-13 11:44:05 +01:00
Bat
bae49bcb47 Broadcast delete to AP 2018-05-12 22:34:13 +01:00
Bat
b8aade1e12 Delete likes 2018-05-12 21:56:57 +01:00
Bat
b68e481b3f Make the website more mobile-friendly 2018-05-12 18:59:38 +01:00
Bat
aefa31b84e Add a few (ugly) badges to the user page 2018-05-12 17:55:25 +01:00
Bat
ea08718c23 User profile edition 2018-05-12 16:30:14 +01:00
Bat
6de9d5b82a Articles listings on blogs and users pages 2018-05-12 14:31:09 +01:00
Bat
397d25e431 Display recent articles on the homepage 2018-05-12 13:56:38 +01:00
Bat
a74215ef07 Start an actual design 2018-05-10 21:31:52 +01:00
Bat
d3319493d9 Serve static files 2018-05-10 19:01:16 +01:00
Bat
ee7dfee3ef Add an endpoint to like posts 2018-05-10 17:38:03 +01:00
Bat
ac7b4441e8 Receive likes with ActivityPub 2018-05-10 17:07:23 +01:00
Bat
7b5f0f1704 Add a model for likes 2018-05-10 16:54:35 +01:00
Bat
b81b9f90ec Federate comments written in Plume 2018-05-10 16:36:32 +01:00
Bat
b506e93bd8 Make it possible to respond to a comment 2018-05-10 15:26:12 +01:00
Bat
56f4a598e2 Actually redirect when writing a new comment 2018-05-10 14:58:17 +01:00
Bat
80964b1857 Don't panic when receiving a nested comment 2018-05-10 14:32:19 +01:00
Bat
a436f2da4b Federate comments 2018-05-10 11:52:56 +01:00
Bat
a3d73cb2c4 Create and display comments 2018-05-10 10:44:57 +01:00
Bat
424517fab0 Fix a few warnings 2018-05-09 21:35:50 +01:00
Bat
0d96cbefe1 Comment model 2018-05-09 21:35:02 +01:00
Bat
292f4d6b27 Add actual templates for everything 2018-05-09 20:09:52 +01:00
Bat
743e6a23d4 Make Accept activities compatible with Mastodon
Why aren't you accepting IDs gargamel?
2018-05-08 20:54:09 +01:00
Bat
438f244d88 Fix request signatures
We don't need to sha256 actually
2018-05-08 20:38:37 +01:00
Bat
d3c3180038 Post activities to the correct inbox
Don't assume everyone is following Plume's routing
2018-05-05 14:46:06 +01:00
Bat
b36e83049c Fix a few mistakes 2018-05-04 16:24:56 +01:00
Bat
3cf6836095 HTTP signature when sending activites 2018-05-04 16:18:00 +01:00
Bat
3d442e70ee Add the follower endpoint to the User AP representation 2018-05-04 14:18:58 +01:00
Bat
92af83565e Add an AP followers endpoint for users 2018-05-04 14:13:55 +01:00
Bat
0ef12ff0f5 Serialize article title in AP 2018-05-04 13:12:02 +01:00
Bat
92b4dea739 Attribute posts to one actor only 2018-05-04 12:39:11 +01:00
Bat
c282246bf2 Add an enpoint for viewing articles AP representation 2018-05-04 12:09:08 +01:00
Bat
a6de1040b5 Add URL to Article AP 2018-05-04 11:47:04 +01:00
Bat
0105132382 Fix AP Article ID 2018-05-04 11:46:02 +01:00
Bat
81acc96e64 I should probably test locally before pushing -_- 2018-05-04 11:18:54 +01:00
Bat
0ce37c6525 Oops I don't even know how my own code works
It is context(), not CONTEXT
2018-05-04 11:17:38 +01:00
Bat
780f8ca2f5 Add context before sending activities 2018-05-04 11:16:04 +01:00
Bat
c2408925a1 Add to and cc to Create 2018-05-03 23:47:33 +01:00
Bat
293ab658f4 Serialize activities IDs 2018-05-03 23:40:43 +01:00
Bat
b92009f487 Add some other properties to Articles 2018-05-03 23:12:28 +01:00
Bat
b8a41e71c5 Add an ID to ActivityPub Articles
Maybe it will work better
2018-05-03 22:46:40 +01:00
Bat
d587d18cd4 Actually, we don't need to federate a Note
Mastodon supports Article, see 63f0979799/app/lib/activitypub/activity/create.rb (L191)
2018-05-03 22:36:59 +01:00
Bat
0de7859ca8 Explictly send articles to followers 2018-05-03 22:19:47 +01:00
Bat
8ce44d7654 Follow activities don't have dates 2018-05-03 22:01:20 +01:00
Bat
b10af9776b Send a Note too when publishing an article
Fixes #3
2018-05-03 20:27:17 +01:00
Bat
22cb286f86 Signing activities
I hope it works correctly…

Fixes #6
2018-05-03 20:11:04 +01:00
Bat
6b372861d6 WIP: make it possible for users to sign activities 2018-05-03 18:12:01 +01:00
Bat
b844257e34 Federate display name and summary
Fixes #9
2018-05-03 16:34:16 +01:00
Bat
08a21c7a04 Compute IDs for activities
Fixes #7
2018-05-03 16:22:40 +01:00
Bat
cf41ae5fda Refactor activity_pub::activity::Activity
I only had to wrap it in Arc… -_-
2018-05-02 22:36:13 +01:00
Bat
afe98ab1c3 Start refactoring activities 2018-05-02 21:44:03 +01:00
Bat
58fad0d414 Fix a bug when instance URL included a port 2018-05-02 14:05:26 +01:00
Bat
ac1a111d7b Make it possible to test the federation locally
And explain how to do it in the README
2018-05-02 13:47:46 +01:00
Bat
5f43f783b6 Use more env vars for config
It will make it easier to test federation
2018-05-02 12:53:42 +01:00
Bat
9fdfb2b25e Follow endpoint 2018-05-01 20:57:30 +01:00
Bat
9a4f60cfe3 Accept follow requests 2018-05-01 19:02:29 +01:00
Bat
2f1f6a0295 Broadcast activities to followers 2018-05-01 16:51:49 +01:00
Bat
03df88e186 WIP: inboxes 2018-05-01 15:00:29 +01:00
Bat
14534d1ff3 Add functions to get followers/followings 2018-05-01 14:23:23 +01:00
Bat
78f3062f6d Add a follow model 2018-05-01 14:06:31 +01:00
Bat
ce5c60bffe Save the correct instance URL in the database 2018-05-01 12:52:50 +01:00
Bat
8047df6848 Display remote profiles! 2018-05-01 12:48:19 +01:00
Bat
bf54a7c4ef Add a function to find the ActivityPub representation of an actor with WebFinger 2018-04-30 20:37:19 +01:00
Bat
59652e8655 Add a function to send activity to an inbox 2018-04-30 19:08:44 +01:00
Bat
e93bb3a21f Add creation timestamps 2018-04-30 18:46:27 +01:00
Bat
0fd63eb886 Actually serialize posts in outbox 2018-04-30 17:50:35 +01:00
Bat
bde25478e5 Start filling user outbox 2018-04-29 21:23:44 +01:00
Bat
dd9e845e66 Fix a few warnings 2018-04-29 19:06:10 +01:00
Bat
80472506ca User outbox 2018-04-29 19:01:42 +01:00
Bat
e592e692ff Restore index page 2018-04-29 18:50:46 +01:00
Bat
4666cd3ee3 Blog outbox 2018-04-29 18:49:56 +01:00
Bat
5e6be0cf93 WIP: signing 2018-04-29 16:40:10 +01:00
Bat
721456de30 Actually start playing with ActivityPub
And Rust
2018-04-24 15:52:47 +01:00
Bat
0b00849a62 Refactor ActivityPub 2018-04-24 13:31:02 +01:00
Bat
270786ad3d Always use JSON for Webfinger 2018-04-24 12:38:43 +01:00
Bat
0c9a1bfc3a Reorganize uses 2018-04-24 10:21:39 +01:00
Bat
f0b08b2d6d Webfinger 2018-04-24 09:35:45 +01:00
Bat
e9bcaf4dd9 Add Actor ActivityPub representation 2018-04-23 17:26:01 +01:00
Bat
656b201244 Pluralize model modules 2018-04-23 16:19:28 +01:00
Bat
7b3a884ec6 Add ActivityPub endpoint for actors 2018-04-23 16:09:05 +01:00
Bat
9eb1b987b2 Save post author 2018-04-23 15:39:06 +01:00
Bat
a816bb00b7 Add relation between posts and authors 2018-04-23 15:37:49 +01:00
Bat
e506cd21b7 Post creation 2018-04-23 15:25:39 +01:00
Bat
268607da0e Add a model for posts 2018-04-23 14:41:43 +01:00
Bat
0e24b3cdb7 Add creator of the blog as author 2018-04-23 14:22:07 +01:00
Bat
9240ca3a84 Compute outbox/inbox URLs from activity_pub::Actor 2018-04-23 14:12:59 +01:00
Bat
2c3d9a2309 Implement activity_pub::Actor for models::user::User 2018-04-23 13:01:32 +01:00
Bat
ab66886093 Implement activity_pub::Actor for models::blogs::Blog 2018-04-23 13:00:11 +01:00
Bat
74ce9aeec0 Add activity_pub::Actor trait 2018-04-23 12:57:14 +01:00
Bat
474f063542 Add relation between blog and authors 2018-04-23 12:28:03 +01:00
Bat
68db4a82cf Add relation between blogs and authors 2018-04-23 12:27:27 +01:00
Bat
4f9df753f5 Implement logout 2018-04-23 12:13:49 +01:00
Bat
00e5f28d0b Require authentication for creating blog + Fix utils::make_actor_id 2018-04-23 12:10:15 +01:00
Bat
9130f4d848 Basic blog creation 2018-04-23 11:54:37 +01:00
Bat
cadb33cc1a Add blog model 2018-04-23 11:29:27 +01:00
Bat
5f4cb6c065 Authentication 2018-04-23 10:52:44 +01:00
Bat
f8372f6383 Implement models::instance::Instance.has_admin 2018-04-22 19:17:40 +01:00
Bat
a7774444fe User creation 2018-04-22 19:13:12 +01:00
Bat
4036d5771c Implement models::instance::Instance::get 2018-04-22 16:11:58 +01:00
Bat
f060fa08af Initial commit
With instance configuration
2018-04-22 14:35:37 +01:00