Commit Graph

263 Commits

Author SHA1 Message Date
Bat 812b76b0de Use the creation date from ActivityPub when fetching remote articles 2018-07-27 00:29:21 +02:00
Bat 0314629d99 Improve the background article fetching code 2018-07-26 22:59:41 +02:00
Bat bd259891f3 Try to fetch remote articles 2018-07-26 22:23:53 +02:00
Bat 5583029b07 Update the WebFinger crate
Fixes an issue with some Mastodon accounts
2018-07-26 21:35:35 +02:00
Bat ab4af10ce5 Fix a simlar bug on blog pages 2018-07-26 19:10:50 +02:00
Bat d4a8808f00 Fix a bug on article page 2018-07-26 19:08:18 +02:00
Bat b42030e831 Try to use only "absolute" links to avoid trailing-slash bugs 2018-07-26 19:00:23 +02:00
Bat a9f95c91e2 Sent activities in other threads 2018-07-26 17:51:41 +02:00
Bat 58d158238d Use the worker queue to send new articles to other instances 2018-07-26 17:38:22 +02:00
Bat c87d490664 Refactor notifications 2018-07-26 15:46:10 +02:00
Bat 44172b67d5 Add padding for responses in comments, to let threads appear
Fixes #144
2018-07-25 18:18:41 +02:00
Bat 4e07fdbd05 Paginate followers too 2018-07-25 15:50:29 +02:00
Bat 4b0aba62f3 Add pagination for notifications
And correctly close an <a> tag
2018-07-25 15:33:54 +02:00
Bat 18125ab398 Paginate the homepage 2018-07-25 15:20:09 +02:00
Bat 04dac6f87f Add pagination links 2018-07-25 14:29:34 +02:00
Bat 5549e4d0e5 Merge branch 'master' of github.com:Plume-org/Plume 2018-07-24 14:32:11 +02:00
Kevin "Ilphrin" Pellet cd24b0f057 Show the total number of article on a blog
fixes #150
2018-07-21 16:58:30 +02:00
Bat 67eb41add1 Add pagination to the blog page
No UI to control it yet
2018-07-20 18:42:35 +02:00
Bat 3764e295b8 Fix the link of the follow/unfollow button so that it is always working, even without a trailing slash 2018-07-20 17:59:16 +02:00
Bat ce256d6e39 List authors of a blog
Update french translation accordingly

Fixes #129
2018-07-18 23:08:49 +02:00
Bat 67dd577a27 Make like and share button HTML forms
Fixes #88
2018-07-11 21:27:47 +02:00
Bat b59299ad5a Remove the last build warning
The host-meta route is only available in XML anyway, and having warning during is making people doubt of its validity.
2018-07-11 17:31:02 +02:00
Bat b95e384ed7 Use the ApRequest guard for routes that need it + Fix a few issues with its impl
Also fixes some Rocket warnings!
2018-07-11 17:30:01 +02:00
Bat 3775d3a9c9 HTML validation + Actually associate messages to errors + Fix inverted behavior on new blog and post form 2018-07-07 22:51:48 +02:00
Bat e5c1b3259d Make LoginForm serializable 2018-07-06 21:59:17 +02:00
Bat 5f3afe900f Display errors on invalid forms
It will probably need a bit of styling…
2018-07-06 19:29:36 +02:00
Bat 153400959c Actually validate forms 2018-07-06 11:51:19 +02:00
Bat c81bb9ec25 Make forms validatable 2018-06-29 14:56:00 +02:00
Bat 1a2cf3b14f What if I use the correct name for the this field?
Fix #81
2018-06-27 20:43:09 +02:00
Bat 68a041711c We can't mix GET and POST (in the comment form)
in_response_to was always null
2018-06-27 00:19:18 +02:00
Bat 9a825e7066 Change the signature of ap_url to be backward-compatible 2018-06-26 17:32:35 +02:00
Trinity Pointard 30e9620d0a Add csrf protection 2018-06-24 18:58:57 +02:00
Bat 68c7aad179 Big repository reorganization
The code is divided in three crates:
- plume-common, for the ActivityPub module, and some common utils
- plume-models, for the models and database-related code
- plume, the app itself

This new organization will allow to test it more easily, but also to create other tools that only reuse a little part of
the code (for instance a Wordpress import tool, that would just use the plume-models crate)
2018-06-23 17:36:11 +01:00
Bat e7fd12ae6f Set to and cc for new Follow activities 2018-06-23 13:47:53 +01:00
Bat 6a5d806b1d Various federation fixes 2018-06-22 16:17:53 +01:00
Didier Link b153a9ce2b add an argument in the macro may_fail to have the account linked in the error template 2018-06-22 00:50:06 +02:00
Didier Link feff837313 Merge branch 'master' of https://github.com/Plume-org/Plume 2018-06-22 00:00:15 +02:00
Bat e34d12922c Serialize publicKey in Person representation 2018-06-21 22:12:24 +01:00
Bat dccab062e3 Implement Blog::into_activity 2018-06-21 22:07:04 +01:00
Bat f5f2aa7c59 Get rid of the activity_pub::actor::Actor trait 2018-06-21 18:53:57 +01:00
Bat b2e8d54161 Drop activity_pub::activitypub and activity_pub::ActivityPub and only use the ActivityStream responder 2018-06-21 18:09:18 +01:00
Bat 3fe2625e86 Simplify the Inbox trait
If we want to add, for instance, streams in the future, we could introduce
a new trait for that, similar to FromActivity or Notify

