summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Ableitner <me@nutomic.com>2020-03-12 12:34:37 +0100
committerFelix Ableitner <me@nutomic.com>2020-03-12 12:34:37 +0100
commit063811cb60028037d79cf8f3c22e1e8c9f3af8ce (patch)
treea636941025bc5fbc77d0841abbf92abab773ad82
parent27c07f1f84d02bf8baa2bceb1d8a0effac67a6c9 (diff)
parent4fbf55d79e355608c75aa8218cd7f487c58fa04d (diff)
Merge branch 'master' into federation
-rw-r--r--.dockerignore3
-rw-r--r--.gitignore2
-rw-r--r--CODE_OF_CONDUCT.md2
-rw-r--r--README.md32
-rw-r--r--ansible/VERSION2
-rw-r--r--ansible/templates/config.hjson2
-rw-r--r--ansible/templates/docker-compose.yml23
-rwxr-xr-xdocker/dev/deploy.sh17
-rw-r--r--docker/dev/docker-compose.yml23
-rw-r--r--docker/iframely.config.local.js2
-rw-r--r--docker/lemmy.hjson2
-rw-r--r--docker/prod/docker-compose.yml25
-rw-r--r--docs/src/SUMMARY.md1
-rw-r--r--docs/src/about_goals.md23
-rw-r--r--docs/src/about_guide.md12
-rw-r--r--docs/src/about_ranking.md2
-rw-r--r--docs/src/lemmy_council.md53
-rw-r--r--server/Cargo.lock1213
-rw-r--r--server/Cargo.toml6
-rw-r--r--server/migrations/2020-03-06-202329_add_post_iframely_data/down.sql112
-rw-r--r--server/migrations/2020-03-06-202329_add_post_iframely_data/up.sql115
-rw-r--r--server/src/api/mod.rs3
-rw-r--r--server/src/api/post.rs16
-rw-r--r--server/src/api/user.rs15
-rw-r--r--server/src/apub/mod.rs4
-rw-r--r--server/src/db/comment.rs4
-rw-r--r--server/src/db/comment_view.rs4
-rw-r--r--server/src/db/community_view.rs6
-rw-r--r--server/src/db/moderator.rs4
-rw-r--r--server/src/db/post.rs16
-rw-r--r--server/src/db/post_view.rs101
-rw-r--r--server/src/db/user_mention.rs4
-rw-r--r--server/src/lib.rs89
-rw-r--r--server/src/schema.rs4
-rw-r--r--server/src/version.rs2
-rw-r--r--ui/assets/css/main.css58
-rw-r--r--ui/assets/css/tippy.css1
-rw-r--r--ui/generate_translations.js25
-rw-r--r--ui/package.json13
-rw-r--r--ui/src/components/comment-form.tsx100
-rw-r--r--ui/src/components/comment-node.tsx932
-rw-r--r--ui/src/components/comment-nodes.tsx1
-rw-r--r--ui/src/components/community-form.tsx220
-rw-r--r--ui/src/components/community.tsx18
-rw-r--r--ui/src/components/iframely-card.tsx42
-rw-r--r--ui/src/components/inbox.tsx8
-rw-r--r--ui/src/components/main.tsx53
-rw-r--r--ui/src/components/modlog.tsx2
-rw-r--r--ui/src/components/moment-time.tsx31
-rw-r--r--ui/src/components/navbar.tsx29
-rw-r--r--ui/src/components/post-form.tsx28
-rw-r--r--ui/src/components/post-listing.tsx1276
-rw-r--r--ui/src/components/post-listings.tsx2
-rw-r--r--ui/src/components/post.tsx24
-rw-r--r--ui/src/components/private-message-form.tsx27
-rw-r--r--ui/src/components/private-message.tsx71
-rw-r--r--ui/src/components/sidebar.tsx30
-rw-r--r--ui/src/components/site-form.tsx228
-rw-r--r--ui/src/components/sort-select.tsx47
-rw-r--r--ui/src/components/symbols.tsx83
-rw-r--r--ui/src/components/user.tsx11
-rw-r--r--ui/src/i18next.ts4
-rw-r--r--ui/src/index.html1
-rw-r--r--ui/src/interfaces.ts20
-rw-r--r--ui/src/services/WebSocketService.ts15
-rw-r--r--ui/src/translations/ca.ts239
-rw-r--r--ui/src/translations/de.ts210
-rw-r--r--ui/src/translations/en.ts240
-rw-r--r--ui/src/translations/eo.ts177
-rw-r--r--ui/src/translations/es.ts242
-rw-r--r--ui/src/translations/fa.ts169
-rw-r--r--ui/src/translations/fi.ts236
-rw-r--r--ui/src/translations/fr.ts242
-rw-r--r--ui/src/translations/it.ts192
-rw-r--r--ui/src/translations/nl.ts234
-rw-r--r--ui/src/translations/pt_br.ts241
-rw-r--r--ui/src/translations/ru.ts170
-rw-r--r--ui/src/translations/sv.ts195
-rw-r--r--ui/src/translations/zh.ts164
-rw-r--r--ui/src/utils.ts82
-rw-r--r--ui/src/version.ts2
-rw-r--r--ui/translation_report.ts62
-rw-r--r--ui/translations/ar.json180
-rw-r--r--ui/translations/ca.json237
-rw-r--r--ui/translations/de.json239
-rw-r--r--ui/translations/en.json250
-rw-r--r--ui/translations/eo.json175
-rw-r--r--ui/translations/es.json240
-rw-r--r--ui/translations/fa.json167
-rw-r--r--ui/translations/fi.json234
-rw-r--r--ui/translations/fr.json231
-rw-r--r--ui/translations/it.json213
-rw-r--r--ui/translations/ja.json202
-rw-r--r--ui/translations/nl.json232
-rw-r--r--ui/translations/pt_BR.json243
-rw-r--r--ui/translations/ru.json204
-rw-r--r--ui/translations/sv.json193
-rw-r--r--ui/translations/zh.json162
-rw-r--r--ui/yarn.lock59
99 files changed, 6841 insertions, 5061 deletions
diff --git a/.dockerignore b/.dockerignore
index a9e142d6..372b05bf 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -3,4 +3,7 @@ server/target/debug
!server/target/debug/lemmy_server
server/target/release
server/target/debug/incremental
+ui/dist
+server/target
+docker/dev/volumes
.git
diff --git a/.gitignore b/.gitignore
index 3eedf03c..7d60afd6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,5 @@ docker/dev/env_deploy.sh
docker/federation-test/volumes
build/
.idea/
+ui/src/translations
+docker/dev/volumes \ No newline at end of file
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index b350ddbb..5a6c7d67 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -19,7 +19,7 @@ These are the policies for upholding our community’s standards of conduct. If
1. Remarks that violate the Lemmy standards of conduct, including hateful, hurtful, oppressive, or exclusionary remarks, are not allowed. (Cursing is allowed, but never targeting another user, and never in a hateful manner.)
2. Remarks that moderators find inappropriate, whether listed in the code of conduct or not, are also not allowed.
-3. Moderators will first respond to such remarks with a warning.
+3. Moderators will first respond to such remarks with a warning, at the same time the offending content will likely be removed whenever possible.
4. If the warning is unheeded, the user will be “kicked,” i.e., kicked out of the communication channel to cool off.
5. If the user comes back and continues to make trouble, they will be banned, i.e., indefinitely excluded.
6. Moderators may choose at their discretion to un-ban the user if it was a first offense and they offer the offended party a genuine apology.
diff --git a/README.md b/README.md
index 81eceb74..2adad59c 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,7 @@
[![Build Status](https://travis-ci.org/dessalines/lemmy.svg?branch=master)](https://travis-ci.org/dessalines/lemmy)
[![GitHub issues](https://img.shields.io/github/issues-raw/dessalines/lemmy.svg)](https://github.com/dessalines/lemmy/issues)
[![Docker Pulls](https://img.shields.io/docker/pulls/dessalines/lemmy.svg)](https://cloud.docker.com/repository/docker/dessalines/lemmy/)
+[![Translation status](http://weblate.yerbamate.dev/widgets/lemmy/-/lemmy/svg-badge.svg)](http://weblate.yerbamate.dev/engage/lemmy/)
[![License](https://img.shields.io/github/license/dessalines/lemmy.svg)](LICENSE)
![GitHub stars](https://img.shields.io/github/stars/dessalines/lemmy?style=social)
</div>
@@ -77,6 +78,7 @@ Each lemmy server can set its own moderation policy; appointing site-wide admins
- A post can consist of a title and any combination of self text, a URL, or nothing else.
- Notifications, on comment replies and when you're tagged.
- Notifications can be sent via email.
+ - Private messaging support.
- i18n / internationalization support.
- RSS / Atom feeds for `All`, `Subscribed`, `Inbox`, `User`, and `Community`.
- Cross-posting support.
@@ -124,35 +126,7 @@ Lemmy is free, open-source software, meaning no advertising, monetizing, or vent
### Translations
-If you'd like to add translations, take a look at the [English translation file](ui/src/translations/en.ts).
-
-- Languages supported: Brazilian Portuguese (`pt-br`), Catalan, (`ca`), Farsi (`fa`), English (`en`), Chinese (`zh`), Dutch (`nl`), Esperanto (`eo`), Finnish (`fi`), French (`fr`), Spanish (`es`), Swedish (`sv`), German (`de`), Russian (`ru`), Italian (`it`).
-
-<!-- translations -->
-
-lang | done | missing
----- | ---- | -------
-ca | 97% | cross_posted_to,old,support_on_liberapay,couldnt_get_comments,post_title_too_long,time,action
-de | 86% | cross_posted_to,create_private_message,send_secure_message,send_message,message,avatar,upload_avatar,show_avatars,old,docs,message_sent,messages,old_password,matrix_user_id,private_message_disclaimer,send_notifications_to_email,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,donate_to_lemmy,donate,from,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
-fa | 71% | cross_post,cross_posted_to,subscribed_to_communities,trending_communities,create_private_message,send_secure_message,send_message,message,mod,mods,moderates,remove_as_mod,appoint_as_mod,modlog,stickied,ban,ban_from_site,unban,unban_from_site,banned,number_of_subscribers,subscribers,both,saved,unsubscribe,subscribe,subscribed,old,api,docs,inbox,inbox_for,message_sent,notifications_error,messages,no_email_setup,matrix_user_id,private_message_disclaimer,url,body,copy_suggested_title,community,expand_here,subscribe_to_communities,theme,sponsor_message,support_on_liberapay,general_sponsors,joined,by,to,from,landing_0,logged_in,couldnt_get_comments,community_moderator_already_exists,community_follower_already_exists,community_user_already_banned,post_title_too_long,no_slurs,admin_already_created,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
-eo | 73% | cross_posted_to,number_of_communities,create_private_message,send_secure_message,send_message,message,preview,upload_image,avatar,upload_avatar,show_avatars,formatting_help,view_source,sticky,unsticky,archive_link,stickied,delete_account,delete_account_confirm,banned,creator,number_online,old,docs,replies,mentions,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,theme,support_on_liberapay,donate_to_lemmy,donate,from,are_you_sure,yes,no,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
-es | 99% | cross_posted_to,couldnt_get_comments,post_title_too_long
-fi | 97% | cross_posted_to,old,support_on_liberapay,couldnt_get_comments,post_title_too_long,time,action
-fr | 100% |
-it | 82% | cross_posted_to,create_private_message,send_secure_message,send_message,message,avatar,upload_avatar,show_avatars,archive_link,old,docs,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,donate_to_lemmy,donate,from,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
-nl | 98% | cross_posted_to,couldnt_get_comments,post_title_too_long,time,action
-pt-br | 99% | couldnt_get_comments,post_title_too_long
-ru | 70% | cross_posts,cross_post,cross_posted_to,number_of_communities,create_private_message,send_secure_message,send_message,message,preview,upload_image,avatar,upload_avatar,show_avatars,formatting_help,view_source,sticky,unsticky,archive_link,stickied,delete_account,delete_account_confirm,banned,creator,number_online,old,docs,replies,mentions,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,recent_comments,theme,support_on_liberapay,donate_to_lemmy,donate,monero,by,to,from,transfer_community,transfer_site,are_you_sure,yes,no,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
-sv | 81% | cross_posted_to,create_private_message,send_secure_message,send_message,message,avatar,upload_avatar,show_avatars,archive_link,old,docs,replies,mentions,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,support_on_liberapay,donate_to_lemmy,donate,from,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
-zh | 69% | cross_posts,cross_post,cross_posted_to,users,number_of_communities,create_private_message,send_secure_message,send_message,message,preview,upload_image,avatar,upload_avatar,show_avatars,formatting_help,view_source,sticky,unsticky,archive_link,settings,stickied,delete_account,delete_account_confirm,banned,creator,number_online,old,docs,replies,mentions,message_sent,messages,old_password,forgot_password,reset_password_mail_sent,password_change,new_password,no_email_setup,matrix_user_id,private_message_disclaimer,send_notifications_to_email,language,browser_default,downvotes_disabled,enable_downvotes,open_registration,registration_closed,enable_nsfw,recent_comments,nsfw,show_nsfw,theme,donate_to_lemmy,donate,monero,by,to,from,transfer_community,transfer_site,are_you_sure,yes,no,logged_in,couldnt_get_comments,post_title_too_long,email_already_exists,couldnt_create_private_message,no_private_message_edit_allowed,couldnt_update_private_message,time,action
-<!-- translationsstop -->
-
-If you'd like to update this report, run:
-
-```bash
-cd ui
-ts-node translation_report.ts
-```
+If you want to help with translating, take a look at [Weblate](https://weblate.yerbamate.dev/projects/lemmy/).
## Contact
diff --git a/ansible/VERSION b/ansible/VERSION
index 6095ec4e..f9fc17d6 100644
--- a/ansible/VERSION
+++ b/ansible/VERSION
@@ -1 +1 @@
-v0.6.25
+v0.6.39
diff --git a/ansible/templates/config.hjson b/ansible/templates/config.hjson
index 42698dfb..c0f387c4 100644
--- a/ansible/templates/config.hjson
+++ b/ansible/templates/config.hjson
@@ -1,7 +1,7 @@
{
database: {
password: "{{ postgres_password }}"
- host: "lemmy_db"
+ host: "postgres"
}
hostname: "{{ domain }}"
jwt_secret: "{{ jwt_password }}"
diff --git a/ansible/templates/docker-compose.yml b/ansible/templates/docker-compose.yml
index bf9aeeb5..57ee142a 100644
--- a/ansible/templates/docker-compose.yml
+++ b/ansible/templates/docker-compose.yml
@@ -9,31 +9,32 @@ services:
volumes:
- ./lemmy.hjson:/config/config.hjson:ro
depends_on:
- - lemmy_db
- - lemmy_pictshare
+ - postgres
+ - pictshare
+ - iframely
- lemmy_db:
+ postgres:
image: postgres:12-alpine
environment:
- POSTGRES_USER=lemmy
- POSTGRES_PASSWORD={{ postgres_password }}
- POSTGRES_DB=lemmy
volumes:
- - lemmy_db:/var/lib/postgresql/data
+ - ./volumes/postgres:/var/lib/postgresql/data
restart: always
- lemmy_pictshare:
+ pictshare:
image: shtripok/pictshare:latest
ports:
- "127.0.0.1:8537:80"
volumes:
- - lemmy_pictshare:/usr/share/nginx/html/data
+ - ./volumes/pictshare:/usr/share/nginx/html/data
restart: always
- lemmy_iframely:
+ iframely:
image: dogbin/iframely:latest
ports:
- - "127.0.0.1:8061:8061"
+ - "127.0.0.1:8061:80"
volumes:
- ./iframely.config.local.js:/iframely/config.local.js:ro
restart: always
@@ -42,8 +43,4 @@ services:
image: mwader/postfix-relay
environment:
- POSTFIX_myhostname={{ domain }}
- restart: "always"
-volumes:
- lemmy_db:
- lemmy_pictshare:
- lemmy_iframely:
+ restart: "always" \ No newline at end of file
diff --git a/docker/dev/deploy.sh b/docker/dev/deploy.sh
index 38ea6161..db2294fa 100755
--- a/docker/dev/deploy.sh
+++ b/docker/dev/deploy.sh
@@ -1,24 +1,26 @@
#!/bin/sh
git checkout master
+# Import translations
+git fetch weblate
+git merge weblate/master
+
# Creating the new tag
new_tag="$1"
-git tag $new_tag
-
third_semver=$(echo $new_tag | cut -d "." -f 3)
# Setting the version on the front end
cd ../../
-echo "export const version: string = '$(git describe --tags)';" > "ui/src/version.ts"
+echo "export const version: string = '$new_tag';" > "ui/src/version.ts"
git add "ui/src/version.ts"
# Setting the version on the backend
-echo "pub const VERSION: &str = \"$(git describe --tags)\";" > "server/src/version.rs"
+echo "pub const VERSION: &str = \"$new_tag\";" > "server/src/version.rs"
git add "server/src/version.rs"
# Setting the version for Ansible
-git describe --tags > "ansible/VERSION"
+echo $new_tag > "ansible/VERSION"
git add "ansible/VERSION"
-cd docker/dev
+cd docker/dev || exit
# Changing the docker-compose prod
sed -i "s/dessalines\/lemmy:.*/dessalines\/lemmy:$new_tag/" ../prod/docker-compose.yml
@@ -28,6 +30,7 @@ git add ../../ansible/templates/docker-compose.yml
# The commit
git commit -m"Version $new_tag"
+git tag $new_tag
# Rebuilding docker
docker-compose build
@@ -69,5 +72,5 @@ git push origin $new_tag
git push
# Pushing to any ansible deploys
-cd ../../ansible
+cd ../../ansible || exit