Commit graph

548 commits

Author SHA1 Message Date
Bat 772bb350ac Update rocket_csrf to support multipart forms 2018-09-03 10:21:33 +01:00
Bat 99fdb8e680 Media deletion 2018-09-02 22:10:15 +01:00
Bat f44b6fffa3 Media upload 2018-09-02 21:55:42 +01:00
Bat 97c0b533ab Add Atom feeds for blogs and users 2018-09-01 21:08:26 +01:00
Bat 092ad5b795 Instance about page
Fixes #39
2018-09-01 17:39:40 +01:00
Bat b66e8942a9 Fix the deletion route 2018-09-01 16:46:23 +01:00
Bat cea548b821 Add a way to delete articles
Fixes #116
2018-09-01 16:28:47 +01:00
Bat 7fc5d7b5b0 Fix #167 2018-08-18 12:37:40 +02:00
Bat ed8982b7fd Add a presentation of Plume and of the instance on the homepage
Fixes #132
2018-07-27 22:16:17 +02:00
Bat fb2f4e9bcd Take in account instance's default license
Fix #145
2018-07-27 20:31:47 +02:00
Bat 74ec59e77c Add some configuration options for instance admins 2018-07-27 19:05:36 +02:00
Bat 38d99ad5af Try to fetch followers 2018-07-27 12:53:21 +02:00
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 1e5ad2b086 Add a job pool 2018-07-26 17:32:52 +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 e3a7eadb78 Do it lazily -_- 2018-07-18 16:03:52 +02:00
Bat 488bd929c5 Try to fix the Hubzilla issue (#107) again 2018-07-18 16:02:21 +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 b008e11fb0 Add validator 2018-06-29 14:22:43 +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 0a1edba4b0 Fix the custom properties deserialization bug for Blogs as well 2018-06-23 15:00:35 +01:00
Bat e7fd12ae6f Set to and cc for new Follow activities 2018-06-23 13:47:53 +01:00
Bat 3a19cae62e Add id, to and cc for Undo Announce 2018-06-23 13:42:27 +01:00
Bat a88d0e102f Like: only compute ap_url once 2018-06-23 13:40:10 +01:00
Bat d2c8631ba4 Add cc and to for Announce 2018-06-23 13:36:15 +01:00
Bat cd9862bc4c Add cc, id and to for Articles 2018-06-23 13:29:41 +01:00
Bat 3ab6dfe288 Add id, to and cc to Undo for Likes 2018-06-23 13:19:14 +01:00
Bat 135797805e Make Like compliant to the spec 2018-06-23 13:17:17 +01:00
Bat f2795baab5 Make Create Note compliant to the spec 2018-06-23 13:07:07 +01:00
Bat 3ea4823060 Make Accept Follow compliant to the spec 2018-06-23 12:50:14 +01:00
Bat 236767f498 Send the 'Content-Type: application/activity+json' header for ActivityPub request
Should fix #76
2018-06-23 12:23:37 +01:00
Bat 6140865660 Make Post::from_activity a bit more complete 2018-06-23 12:14:03 +01:00
Bat 3b2ca041d0 Rewrite Post::into_activity in a nicer way
And prefer expect over unwrap
2018-06-22 21:45:37 +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 a0f680a9b6 Rewrite Blog::from_activity to use the activitypub crate instead of raw JSON 2018-06-21 21:39:44 +01:00
Bat e7e557612e Rewrite User::from_activity to use the activitypub crate instead of raw JSON 2018-06-21 21:30:56 +01:00
Bat f5f2aa7c59 Get rid of the activity_pub::actor::Actor trait 2018-06-21 18:53:57 +01:00
Bat 9a8472bdcc Move compute_box from Actor to Instance 2018-06-21 18:42:17 +01:00
Bat 606a3d12c7 Remove useless functions from activity_pub::actor::Actor 2018-06-21 18:23:01 +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 6df4b70318 Set @context for ActivityStream responder 2018-06-21 17:30:07 +01:00
Bat ea29dd91dc Set the correct content type for the ActivityStream responder 2018-06-21 17:25:29 +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 5193ad6f65 Remove legacy Inbox::unlike function 2018-06-21 16:45:54 +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 7ddad12420 Simplify the signature of activity_pub::sign::Signer::get_key_id 2018-06-21 16:25:32 +01:00
Bat 2621c0304e Better use of the activitypub crate in User::into_activity 2018-06-21 16:14:26 +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 0fd181e7ea Add support for markdown in comments + Correctly federate mentions in comments 2018-06-21 12:00:30 +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 c4cc4a4e13 Notify when receiving a mention 2018-06-20 21:05:30 +01:00
Bat c9f29955a0 Save incoming mentions 2018-06-20 20:42:16 +01:00
Bat 215b577573 Add some ActivityPub function to Mention 2018-06-20 20:06:34 +01:00
Bat 356cc20e34 List mentions for user, instead of getting only the first one 2018-06-20 19:25:43 +01:00
Bat ddd840d31d Add a list_by! macro 2018-06-20 19:23:54 +01:00
Bat e074af57ff Add a Mention model 2018-06-20 19:22:34 +01:00
Bat 24ef3d00d1 Fix the bugs with markdown rendering when there was mentions 2018-06-20 16:25:09 +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 d612173533 Fix some error in the messages of the setup script
port -> address
table -> database
2018-06-20 09:04:29 +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 a281612051 Complex setup
Also generate and save a Rocket secret key, which avoid deconnecting us when restarting the instance

Other small improvements
2018-06-19 18:23:26 +01:00
Bat f5d70ddfd4 Database setup 2018-06-19 17:29:54 +01:00
Bat d00688e526 Admin creation 2018-06-19 16:14:52 +01:00
Bat 6916abca7e Complete/simple setup type + Instance creation 2018-06-19 15:18:40 +01:00
Bat 54e2cea83b Start a setup script
For now, it checks if the instance is ready, and if it is not starts the actual setup script.

Only the first actual step of the script, checking for native dependencies, is implemented.
2018-06-19 14:08:44 +01:00
Bat 7fc469fa96 Delete reshares when receiving the corresponding Undo activity 2018-06-19 10:50:01 +01:00
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