We also display inbox errors to the "client" if something fails,
which could be useful for debugging.
2018-06-21 17:00:37 +01:00
Bat 2217ec0d56 Remove PgConnection when we don't need it
Massive simplification in the ActivityPub module!
2018-06-21 16:31:42 +01:00
Bat 5457a80eec Avoid calling compute_id when we shouldn't
It should only be used at initialization, after we should prefer ap_url,
as not everybody is using the same URLs as Plume.
2018-06-21 15:53:58 +01:00
Bat 4c211b4308 Remove the routes and the template for the comment form 2018-06-21 15:00:25 +01:00
Bat 7ba6f77e0f Automatically insert mentions in comments
Fix some bug with mentions too

Fix #52
2018-06-21 14:05:35 +01:00
Bat 5a5c1a8d99 List all comments 2018-06-21 11:38:07 +01:00
Didier Link 0e85a61aec Merge branch 'master' of https://github.com/Plume-org/Plume 2018-06-21 12:38:00 +02:00
Bat b0e70a42a9 Merge branch 'master' of github.com:Plume-org/Plume 2018-06-21 11:31:17 +01:00
Bat e6b8943085 New pattern for comment creation in code
Use the builder design pattern to build a NewComment

Add a function to transform a NewComment into a Create activity

Virtually send this activity to the shared inbox of the instance
2018-06-21 11:28:42 +01:00
Didier Link 2d1a035877 partially solve #68 2018-06-21 11:58:54 +02:00
Bat 3551bef895 Simplify the activity_pub::inbox::Notify trait + Fix notifications
Also fix a bug with the list of mentions that was returned
2018-06-20 22:51:47 +01:00
Bat d7b71848fc Save mentions 2018-06-20 21:58:11 +01:00
Bat e074af57ff Add a Mention model 2018-06-20 19:22:34 +01:00
Bat 4ea071e709 Switch to pulldown-cmark for markdown parsing + Try to parse mentions
It's not working correctly yet for some reason…
2018-06-20 15:29:19 +01:00
Bat b9951f0d70 Merge branch 'master' of github.com:Plume-org/Plume 2018-06-20 10:02:05 +01:00
Bat ab7bef1490 Get rid of the legacy activity_pub::object module 2018-06-20 10:01:25 +01:00
Baptiste Gelez dfd303403b
Merge pull request #66 from Plume-org/setup-script
Setup script
2018-06-20 09:53:26 +01:00
Bat 65e819c425 Make it impossible to write in a blog where you are not author
Fix #62
2018-06-20 09:44:56 +01:00
Bat 635ac6cf42 Merge branch 'master' into setup-script 2018-06-19 22:26:31 +01:00
Bat 8ab25b1ca2 Use uri! as much as possible instead of directly writing URLs 2018-06-19 22:20:27 +01:00
Trinity Pointard db248701b9 Disallow blog name which yould result in empty blog name
fix #63
2018-06-19 22:34:59 +02:00
Bat 857e1f1d6a Disallow naming an article 'new', or any already used slug
Fix #64

Also fixes a lot of potential bug with articles having the same slugs, but not in the same blog
2018-06-19 20:16:18 +01:00
Bat 1653a3ac74 Check for existing slug before creating a new blog
Fix #63
2018-06-19 19:40:20 +01:00
Bat 554deb3ec0 Remove some unused imports 2018-06-19 18:40:30 +01:00
Bat dd152f2607 Remove old configuration code 2018-06-19 18:29:34 +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 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 36bf2e114c Fix local notifications 2018-06-18 12:32:03 +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 b18aa33c70 Update to the latest version of Rocket, to use rocket_contrib::Template::custom 2018-06-16 18:39:22 +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
Trinity Pointard 7d9609671c change post.content and comment.content's types from String to SafeString 2018-06-11 12:22:43 +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 78362feffb Use the activitypub crate 2018-06-10 12:13:07 +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 93eb89bc77 Markdown!
Fixes #18
2018-05-24 11:42:45 +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
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 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
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 c779b1c58a WIP: use the activitystreams crate 2018-05-16 19:20:44 +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 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 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 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 292f4d6b27 Add actual templates for everything 2018-05-09 20:09:52 +01:00
Bat 92af83565e Add an AP followers endpoint for users 2018-05-04 14:13:55 +01:00
Bat c282246bf2 Add an enpoint for viewing articles AP representation 2018-05-04 12:09:08 +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 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 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 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 8047df6848 Display remote profiles! 2018-05-01 12:48:19 +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 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