* Begin adding support for timeline
* fix some bugs with parser
* fmt
* add error reporting for parser
* add tests for timeline query parser
* add rejection tests for parse
* begin adding support for lists
also run migration before compiling, so schema.rs is up to date
* add sqlite migration
* end adding lists
still miss tests and query integration
* cargo fmt
* try to add some tests
* Add some constraint to db, and fix list test
and refactor other tests to use begin_transaction
* add more tests for lists
* add support for lists in query executor
* add keywords for including/excluding boosts and likes
* cargo fmt
* add function to list lists used by query
will make it easier to warn users when creating timeline with unknown lists
* add lang support
* add timeline creation error message when using unexisting lists
* Update .po files
* WIP: interface for timelines
* don't use diesel for migrations
not sure how it passed the ci on the other branch
* add some tests for timeline
add an int representing the order of timelines (first one will be on
top, second just under...)
use first() instead of limit(1).get().into_iter().nth(0)
remove migrations from build artifacts as they are now compiled in
* cargo fmt
* remove timeline order
* fix tests
* add tests for timeline creation failure
* cargo fmt
* add tests for timelines
* add test for matching direct lists and keywords
* add test for language filtering
* Add a more complex test for Timeline::matches, and fix TQ::matches for TQ::Or
* Make the main crate compile + FMT
* Use the new timeline system
- Replace the old "feed" system with timelines
- Display all timelines someone can access on their home page (either their personal ones, or instance timelines)
- Remove functions that were used to get user/local/federated feed
- Add new posts to timelines
- Create a default timeline called "My feed" for everyone, and "Local feed"/"Federated feed" with timelines
@fdb-hiroshima I don't know if that's how you pictured it? If you imagined it differently I can of course make changes.
I hope I didn't forgot anything…
* Cargo fmt
* Try to fix the migration
* Fix tests
* Fix the test (for real this time ?)
* Fix the tests ? + fmt
* Use Kind::Like and Kind::Reshare when needed
* Forgot to run cargo fmt once again
* revert translations
* fix reviewed stuff
* reduce code duplication by macros
* cargo fmt
* Add Snapcraft metadata and install/maintenance hooks
* Move set-environment script into snap/local
* snap: Remove diesel-cli part.
This *was* necessary as of 0.3.0, but now `plm migrations run` does the job.
* snap: Add an actual description
* snap: Add an 'enabled' config item.
Don't try to run until enabled is set, and automatically run the
migrations when we are enabled
* Make a distinction between moderators and admins
And rework the user list in the moderation interface, to be able to run the same action on many users,
and to have a huge list of actions whithout loosing space.
* Make user's role an enum + make it impossible for a moderator to escalate privileges
With the help of diesel-derive-enum (maybe it could be used in other places too?)
Also, moderators are still able to grant or revoke moderation rights to other people, but maybe only admins should be able to do it?
* Cargo fmt
* copy/pasting is bad
* Remove diesel-derive-enum and use an integer instead
It was not compatible with both Postgres and SQlite, because for one it generated a schema
with the "User_role" type, but for the other it was "Text"…
* Reset translations
* Use an enum to avoid magic numbers + fix the tests
* Reset translations
* Fix down.sql
* Replace the input! macro with an Input builder
* Use a BTreeMap instead of an HashMap
Followinf @fdb-hiroshima's advice
* Rename Input::to_html to Input::html
To make clippy happy
* Wrap error messages in red paragraphs
* Theming
- Custom CSS for blogs
- Custom themes for instance
- New dark theme
- UI to choose your instance theme
- Option to disable blog themes if you prefer to only have the instance theme
- UI to choose a blog theme
* Bump activitystreams-derive from 0.1.0 to 0.1.1
* Bump tantivy from 0.9.1 to 0.10.1
* Bump rpassword from 3.0.2 to 4.0.1
* Bump num_cpus from 1.10.0 to 1.10.1
* Bump serde_qs from 0.4.6 to 0.5.0
* Bump stdweb-internal-runtime from 0.1.3 to 0.1.4
* [Security] Bump smallvec from 0.6.9 to 0.6.10
* Bump chrono from 0.4.6 to 0.4.7
* Bump bcrypt from 0.4.0 to 0.5.0
* Bump serde_json from 1.0.39 to 1.0.40
* Bump tokio from 0.1.21 to 0.1.22
* Bump scheduled-thread-pool from 0.2.0 to 0.2.2
* Bump stdweb from 0.4.14 to 0.4.18
* Bump hyper from 0.12.29 to 0.12.33
* Bump reqwest from 0.9.17 to 0.9.19
* Bump url from 1.7.2 to 2.1.0
* send scheme as part of webfinger remote follow template
fixtsileo/microblog.pub#49
* bump webfinger to 0.4.1
* cargo fmt
* revert translations
* Use group: prefix for blog webfinger queries
* initial RTL support
* fix dir in template-util
* fix dir in blogs new
* fix dir in blogs details
* fix dir in posts new
* fix dir in posts details
* fix dir in posts remote
* Fix dir in partials
some parts should be recheck carefully in real usage
* Use futures and tokio to send activities
* Reset .po files
* Cargo fmt + small enhancements
- better error messages
- removed a TODO
* Log all messages at the same time when federation succeeds
* Redirect to the code of conduct in the docs
To centralize it, and because the version in the docs is more up-to-date
* Remove obsolete issue template
* Rework README
* add enum containing all successful route returns
This enum derives `Responder`, so it can be used as route result.
We also implement `From`, so it can be converted
* disable clippy warning about this enum
There's no use trying to chase this warning.
The next warning will be about `Redirect`, which itself is 360 byte,
according to @fdb-hiroshima (thanks for the research!)
So, if anything, we can try to get Rocket to work on that!
* refactor routes/posts to only use one level of Result
* admin settings error is not an ErrorPage, so dont use Result<>
* refactor: use early return to remove indent of main logic
This diff is absolutely atrocious.
but the resulting readability is worth it
* refactor routes/post for early returns & RespondOrRedirect
* refactor routes/session for early returns & use RespondOrRedirect
* refactor routes/user -- add another field to enum
* refactor routes/blogs for early returns & RespondOrRedirect
* refactor routes/blogs for early returns & RespondOrRedirect
This is a final refactor of `pub fn update()` for readability.
We're removing at least one indentation level.
* add shrinkwraprs and implement Id thru it
This also means we can automatically convert Id to String without using
.into()!
* cleanup with the help of clippy!
* cleanup with the help of cargo fmt!
* remove extra block
* Shrinkwrap Page, ContentLen and RemoteForm
* translations
* Start to update the theme
- Ligther colors
- No more border radius
- Buttons are now always colored
- Start to redesign the post page (according to the Figma mockups)
* Fix build script: it now recompiles everytime a scss file changed
* Make sure the article illustrations are not too big
* Make articles wider (70 characters)
* Better contrast between gray shades
* Various improvements
* Better mobile style
* New style for the footer
* Improve comment style
* Better responsiveness again
* Limit the size of the article cover
* Last details?
- Improve buttons on the media page
- Improve lists
* Pin the stdweb version that we use
It changed because I removed Cargo.lock to handle a merge conflict
I could have updated cargo web too, but it mean I should have re-built
the CI docker image and it was taking forever.
* Better contrast for links in the header of the article
* Add a basic privacy policy
* Remove "also"
* Fix a few issues
- Don't watch static/css in build.rs
- Another shade of white
- Remove useless margin rule for error messages
[Security] Bump ammonia from 2.0.0 to 2.1.1
Bump bcrypt from 0.2.2 to 0.4.0
Bump clap from 2.32.0 to 2.33.0
Bump colored from 1.7.0 to 1.8.0
Bump ctrlc from 3.1.1 to 3.1.2
Bump diesel from 1.4.1 to 1.4.2
Bump dotenv from 0.13.0 to 0.14.0
Bump hyper from 0.12.25 to 0.12.28
Bump openssl from 0.10.19 to 0.10.22
Bump proc-macro2 from 0.4.27 to 0.4.30
Bump reqwest from 0.9.11 to 0.9.16
Bump rpassword from 2.1.0 to 3.0.2
Bump serde_derive from 1.0.80 to 1.0.82
Bump serde_derive from 1.0.89 to 1.0.91
Bump serde from 1.0.89 to 1.0.91
Bump serde_qs from 0.4.5 to 0.4.6
Bump stdweb from 0.4.14 to 0.4.17
Bump syn from 0.11.11 to 0.15.27
Bump whatlang from 0.7.0 to 0.7.1
* rewrite circleci config with better syntax
and try using grcov for coverage
* attempt to use less memory and to rerun if memory lack
* actually remove use of kcov
* use the right var
* try looping
* run test serialized
* use feature where we should and make macro path independant
* cargo fmt and remove some '"'
* add zip to dependancies
* reduce number of used thread after first failure
* push translations to crowdin on commit to master
* don't cache result of coverage
* Add a way to display flash messages
* Make the flash messages look nice
* Add actual feedback messages
* cargo fmt
* Move flash messages to PlumeRocket
And add trait to convert PlumeRocket to BaseContext
* Remove useless lifetime
* import migrations via macro
* panic on database not to the latest migration
* add subcommand to plm
* create migration that run tantivy index creation
* remove diesel_cli from places it was
* use our migration system for tests
* create table __diesel_schema_migrations if needed