From ec23de7e338158ff9dfc27ede9b1d2e906d8e56a Mon Sep 17 00:00:00 2001 From: Sylvia Ji Date: Tue, 21 Apr 2020 11:02:26 +0000 Subject: [PATCH 01/96] Translated using Weblate (Japanese) Currently translated at 100.0% (237 of 237 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/ja/ Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (237 of 237 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/zh_Hans/ --- ui/translations/ja.json | 6 ++++-- ui/translations/zh.json | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/ui/translations/ja.json b/ui/translations/ja.json index 066ff589fe0..db9197c324d 100644 --- a/ui/translations/ja.json +++ b/ui/translations/ja.json @@ -144,7 +144,7 @@ "enable_nsfw": "閲覧注意を有効化", "url": "URL", "body": "本文", - "copy_suggested_title": "タイトルの提案をコピーする: {{title}}", + "copy_suggested_title": "提案されたタイトルをコピーする: {{title}}", "community": "コミュニティ", "expand_here": "拡大表示", "subscribe_to_communities": "<1>コミュニティをいくつか登録してみましょう。", @@ -233,5 +233,7 @@ "system_err_login": "システムエラーが発生しました。一度ログアウトして、再度ログインをお試しください。", "couldnt_create_private_message": "プライベートメッセージが作成されない。", "no_private_message_edit_allowed": "プライベートメッセージの編集許可がありません。", - "couldnt_update_private_message": "プライベートメッセージが更新されない。" + "couldnt_update_private_message": "プライベートメッセージが更新されない。", + "couldnt_like_comment": "コメントが「いいね」できない。", + "couldnt_like_post": "投稿が「いいね」できない。" } diff --git a/ui/translations/zh.json b/ui/translations/zh.json index d23de86a207..e4b543627f9 100644 --- a/ui/translations/zh.json +++ b/ui/translations/zh.json @@ -156,8 +156,8 @@ "user_already_exists": "用户已存在。", "couldnt_update_user": "无法更新用户。", "system_err_login": "系统错误。请尝试注销后重新登入。", - "nsfw": "少儿不宜", - "show_nsfw": "显示少儿不宜内容", + "nsfw": "工作场所不宜", + "show_nsfw": "显示工作场所不宜内容", "theme": "主题", "from": "来自", "donate_to_lemmy": "向Lemmy捐赠", @@ -175,7 +175,7 @@ "more": "更多", "preview": "预览", "upload_image": "上传图片", - "enable_nsfw": "允许少儿不宜内容", + "enable_nsfw": "允许工作场所不宜内容", "show_avatars": "显示头像", "avatar": "头像", "formatting_help": "格式帮助", From b2a89cd21772afbec1e5eb00bf3b10720fae6b14 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Tue, 21 Apr 2020 20:43:38 -0400 Subject: [PATCH 02/96] Version v0.6.52 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index e39e33bc092..1fdf358c58c 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.51 +v0.6.52 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index c38bb899683..b9e82daf552 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.51 + image: dessalines/lemmy:v0.6.52 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index a287e3a467b..6135fe38b6f 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.51"; +pub const VERSION: &str = "v0.6.52"; diff --git a/ui/src/version.ts b/ui/src/version.ts index eb0ecff3c1a..a200f513285 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.51'; +export const version: string = 'v0.6.52'; From 313d023eef849ea0d8d501d03d17f914b6ae947b Mon Sep 17 00:00:00 2001 From: Dessalines Date: Wed, 22 Apr 2020 00:29:25 -0400 Subject: [PATCH 03/96] Changing wait to spawn in websocket. --- server/src/routes/websocket.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/routes/websocket.rs b/server/src/routes/websocket.rs index 48b7d08fb03..3814a8e9b5c 100644 --- a/server/src/routes/websocket.rs +++ b/server/src/routes/websocket.rs @@ -124,7 +124,7 @@ impl StreamHandler> for WSSession { } actix::fut::ready(()) }) - .wait(ctx); + .spawn(ctx); } ws::Message::Binary(_bin) => info!("Unexpected binary"), ws::Message::Close(_) => { From c22090c602098abe29f451c6235fe8179725726a Mon Sep 17 00:00:00 2001 From: Dessalines Date: Wed, 22 Apr 2020 00:30:43 -0400 Subject: [PATCH 04/96] Version v0.6.53 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index 1fdf358c58c..3bf4835509a 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.52 +v0.6.53 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index b9e82daf552..00fe941034f 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.52 + image: dessalines/lemmy:v0.6.53 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index 6135fe38b6f..a1887e29541 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.52"; +pub const VERSION: &str = "v0.6.53"; diff --git a/ui/src/version.ts b/ui/src/version.ts index a200f513285..6e3e167f72f 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.52'; +export const version: string = 'v0.6.53'; From d0fa235e84d61dec04b9241e920a9988b36b87a6 Mon Sep 17 00:00:00 2001 From: Nishant Aswani Date: Wed, 22 Apr 2020 15:38:51 -0400 Subject: [PATCH 05/96] Updated ranking algorithm graph in docs (#654) * Regraphed ranking algorithm demo with seaborn plot * use imgur mirror for ranking algo image --- docs/img/rank_algorithm.png | Bin 0 -> 55191 bytes docs/src/about_ranking.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/img/rank_algorithm.png diff --git a/docs/img/rank_algorithm.png b/docs/img/rank_algorithm.png new file mode 100644 index 0000000000000000000000000000000000000000..c8200f91b10c53f71bd3062102cdba24329cc269 GIT binary patch literal 55191 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 literal 0 HcmV?d00001 diff --git a/docs/src/about_ranking.md b/docs/src/about_ranking.md index d318ae82d55..36347932eed 100644 --- a/docs/src/about_ranking.md +++ b/docs/src/about_ranking.md @@ -26,4 +26,4 @@ Gravity = Decay gravity, 1.8 is default A plot of rank over 24 hours, of scores of 1, 5, 10, 100, 1000, with a scale factor of 10k. -![](https://i.imgur.com/w8oBLlL.png) +![](https://i.imgur.com/QukPR03.png) From d448bc6f9a4eb714d0d18d050089e5fcfa9f8f91 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Wed, 22 Apr 2020 16:52:24 -0400 Subject: [PATCH 06/96] Adding code mirror section to readme. --- README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 723d535ff0d..f5d80ceb12c 100644 --- a/README.md +++ b/README.md @@ -131,10 +131,13 @@ If you want to help with translating, take a look at [Weblate](https://weblate.y ## Contact -- [Mastodon](https://mastodon.social/@LemmyDev) - [![Mastodon Follow](https://img.shields.io/mastodon/follow/810572?domain=https%3A%2F%2Fmastodon.social&style=social)](https://mastodon.social/@LemmyDev) -- [Matrix](https://riot.im/app/#/room/#rust-reddit-fediverse:matrix.org) - [![Matrix](https://img.shields.io/matrix/rust-reddit-fediverse:matrix.org.svg?label=matrix-chat)](https://riot.im/app/#/room/#rust-reddit-fediverse:matrix.org) +- [Mastodon](https://mastodon.social/@LemmyDev) +- [Matrix](https://riot.im/app/#/room/#rust-reddit-fediverse:matrix.org) + +## Code Mirrors + - [GitHub](https://github.com/LemmyNet/lemmy) -- [Gitea](https://yerbamate.dev/dessalines/lemmy) +- [Gitea](https://yerbamate.dev/LemmyNet/lemmy) - [GitLab](https://gitlab.com/dessalines/lemmy) ## Credits From 674e221335c38bea34e3a1f11bf857952038f4d6 Mon Sep 17 00:00:00 2001 From: Nishant Aswani Date: Sun, 26 Apr 2020 10:01:21 -0400 Subject: [PATCH 07/96] added main_screen and chat_screen (#665) --- docs/img/chat_screen.png | Bin 0 -> 79469 bytes docs/img/main_screen.png | Bin 0 -> 94316 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/img/chat_screen.png create mode 100644 docs/img/main_screen.png diff --git a/docs/img/chat_screen.png b/docs/img/chat_screen.png new file mode 100644 index 0000000000000000000000000000000000000000..21a452dcfc360eb5c2784365b5ddddb88fff1f05 GIT binary patch literal 79469 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 Q8R}D2)KvH`XZ7X(0P9;VGynhq literal 0 HcmV?d00001 From 610cce4162c28d680819f2d45c804950313e3b96 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 26 Apr 2020 10:51:59 -0400 Subject: [PATCH 08/96] Hide online counts for now. #664 --- ui/src/components/main.tsx | 2 ++ ui/src/components/sidebar.tsx | 13 ++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ui/src/components/main.tsx b/ui/src/components/main.tsx index 366d3be8f1e..829af222808 100644 --- a/ui/src/components/main.tsx +++ b/ui/src/components/main.tsx @@ -282,9 +282,11 @@ export class Main extends Component { )}
    + {/*
  • {i18n.t('number_online', { count: this.state.siteRes.online })}
  • + */}
  • {i18n.t('number_of_users', { count: this.state.siteRes.site.number_of_users, diff --git a/ui/src/components/sidebar.tsx b/ui/src/components/sidebar.tsx index d66266f6cab..fce31561000 100644 --- a/ui/src/components/sidebar.tsx +++ b/ui/src/components/sidebar.tsx @@ -111,8 +111,9 @@ export class Sidebar extends Component { } > @@ -169,9 +170,11 @@ export class Sidebar extends Component { )}
      + {/*
    • {i18n.t('number_online', { count: this.props.online })}
    • + */}
    • {i18n.t('number_of_subscribers', { count: community.number_of_subscribers, @@ -215,9 +218,9 @@ export class Sidebar extends Component { ))}
    {i18n.t('create_a_post')} From f4b5c1f27b188804c6a124827ccc50218a0c5061 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 26 Apr 2020 10:56:53 -0400 Subject: [PATCH 09/96] Adding sponsor. --- ui/src/components/sponsors.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/src/components/sponsors.tsx b/ui/src/components/sponsors.tsx index cdd7bdad3d1..51ef47faec8 100644 --- a/ui/src/components/sponsors.tsx +++ b/ui/src/components/sponsors.tsx @@ -5,6 +5,7 @@ import { T } from 'inferno-i18next'; import { repoUrl } from '../utils'; let general = [ + 'Serge Tarkovsky', 'alexx henry', 'Nathan J. Goode', 'Andre Vallestero', From 92e4edf9b7af01d43391500f69ac95a619c4d2f6 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 26 Apr 2020 10:57:27 -0400 Subject: [PATCH 10/96] Version v0.6.54 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index 3bf4835509a..6f4ae774ef5 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.53 +v0.6.54 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index 00fe941034f..c6639f57919 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.53 + image: dessalines/lemmy:v0.6.54 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index a1887e29541..66f2d1e783a 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.53"; +pub const VERSION: &str = "v0.6.54"; diff --git a/ui/src/version.ts b/ui/src/version.ts index 6e3e167f72f..90281ec4b1d 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.53'; +export const version: string = 'v0.6.54'; From 82941001e8e8593b6d487759c5164f1344812c0e Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 26 Apr 2020 19:09:47 -0400 Subject: [PATCH 11/96] Fixing sponsor issue. --- ui/src/components/sponsors.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/components/sponsors.tsx b/ui/src/components/sponsors.tsx index 51ef47faec8..f4dd831383f 100644 --- a/ui/src/components/sponsors.tsx +++ b/ui/src/components/sponsors.tsx @@ -5,7 +5,7 @@ import { T } from 'inferno-i18next'; import { repoUrl } from '../utils'; let general = [ - 'Serge Tarkovsky', + 'Serge Tarkovski', 'alexx henry', 'Nathan J. Goode', 'Andre Vallestero', From 72433b37c4a2390e766b69f7d059dc95469aa18a Mon Sep 17 00:00:00 2001 From: Dessalines Date: Mon, 27 Apr 2020 08:55:31 -0400 Subject: [PATCH 12/96] Adding a sponsor. --- ui/src/components/sponsors.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/src/components/sponsors.tsx b/ui/src/components/sponsors.tsx index f4dd831383f..b0b7e5f6667 100644 --- a/ui/src/components/sponsors.tsx +++ b/ui/src/components/sponsors.tsx @@ -5,6 +5,7 @@ import { T } from 'inferno-i18next'; import { repoUrl } from '../utils'; let general = [ + 'Forrest Weghorst', 'Serge Tarkovski', 'alexx henry', 'Nathan J. Goode', From 66134823bffc55cefdb5d14857faa7956a165237 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Mon, 27 Apr 2020 09:07:31 -0400 Subject: [PATCH 13/96] Version v0.6.55 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index 6f4ae774ef5..e6cf23a8a18 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.54 +v0.6.55 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index c6639f57919..65bc9f821d9 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.54 + image: dessalines/lemmy:v0.6.55 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index 66f2d1e783a..72b91db50b6 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.54"; +pub const VERSION: &str = "v0.6.55"; diff --git a/ui/src/version.ts b/ui/src/version.ts index 90281ec4b1d..273c97cd3f7 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.54'; +export const version: string = 'v0.6.55'; From 09d4bf1d7a6eaf6778dc6a9dde5e096680caffbd Mon Sep 17 00:00:00 2001 From: niniack Date: Mon, 27 Apr 2020 16:22:56 -0400 Subject: [PATCH 14/96] swap imgur links for github links --- README.md | 6 +++--- docs/src/about.md | 2 +- docs/src/about_ranking.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f5d80ceb12c..9c4f6bfa90c 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Front Page|Post ---|--- -![main screen](https://i.imgur.com/kZSRcRu.png)|![chat screen](https://i.imgur.com/4XghNh6.png) +![main screen](https://raw.githubusercontent.com/LemmyNet/lemmy/master/docs/img/main_screen.png)|![chat screen](https://raw.githubusercontent.com/LemmyNet/lemmy/master/docs/img/chat_screen.png) [Lemmy](https://github.com/LemmyNet/lemmy) is similar to sites like [Reddit](https://reddit.com), [Lobste.rs](https://lobste.rs), [Raddle](https://raddle.me), or [Hacker News](https://news.ycombinator.com/): you subscribe to forums you're interested in, post links and discussions, then vote, and comment on them. Behind the scenes, it is very different; anyone can easily run a server, and all these servers are federated (think email), and connected to the same universe, called the [Fediverse](https://en.wikipedia.org/wiki/Fediverse). @@ -125,14 +125,14 @@ Lemmy is free, open-source software, meaning no advertising, monetizing, or vent - [Docker Development](https://dev.lemmy.ml/docs/contributing_docker_development.html) - [Local Development](https://dev.lemmy.ml/docs/contributing_local_development.html) -### Translations +### Translations If you want to help with translating, take a look at [Weblate](https://weblate.yerbamate.dev/projects/lemmy/). ## Contact - [Mastodon](https://mastodon.social/@LemmyDev) -- [Matrix](https://riot.im/app/#/room/#rust-reddit-fediverse:matrix.org) +- [Matrix](https://riot.im/app/#/room/#rust-reddit-fediverse:matrix.org) ## Code Mirrors diff --git a/docs/src/about.md b/docs/src/about.md index 31081f4857e..2c0e418b301 100644 --- a/docs/src/about.md +++ b/docs/src/about.md @@ -2,7 +2,7 @@ Front Page|Post ---|--- -![main screen](https://i.imgur.com/kZSRcRu.png)|![chat screen](https://i.imgur.com/4XghNh6.png) +![main screen](https://raw.githubusercontent.com/LemmyNet/lemmy/master/docs/img/main_screen.png)|![chat screen](https://raw.githubusercontent.com/LemmyNet/lemmy/master/docs/img/chat_screen.png) [Lemmy](https://github.com/LemmyNet/lemmy) is similar to sites like [Reddit](https://reddit.com), [Lobste.rs](https://lobste.rs), [Raddle](https://raddle.me), or [Hacker News](https://news.ycombinator.com/): you subscribe to forums you're interested in, post links and discussions, then vote, and comment on them. Behind the scenes, it is very different; anyone can easily run a server, and all these servers are federated (think email), and connected to the same universe, called the [Fediverse](https://en.wikipedia.org/wiki/Fediverse). diff --git a/docs/src/about_ranking.md b/docs/src/about_ranking.md index 36347932eed..fe9e82bbb6c 100644 --- a/docs/src/about_ranking.md +++ b/docs/src/about_ranking.md @@ -26,4 +26,4 @@ Gravity = Decay gravity, 1.8 is default A plot of rank over 24 hours, of scores of 1, 5, 10, 100, 1000, with a scale factor of 10k. -![](https://i.imgur.com/QukPR03.png) +![](https://raw.githubusercontent.com/LemmyNet/lemmy/master/docs/img/rank_algorithm.png) From 9b93d4c098da53cc24ca0b4df293122ef251f7d3 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Wed, 29 Apr 2020 17:52:18 -0400 Subject: [PATCH 15/96] Better private-message form. Fixes #652 --- ui/src/components/private-message-form.tsx | 106 ++++++++++----------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/ui/src/components/private-message-form.tsx b/ui/src/components/private-message-form.tsx index 6b607654b62..7667f5a11f4 100644 --- a/ui/src/components/private-message-form.tsx +++ b/ui/src/components/private-message-form.tsx @@ -160,8 +160,60 @@ export class PrivateMessageForm extends Component< )} /> )} + + -
      + {this.state.showDisclaimer && ( + + )} +
      +
      + + {this.state.privateMessageForm.content && ( + + )} + {this.props.privateMessage && ( + + )} +
      - - {this.state.showDisclaimer && ( -
      -
      - -
      -
      - )} -
      -
      - - {this.state.privateMessageForm.content && ( - - )} - {this.props.privateMessage && ( - - )} -
      -
      ); From 6d73b167168699f4ca67f927d125f0be46e9aad9 Mon Sep 17 00:00:00 2001 From: pfcoder Date: Fri, 1 May 2020 21:58:52 +0800 Subject: [PATCH 16/96] fix shell quotation error of server db-init.sh --- server/db-init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/db-init.sh b/server/db-init.sh index c9150e9de5d..87f39eadafd 100755 --- a/server/db-init.sh +++ b/server/db-init.sh @@ -37,7 +37,7 @@ done psql -c "CREATE USER $username WITH PASSWORD '$password' SUPERUSER;" -U postgres -psql -c 'CREATE DATABASE $dbname WITH OWNER $username;' -U postgres +psql -c "CREATE DATABASE $dbname WITH OWNER $username;" -U postgres export LEMMY_DATABASE_URL=postgres://$username:$password@localhost:$port/$dbname echo $LEMMY_DATABASE_URL From 8d4ab4555cbf026ea2c34ea4800f72dcd1fe4c8e Mon Sep 17 00:00:00 2001 From: Richie Zhang <12566991+StaticallyTypedRice@users.noreply.github.com> Date: Fri, 1 May 2020 07:33:28 -0700 Subject: [PATCH 17/96] Improve the yes/no prompt in install.sh (#683) * Improve the yes/no prompt in install.sh The old implementation used a feature only present on Bash version 4, which not all systems have. The new version should work on all bash shells. * Update install.sh --- install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/install.sh b/install.sh index ad3e4ab3a92..d84761a2e40 100755 --- a/install.sh +++ b/install.sh @@ -16,10 +16,10 @@ init_db_final=0 while [ "$init_db_valid" == 0 ] do read -p "Initialize database (y/n)? " init_db - case "${init_db,,}" in - y|yes ) init_db_valid=1; init_db_final=1;; - n|no ) init_db_valid=1; init_db_final=0;; - * ) echo "Invalid input" 1>&2;; + case "$init_db" in + [yY]* ) init_db_valid=1; init_db_final=1;; + [nN]* ) init_db_valid=1; init_db_final=0;; + * ) echo "Invalid input. Please enter either \"y\" or \"n\"." 1>&2;; esac echo done From 43592c32d9c4190ee7ef26838f8f33c555a72997 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 1 May 2020 21:51:04 -0400 Subject: [PATCH 18/96] Adding hindi template. --- ui/src/i18next.ts | 4 ++++ ui/src/utils.ts | 14 +++++++++----- ui/translations/hi.json | 3 +++ 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 ui/translations/hi.json diff --git a/ui/src/i18next.ts b/ui/src/i18next.ts index 85d06f91fdc..2cd290007f7 100644 --- a/ui/src/i18next.ts +++ b/ui/src/i18next.ts @@ -13,14 +13,18 @@ import { it } from './translations/it'; import { fi } from './translations/fi'; import { ca } from './translations/ca'; import { fa } from './translations/fa'; +import { hi } from './translations/hi'; import { pt_BR } from './translations/pt_BR'; import { ja } from './translations/ja'; +import { ka } from './translations/ka'; // https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66 const resources = { en, eo, es, + ka, + hi, de, zh, fr, diff --git a/ui/src/utils.ts b/ui/src/utils.ts index 21a7fef83e8..2256a0c135b 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -13,6 +13,7 @@ import 'moment/locale/fa'; import 'moment/locale/pt-br'; import 'moment/locale/ja'; import 'moment/locale/ka'; +import 'moment/locale/hi'; import { UserOperation, @@ -62,6 +63,7 @@ export const languages = [ { code: 'es', name: 'Español' }, { code: 'de', name: 'Deutsch' }, { code: 'ka', name: 'ქართული ენა' }, + { code: 'hi', name: 'मानक हिन्दी' }, { code: 'fa', name: 'فارسی' }, { code: 'ja', name: '日本語' }, { code: 'pt_BR', name: 'Português Brasileiro' }, @@ -118,11 +120,11 @@ export const md = new markdown_it({ typographer: true, }) .use(markdown_it_container, 'spoiler', { - validate: function(params: any) { + validate: function (params: any) { return params.trim().match(/^spoiler\s+(.*)$/); }, - render: function(tokens: any, idx: any) { + render: function (tokens: any, idx: any) { var m = tokens[idx].info.trim().match(/^spoiler\s+(.*)$/); if (tokens[idx].nesting === 1) { @@ -138,7 +140,7 @@ export const md = new markdown_it({ defs: objectFlip(emojiShortName), }); -md.renderer.rules.emoji = function(token, idx) { +md.renderer.rules.emoji = function (token, idx) { return twemoji.parse(token[idx].content); }; @@ -284,7 +286,7 @@ export function debounce( let timeout: any; // Calling debounce returns a new anonymous function - return function() { + return function () { // reference the context and args for the setTimeout function var context = this, args = arguments; @@ -300,7 +302,7 @@ export function debounce( clearTimeout(timeout); // Set the new timeout - timeout = setTimeout(function() { + timeout = setTimeout(function () { // Inside the timeout function, clear the timeout variable // which will let the next execution run when in 'immediate' mode timeout = null; @@ -366,6 +368,8 @@ export function getMomentLanguage(): string { lang = 'ja'; } else if (lang.startsWith('ka')) { lang = 'ka'; + } else if (lang.startsWith('hi')) { + lang = 'hi'; } else { lang = 'en'; } diff --git a/ui/translations/hi.json b/ui/translations/hi.json new file mode 100644 index 00000000000..0db3279e44b --- /dev/null +++ b/ui/translations/hi.json @@ -0,0 +1,3 @@ +{ + +} From ec087ce28aab5211828f5e212dce9a581922f450 Mon Sep 17 00:00:00 2001 From: Sylvia Ji Date: Sat, 2 May 2020 01:52:15 +0000 Subject: [PATCH 19/96] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (237 of 237 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/zh_Hans/ Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (237 of 237 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/zh_Hans/ --- ui/translations/zh.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ui/translations/zh.json b/ui/translations/zh.json index e4b543627f9..afe754ba04f 100644 --- a/ui/translations/zh.json +++ b/ui/translations/zh.json @@ -122,7 +122,7 @@ "code": "代码", "joined": "已加入", "powered_by": "保留所有权利", - "landing_0": "Lemmy is a <1>link aggregator / reddit alternative, intended to work in the <2>fediverse.<3>It's self-hostable, has live-updating comment threads, and is tiny (<4>~80kB). Federation into the ActivityPub network is on the roadmap. <5>This is a <6>very early beta version, and a lot of features are currently broken or missing. <7>Suggest new features or report bugs <8>here.<9>Made with <10>Rust, <11>Actix, <12>Inferno, <13>Typescript.", + "landing": "Lemmy是一个 <1>链接聚合器 / reddit的替代选择,为在<2>fediverse上使用而设计。<3>它支持自托管, 提供实时更新的讨论串, 并且十分轻量 (<4>约80kB)。对ActivityPub网络的联邦整合已经在规划之中。<5>这是一个<6>非常早期的beta版本,许多功能还不能使用或还未开发完成。 <7>请到 <8>这里提出新功能或报告bug。<9>由<10>Rust、 <11>Actix、<12>Inferno、<13>Typescript写成。", "not_logged_in": "未登录.", "community_ban": "你已被此社群拉黑。", "site_ban": "你已被本站拉黑", @@ -213,7 +213,7 @@ "private_message_disclaimer": "警告:Lemmy的私信功能并不安全。想要进行安全的信息传递,请在 <1>Riot.im上创建账号。", "send_notifications_to_email": "向邮箱发送通知", "language": "语言", - "browser_default": "默认浏览器", + "browser_default": "浏览器默认语言", "downvotes_disabled": "点踩功能已禁用", "enable_downvotes": "启用点踩功能", "upvote": "点赞", From 915fe79d7a7cc536c39a1f88b940fefc54c00980 Mon Sep 17 00:00:00 2001 From: dessalines Date: Sat, 2 May 2020 01:52:15 +0000 Subject: [PATCH 20/96] Added translation using Weblate (Hindi) --- ui/translations/hi.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 ui/translations/hi.json diff --git a/ui/translations/hi.json b/ui/translations/hi.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/ui/translations/hi.json @@ -0,0 +1 @@ +{} From 0d08cf36f8d33d9f6b27990f10ffeb66a50e3636 Mon Sep 17 00:00:00 2001 From: Nishant Aswani Date: Sun, 3 May 2020 17:03:25 +0000 Subject: [PATCH 21/96] Translated using Weblate (Hindi) Currently translated at 16.8% (41 of 243 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/hi/ Translated using Weblate (Hindi) Currently translated at 4.5% (11 of 243 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/hi/ --- ui/translations/hi.json | 47 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/ui/translations/hi.json b/ui/translations/hi.json index 0967ef424bc..912a7d43bb8 100644 --- a/ui/translations/hi.json +++ b/ui/translations/hi.json @@ -1 +1,46 @@ -{} +{ + "create_a_post": "पोस्ट बनाएँ", + "create_post": "पोस्ट बनाएँ", + "posts": "पोस्ट", + "unlock": "ताला खोलें", + "avatar": "अवतार", + "upload_image": "फ़ोटो अपलोड करें", + "comments": "टिप्पणी (कमेंट )", + "remove_comment": "टिप्पणी हटाएँ (कमेंट हटाएँ)", + "upload_avatar": "अवतार अपलोड करें", + "post": "पोस्ट", + "remove_post": "पोस्ट हटाएँ", + "number_of_posts": "{{count}} पोस्ट", + "number_of_posts_plural": "{{count}} पोस्ट्स", + "cross_posts": "यह लिंक अन्य स्थान पर भी पोस्ट किया गया हैं :", + "related_posts": "यह पोस्ट्स संबंधित हो सकते हैं |", + "number_of_comments": "{{ count }} टिप्पणी (कमेंट )", + "number_of_comments_plural": "{{ count }} टिप्पणियाँ (कोम्मेंट्स )", + "communities": "सामुदायिक", + "users": "उपयोगकर्ता", + "create_a_community": "समुदाय बनाएँ", + "create_community": "समुदाय बनाएँ", + "remove_community": "समुदाय हटाएँ", + "list_of_communities": "समुदायों की सूची", + "create_private_message": "निजी संदेश बनाएँ", + "send_secure_message": "सुरक्षित संदेश भेजें", + "send_message": "संदेश भेजें", + "message": "संदेश", + "edit": "संपादित करें ( एडिट करें )", + "reply": "जवाब दें", + "more": "और भी", + "cancel": "रद्द करें", + "preview": "पूर्वावलोकन करें", + "show_avatars": "अवतार दिखाएँ", + "show_context": "संदर्भ दिखाएँ", + "community": "समुदाय", + "number_of_communities": "{{count}} समुदाय", + "number_of_communities_plural": "{{count}} समुदाय", + "community_reqs": "छोटे अक्षर, अंडरस्कोर, और कोई रिक्त स्थान नहीं |", + "forgot_password": "पासवर्ड भूल गए", + "no_posts": "कोई पोस्ट नहीं |", + "community_already_exists": "यह समुदाय पहले स मौजूद है |", + "couldnt_create_comment": "टिप्पणी (कमेंट) नहीं बना पाईं |", + "couldnt_find_community": "समुदायों नहीं ढूंढ़ पाएं |", + "couldnt_find_post": "पोस्ट नहीं ढूंढ़ पाएं |" +} From 2f7a4ecdb297fd67717d16b1ea88ca6936edefa7 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 3 May 2020 17:25:55 -0400 Subject: [PATCH 22/96] Updating Cargo deps. Fixes #666 --- server/Cargo.lock | 137 ++++++++++++++++++++++++++++------------------ server/Cargo.toml | 14 ++--- 2 files changed, 91 insertions(+), 60 deletions(-) diff --git a/server/Cargo.lock b/server/Cargo.lock index a83f65935df..b4c995265c8 100644 --- a/server/Cargo.lock +++ b/server/Cargo.lock @@ -10,7 +10,7 @@ dependencies = [ "activitystreams-types 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -29,7 +29,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "thiserror 1.0.15 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -44,7 +44,7 @@ dependencies = [ "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -53,7 +53,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix_derive 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -65,7 +65,7 @@ dependencies = [ "parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "trust-dns-proto 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)", "trust-dns-resolver 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -81,7 +81,7 @@ dependencies = [ "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -91,7 +91,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -129,7 +129,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-connect 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "actix-threadpool 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", @@ -142,7 +142,7 @@ dependencies = [ "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", "encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "flate2 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)", "futures-channel 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-core 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -161,7 +161,7 @@ dependencies = [ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -191,7 +191,7 @@ dependencies = [ [[package]] name = "actix-rt" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -199,7 +199,8 @@ dependencies = [ "copyless 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-channel 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "futures-util 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "smallvec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -208,7 +209,7 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -235,7 +236,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-server 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -263,7 +264,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "actix-utils 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -278,7 +279,7 @@ version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -298,7 +299,7 @@ dependencies = [ "actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-router 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-server 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "actix-testing 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -318,7 +319,7 @@ dependencies = [ "pin-project 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -442,7 +443,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "actix-codec 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -453,7 +454,7 @@ dependencies = [ "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -477,6 +478,15 @@ dependencies = [ "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "base64" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "base64" version = "0.10.1" @@ -497,7 +507,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "bcrypt" -version = "0.6.3" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -669,7 +679,7 @@ dependencies = [ "rust-ini 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", "serde-hjson 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", "yaml-rust 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -887,15 +897,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "email" -version = "0.0.21" +version = "0.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ - "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -993,7 +1004,7 @@ dependencies = [ [[package]] name = "failure" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "backtrace 0.3.46 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1194,7 +1205,7 @@ dependencies = [ "indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1363,7 +1374,7 @@ dependencies = [ "pem 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "ring 0.16.12 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "simple_asn1 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -1398,10 +1409,10 @@ dependencies = [ "activitypub 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-files 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "actix-web 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "actix-web-actors 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bcrypt 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", + "bcrypt 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", "comrak 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "config 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1409,7 +1420,7 @@ dependencies = [ "diesel_migrations 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "dotenv 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "hjson 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", "htmlescape 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1417,18 +1428,18 @@ dependencies = [ "jsonwebtoken 7.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "lettre 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", - "lettre_email 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", + "lettre_email 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "rss 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "sha2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "strum 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", "strum_macros 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1445,16 +1456,16 @@ dependencies = [ "nom 4.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "lettre_email" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "email 0.0.21 (registry+https://github.com/rust-lang/crates.io-index)", + "email 0.0.20 (registry+https://github.com/rust-lang/crates.io-index)", "lettre 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1951,6 +1962,18 @@ dependencies = [ "scheduled-thread-pool 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "rand" version = "0.6.5" @@ -2198,6 +2221,11 @@ name = "ryu" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "safemem" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "schannel" version = "0.1.18" @@ -2314,7 +2342,7 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.51" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "indexmap 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2574,7 +2602,7 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.18" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "bytes 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2602,7 +2630,7 @@ dependencies = [ "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2615,7 +2643,7 @@ dependencies = [ "futures-sink 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "pin-project-lite 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -2633,7 +2661,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "async-trait 0.1.30 (registry+https://github.com/rust-lang/crates.io-index)", "enum-as-inner 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2641,7 +2669,7 @@ dependencies = [ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "url 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2651,7 +2679,7 @@ version = "0.18.0-alpha.2" source = "registry+https://github.com/rust-lang/crates.io-index" dependencies = [ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "failure 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "futures 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", "ipconfig 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2659,7 +2687,7 @@ dependencies = [ "lru-cache 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", "resolv-conf 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", "smallvec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", + "tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)", "trust-dns-proto 0.18.0-alpha.2 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -2962,7 +2990,7 @@ dependencies = [ "checksum actix-http 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c16664cc4fdea8030837ad5a845eb231fb93fc3c5c171edfefb52fad92ce9019" "checksum actix-macros 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21705adc76bbe4bc98434890e73a89cd00c6015e5704a60bb6eea6c3b72316b6" "checksum actix-router 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "9d7a10ca4d94e8c8e7a87c5173aba1b97ba9a6563ca02b0e1cd23531093d3ec8" -"checksum actix-rt 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "20066d9200ef8d441ac156c76dd36c3f1e9a15976c34e69ae97f7f570b331882" +"checksum actix-rt 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227" "checksum actix-server 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "582a7173c281a4f46b5aa168a11e7f37183dcb71177a39312cc2264da7a632c9" "checksum actix-service 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d3e4fc95dfa7e24171b2d0bb46b85f8ab0e8499e4e3caec691fc4ea65c287564" "checksum actix-testing 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "48494745b72d0ea8ff0cf874aaf9b622a3ee03d7081ee0c04edea4f26d32c911" @@ -2990,7 +3018,8 @@ dependencies = [ "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" "checksum base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" "checksum base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5ca2cd0adc3f48f9e9ea5a6bbdf9ccc0bfade884847e484d452414c7ccffb3" -"checksum bcrypt 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f055c8591efe08e03f534ee632672ea3643c3932e485f422107ec6cc1157b0ea" +"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" +"checksum bcrypt 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6f02d7d008a57bcb2251ba115b803934e02315edbde9a861c88713493e381b63" "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" "checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" "checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" @@ -3034,7 +3063,7 @@ dependencies = [ "checksum dtoa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0dd841b58510c9618291ffa448da2e4e0f699d984d436122372f446dae62263d" "checksum dtoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" "checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" -"checksum email 0.0.21 (registry+https://github.com/rust-lang/crates.io-index)" = "65360503b8831670969621be3d3814c4c7be44c642de11f8c0f5aaa01f057b3e" +"checksum email 0.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "91549a51bb0241165f13d57fc4c72cef063b4088fb078b019ecbf464a45f22e4" "checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec" "checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91" "checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81" @@ -3046,7 +3075,7 @@ dependencies = [ "checksum entities 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca" "checksum enum-as-inner 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bc4bfcfacb61d231109d1d55202c1f33263319668b168843e02ad4652725ec9c" "checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" -"checksum failure 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b8529c2421efa3066a5cbd8063d2244603824daccb6936b079010bb2aa89464b" +"checksum failure 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" "checksum failure_derive 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "030a733c8287d6213886dd487564ff5c8f6aae10278b3588ed177f9d18f8d231" "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" "checksum fast_chemail 0.9.6 (registry+https://github.com/rust-lang/crates.io-index)" = "495a39d30d624c2caabe6312bfead73e7717692b44e0b32df168c275a2e8e9e4" @@ -3094,7 +3123,7 @@ dependencies = [ "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" "checksum lettre 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bf43f3202a879fbdab4ecafec3349b0139f81d31c626246d53bcbb546253ffaa" -"checksum lettre_email 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b1c03656b85bea745db40d9e82a8a0c7236e0171dcdf1b98e95916956ec993f1" +"checksum lettre_email 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fd02480f8dcf48798e62113974d6ccca2129a51d241fa20f1ea349c8a42559d5" "checksum lexical-core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d7043aa5c05dd34fb73b47acb8c3708eac428de4545ea3682ed2f11293ebd890" "checksum libc 0.2.69 (registry+https://github.com/rust-lang/crates.io-index)" = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" "checksum libnghttp2-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b359f5ec8106bc297694c9a562ace312be2cfd17a5fc68dc12249845aa144b11" @@ -3154,6 +3183,7 @@ dependencies = [ "checksum quick-xml 0.17.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fe1e430bdcf30c9fdc25053b9c459bb1a4672af4617b6c783d7d91dc17c6bbb0" "checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" "checksum r2d2 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "1497e40855348e4a8a40767d8e55174bce1e445a3ac9254ad44ad468ee0485af" +"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" "checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" @@ -3183,6 +3213,7 @@ dependencies = [ "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda" "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" "checksum ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76" +"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" "checksum schannel 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "039c25b130bd8c1321ee2d7de7fde2659fa9c2744e4bb29711cfc852ea53cd19" "checksum scheduled-thread-pool 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "0988d7fdf88d5e5fcf5923a0f1e8ab345f3e98ab4bc6bc45a2d5ff7f7458fbf6" "checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" @@ -3196,7 +3227,7 @@ dependencies = [ "checksum serde-hjson 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" "checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" "checksum serde_json 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "67f7d2e9edc3523a9c8ec8cd6ec481b3a27810aafee3e625d311febd3e656b4c" -"checksum serde_json 1.0.51 (registry+https://github.com/rust-lang/crates.io-index)" = "da07b57ee2623368351e9a0488bb0b261322a15a6e0ae53e243cbdc0f4208da9" +"checksum serde_json 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)" = "a7894c8ed05b7a3a279aeb79025fdec1d3158080b75b98a08faf2806bb799edd" "checksum serde_test 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "110b3dbdf8607ec493c22d5d947753282f3bae73c0f56d322af1e8c78e4c23d5" "checksum serde_urlencoded 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" "checksum sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" @@ -3227,7 +3258,7 @@ dependencies = [ "checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" "checksum threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865" "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" -"checksum tokio 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "34ef16d072d2b6dc8b4a56c70f5c5ced1a37752116f8e7c1e80c659aa7cb6713" +"checksum tokio 0.2.20 (registry+https://github.com/rust-lang/crates.io-index)" = "05c1d570eb1a36f0345a5ce9c6c6e665b70b73d11236912c0b477616aeec47b1" "checksum tokio-util 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930" "checksum tokio-util 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499" "checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" diff --git a/server/Cargo.toml b/server/Cargo.toml index e15e90bf25f..dafef8b6a47 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -8,17 +8,17 @@ edition = "2018" diesel = { version = "1.4.2", features = ["postgres","chrono", "r2d2", "64-column-tables"] } diesel_migrations = "1.4.0" dotenv = "0.15.0" -bcrypt = "0.6.2" +bcrypt = "0.7.0" activitypub = "0.2.0" chrono = { version = "0.4.7", features = ["serde"] } -failure = "0.1.5" -serde_json = { version = "1.0.48", features = ["preserve_order"]} +failure = "0.1.8" +serde_json = { version = "1.0.52", features = ["preserve_order"]} serde = { version = "1.0.105", features = ["derive"] } actix = "0.9.0" actix-web = "2.0.0" actix-files = "0.2.1" actix-web-actors = "2.0.0" -actix-rt = "1.0.0" +actix-rt = "1.1.1" log = "0.4.0" env_logger = "0.7.1" rand = "0.7.3" @@ -27,8 +27,8 @@ strum_macros = "0.18.0" jsonwebtoken = "7.0.1" regex = "1.3.5" lazy_static = "1.3.0" -lettre = "0.9.2" -lettre_email = "0.9.2" +lettre = "0.9.3" +lettre_email = "0.9.4" sha2 = "0.8.1" rss = "1.9.0" htmlescape = "0.3.1" @@ -37,5 +37,5 @@ hjson = "0.8.2" percent-encoding = "2.1.0" isahc = "0.9" comrak = "0.7" -tokio = "0.2.18" +tokio = "0.2.20" futures = "0.3.4" From 88e1251d6b26411e4253027510e59a06caa72bfe Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 3 May 2020 17:27:25 -0400 Subject: [PATCH 23/96] Version v0.6.56 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index e6cf23a8a18..e4ba2634ed6 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.55 +v0.6.56 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index 65bc9f821d9..b929110dac8 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.55 + image: dessalines/lemmy:v0.6.56 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index 72b91db50b6..8d9dc0fca0e 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.55"; +pub const VERSION: &str = "v0.6.56"; diff --git a/ui/src/version.ts b/ui/src/version.ts index 273c97cd3f7..0d99a2004b7 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.55'; +export const version: string = 'v0.6.56'; From d96c66ba9f35b3646aada116665d50f99e49ca37 Mon Sep 17 00:00:00 2001 From: Andre Vallestero Date: Wed, 6 May 2020 20:40:36 -0400 Subject: [PATCH 24/96] Thumbnail generation for iframely incompatible sources --- server/src/lib.rs | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/server/src/lib.rs b/server/src/lib.rs index 79a1437e7bb..1c24f0b4c89 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -185,6 +185,7 @@ pub fn fetch_pictshare(image_url: &str) -> Result, ) { // Fetch iframely data - let (iframely_title, iframely_description, iframely_thumbnail_url, iframely_html) = match url { - Some(url) => match fetch_iframely(&url) { + let (iframely_title, iframely_description, iframely_thumbnail_url, iframely_html) = match &url { + Some(url) => match fetch_iframely(url) { Ok(res) => (res.title, res.description, res.thumbnail_url, res.html), Err(e) => { error!("iframely err: {}", e); @@ -218,7 +219,22 @@ fn fetch_iframely_and_pictshare_data( None } }, - None => None, + + None => match url { + Some(url) => match fetch_pictshare(&url) { + // Try to generate a small thumbnail if iframely is not supported + Ok(res) => { + let mut split_url: Vec<&str> = res.url.split("/").collect(); + split_url.insert(split_url.len() - 1, "192"); + Some(split_url.join("/")) + } + Err(e) => { + error!("pictshare err: {}", e); + None + } + }, + None => None, + }, }; ( From 243dda543cff0015132f8f0cc464a21a4162b096 Mon Sep 17 00:00:00 2001 From: Andre Vallestero Date: Wed, 6 May 2020 20:46:00 -0400 Subject: [PATCH 25/96] Removed debug line --- server/src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/src/lib.rs b/server/src/lib.rs index 1c24f0b4c89..f7d2b0e9468 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -185,7 +185,6 @@ pub fn fetch_pictshare(image_url: &str) -> Result match fetch_pictshare(&url) { // Try to generate a small thumbnail if iframely is not supported Ok(res) => { - let mut split_url: Vec<&str> = res.url.split("/").collect(); + let mut split_url: Vec<&str> = res.url.split('/').collect(); split_url.insert(split_url.len() - 1, "192"); Some(split_url.join("/")) } From bc8ad12b04a501bf670cc541b20282a791a3aac4 Mon Sep 17 00:00:00 2001 From: Andre Vallestero Date: Thu, 7 May 2020 21:26:08 -0400 Subject: [PATCH 26/96] Added externally hosted UI thumbnail support --- ui/src/components/post-listing.tsx | 33 ++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/ui/src/components/post-listing.tsx b/ui/src/components/post-listing.tsx index d0efa043722..36a1e2828dc 100644 --- a/ui/src/components/post-listing.tsx +++ b/ui/src/components/post-listing.tsx @@ -150,9 +150,9 @@ export class PostListing extends Component { let post = this.props.post; return ( ); @@ -163,6 +163,8 @@ export class PostListing extends Component { if (isImage(post.url)) { if (post.url.includes('pictshare')) { return pictshareImage(post.url, thumbnail); + } else if (post.thumbnail_url) { + return pictshareImage(post.thumbnail_url, thumbnail); } else { return post.url; } @@ -542,8 +544,9 @@ export class PostListing extends Component { } > @@ -586,8 +589,9 @@ export class PostListing extends Component { } > @@ -618,8 +622,9 @@ export class PostListing extends Component { data-tippy-content={i18n.t('view_source')} > @@ -639,8 +644,9 @@ export class PostListing extends Component { } > @@ -657,8 +663,9 @@ export class PostListing extends Component { } > From ffcbb7613e96b96f1a15963816106ba6c4c42943 Mon Sep 17 00:00:00 2001 From: Andre Vallestero Date: Thu, 7 May 2020 21:30:23 -0400 Subject: [PATCH 27/96] Added additional check for pictshare thumbnail --- ui/src/components/post-listing.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/src/components/post-listing.tsx b/ui/src/components/post-listing.tsx index 36a1e2828dc..c1480f79f15 100644 --- a/ui/src/components/post-listing.tsx +++ b/ui/src/components/post-listing.tsx @@ -163,7 +163,10 @@ export class PostListing extends Component { if (isImage(post.url)) { if (post.url.includes('pictshare')) { return pictshareImage(post.url, thumbnail); - } else if (post.thumbnail_url) { + } else if ( + post.thumbnail_url && + post.thumbnail_url.includes('pictshare') + ) { return pictshareImage(post.thumbnail_url, thumbnail); } else { return post.url; From 38381ba2878f481dbba387cced3f3ac693a33fd3 Mon Sep 17 00:00:00 2001 From: Andre Vallestero Date: Thu, 7 May 2020 21:33:47 -0400 Subject: [PATCH 28/96] Removed hardcoded thumbnail value --- server/src/lib.rs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/server/src/lib.rs b/server/src/lib.rs index f7d2b0e9468..5566ca69b17 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -222,11 +222,7 @@ fn fetch_iframely_and_pictshare_data( None => match url { Some(url) => match fetch_pictshare(&url) { // Try to generate a small thumbnail if iframely is not supported - Ok(res) => { - let mut split_url: Vec<&str> = res.url.split('/').collect(); - split_url.insert(split_url.len() - 1, "192"); - Some(split_url.join("/")) - } + Ok(res) => Some(res.url), Err(e) => { error!("pictshare err: {}", e); None From 2fab9b5b9b0cea1e1bfa2ef6ca91b19fc153a15f Mon Sep 17 00:00:00 2001 From: Sylvia Ji Date: Fri, 8 May 2020 15:35:19 +0000 Subject: [PATCH 29/96] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (237 of 237 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/zh_Hans/ --- ui/translations/zh.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/ui/translations/zh.json b/ui/translations/zh.json index afe754ba04f..1406287bdc5 100644 --- a/ui/translations/zh.json +++ b/ui/translations/zh.json @@ -100,9 +100,9 @@ "url": "网址", "body": "内容", "copy_suggested_title": "复制建议的标题: {{title}}", - "community": "节点", + "community": "社群", "expand_here": "展开", - "subscribe_to_communities": "订阅一些 <1>节点.", + "subscribe_to_communities": "订阅一些 <1>社群.", "chat": "聊天", "no_results": "没有结果.", "setup": "设置", @@ -126,19 +126,19 @@ "not_logged_in": "未登录.", "community_ban": "你已被此社群拉黑。", "site_ban": "你已被本站拉黑", - "couldnt_create_comment": "不能创建评论.", + "couldnt_create_comment": "无法创建评论。", "couldnt_like_comment": "无法点赞评论。", - "couldnt_update_comment": "不能更新评论.", - "couldnt_save_comment": "不能保存评论.", + "couldnt_update_comment": "无法更新评论。", + "couldnt_save_comment": "无法保存评论。", "no_comment_edit_allowed": "没有编辑评论的权限。", "no_post_edit_allowed": "没有编辑帖子的权限。", - "no_community_edit_allowed": "没有编辑节点的权限。", - "couldnt_find_community": "无法找到节点。", - "couldnt_update_community": "无法更新节点。", - "community_already_exists": "节点已存在。", - "community_moderator_already_exists": "节点监管人已存在。", - "community_follower_already_exists": "节点追随者已存在。", - "community_user_already_banned": "节点用户已禁止。", + "no_community_edit_allowed": "没有编辑社群的权限。", + "couldnt_find_community": "无法找到社群。", + "couldnt_update_community": "无法更新社群。", + "community_already_exists": "社群已存在。", + "community_moderator_already_exists": "社群监管人已存在。", + "community_follower_already_exists": "社群关注者已存在。", + "community_user_already_banned": "社群用户已被禁止。", "couldnt_create_post": "无法创建帖子。", "couldnt_like_post": "无法点赞帖子。", "couldnt_find_post": "无法找到帖子。", @@ -224,7 +224,7 @@ "registration_closed": "注册功能已关闭", "recent_comments": "最新评论", "by": "来自", - "transfer_community": "节点转让", + "transfer_community": "转让社群", "transfer_site": "站点转让", "post_title_too_long": "帖子标题过长。", "couldnt_get_comments": "无法获取评论。", From a2674437773fa8cbabc6e763c49e1d5f65aa66ec Mon Sep 17 00:00:00 2001 From: Nishant Aswani Date: Fri, 8 May 2020 15:35:19 +0000 Subject: [PATCH 30/96] Translated using Weblate (Hindi) Currently translated at 25.1% (61 of 243 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/hi/ --- ui/translations/hi.json | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/ui/translations/hi.json b/ui/translations/hi.json index 912a7d43bb8..84d5007a512 100644 --- a/ui/translations/hi.json +++ b/ui/translations/hi.json @@ -42,5 +42,25 @@ "community_already_exists": "यह समुदाय पहले स मौजूद है |", "couldnt_create_comment": "टिप्पणी (कमेंट) नहीं बना पाईं |", "couldnt_find_community": "समुदायों नहीं ढूंढ़ पाएं |", - "couldnt_find_post": "पोस्ट नहीं ढूंढ़ पाएं |" + "couldnt_find_post": "पोस्ट नहीं ढूंढ़ पाएं |", + "trending_communities": "अभी प्रचलित <1>समुदाय", + "formatting_help": "स्वरूपण सहायता", + "view_source": "स्रोत देखें", + "lock": "बंद करें", + "link": "लिंक", + "mods": "मध्यस्थों", + "settings": "समायोजन (सेटिंग्स)", + "site_config": "साइड कॉन्फ़िगरेशन", + "appoint_as_mod": "मध्यथ के रूप में नियुक्त करें", + "admin": "प्रशासक", + "remove": "हटाएँ", + "removed": "हटाए गए", + "locked": "बंद", + "reason": "कारण", + "mod": "मध्यस्थ", + "admin_settings": "प्रशासक समायोजन (सेटिंग्स)", + "remove_as_mod": "मध्यथ के स्थान से हटाएँ", + "admins": "प्रशासकों", + "remove_as_admin": "प्रशासक के स्थान से हटाएँ", + "appoint_as_admin": "प्रशासक के रूप में नियुक्त करें" } From c836fa691295604ebb464fda8d47124f907a2262 Mon Sep 17 00:00:00 2001 From: 6r6 Date: Fri, 8 May 2020 15:35:19 +0000 Subject: [PATCH 31/96] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (237 of 237 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/zh_Hans/ --- ui/translations/zh.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ui/translations/zh.json b/ui/translations/zh.json index 1406287bdc5..872d0b51fbf 100644 --- a/ui/translations/zh.json +++ b/ui/translations/zh.json @@ -1,5 +1,5 @@ { - "post": "帖子", + "post": "回帖", "remove_post": "移除帖子", "no_posts": "没有帖子。", "create_a_post": "创建新帖子", @@ -159,11 +159,11 @@ "nsfw": "工作场所不宜", "show_nsfw": "显示工作场所不宜内容", "theme": "主题", - "from": "来自", + "from": "由", "donate_to_lemmy": "向Lemmy捐赠", "donate": "捐赠", "monero": "门罗币", - "to": "致", + "to": "发布到", "are_you_sure": "你确定吗?", "yes": "是", "no": "否", @@ -223,7 +223,7 @@ "open_registration": "开放注册", "registration_closed": "注册功能已关闭", "recent_comments": "最新评论", - "by": "来自", + "by": "由", "transfer_community": "转让社群", "transfer_site": "站点转让", "post_title_too_long": "帖子标题过长。", From f3fa6c1fc0828aeb99f782d9de19afe867671dbb Mon Sep 17 00:00:00 2001 From: Nika Tskhakaia Date: Fri, 8 May 2020 15:35:19 +0000 Subject: [PATCH 32/96] Translated using Weblate (Georgian) Currently translated at 90.9% (221 of 243 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/ka/ --- ui/translations/ka.json | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/ui/translations/ka.json b/ui/translations/ka.json index ebda8982ea2..af967263f75 100644 --- a/ui/translations/ka.json +++ b/ui/translations/ka.json @@ -221,5 +221,27 @@ "couldnt_like_post": "პოსტის მოწონება ვერ მოხერხდა.", "community_moderator_already_exists": "ამ თემის მოდერატორი უკვე არსებობს.", "couldnt_create_post": "პოსტი ვერ შეიქმნა.", - "post_title_too_long": "პოსტის სათაური ძალიან გრძელია." + "post_title_too_long": "პოსტის სათაური ძალიან გრძელია.", + "admin_settings": "ადმინი პარამეტრები", + "site_config": "საიტის კონფიგურაცია", + "banned_users": "გაშავებული მომხმარებლები", + "support_on_open_collective": "Support on OpenCollective", + "site_saved": "Site Saved.", + "couldnt_find_post": "პოსტი ვერ მოიძებნა.", + "couldnt_get_posts": "პოსტები არ არის.", + "couldnt_update_post": "პოსტი ვერ განახლდა", + "couldnt_save_post": "პოსტის დასეივება ვერ მოხერხდა.", + "monero": "Monero", + "no_slurs": "No slurs.", + "not_an_admin": "ადმინი არ არის", + "site_already_exists": "Site already exists.", + "couldnt_update_site": "Couldn't update site.", + "couldnt_find_that_username_or_email": "სახელი ან ელ-პოსტა ვერ მოიძებნა.", + "password_incorrect": "პაროლი არასწორია .", + "passwords_dont_match": "პაროლები იგივი არ არის.", + "admin_already_created": "ადმინი უკვე არსებობს.", + "user_already_exists": "მომხმარებელი უკვე არსებობს.", + "email_already_exists": "ელ-პოსტა უკვე არსებობს.", + "couldnt_update_user": "მომხმარებლის განახლება ვერ მოხერხდა.", + "system_err_login": "ერორი. თავიდან შემოსვლა ცადეთ." } From 2db6f35b7c961c50f2320dea6ea71eeecf60f824 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 8 May 2020 13:36:52 -0400 Subject: [PATCH 33/96] Removing button wrapper for comment context. Fixes #702 --- ui/src/components/comment-node.tsx | 48 ++++++++++++++++-------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/ui/src/components/comment-node.tsx b/ui/src/components/comment-node.tsx index ba4301e169a..4a063307c1a 100644 --- a/ui/src/components/comment-node.tsx +++ b/ui/src/components/comment-node.tsx @@ -142,9 +142,11 @@ export class CommentNode extends Component { } >
      @@ -249,8 +251,9 @@ export class CommentNode extends Component { this.loadingIcon ) : ( @@ -302,8 +305,9 @@ export class CommentNode extends Component { this.loadingIcon ) : ( @@ -350,8 +354,9 @@ export class CommentNode extends Component { data-tippy-content={i18n.t('view_source')} > @@ -380,8 +385,9 @@ export class CommentNode extends Component { } > @@ -700,19 +706,15 @@ export class CommentNode extends Component { get linkBtn() { let node = this.props.node; return ( - + + + + + ); } From 9bc45def17a16d383d0909fb61a4b928504950f5 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 8 May 2020 13:36:52 -0400 Subject: [PATCH 34/96] Removing button wrapper for comment context. Fixes #702 --- ui/src/components/comment-node.tsx | 48 ++++++++++++++++-------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/ui/src/components/comment-node.tsx b/ui/src/components/comment-node.tsx index ba4301e169a..4a063307c1a 100644 --- a/ui/src/components/comment-node.tsx +++ b/ui/src/components/comment-node.tsx @@ -142,9 +142,11 @@ export class CommentNode extends Component { } >
      @@ -249,8 +251,9 @@ export class CommentNode extends Component { this.loadingIcon ) : ( @@ -302,8 +305,9 @@ export class CommentNode extends Component { this.loadingIcon ) : ( @@ -350,8 +354,9 @@ export class CommentNode extends Component { data-tippy-content={i18n.t('view_source')} > @@ -380,8 +385,9 @@ export class CommentNode extends Component { } > @@ -700,19 +706,15 @@ export class CommentNode extends Component { get linkBtn() { let node = this.props.node; return ( - + + + + + ); } From e6717c86acd3156c04355a0797dc0c802d87ea6b Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 8 May 2020 14:02:06 -0400 Subject: [PATCH 35/96] Adding support for webp images on the front end. Fixes #703 --- ui/src/utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/utils.ts b/ui/src/utils.ts index 2256a0c135b..f18d996e89b 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -210,7 +210,7 @@ export function isMod(modIds: Array, creator_id: number): boolean { } const imageRegex = new RegExp( - /(http)?s?:?(\/\/[^"']*\.(?:jpg|jpeg|gif|png|svg))/ + /(http)?s?:?(\/\/[^"']*\.(?:jpg|jpeg|gif|png|svg|webp))/ ); const videoRegex = new RegExp(`(http)?s?:?(\/\/[^"']*\.(?:mp4))`); From b83aae0b57f79f89c34d7dc9c3433fec64255e18 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 8 May 2020 14:08:35 -0400 Subject: [PATCH 36/96] Version v0.6.57 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index e4ba2634ed6..5bcdabb8afb 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.56 +v0.6.57 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index b929110dac8..6155ce3a1de 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.56 + image: dessalines/lemmy:v0.6.57 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index 8d9dc0fca0e..05bc0d29f43 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.56"; +pub const VERSION: &str = "v0.6.57"; diff --git a/ui/src/version.ts b/ui/src/version.ts index 0d99a2004b7..91711bb0926 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.56'; +export const version: string = 'v0.6.57'; From ade1d354633be545b20e131beedf9f8ebb0485a7 Mon Sep 17 00:00:00 2001 From: Eugeny Date: Sun, 10 May 2020 14:29:49 +0000 Subject: [PATCH 37/96] Translated using Weblate (Russian) Currently translated at 96.7% (235 of 243 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/ru/ Translated using Weblate (Russian) Currently translated at 95.4% (232 of 243 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/ru/ --- ui/translations/ru.json | 43 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/ui/translations/ru.json b/ui/translations/ru.json index 5de4a829942..8935763f5c0 100644 --- a/ui/translations/ru.json +++ b/ui/translations/ru.json @@ -58,9 +58,15 @@ "create": "создать", "username": "Имя пользователя", "email_or_username": "Электронная почта или имя пользователя", - "number_of_users": "{{count}} пользователей", - "number_of_subscribers": "{{count}} подписчиков", - "number_of_points": "{{count}} баллов", + "number_of_users_0": "{{count}} пользователь", + "number_of_users_1": "{{count}} пользователя", + "number_of_users_2": "{{count}} пользователей", + "number_of_subscribers_0": "{{count}} подписчик", + "number_of_subscribers_1": "{{count}} подписчика", + "number_of_subscribers_2": "{{count}} подписчиков", + "number_of_points_0": "{{count}} балл", + "number_of_points_1": "{{count}} балла", + "number_of_points_2": "{{count}} баллов", "name": "Имя", "title": "Название", "category": "Категория", @@ -170,7 +176,7 @@ "avatar": "Аватар", "show_avatars": "Показать Аватары", "formatting_help": "Помощь в верстке текста", - "sticky": "", + "sticky": "приклеить", "stickied": "закрепленный пост", "delete_account": "Удалить аккаунт", "delete_account_confirm": "Предупреждение: это действие полностью уничтожит все данные вашего аккаунта. Введите свой пароль для подтверждения.", @@ -214,5 +220,32 @@ "number_of_communities_2": "{{count}} сообществ", "creator": "автор", "old": "Старое", - "to": "в" + "to": "в", + "admin_settings": "Настройки админа", + "banned_users": "Забаненные Пользователи", + "support_on_open_collective": "Поддержка на OpenCollective", + "site_saved": "Сайт Сохранен.", + "enable_nsfw": "Включить NSFW", + "donate": "Пожертвование", + "unsticky": "отклеить", + "site_config": "Конфигурация сайта", + "banned": "забаненный", + "password_change": "Смена пароля", + "no_email_setup": "Этот сервер неправильно настроил электронную почту.", + "matrix_user_id": "Матрица пользователя", + "are_you_sure": "вы уверены?", + "archive_link": "архивировать ссылку", + "logged_in": "Войти в систему.", + "couldnt_get_comments": "Не удалось получить комментарии.", + "from": "от", + "transfer_site": "трансфер сайт", + "show_context": "Показать контекст", + "email_already_exists": "E-mail уже существует.", + "couldnt_create_private_message": "Не удалось создать личное сообщение.", + "no_private_message_edit_allowed": "Не разрешается редактировать личное сообщение.", + "couldnt_update_private_message": "Не удалось обновить личное сообщение.", + "block_leaving": "Вы уверены, что хотите покинуть?", + "number_online_0": "{{count}} Пользователь онлайн", + "number_online_1": "{{count}} Пользователя онлайн", + "number_online_2": "{{count}} Пользователей онлайн" } From c76b91d595f72cec6bff26c9a4defab5b428aaa7 Mon Sep 17 00:00:00 2001 From: Richie Zhang Date: Sun, 10 May 2020 14:29:49 +0000 Subject: [PATCH 38/96] Translated using Weblate (French) Currently translated at 97.9% (238 of 243 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/fr/ Translated using Weblate (German) Currently translated at 98.3% (239 of 243 strings) Translation: Lemmy/lemmy Translate-URL: http://weblate.yerbamate.dev/projects/lemmy/lemmy/de/ --- ui/translations/de.json | 11 ++++++++++- ui/translations/fr.json | 32 ++++++++++++++++++++++++-------- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/ui/translations/de.json b/ui/translations/de.json index 46719c18646..bb85dd1e04b 100644 --- a/ui/translations/de.json +++ b/ui/translations/de.json @@ -235,5 +235,14 @@ "couldnt_update_private_message": "Konnte Privatnachricht nicht aktualisieren.", "time": "Zeit", "action": "Aktion", - "more": "mehr" + "more": "mehr", + "admin_settings": "Admin-Einstellungen", + "sorting_help": "Sortierhilfe", + "banned_users": "Verbotene Benutzer", + "show_context": "Kontext anzeigen", + "block_leaving": "Sind Sie sicher, dass Sie gehen wollen?", + "site_config": "Website-Konfiguration", + "support_on_open_collective": "Unterstützung bei OpenCollective", + "site_saved": "Site Gespeichert.", + "emoji_picker": "Emoji-Wähler" } diff --git a/ui/translations/fr.json b/ui/translations/fr.json index 96b8c3d1b2e..f91e6b146b5 100644 --- a/ui/translations/fr.json +++ b/ui/translations/fr.json @@ -4,14 +4,16 @@ "no_posts": "Pas de publications.", "create_a_post": "Créer une publication", "create_post": "Créer la publication", - "number_of_posts": "{{count}} Publications", + "number_of_posts": "{{count}} Publication", + "number_of_posts_plural": "{{count}} Publications", "posts": "Publications", "related_posts": "Ces sujets peuvent être corrélés", "cross_posts": "Ce sujet a également été posté sur :", "cross_post": "publication croisée", "cross_posted_to": "publication croisée à : ", "comments": "Commentaires", - "number_of_comments": "{{count}} Commentaires", + "number_of_comments": "{{count}} Commentaire", + "number_of_comments_plural": "{{count}} Commentaires", "remove_comment": "Supprimer le commentaire", "communities": "Communautés", "users": "Utilisateurs", @@ -21,7 +23,8 @@ "subscribed_to_communities": "Abonné à ces <1>communautés", "trending_communities": "<1>Communautés appréciées", "list_of_communities": "Liste des communautés", - "number_of_communities": "{{count}} communautés", + "number_of_communities": "{{count}} Communauté", + "number_of_communities_plural": "{{count}} Communautés", "community_reqs": "en minuscule, sans espace et avec tiret du bas.", "create_private_message": "Créer un message privé", "send_secure_message": "Envoyer le message sécurisé", @@ -77,10 +80,14 @@ "creator": "createur", "username": "Nom d'utilisateur", "email_or_username": "Email ou Nom d'utilisateur", - "number_of_users": "{{count}} Utilisateurs", - "number_of_subscribers": "{{count}} Abonnés", - "number_of_points": "{{count}} Points", - "number_online": "{{count}} Utilisateurs en ligne", + "number_of_users": "{{count}} Utilisateur", + "number_of_users_plural": "{{count}} Utilisateurs", + "number_of_subscribers": "{{count}} Abonné", + "number_of_subscribers_plural": "{{count}} Abonnés", + "number_of_points": "{{count}} Point", + "number_of_points_plural": "{{count}} Points", + "number_online": "{{count}} Utilisateur en ligne", + "number_online_plural": "{{count}} Utilisateurs en ligne", "name": "Nom", "title": "Titre", "category": "Catégorie", @@ -228,5 +235,14 @@ "couldnt_update_private_message": "Impossible de modifier un message privé.", "time": "Temps", "action": "Action", - "more": "plus" + "more": "plus", + "admin_settings": "Paramètres administratifs", + "site_config": "Configuration du site", + "banned_users": "Utilisateurs interdits", + "site_saved": "Site sauvegardé.", + "support_on_open_collective": "Soutien à OpenCollective", + "sorting_help": "aide au tri", + "upvote": "Aime", + "show_context": "Afficher le contexte", + "block_leaving": "Vous êtes sûr de vouloir partir ?" } From 9155469e8aab1bd2963f09332c0a6075808a09ee Mon Sep 17 00:00:00 2001 From: Andre Vallestero Date: Mon, 11 May 2020 11:29:35 -0400 Subject: [PATCH 39/96] Removed redundant erroneous check --- ui/src/components/post-listing.tsx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ui/src/components/post-listing.tsx b/ui/src/components/post-listing.tsx index c1480f79f15..36a1e2828dc 100644 --- a/ui/src/components/post-listing.tsx +++ b/ui/src/components/post-listing.tsx @@ -163,10 +163,7 @@ export class PostListing extends Component { if (isImage(post.url)) { if (post.url.includes('pictshare')) { return pictshareImage(post.url, thumbnail); - } else if ( - post.thumbnail_url && - post.thumbnail_url.includes('pictshare') - ) { + } else if (post.thumbnail_url) { return pictshareImage(post.thumbnail_url, thumbnail); } else { return post.url; From d17316508cd76c6e75f099731f6e5275298ece73 Mon Sep 17 00:00:00 2001 From: Richie Zhang <12566991+StaticallyTypedRice@users.noreply.github.com> Date: Mon, 11 May 2020 10:16:08 -0700 Subject: [PATCH 40/96] Improve shell scripts (#705) * Improve init-db.sh Allow custom database parameters. Abstract common functionality. * Improve install.sh Abstract common functionality. Ask to automagically reload the project when source files are changed. --- install.sh | 73 +++++++++++++++++++++--------- server/db-init.sh | 113 ++++++++++++++++++++++++++++++++++++---------- 2 files changed, 139 insertions(+), 47 deletions(-) diff --git a/install.sh b/install.sh index d84761a2e40..fb42b26d121 100755 --- a/install.sh +++ b/install.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh set -e # Set the database variable to the default first. @@ -10,25 +10,55 @@ export LEMMY_DATABASE_URL=postgres://lemmy:password@localhost:5432/lemmy export JWT_SECRET=changeme export HOSTNAME=rrr +yes_no_prompt_invalid() { + echo "Invalid input. Please enter either \"y\" or \"n\"." 1>&2 +} + +ask_to_init_db() { + init_db_valid=0 + init_db_final=0 + while [ "$init_db_valid" == 0 ] + do + read -p "Initialize database (y/n)? " init_db + case "$init_db" in + [yY]* ) init_db_valid=1; init_db_final=1;; + [nN]* ) init_db_valid=1; init_db_final=0;; + * ) yes_no_prompt_invalid;; + esac + echo + done + if [ "$init_db_final" = 1 ] + then + source ./server/db-init.sh + read -n 1 -s -r -p "Press ANY KEY to continue execution of this script, press CTRL+C to quit..." + echo + fi +} + +ask_to_auto_reload() { + auto_reload_valid=0 + auto_reload_final=0 + while [ "$auto_reload_valid" == 0 ] + do + echo "Automagically reload the project when source files are changed?" + echo "ONLY ENABLE THIS FOR DEVELOPMENT!" + read -p "(y/n) " auto_reload + case "$auto_reload" in + [yY]* ) auto_reload_valid=1; auto_reload_final=1;; + [nN]* ) auto_reload_valid=1; auto_reload_final=0;; + * ) yes_no_prompt_invalid;; + esac + echo + done + if [ "$auto_reload_final" = 1 ] + then + cd ui && yarn start + cd server && cargo watch -x run + fi +} + # Optionally initialize the database -init_db_valid=0 -init_db_final=0 -while [ "$init_db_valid" == 0 ] -do - read -p "Initialize database (y/n)? " init_db - case "$init_db" in - [yY]* ) init_db_valid=1; init_db_final=1;; - [nN]* ) init_db_valid=1; init_db_final=0;; - * ) echo "Invalid input. Please enter either \"y\" or \"n\"." 1>&2;; - esac - echo -done -if [ "$init_db_final" = 1 ] -then - source ./server/db-init.sh - read -n 1 -s -r -p "Press ANY KEY to continue execution of this script, press CTRL+C to quit..." - echo -fi +ask_to_init_db # Build the web client cd ui @@ -39,6 +69,5 @@ yarn build cd ../server RUST_LOG=debug cargo run -# For live coding, where both the front and back end, automagically reload on any save, do: -# cd ui && yarn start -# cd server && cargo watch -x run +# For live coding, where both the front and back end, automagically reload on any save +ask_to_auto_reload diff --git a/server/db-init.sh b/server/db-init.sh index 87f39eadafd..a2ad77b5945 100755 --- a/server/db-init.sh +++ b/server/db-init.sh @@ -1,43 +1,106 @@ -#!/bin/bash +#!/bin/sh +# Default configurations username=lemmy dbname=lemmy port=5432 -password="" -password_confirm="" -password_valid=0 +yes_no_prompt_invalid() { + echo "Invalid input. Please enter either \"y\" or \"n\"." 1>&2 +} -while [ "$password_valid" == 0 ] -do - read -p "Enter database password: " -s password +print_config() { + echo " database name: $dbname" + echo " username: $username" + echo " port: $port" +} + +ask_for_db_config() { + echo "The default database configuration is:" + print_config echo - read -p "Verify database password: " -s password_confirm - echo - echo - - # Start the loop from the top if either check fails - if [ -z "$password" ] - then - echo "Error: Password cannot be empty." 1>&2 + default_config_final=0 + default_config_valid=0 + while [ "$default_config_valid" == 0 ] + do + read -p "Use this configuration (y/n)? " default_config + case "$default_config" in + [yY]* ) default_config_valid=1; default_config_final=1;; + [nN]* ) default_config_valid=1; default_config_final=0;; + * ) yes_no_prompt_invalid;; + esac echo - continue - fi - if [ "$password" != "$password_confirm" ] + done + + if [ "$default_config_final" == 0 ] then - echo "Error: Passwords don't match." 1>&2 - echo - continue + config_ok_final=0 + while [ "$config_ok_final" == 0 ] + do + read -p "Database name: " dbname + read -p "Username: " username + read -p "Port: " port + #echo + + #echo "The database configuration is:" + #print_config + #echo + + config_ok_valid=0 + while [ "$config_ok_valid" == 0 ] + do + read -p "Use this configuration (y/n)? " config_ok + case "$config_ok" in + [yY]* ) config_ok_valid=1; config_ok_final=1;; + [nN]* ) config_ok_valid=1; config_ok_final=0;; + * ) yes_no_prompt_invalid;; + esac + echo + done + done fi +} - # Set the password_valid variable to break out of the loop - password_valid=1 -done +ask_for_password() { + password="" + password_confirm="" + password_valid=0 + while [ "$password_valid" == 0 ] + do + read -p "Enter database password: " -s password + echo + read -p "Verify database password: " -s password_confirm + echo + echo + + # Start the loop from the top if either check fails + if [ -z "$password" ] + then + echo "Error: Password cannot be empty." 1>&2 + echo + continue + fi + if [ "$password" != "$password_confirm" ] + then + echo "Error: Passwords don't match." 1>&2 + echo + continue + fi + + # Set the password_valid variable to break out of the loop + password_valid=1 + done +} + +ask_for_db_config + +ask_for_password psql -c "CREATE USER $username WITH PASSWORD '$password' SUPERUSER;" -U postgres psql -c "CREATE DATABASE $dbname WITH OWNER $username;" -U postgres export LEMMY_DATABASE_URL=postgres://$username:$password@localhost:$port/$dbname -echo $LEMMY_DATABASE_URL +echo "The database URL is $LEMMY_DATABASE_URL" + From f7c947888f9faa5209076151189e6537d70fa139 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Mon, 11 May 2020 14:01:10 -0400 Subject: [PATCH 41/96] Removing 2nd match. --- server/src/lib.rs | 75 +++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/server/src/lib.rs b/server/src/lib.rs index 5566ca69b17..3aa192b7169 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -197,47 +197,46 @@ fn fetch_iframely_and_pictshare_data( Option, Option, ) { - // Fetch iframely data - let (iframely_title, iframely_description, iframely_thumbnail_url, iframely_html) = match &url { - Some(url) => match fetch_iframely(url) { - Ok(res) => (res.title, res.description, res.thumbnail_url, res.html), - Err(e) => { - error!("iframely err: {}", e); - (None, None, None, None) - } - }, - None => (None, None, None, None), - }; + match &url { + Some(url) => { + // Fetch iframely data + let (iframely_title, iframely_description, iframely_thumbnail_url, iframely_html) = + match fetch_iframely(url) { + Ok(res) => (res.title, res.description, res.thumbnail_url, res.html), + Err(e) => { + error!("iframely err: {}", e); + (None, None, None, None) + } + }; - // Fetch pictshare thumbnail - let pictshare_thumbnail = match iframely_thumbnail_url { - Some(iframely_thumbnail_url) => match fetch_pictshare(&iframely_thumbnail_url) { - Ok(res) => Some(res.url), - Err(e) => { - error!("pictshare err: {}", e); - None - } - }, - - None => match url { - Some(url) => match fetch_pictshare(&url) { + // Fetch pictshare thumbnail + let pictshare_thumbnail = match iframely_thumbnail_url { + Some(iframely_thumbnail_url) => match fetch_pictshare(&iframely_thumbnail_url) { + Ok(res) => Some(res.url), + Err(e) => { + error!("pictshare err: {}", e); + None + } + }, // Try to generate a small thumbnail if iframely is not supported - Ok(res) => Some(res.url), - Err(e) => { - error!("pictshare err: {}", e); - None - } - }, - None => None, - }, - }; + None => match fetch_pictshare(&url) { + Ok(res) => Some(res.url), + Err(e) => { + error!("pictshare err: {}", e); + None + } + }, + }; - ( - iframely_title, - iframely_description, - iframely_html, - pictshare_thumbnail, - ) + ( + iframely_title, + iframely_description, + iframely_html, + pictshare_thumbnail, + ) + } + None => (None, None, None, None), + } } pub fn markdown_to_html(text: &str) -> String { From cb8851096405639395dc53865498df4bddf5bf7b Mon Sep 17 00:00:00 2001 From: Dessalines Date: Mon, 11 May 2020 14:04:23 -0400 Subject: [PATCH 42/96] Version v0.6.58 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index 5bcdabb8afb..af8e3e8c8fb 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.57 +v0.6.58 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index 6155ce3a1de..f9e8c5b9e9c 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.57 + image: dessalines/lemmy:v0.6.58 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index 05bc0d29f43..bb227f3a9d2 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.57"; +pub const VERSION: &str = "v0.6.58"; diff --git a/ui/src/version.ts b/ui/src/version.ts index 91711bb0926..eb652a1e904 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.57'; +export const version: string = 'v0.6.58'; From eb72ace854c1aa5581b49100179ac7989c0c62bf Mon Sep 17 00:00:00 2001 From: Dessalines Date: Mon, 11 May 2020 19:06:12 -0400 Subject: [PATCH 43/96] Pictshare only cache image content types. Fixes #709 --- server/src/lib.rs | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/server/src/lib.rs b/server/src/lib.rs index 3aa192b7169..02c5452b567 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -73,6 +73,16 @@ pub fn is_email_regex(test: &str) -> bool { EMAIL_REGEX.is_match(test) } +pub fn is_image_content_type(test: &str) -> bool { + match isahc::get(test) { + Ok(res) => match res.headers().get("Content-Type") { + Some(header) => header.to_str().unwrap_or("not_an_img").contains("image"), + None => false, + }, + Err(_) => false, + } +} + pub fn remove_slurs(test: &str) -> String { SLUR_REGEX.replace_all(test, "*removed*").to_string() } @@ -180,6 +190,10 @@ pub struct PictshareResponse { } pub fn fetch_pictshare(image_url: &str) -> Result { + if !is_image_content_type(image_url) { + return Err(format_err!("Not an image type.")); + } + let fetch_url = format!( "http://pictshare/api/geturl.php?url={}", utf8_percent_encode(image_url, NON_ALPHANUMERIC) @@ -255,7 +269,18 @@ pub fn get_ip(conn_info: &ConnectionInfo) -> String { #[cfg(test)] mod tests { - use crate::{extract_usernames, is_email_regex, remove_slurs, slur_check, slurs_vec_to_str}; + use crate::{ + extract_usernames, is_email_regex, is_image_content_type, remove_slurs, slur_check, + slurs_vec_to_str, + }; + + #[test] + fn test_image() { + assert!(is_image_content_type("https://1734811051.rsc.cdn77.org/data/images/full/365645/as-virus-kills-navajos-in-their-homes-tribal-women-provide-lifeline.jpg?w=600?w=650")); + assert!(!is_image_content_type( + "https://twitter.com/BenjaminNorton/status/1259922424272957440?s=20" + )); + } #[test] fn test_email() { From c22310bdaf0d289e83a99aa34e1c015c7078b10e Mon Sep 17 00:00:00 2001 From: Dessalines Date: Mon, 11 May 2020 19:08:28 -0400 Subject: [PATCH 44/96] Version v0.6.59 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index af8e3e8c8fb..d634b207bfe 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.58 +v0.6.59 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index f9e8c5b9e9c..bec44422660 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.58 + image: dessalines/lemmy:v0.6.59 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index bb227f3a9d2..114756f95a4 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.58"; +pub const VERSION: &str = "v0.6.59"; diff --git a/ui/src/version.ts b/ui/src/version.ts index eb652a1e904..4106ca0d533 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.58'; +export const version: string = 'v0.6.59'; From 913383ca759c10004430c79f95985d6bc2fe1866 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Tue, 12 May 2020 14:36:22 -0400 Subject: [PATCH 45/96] Removing autocomplete for register and user settings password fields. - Fixes #708 --- ui/src/components/login.tsx | 2 ++ ui/src/components/user.tsx | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ui/src/components/login.tsx b/ui/src/components/login.tsx index 581c4995dce..84014f68c57 100644 --- a/ui/src/components/login.tsx +++ b/ui/src/components/login.tsx @@ -187,6 +187,7 @@ export class Login extends Component { type="password" id="register-password" value={this.state.registerForm.password} + autoComplete="new-password" onInput={linkEvent(this, this.handleRegisterPasswordChange)} class="form-control" required @@ -206,6 +207,7 @@ export class Login extends Component { type="password" id="register-verify-password" value={this.state.registerForm.password_verify} + autoComplete="new-password" onInput={linkEvent(this, this.handleRegisterPasswordVerifyChange)} class="form-control" required diff --git a/ui/src/components/user.tsx b/ui/src/components/user.tsx index bf67a5fdc20..eded9998c53 100644 --- a/ui/src/components/user.tsx +++ b/ui/src/components/user.tsx @@ -81,7 +81,6 @@ export class User extends Component { user: { id: null, name: null, - fedi_name: null, published: null, number_of_posts: null, post_score: null, @@ -455,8 +454,9 @@ export class User extends Component { ) : ( <> @@ -609,6 +609,7 @@ export class User extends Component { id="user-password" class="form-control" value={this.state.userSettingsForm.new_password} + autoComplete="new-password" onInput={linkEvent( this, this.handleUserSettingsNewPasswordChange @@ -629,6 +630,7 @@ export class User extends Component { id="user-verify-password" class="form-control" value={this.state.userSettingsForm.new_password_verify} + autoComplete="new-password" onInput={linkEvent( this, this.handleUserSettingsNewPasswordVerifyChange @@ -649,6 +651,7 @@ export class User extends Component { id="user-old-password" class="form-control" value={this.state.userSettingsForm.old_password} + autoComplete="new-password" onInput={linkEvent( this, this.handleUserSettingsOldPasswordChange @@ -745,6 +748,7 @@ export class User extends Component { Date: Tue, 12 May 2020 15:23:48 -0400 Subject: [PATCH 46/96] Changing image_content_type function to Result. (#711) * Changing image_content_type function to Result. * Changing image to image/ --- server/src/lib.rs | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/server/src/lib.rs b/server/src/lib.rs index 02c5452b567..d1531d7e04e 100644 --- a/server/src/lib.rs +++ b/server/src/lib.rs @@ -73,13 +73,17 @@ pub fn is_email_regex(test: &str) -> bool { EMAIL_REGEX.is_match(test) } -pub fn is_image_content_type(test: &str) -> bool { - match isahc::get(test) { - Ok(res) => match res.headers().get("Content-Type") { - Some(header) => header.to_str().unwrap_or("not_an_img").contains("image"), - None => false, - }, - Err(_) => false, +pub fn is_image_content_type(test: &str) -> Result<(), failure::Error> { + if isahc::get(test)? + .headers() + .get("Content-Type") + .ok_or_else(|| format_err!("No Content-Type header"))? + .to_str()? + .starts_with("image/") + { + Ok(()) + } else { + Err(format_err!("Not an image type.")) } } @@ -190,9 +194,7 @@ pub struct PictshareResponse { } pub fn fetch_pictshare(image_url: &str) -> Result { - if !is_image_content_type(image_url) { - return Err(format_err!("Not an image type.")); - } + is_image_content_type(image_url)?; let fetch_url = format!( "http://pictshare/api/geturl.php?url={}", @@ -276,10 +278,11 @@ mod tests { #[test] fn test_image() { - assert!(is_image_content_type("https://1734811051.rsc.cdn77.org/data/images/full/365645/as-virus-kills-navajos-in-their-homes-tribal-women-provide-lifeline.jpg?w=600?w=650")); - assert!(!is_image_content_type( + assert!(is_image_content_type("https://1734811051.rsc.cdn77.org/data/images/full/365645/as-virus-kills-navajos-in-their-homes-tribal-women-provide-lifeline.jpg?w=600?w=650").is_ok()); + assert!(is_image_content_type( "https://twitter.com/BenjaminNorton/status/1259922424272957440?s=20" - )); + ) + .is_err()); } #[test] From 155b99b64e9eb82b629a59cbfb763295d8aada35 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Tue, 12 May 2020 15:27:28 -0400 Subject: [PATCH 47/96] Version v0.6.60 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index d634b207bfe..256fd366410 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.59 +v0.6.60 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index bec44422660..3aefa89fda4 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.59 + image: dessalines/lemmy:v0.6.60 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index 114756f95a4..66f19efd043 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.59"; +pub const VERSION: &str = "v0.6.60"; diff --git a/ui/src/version.ts b/ui/src/version.ts index 4106ca0d533..734ae89b24b 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.59'; +export const version: string = 'v0.6.60'; From d2e38b106229360994bb94ac5cb783d9b4707e25 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 15 May 2020 10:21:37 -0400 Subject: [PATCH 48/96] Updating docs to setup lemmy.hjson beforehand. --- docs/src/administration_install_docker.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/src/administration_install_docker.md b/docs/src/administration_install_docker.md index 391299b3d8a..236faa6bde8 100644 --- a/docs/src/administration_install_docker.md +++ b/docs/src/administration_install_docker.md @@ -10,12 +10,13 @@ cd /lemmy wget https://raw.githubusercontent.com/dessalines/lemmy/master/docker/prod/docker-compose.yml wget https://raw.githubusercontent.com/dessalines/lemmy/master/docker/lemmy.hjson wget https://raw.githubusercontent.com/dessalines/lemmy/master/docker/iframely.config.local.js -docker-compose up -d ``` -After this, have a look at the [config file](administration_configuration.md) named `lemmy.hjson`, and adjust it, in particular the hostname. +After this, have a look at the [config file](administration_configuration.md) named `lemmy.hjson`, and adjust it, in particular the hostname, and possibly the db password. Then run: -To make Lemmy available outside the server, you need to setup a reverse proxy, like Nginx. [A sample nginx config](/ansible/templates/nginx.conf), could be setup with: +`docker-compose up -d` + +To make Lemmy available outside the server, you need to setup a reverse proxy, like Nginx. [A sample nginx config](https://raw.githubusercontent.com/dessalines/lemmy/master/ansible/templates/nginx.conf), could be setup with: ```bash wget https://raw.githubusercontent.com/dessalines/lemmy/master/ansible/templates/nginx.conf From 6fe4184f72ca39011a62c8df572ae419a1288334 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sat, 16 May 2020 22:52:28 -0400 Subject: [PATCH 49/96] Adding Greek and Basque languages for weblate. --- server/src/rate_limit/mod.rs | 2 +- server/src/websocket/server.rs | 2 +- ui/src/i18next.ts | 4 ++++ ui/src/utils.ts | 8 ++++++++ ui/translations/el.json | 1 + ui/translations/eu.json | 1 + 6 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 ui/translations/el.json create mode 100644 ui/translations/eu.json diff --git a/server/src/rate_limit/mod.rs b/server/src/rate_limit/mod.rs index fec8a5692e3..8d698b78bc8 100644 --- a/server/src/rate_limit/mod.rs +++ b/server/src/rate_limit/mod.rs @@ -92,7 +92,7 @@ impl RateLimited { } RateLimitType::Post => { limiter.check_rate_limit_full( - self.type_.clone(), + self.type_, &ip_addr, rate_limit.post, rate_limit.post_per_second, diff --git a/server/src/websocket/server.rs b/server/src/websocket/server.rs index da5098e9179..25766011cd8 100644 --- a/server/src/websocket/server.rs +++ b/server/src/websocket/server.rs @@ -940,7 +940,7 @@ impl Handler for ChatServer { id, SessionInfo { addr: msg.addr, - ip: msg.ip.to_owned(), + ip: msg.ip, }, ); diff --git a/ui/src/i18next.ts b/ui/src/i18next.ts index 2cd290007f7..f2b8c10e48b 100644 --- a/ui/src/i18next.ts +++ b/ui/src/i18next.ts @@ -1,6 +1,8 @@ import i18next from 'i18next'; import { getLanguage } from './utils'; import { en } from './translations/en'; +import { el } from './translations/el'; +import { eu } from './translations/eu'; import { eo } from './translations/eo'; import { es } from './translations/es'; import { de } from './translations/de'; @@ -21,6 +23,8 @@ import { ka } from './translations/ka'; // https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66 const resources = { en, + el, + eu, eo, es, ka, diff --git a/ui/src/utils.ts b/ui/src/utils.ts index f18d996e89b..69afc7a4aff 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -1,4 +1,6 @@ import 'moment/locale/es'; +import 'moment/locale/el'; +import 'moment/locale/eu'; import 'moment/locale/eo'; import 'moment/locale/de'; import 'moment/locale/zh-cn'; @@ -59,6 +61,8 @@ export const mentionDropdownFetchLimit = 10; export const languages = [ { code: 'ca', name: 'Català' }, { code: 'en', name: 'English' }, + { code: 'el', name: 'Ελληνικά' }, + { code: 'eu', name: 'Euskara' }, { code: 'eo', name: 'Esperanto' }, { code: 'es', name: 'Español' }, { code: 'de', name: 'Deutsch' }, @@ -370,6 +374,10 @@ export function getMomentLanguage(): string { lang = 'ka'; } else if (lang.startsWith('hi')) { lang = 'hi'; + } else if (lang.startsWith('el')) { + lang = 'el'; + } else if (lang.startsWith('eu')) { + lang = 'eu'; } else { lang = 'en'; } diff --git a/ui/translations/el.json b/ui/translations/el.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/ui/translations/el.json @@ -0,0 +1 @@ +{} diff --git a/ui/translations/eu.json b/ui/translations/eu.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/ui/translations/eu.json @@ -0,0 +1 @@ +{} From 6fe3d4304920e52a0d27d71bc1a05fdea4915dc5 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 17 May 2020 16:49:34 -0400 Subject: [PATCH 50/96] Adding a sponsor. --- ui/src/components/sponsors.tsx | 24 +++++++++++++++++++++++- ui/translations/en.json | 2 ++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/ui/src/components/sponsors.tsx b/ui/src/components/sponsors.tsx index b0b7e5f6667..95306d3556f 100644 --- a/ui/src/components/sponsors.tsx +++ b/ui/src/components/sponsors.tsx @@ -4,6 +4,11 @@ import { i18n } from '../i18next'; import { T } from 'inferno-i18next'; import { repoUrl } from '../utils'; +interface SilverUser { + name: string; + link: string; +} + let general = [ 'Forrest Weghorst', 'Serge Tarkovski', @@ -13,7 +18,12 @@ let general = [ 'NotTooHighToHack', ]; let highlighted = ['Oskenso Kashi', 'Alex Benishek']; -// let silver = []; +let silver: Array = [ + { + name: 'Redjoker', + link: 'https://redcard.iww.org/user/register', + }, +]; // let gold = []; // let latinum = []; @@ -72,6 +82,18 @@ export class Sponsors extends Component { return (
      {i18n.t('sponsors')}
      +

      {i18n.t('silver_sponsors')}

      +

      {i18n.t('general_sponsors')}

      {highlighted.map(s => ( diff --git a/ui/translations/en.json b/ui/translations/en.json index a880b0c5072..6509bc64ef3 100644 --- a/ui/translations/en.json +++ b/ui/translations/en.json @@ -195,6 +195,8 @@ "donate": "Donate", "general_sponsors": "General Sponsors are those that pledged $10 to $39 to Lemmy.", + "silver_sponsors": + "Silver Sponsors are those that pledged $40 to Lemmy.", "crypto": "Crypto", "bitcoin": "Bitcoin", "ethereum": "Ethereum", From f5e96d9372565b5043664e9103ac9207e2c33840 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 17 May 2020 16:53:56 -0400 Subject: [PATCH 51/96] Version v0.6.61 --- ansible/VERSION | 2 +- docker/prod/docker-compose.yml | 2 +- server/src/version.rs | 2 +- ui/src/version.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ansible/VERSION b/ansible/VERSION index 256fd366410..5b82f88ccda 100644 --- a/ansible/VERSION +++ b/ansible/VERSION @@ -1 +1 @@ -v0.6.60 +v0.6.61 diff --git a/docker/prod/docker-compose.yml b/docker/prod/docker-compose.yml index 3aefa89fda4..1013ede982e 100644 --- a/docker/prod/docker-compose.yml +++ b/docker/prod/docker-compose.yml @@ -12,7 +12,7 @@ services: restart: always lemmy: - image: dessalines/lemmy:v0.6.60 + image: dessalines/lemmy:v0.6.61 ports: - "127.0.0.1:8536:8536" restart: always diff --git a/server/src/version.rs b/server/src/version.rs index 66f19efd043..f0e884b802d 100644 --- a/server/src/version.rs +++ b/server/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "v0.6.60"; +pub const VERSION: &str = "v0.6.61"; diff --git a/ui/src/version.ts b/ui/src/version.ts index 734ae89b24b..05714aaaeb5 100644 --- a/ui/src/version.ts +++ b/ui/src/version.ts @@ -1 +1 @@ -export const version: string = 'v0.6.60'; +export const version: string = 'v0.6.61'; From 99e4551cf67d3e71b903f0d7d60133b6158facde Mon Sep 17 00:00:00 2001 From: Dessalines Date: Sun, 17 May 2020 18:39:15 -0400 Subject: [PATCH 52/96] Simplify cross-posts. Fixes #727 --- ui/src/components/post.tsx | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/ui/src/components/post.tsx b/ui/src/components/post.tsx index de0f0e329c7..bf3694ba59f 100644 --- a/ui/src/components/post.tsx +++ b/ui/src/components/post.tsx @@ -40,7 +40,6 @@ import { setupTippy, } from '../utils'; import { PostListing } from './post-listing'; -import { PostListings } from './post-listings'; import { Sidebar } from './sidebar'; import { CommentForm } from './comment-form'; import { CommentNodes } from './comment-nodes'; @@ -183,14 +182,6 @@ export class Post extends Component { moderators={this.state.moderators} admins={this.state.admins} /> - {this.state.crossPosts.length > 0 && ( - <> -
      - {i18n.t('cross_posts')} -
      - - - )}
      { return (