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