This commit is contained in:
matty 2025-05-12 16:50:25 -04:00
commit 134d94d6fc
56 changed files with 3435 additions and 1463 deletions

View File

@ -32,9 +32,18 @@ updates:
- dependency-name: eslint
versions:
- ">=9.0.0" # not ready for v9, missing dependencies.
- dependency-name: "@stylistic/eslint-plugin"
versions:
- ">=4.0.0" # needs eslint >= 9.0.0
- dependency-name: got
versions:
- ">=12.0.0" # breaking changes, must adapt code.
- dependency-name: "@typescript-eslint/parser"
versions:
- ">=8.5.0" # for now 8.5.0 is broken because of the lack of ./tsconfig.json file. Must fix conf.
- dependency-name: "eslint-config-love"
versions:
- ">=85.0.0" # Versions goes up to 118 very quickly. Too much breaking changes. We must do this progressively.
- dependency-name: "openid-client"
versions:
- ">=6.0.0" # this is a complete rewrite. We have to check if it is compatible.

View File

@ -1,5 +1,15 @@
# Changelog
## 12.0.4
### Minor changes and fixes
* Fix #660: don't send headers twice on emoji router errors.
* Fix shebangs (for NixOS compatibility).
* Translations updates.
* Updating various dependencies.
* Adding a warning in settings if theme is not set to Peertube or if autocolors are disabled.
## 12.0.3
### Minor changes and fixes

View File

@ -1,6 +1,7 @@
#!/bin/env node
#!/usr/bin/env node
// SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
// SPDX-FileCopyrightText: 2025 Mehdi Benadel <https://mehdibenadel.com>
//
// SPDX-License-Identifier: AGPL-3.0-only

View File

@ -1,6 +1,7 @@
#!/bin/bash
#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
# SPDX-FileCopyrightText: 2025 Mehdi Benadel <https://mehdibenadel.com>
#
# SPDX-License-Identifier: AGPL-3.0-only

View File

@ -269,6 +269,9 @@ function register (clientOptions: RegisterClientOptions): void {
return options.formValues['prosody-components'] !== true
case 'converse-autocolors':
return options.formValues['converse-theme'] !== 'peertube'
case 'converse-theme-warning':
return options.formValues['converse-theme'] === 'peertube' &&
options.formValues['converse-autocolors'] === true
case 'chat-per-live-video-warning':
return !(options.formValues['chat-all-lives'] === true && options.formValues['chat-per-live-video'] === true)
case 'auto-ban-anonymous-ip':

View File

@ -39,9 +39,7 @@ export class PtContext {
* Keep them in cache after first request.
*/
public async getSettings (): Promise<LiveChatSettings> {
if (!this._settings) {
this._settings = await this.ptOptions.peertubeHelpers.getSettings() as LiveChatSettings
}
this._settings ??= await this.ptOptions.peertubeHelpers.getSettings() as LiveChatSettings
return this._settings
}
}

View File

@ -1,6 +1,7 @@
#!/bin/env node
#!/usr/bin/env node
// SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
// SPDX-FileCopyrightText: 2025 Mehdi Benadel <https://mehdibenadel.com>
//
// SPDX-License-Identifier: AGPL-3.0-only

View File

@ -1,6 +1,7 @@
#!/bin/bash
#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
# SPDX-FileCopyrightText: 2025 Mehdi Benadel <https://mehdibenadel.com>
#
# SPDX-License-Identifier: AGPL-3.0-only
@ -91,7 +92,7 @@ mv "$converse_build_dir/custom/index.js" "$converse_build_dir/src/"
cp "$src_dir/loc.keys.js" "$converse_build_dir/"
echo "Patching i18n files to add custom labels..."
/bin/env node conversejs/build-conversejs-patch-i18n.js
/usr/bin/env node conversejs/build-conversejs-patch-i18n.js
if [[ ! -d "$converse_build_dir/node_modules" ]]; then
echo "Missing node_modules directory, seems we have to call the makefile..."

View File

@ -54,7 +54,7 @@ function overrideMUCMessageForm (_converse: any, current: Current): void {
class MUCMessageFormloaded extends MUCMessageForm {
async onFormSubmitted (ev?: Event): Promise<void> {
const announcementSelect = this.querySelector('[name=livechat-announcements]')
current.announcementType = announcementSelect?.selectedOptions?.[0]?.value || undefined
current.announcementType = announcementSelect?.selectedOptions?.[0]?.value ?? undefined
try {
await super.onFormSubmitted(ev)
if (announcementSelect) { announcementSelect.selectedIndex = 0 } // set back to default
@ -173,7 +173,7 @@ function onGetOutgoingMessageAttributes (
chatbox: any,
attrs: any
): Parameters<typeof onGetOutgoingMessageAttributes>[3] {
if (!current.announcementType) { return attrs }
if (!current.announcementType) { return attrs } // undefined or ""
const { __ } = _converse
attrs.livechat_announcement_type = current.announcementType

View File

@ -1,6 +1,7 @@
#!/bin/bash
#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2024 John Livingston <https://www.john-livingston.fr/>
# SPDX-FileCopyrightText: 2025 Mehdi Benadel <https://mehdibenadel.com>
#
# SPDX-License-Identifier: AGPL-3.0-only

View File

@ -78,7 +78,7 @@ export default tseslint.config(
'@typescript-eslint/no-unsafe-call': 'off', // FIXME: comes with eslint-config-love 84 update, and should be used.
'@typescript-eslint/no-unnecessary-condition': 'off', // FIXME: comes with eslint-config-love 84 update, but seems buggy (false positive).
'@typescript-eslint/prefer-nullish-coalescing': 'off', // disabling, because many false positive (where i want "" to act as false)
'max-len': [
'error',
{

View File

@ -677,3 +677,9 @@ announcements_message_type_standard: Standard
announcements_message_type_announcement: Announcement
announcements_message_type_highlight: Highlight
announcements_message_type_warning: Warning
converse_theme_warning_description: |
<span class="peertube-plugin-livechat-warning">
It is strongly recommanded to keep the "Peertube theme", in combinaison with the "Automatic color detection" feature.
Otherwise some user may experience issues depending on the Peertube theme they use.
</span>

View File

@ -55,6 +55,9 @@ list_rooms_description: |
<a class="peertube-plugin-livechat-prosody-list-rooms-btn">Listar salas</a>
federation_description: |
&lt;h3&gt;Federação&lt;/h3&gt;
As configurações a seguir dizem respeito à federação com outras instâncias do Peertube,
e outros softwares diversos.
federation_no_remote_chat_label: "Não exibir chats remotos"
federation_no_remote_chat_description: |
@ -86,15 +89,21 @@ external_auth_custom_oidc_button_label_label: "Etiqueta para o botão de conexã
external_auth_custom_oidc_button_label_description: "Esta etiqueta será exibida aos
usuários, como o etiqueta do botão a ser autenticado com esse provedor OIDC."
external_auth_custom_oidc_discovery_url_label: ""
external_auth_oidc_client_id_label: ""
external_auth_oidc_client_secret_label: ""
external_auth_custom_oidc_discovery_url_label: "URL de descoberta"
external_auth_oidc_client_id_label: "ID do cliente"
external_auth_oidc_client_secret_label: "Segredo do cliente"
external_auth_oidc_redirect_uris_info_description: |
&lt;strong&gt;URI de retorno/redirecionamento:&lt;/strong&gt;
Se você quiser configurar o URI de redirecionamento autorizado no aplicativo externo, adicione esta URL:
external_auth_google_oidc_label: 'Usar Google'
external_auth_google_oidc_description: |
Habilitar isso adiciona um botão "fazer login com o Google".
Você precisa configurar um aplicativo Google OAuth.
external_auth_facebook_oidc_label: 'Usar Facebook'
external_auth_facebook_oidc_description: |
Habilitar isso adiciona um botão "fazer login com o Facebook".
Você precisa configurar um aplicativo OAuth do Facebook.
chat_behaviour_description: "<h3>Comportamento do chat</h3>"
@ -105,13 +114,15 @@ room_type_option_video: "Cada vídeo tem sua própria sala de chat"
room_type_option_channel: "Salas de chat são agrupadas por canal"
auto_display_label: "Abrir chat automaticamente"
auto_display_description: ""
auto_display_description: "Ao assistir a um vídeo, a caixa de bate-papo será aberta
automaticamente."
open_blank_label: "Exibir o botão «abrir em nova janela»"
open_blank_description: ""
open_blank_description: "Haverá um botão para abrir o chat da web em uma nova janela."
share_url_label: "Exibir o botão «compartilhar link do chat»"
share_url_description: ""
share_url_description: "Haverá um botão para compartilhar uma URL de bate-papo (pode
ser usado para integração com o OBS, por exemplo)."
share_url_option_nobody: "Exibir para ninguém"
share_url_option_everyone: "Exibir para todos"
share_url_option_owner: "Exibir para o proprietário do vídeo"
@ -119,35 +130,58 @@ share_url_option_owner_moderators: "Exibir para o proprietário do vídeo e mode
da instância"
per_live_video_label: "Usuários podem ativar o chat para suas transmissões ao vivo"
per_live_video_description: ""
per_live_video_description: "Se marcada, todos os vídeos ao vivo terão uma caixa de
seleção em suas propriedades para habilitar o bate-papo na web."
per_live_video_warning_description: |
&lt;span class="peertube-plugin-livechat-warning"&gt;
Você habilitou a configuração «Usuários podem ativar o chat para suas vidas».
Ela é redundante com a configuração «Ativar chat para todas as vidas».
&lt;/span&gt;
all_lives_label: "Ativar chat para todas as transmissões"
all_lives_description: ""
all_lives_description: "Se marcado, o bate-papo será habilitado para todas as vidas."
all_non_lives_label: ""
all_non_lives_description: ""
all_non_lives_label: "Ativar chat para todos os não-vivos"
all_non_lives_description: "Se marcado, o bate-papo será habilitado para todos os
vídeos que não sejam ao vivo."
videos_list_label: "Ativar chat para estes vídeos"
videos_list_description: |
UUIDs de vídeos para os quais queremos um bate-papo na web.
Podem ser vídeos não ao vivo. Um por linha. <br />
Você pode adicionar comentários: tudo após o caractere # será removido e as linhas vazias serão ignoradas.<br />
Não adicione vídeos privados, os UUIDs serão enviados para o frontend.
no_anonymous_label: "Ocultar chat para usuários anônimos"
no_anonymous_description: |
Se marcado, usuários anônimos do Peertube não verão o chat.
Este recurso ainda é experimental.
Se você o habilitou, é altamente recomendável também marcar "Não publicar informações do chat".
Caso contrário, algumas ferramentas de terceiros podem tentar abrir o chat e apresentar comportamentos imprevisíveis.
auto_ban_anonymous_ip_label: ""
auto_ban_anonymous_ip_label: "Banir o IP de um usuário anônimo quando ele for banido
de uma sala de bate-papo"
auto_ban_anonymous_ip_description: |
Ao habilitar esta opção, cada vez que um usuário anônimo for banido de uma sala de bate-papo, seu IP também será banido do servidor de bate-papo.
Aviso: se sua instância estiver aberta para registro, qualquer usuário poderá criar uma sala com armadilha, convidar usuários para participar e banir automaticamente todos os IPs de usuários anônimos.
A lista de IPs banidos não é armazenada, ela será apagada na reinicialização do servidor ou quando você alterar as configurações de algum plugin.
Os IPs banidos são registrados nos arquivos de log do servidor Prosody, para que os administradores do servidor possam eventualmente usar algumas ferramentas externas (como o fail2ban) para banir IPs de forma mais ampla.
theming_advanced_description: "<h3>Temas</h3>"
avatar_set_label: ""
avatar_set_label: "Conjunto de avatares"
avatar_set_description: |
Você pode escolher entre vários conjuntos diferentes de avatares padrão que serão usados pelos usuários do chat.
Consulte a documentação:
&lt;a href="https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/settings/" target="_blank"&gt;Configurações&lt;/a&gt;.
avatar_set_option_sepia: "Sepia (mascote do Peertube)"
avatar_set_option_cat: "Gatos"
avatar_set_option_bird: "Pássaros"
avatar_set_option_fenec: "Fenecs (mascote do Mobilizon)"
avatar_set_option_abstract: 'Abstrato'
avatar_set_option_legacy: ""
avatar_set_option_legacy: "Avatares Sepia legados (aqueles incluídos em versões anteriores
do plugin)"
avatar_set_option_none: 'Nenhum'
converse_theme_label: "Tema do ConverseJS"
@ -159,51 +193,119 @@ converse_theme_option_cyberpunk: "Tema Cyberpunk do ConverseJS"
autocolors_label: "Detecção automática de cor"
autocolors_description: |
Tentar detectar automaticamente as cores do tema atual do usuário.<br>
Quando esta configuração está ativada, o plugin tenta detectar automaticamente as cores para aplicar ao tema do chat.<br>
Se isso não estiver funcionando corretamente em algum dos seus temas do Peertube, você pode desativar esta opção.
Você pode relatar o bug no rastreador de problemas oficial
<a href="https://github.com/JohnXLivingston/peertube-plugin-livechat/issues" target="_blank">
de problemas
</a>. Não se esqueça de especificar qual tema não está funcionando.
chat_style_label: ""
chat_style_label: "Atributo de estilo iframe do Webchat"
chat_style_description: |
Estilos adicionais a serem adicionados no atributo de estilo iframe. <br>
Exemplo: altura:400px;
prosody_advanced_description: ""
prosody_advanced_description: "&lt;h3&gt;Configurações avançadas do servidor de bate-papo&lt;/h3&gt;"
help_builtin_prosody_label: "Servidor Prosody"
help_builtin_prosody_description: |
Este plugin usa o servidor Prosody XMPP para gerenciar salas de bate-papo.<br>
Este plugin vem com um Prosody AppImage, que será usado para executar o serviço.
system_prosody_label: "Usar Prosody do sistema"
system_prosody_description: |
Aviso: não marque esta configuração se não tiver certeza do que está fazendo.<br>
Ao marcar esta configuração, seu Peertube usará o servidor Prosody que vem com seu sistema,
e não o AppImage incorporado.<br>
Use isto somente se você encontrar problemas com o Prosody incorporado.
disable_websocket_label: "Desabilitar Websocket"
disable_websocket_description: |
Com Peertube &gt;= 5.0.0, este plugin tenta usar a conexão Websocket para bate-papo.
Se o navegador ou a conexão do usuário for incompatível, o navegador retornará automaticamente ao protocolo BOSH.
<br>
Mas em casos raros, isso pode falhar. Por exemplo, se você tiver um proxy reverso na frente do Peertube que não
permita conexão Websocket para plugins.
Neste caso, você pode verificar esta configuração para desabilitar conexões Websocket.
prosody_port_label: "Porta do Prosody"
prosody_port_description: |
A porta que será usada pelo servidor Prosody.<br>
Altere-a se esta porta já estiver em uso no seu servidor.<br>
Você pode fechar esta porta no seu firewall, ela não será acessada do mundo externo.<br>
Nota: isso pode mudar em um futuro próximo, pois está planejado adicionar um recurso para ativar conexões externas.
prosody_peertube_uri_label: "URL do Peertube para chamada de API"
prosody_peertube_uri_description: |
Deixe esta configuração em branco se você não sabe o que está fazendo.<br>
Em alguns casos raros, o Prosody não consegue chamar a API do Peertube a partir de seu URI público.
Você pode usar este campo para personalizar o URI do Peertube para o módulo Prosodys
(por exemplo, com «http://localhost:9000» ou «http://127.0.0.1:9000»).
prosody_muc_log_by_default_label: "Logar conteúdo das salas por padrão"
prosody_muc_log_by_default_description: |
Se marcado, o conteúdo da sala será salvo por padrão.
Qualquer usuário que entrar em uma sala verá o que foi escrito antes de entrar.<br>
Observe que sempre é possível ativar/desativar o arquivamento
de conteúdo para uma sala específica, editando as propriedades.
prosody_muc_expiration_label: "Expiração dos logs de sala"
prosody_muc_expiration_description: |
Você pode escolher aqui por quanto tempo o conteúdo da sala de bate-papo será mantido pelo servidor. O valor pode ser:
<ul>
<li><b>60</b>: o conteúdo será salvo por 60 <b>segundos</b>. Você pode substituir 60 por qualquer valor inteiro.</li>
<li><b>1d</b>: o conteúdo será salvo por 1 <b>dia</b>. Você pode substituir 1 por qualquer valor inteiro.</li>
<li><b>1s</b>: o conteúdo será salvo por 1 <b>semana</b>. Você pode substituir 1 por qualquer valor inteiro.</li>
<li><b>1m</b>: o conteúdo será salvo por 1 <b>mês</b>. Você pode substituir 1 por qualquer valor inteiro.</li>
<li><b>1a</b>: o conteúdo será salvo por 1 <b>ano</b>. Você pode substituir 1 por qualquer valor inteiro.</li>
<li><b>nunca</b>: o conteúdo jamais expirará, sendo mantido para sempre.</li>
</ul>
prosody_room_allow_s2s_label: ""
prosody_room_allow_s2s_label: "Habilitar conexão à sala usando contas XMPP externas"
prosody_room_allow_s2s_description: |
Ao habilitar esta opção, será possível conectar-se a salas usando contas XMPP externas e clientes XMPP.<br>
<span class="peertube-plugin-livechat-warning">
<b>Aviso</b>, habilitar esta opção pode demandar configuração extra de servidor e DNS.
</span>
Consulte a documentação:
<a href="https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/advanced/xmpp_clients/" target="_blank">
Habilitar conexões de contas XMPP externas.
</a>
prosody_s2s_port_label: ""
prosody_s2s_port_label: "Porta do servidor Prosody para o servidor"
prosody_s2s_port_description: |
A porta que será usada para conexões XMPP s2s (servidor para servidor).<br>
Você deve usar a porta padrão 5269.
Caso contrário, você deve <a href="https://prosody.im/doc/s2s">
configurar um registro de DNS específico
</a>.
prosody_s2s_interfaces_label: ""
prosody_s2s_interfaces_label: "Interfaces de rede de servidor para servidor"
prosody_s2s_interfaces_description: |
As interfaces de rede para escutar conexões entre servidores.<br>
Lista de IPs para escutar, separados por vírgulas (os espaços serão removidos).<br>
Você pode usar «*» para escutar em todas as interfaces IPv4 e «::» para todas as IPv6.<br>
Examplos:
<ul>
<li>*, ::</li>
<li>*</li>
<li>127.0.0.1, ::1</li>
<li>172.18.0.42</li>
</ul>
prosody_certificates_dir_label: "Pasta dos certificados"
prosody_certificates_dir_description: |
Se este campo estiver vazio, o plugin irá gerar e usar certificados autoassinados.<br>
Caso queira utilizar outros certificados, basta especificar aqui a pasta onde o
Prosody pode encontrá-los. Observação: o usuário "peertube" deve ter acesso de leitura a esta pasta.
prosody_c2s_label: "Habilitar conexões de cliente para servidor"
prosody_c2s_description: |
Habilite os clientes XMPP para se conectarem ao servidor Prosody integrado.<br>
Esta opção sozinha permite apenas conexões em localhost.
prosody_c2s_port_label: ""
prosody_c2s_port_label: "Porta do cliente para o servidor Prosody"
prosody_c2s_port_description: |
A porta que será usada pelo módulo c2s do servidor Prosody integrado.<br>
Os clientes XMPP devem usar essa porta para se conectar.<br>
@ -212,7 +314,7 @@ prosody_c2s_port_description: |
Nota: isso pode mudar em um futuro próximo, pois está planejado adicionar um recurso para ativar conexões externas.
prosody_c2s_interfaces_label: ""
prosody_c2s_interfaces_label: "Interfaces de rede cliente-servidor"
prosody_c2s_interfaces_description: |
As interfaces de rede para escutar conexões de cliente para servidor.<br>
Esta configuração é fornecida para usuários avançados. Não altere essa configuração se você não entender completamente o que ela significa.<br>
@ -226,51 +328,107 @@ prosody_c2s_interfaces_description: |
<li>127.0.0.1, ::1, 172.18.0.42</li>
</ul>
prosody_components_label: ""
prosody_components_label: "Habilitar componentes externos personalizados do Prosody"
prosody_components_description: |
Habilitar o uso de componentes XMPP externos.<br>
Esta opção por si só permite conexões apenas do localhost.
Você precisa configurar as interfaces de escuta e abrir a porta no seu firewall para torná-lo disponível em servidores remotos.<br>
Este recurso pode, por exemplo, ser usado para conectar alguns bots às salas de bate-papo.
prosody_components_port_label: ""
prosody_components_port_label: "Porta de componentes externos do Prosody"
prosody_components_port_description: |
A porta que será usada pelos componentes XMPP para se conectar ao servidor Prosody.<br>
Altere-a se esta porta já estiver em uso no seu servidor.<br>
Você pode manter esta porta fechada no seu firewall se não permitir acesso em interfaces diferentes do host local.
prosody_components_interfaces_label: ""
prosody_components_interfaces_label: "Interfaces de rede de componentes externos da
Prosody"
prosody_components_interfaces_description: |
As interfaces de rede para escutar conexões de componentes externos.<br>
Lista de IPs para escutar, separados por vírgulas (os espaços serão removidos).<br>
Você pode usar «*» para escutar em todas as interfaces IPv4 e «::» para todas as IPv6.<br>
Examplos:
<ul>
<li>*, ::</li>
<li>*</li>
<li>127.0.0.1, ::1</li>
<li>172.18.0.42</li>
</ul>
prosody_components_list_label: "Componentes externos"
prosody_components_list_description: |
Os componentes externos a declarar:
<ul>
<li>Um por linha.</li>
<li>Use o formato «nome_do_componente:segredo_do_componente» (os espaços serão cortados).</li>
<li>Você pode adicionar comentários: tudo após o caractere # será removido e as linhas vazias serão ignoradas.</li>
<li>O nome só pode conter caracteres alfanuméricos latinos e pontos.</li>
<li>
Se o nome contiver apenas caracteres alfanuméricos, ele será sufixado com o domínio XMPP.
Por exemplo, «ponte» se tornará «ponte.seu_dominio.tld».
Você também pode especificar um nome de domínio completo, mas certifique-se de configurar seu DNS corretamente.
</li>
<li>Use apenas caracteres alfanuméricos na frase secreta (use pelo menos 15 caracteres).</li>
</ul>
experimental_warning: |
&lt;b class="peertube-plugin-livechat-experimental"&gt;Recurso experimental:&lt;/b&gt; este recurso ainda é experimental.
configuration_description: |
&lt;h3&gt;Configuração avançada do canal&lt;/h3&gt;
As seguintes configurações dizem respeito às opções avançadas do canal:
os usuários poderão adicionar alguma personalização em seus canais,
ativar o bot de moderação, ...
disable_channel_configuration_label: ""
disable_channel_configuration_label: "Desabilite a configuração avançada do canal
e o chatbot"
save: "Salvar"
cancel: "Cancelar"
successfully_saved: ""
successfully_saved: "Salvo com sucesso"
menu_configuration_label: "Salas de chat"
livechat_configuration_title: ""
livechat_configuration_desc: ""
livechat_configuration_please_select: ""
livechat_configuration_title: "Configure as salas de bate-papo ao vivo"
livechat_configuration_desc: "Aqui você pode configurar algumas opções avançadas para
salas de bate-papo associadas às suas transmissões ao vivo."
livechat_configuration_please_select: "Selecione abaixo um dos seus canais para configurar
suas opções de bate-papo."
livechat_configuration_channel_title: "Opções de canal"
livechat_configuration_channel_desc: ""
livechat_configuration_channel_desc: "Você pode configurar aqui algumas opções para
este canal (políticas de moderação, ...)."
livechat_configuration_channel_slow_mode_label: "Modo lento"
livechat_configuration_channel_slow_mode_desc: |
Valor padrão do modo lento:
<ul>
<li>0: modo lento desativado</li>
<li>Qualquer número inteiro positivo: os usuários podem enviar uma mensagem a cada X segundos (os moderadores não são limitados)</li>
</ul>
livechat_configuration_channel_enable_bot_label: "Ativar bot de moderação"
livechat_configuration_channel_bot_options_title: "Opções do bot de moderação"
livechat_configuration_channel_forbidden_words_label: "Expressões ou palavras proibidas"
livechat_configuration_channel_forbidden_words_desc: |
Você pode configurar algumas palavras que serão moderadas automaticamente pelo bot (mensagens contendo tais palavras serão excluídas instantaneamente).
Você também pode adicionar um motivo opcional que será exibido no lugar das mensagens excluídas.
Vários exemplos são fornecidos na página de documentação.
livechat_configuration_channel_forbidden_words_desc2: |
Uma palavra ou expressão por linha. Se você colocar várias palavras em uma linha, serão encontradas apenas mensagens que contenham a sequência completa.
livechat_configuration_channel_retractation_reason_label: "Motivo"
livechat_configuration_channel_retractation_reason_desc: ""
livechat_configuration_channel_retractation_reason_desc: "Motivo para exibir além
das mensagens excluídas"
livechat_configuration_channel_forbidden_words_regexp_label: "Considerar como expressões
regulares"
livechat_configuration_channel_forbidden_words_regexp_desc: ""
livechat_configuration_channel_forbidden_words_label_label: ""
livechat_configuration_channel_forbidden_words_label_desc: ""
livechat_configuration_applytomoderators_label: ""
livechat_configuration_channel_forbidden_words_regexp_desc: "Ao marcar esta opção,
você pode usar expressões regulares."
livechat_configuration_channel_forbidden_words_label_label: "Rótulo"
livechat_configuration_channel_forbidden_words_label_desc: "Rótulo para esta regra
de palavras proibidas"
livechat_configuration_applytomoderators_label: "Também modere mensagens de moderadores"
livechat_configuration_applytomoderators_desc: |
Por padrão, as mensagens dos moderadores não serão afetadas por este recurso.
Ao marcar esta opção, as mensagens dos moderadores também serão excluídas.
livechat_configuration_channel_forbidden_words_comments_label: "Comentários"
livechat_configuration_channel_forbidden_words_comments_desc: |
Você pode adicionar aqui alguns comentários sobre esta regra, para lembrar como e por que você a criou.
Esses comentários são puramente indicativos e não têm influência no comportamento do bot.
livechat_configuration_channel_quote_label: "Temporizador"
livechat_configuration_channel_quote_desc: |
Você pode configurar vários temporizadores que irão enviar mensagens em um intervalo de tempo regular.
@ -278,18 +436,23 @@ livechat_configuration_channel_quote_desc: |
Você pode por exemplo, fazer com que o bot envie alguma informação de patrocínio a cada 5 minutos.
livechat_configuration_channel_quote_label2: "Mensagens"
livechat_configuration_channel_quote_desc2: |
Uma mensagem por linha.
Se houver várias mensagens, ele escolherá uma aleatoriamente a cada X minutos.
livechat_configuration_channel_quote_delay_label: "Enviar a cada X minutos"
livechat_configuration_channel_quote_delay_desc: |
O bot irá enviar a mensagem a cada X minutos.
livechat_configuration_channel_command_label: "Comando de bot"
livechat_configuration_channel_command_desc: |
Você pode configurar o bot para responder a comandos.
Um comando é uma mensagem que começa com "!", como por exemplo "!help" que chama o comando "help".
livechat_configuration_channel_command_cmd_label: "Comando"
livechat_configuration_channel_command_cmd_desc: |
O comando, sem iniciar com “!”. Por exemplo "ajuda", "financie", …
livechat_configuration_channel_command_message_label: "Mensagem"
livechat_configuration_channel_command_message_desc: ""
livechat_configuration_channel_command_message_desc: "A mensagem a ser enviada."
livechat_configuration_channel_for_more_info: |
livechat_configuration_channel_banned_jids_label: ""
Para obter mais informações sobre como configurar esse recurso, consulte a documentação clicando no botão de ajuda.
livechat_configuration_channel_banned_jids_label: "Usuários e padrões banidos"
livechat_configuration_channel_bot_nickname: "Nickname do bot"
validation_error: "Ocorreu um erro durante a validação."
@ -297,12 +460,12 @@ invalid_value: "Valor inválido."
invalid_value_missing: "Este valor é requerido."
invalid_value_wrong_type: "Valor está com o tipo errado."
invalid_value_wrong_format: "Valor está com o formato errado."
invalid_value_not_in_range: ""
invalid_value_not_in_range: "O valor não está no intervalo autorizado."
invalid_value_file_too_big: "Tamanho do arquivo está muito grande (tamanho máximo:
%s)."
invalid_value_duplicate: "Valor duplicado"
invalid_value_too_long: "Valor muito longo"
too_many_entries: ""
too_many_entries: "Muitas entradas"
slow_mode_info: "Modo lento está habilitado. Usuários podem enviar uma mensagem a
cada %1$s segundos."
@ -314,12 +477,16 @@ login_remote_peertube: "Autenticarse usando uma conta em outra instância do Pee
login_remote_peertube_url: "URL da sua instância do Peertube"
login_remote_peertube_searching: "Buscando o vídeo na instância do Peertube…"
login_remote_peertube_url_invalid: "URL do Peertube inválida"
login_remote_peertube_no_livechat: ""
login_remote_peertube_no_livechat: "O plugin de chat ao vivo não está instalado nesta
instância do Peertube."
login_remote_peertube_video_not_found: "Este vídeo não está disponível nesta instância
de Peertube"
login_remote_peertube_video_not_found_try_anyway: ""
login_remote_peertube_video_not_found_try_anyway_button: ""
login_remote_peertube_video_open_failed: ""
login_remote_peertube_video_not_found_try_anyway: "Em alguns casos, o vídeo ainda
pode ser recuperado se você se conectar à instância remota."
login_remote_peertube_video_not_found_try_anyway_button: "Tente de qualquer maneira
abrir o vídeo na instância do Peertube"
login_remote_peertube_video_open_failed: "Seu navegador bloqueou a abertura na instância
remota, tente abrir manualmente este link:"
login_external_auth_alert_message: "Autenticação falhou"
tasks: 'Tarefas'
@ -344,8 +511,14 @@ promote: 'Tornar-se moderador'
livechat_configuration_channel_emojis_title: 'Emojis do canal'
livechat_configuration_channel_emojis_desc: |
Você pode configurar emojis personalizados para seu canal.
Esses emojis estarão disponíveis no seletor de emojis.
Os usuários também podem usá-los com seus nomes curtos (por exemplo, escrevendo ":shortname:").
livechat_emojis_shortname: 'Nome curto'
livechat_emojis_shortname_desc: |
Você pode usar emojis no chat usando ":shortname:".
O nome curto pode começar e/ou terminar com dois pontos (:) e conter apenas caracteres alfanuméricos, sublinhados e hifens.
É altamente recomendável iniciá-los com dois pontos, para que os usuários possam usar o preenchimento automático (digitando ":" e pressionando TAB).
livechat_emojis_file: 'Arquivo'
livechat_emojis_file_desc: |
Arquivo do emoji
@ -359,51 +532,77 @@ action_add_entry: 'Adicionar uma entrada'
action_remove_entry: 'Remover esta entrada'
action_remove_entry_confirm: 'Você está certo de que deseja remover esta entrada?'
loading_error: ''
loading_error: 'Ocorreu um erro ao carregar os dados.'
share_chat_embed: 'Embutido'
share_chat_peertube_tips: ''
share_chat_dock: ''
share_chat_peertube_tips: 'Este link abrirá o chat na interface do Peertube.'
share_chat_dock: 'Doca'
share_chat_dock_tips: |
Você pode gerar um link que abrirá o chat em página inteira, conectado com sua conta do Peertube.
Isso pode ser usado, por exemplo, para ter um dock web no seu OBS, para que você possa ler e interagir com o chat diretamente do OBS.
Não compartilhe este link com ninguém, pois isso permitirá que eles se conectem como você.
Veja abaixo a lista de tokens de autenticação que você já gerou.
Você pode criar um novo ou revogar qualquer token anterior.
Observe que esses tokens não têm data de validade.
token_label: ''
token_password: ''
token_label: 'Rótulo'
token_password: 'Token de senha'
token_date: 'Data'
token_action_create: ''
token_action_revoke: ''
token_default_label: ''
token_action_revoke_confirm: ''
token_action_create: 'Criar um novo token'
token_action_revoke: 'Revogar o token'
token_default_label: 'Token gerado a partir da interface web'
token_action_revoke_confirm: 'Tem certeza de que deseja revogar este token?'
auth_description: |
<h3>Autenticação</h3>
livechat_token_disabled_label: ''
livechat_token_disabled_label: 'Desativar tokens de chat ao vivo'
livechat_token_disabled_description: |
Os usuários podem gerar tokens de longo prazo para se conectar ao chat.
Esses tokens podem, por exemplo, ser usados para incluir o chat nos docks da web do OBS.
Verifique &lt;a href="https://livingston.frama.io/peertube-plugin-livechat/documentation/user/obs" target="_blank"&gt;a documentação&lt;/a&gt; para mais informações.
Você pode desabilitar esse recurso marcando esta configuração.
muted_anonymous_message: 'Apenas usuários registrados podem enviar mensagens'
livechat_configuration_channel_mute_anonymous_label: "Mutar usuários anônimos"
livechat_configuration_channel_mute_anonymous_desc: |
livechat_configuration_channel_terms_label: ""
Valor padrão para novas salas de bate-papo.
Para salas de bate-papo existentes, você pode alterar o recurso no formulário de configuração da sala.
Quando esse recurso está habilitado, usuários anônimos podem apenas ler o bate-papo e não enviar mensagens.
livechat_configuration_channel_terms_label: "Termos e condições do chat do canal"
livechat_configuration_channel_terms_desc: |
Você pode configurar uma mensagem de "termos e condições" que será exibida aos usuários que entrarem em suas salas de bate-papo.
new_poll: 'Criar uma nova enquete'
poll: 'Enquete'
poll_title: 'Nova enquete'
poll_instructions: ''
poll_instructions: 'Preencha e envie este formulário para criar uma nova enquete.
Isso encerrará e substituirá qualquer enquete existente.'
poll_question: 'Questão'
poll_duration: 'Duração da enquete (em minutos)'
poll_anonymous_results: 'Resultados anônimos'
poll_choice_n: 'Escolha {{N}}:'
poll_end: 'Enquete termina em:'
poll_vote_instructions: ""
poll_vote_instructions_xmpp: ""
poll_is_over: ''
poll_choice_invalid: ''
poll_anonymous_vote_ok: ''
poll_vote_ok: ''
poll_vote_instructions: "Para votar, clique na sua escolha ou envie uma mensagem com
um ponto de exclamação seguido do número da sua escolha (Exemplo: !1)."
poll_vote_instructions_xmpp: "Envie uma mensagem com um ponto de exclamação seguido
do número da sua escolha para votar. Exemplo: !1"
poll_is_over: 'Esta enquete já terminou.'
poll_choice_invalid: 'Esta escolha não é válida.'
poll_anonymous_vote_ok: 'Seu voto será levado em consideração. Os votos são anônimos
e não serão exibidos aos outros participantes.'
poll_vote_ok: 'Seu voto foi levado em consideração, os contadores serão atualizados
em instantes.'
moderation_delay: ''
moderation_delay: 'Atraso de moderação'
livechat_configuration_channel_moderation_delay_desc: |
Valor padrão de atraso de moderação:
<ul>
<li>0: atraso de moderação desabilitado</li>
<li>Qualquer número inteiro positivo: as mensagens serão atrasadas por X segundos para participantes não moderadores, permitindo que os moderadores excluam as mensagens antes que qualquer usuário possa lê-las.</li>
</ul>
livechat_configuration_channel_anonymize_moderation_label: ""
livechat_configuration_channel_anonymize_moderation_label: "Anonimizar ações de moderação"
livechat_configuration_channel_anonymize_moderation_desc: |
Anonimizar o valor padrão das ações de moderação para novos quartos.
Quando esta opção estiver ativada, as ações de moderação serão anonimizadas, para evitar revelar quem está banindo/expulsando/… ocupantes.
moderator_notes: 'Notas de moderação'
moderator_notes_create_error: 'Erro ao salvar nota'
@ -414,19 +613,26 @@ moderator_note_delete_confirm: 'Você está certo que quer excluir esta nota?'
moderator_note_create_for_participant: 'Criar uma nova nota'
moderator_note_search_for_participant: 'Buscar notas'
moderator_note_filters: 'Filtros de busca'
moderator_note_original_nick: ''
moderator_note_original_nick: 'Apelido do participante no momento da criação da nota'
search_occupant_message: 'Buscar todas as mensagens'
message_search: 'Busca de mensagens'
message_search_original_nick: ''
message_search_original_nick: 'Apelido do participante quando a mensagem foi enviada'
prosody_firewall_label: ''
prosody_firewall_label: 'Habilitar Prosody mod_firewall'
prosody_firewall_description: |
Você pode habilitar &lt;a href="https://modules.prosody.im/mod_firewall" target="_blank"&gt;mod_firewall&lt;/a&gt; no seu servidor Prosody.
Para mais informações, consulte &lt;a href="https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/mod_firewall/" target="_blank"&gt;a documentação&lt;/a&gt;.
prosody_firewall_configure_button: |
&lt;a class="peertube-button-link orange-button secondary-button" href="/p/livechat/admin/firewall" target="_blank"&gt;Configurar mod_firewall&lt;/a&gt;
prosody_firewall_configuration: ''
prosody_firewall_configuration: 'Configuração do mod_firewall do Prosody'
prosody_firewall_configuration_help: |
Aqui você pode configurar o módulo Prosody &lt;a href="https://modules.prosody.im/mod_firewall" target="_blank"&gt;mod_firewall&lt;/a&gt; .
Você pode criar vários arquivos de configuração abaixo e alterar a ordem deles.
Não hesite em compartilhar suas configurações com a comunidade (por exemplo, adicionando alguns exemplos na documentação do plugin).
prosody_firewall_disabled_warning: |
Aviso: o mod_firewall está desabilitado nas configurações do plugin &lt;a href="/admin/plugins/show/peertube-plugin-livechat" target="_blank"&gt;do livechat&lt;/a&gt;, você precisa habilitá-lo se quiser que essa configuração seja levada em consideração.
prosody_firewall_file_enabled: 'Habilitado'
prosody_firewall_name: 'Nome'
prosody_firewall_name_desc: |

2295
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
{
"name": "peertube-plugin-livechat",
"description": "PeerTube plugin livechat: create chat rooms for your Peertube lives! Comes with many features: federation, moderation tools, chat bot, chat persistence, OBS integration, ...",
"version": "12.0.3",
"version": "12.0.4",
"license": "AGPL-3.0",
"author": {
"name": "John Livingston",
@ -26,54 +26,54 @@
"dist/assets/styles/style.css"
],
"dependencies": {
"@xmpp/jid": "^0.13.1",
"@xmpp/jid": "^0.13.2",
"async": "^3.2.6",
"decache": "^4.6.2",
"escape-html": "^1.0.3",
"got": "^11.8.6",
"http-proxy": "^1.18.1",
"log-rotate": "^0.2.8",
"openid-client": "^5.7.0",
"openid-client": "^5.7.1",
"validate-color": "^2.2.4",
"xmppjs-chat-bot": "^0.5.0"
},
"devDependencies": {
"@eslint/js": "^9.16.0",
"@lit-labs/motion": "^1.0.7",
"@lit/context": "^1.1.3",
"@lit/task": "^1.0.1",
"@peertube/feed": "^5.1.3",
"@eslint/js": "^9.26.0",
"@lit-labs/motion": "^1.0.8",
"@lit/context": "^1.1.5",
"@lit/task": "^1.0.2",
"@peertube/feed": "^5.4.1",
"@peertube/peertube-types": "^5.2.0",
"@stylistic/eslint-plugin": "^2.11.0",
"@stylistic/eslint-plugin": "^3.1.0",
"@tsconfig/node16": "^16.1.3",
"@types/async": "^3.2.24",
"@types/escape-html": "^1.0.4",
"@types/eslint__js": "^8.42.3",
"@types/express": "^5.0.0",
"@types/express": "^5.0.1",
"@types/got": "^9.6.12",
"@types/http-proxy": "^1.17.15",
"@types/node": "^16.18.121",
"@types/http-proxy": "^1.17.16",
"@types/node": "^16.18.126",
"@types/winston": "^2.4.4",
"@types/xmpp__jid": "^1.3.5",
"@typescript-eslint/parser": "^8.4.0",
"commander": "^12.1.0",
"esbuild": "^0.24.0",
"commander": "^13.1.0",
"esbuild": "^0.25.4",
"eslint": "^8.57.1",
"eslint-config-love": "^84.1.1",
"eslint-plugin-lit": "^1.15.0",
"globals": "^15.13.0",
"lit": "^3.2.1",
"eslint-plugin-lit": "^2.1.1",
"globals": "^16.0.0",
"lit": "^3.3.0",
"lit-analyzer": "^2.0.3",
"npm-run-all": "^4.1.5",
"sass": "^1.81.1",
"sharp": "^0.33.5",
"stylelint": "^16.11.0",
"sass": "^1.88.0",
"sharp": "^0.34.1",
"stylelint": "^16.19.1",
"stylelint-config-recommended-scss": "^14.1.0",
"stylelint-config-standard-scss": "^13.1.0",
"stylelint-config-standard-scss": "^14.0.0",
"svgo": "^3.3.2",
"typescript": "^5.5.4",
"typescript-eslint": "^8.17.0",
"yaml": "^2.6.1"
"typescript-eslint": "^8.32.0",
"yaml": "^2.7.1"
},
"engine": {
"peertube": ">=5.2.0"

View File

@ -90,14 +90,12 @@ export async function initEmojisRouter(
(err) => {
if (err) {
res.sendStatus(404);
return;
}
}
);
} catch (err) {
logger.error(err);
res.sendStatus(500);
return;
}
}
)

View File

@ -89,17 +89,29 @@ async function initWebchatRouter (options: RegisterServerOptionsV5): Promise<Rou
) {
peertubeHelpers.logger.debug('Trying to load AutoColors...')
const autocolors: AutoColors = {
// eslint-disable-next-line @typescript-eslint/no-base-to-string
mainForeground: req.query._ac_mainForeground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
mainBackground: req.query._ac_mainBackground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
greyForeground: req.query._ac_greyForeground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
greyBackground: req.query._ac_greyBackground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
menuForeground: req.query._ac_menuForeground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
menuBackground: req.query._ac_menuBackground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
inputForeground: req.query._ac_inputForeground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
inputBackground: req.query._ac_inputBackground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
buttonForeground: req.query._ac_buttonForeground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
buttonBackground: req.query._ac_buttonBackground?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
link: req.query._ac_link?.toString() ?? '',
// eslint-disable-next-line @typescript-eslint/no-base-to-string
linkHover: req.query._ac_linkHover?.toString() ?? ''
}
if (!Object.values(autocolors).find(c => c !== '')) {

View File

@ -533,7 +533,6 @@ function initThemingSettings ({ registerSetting }: RegisterServerOptions): void
] as Array<{ value: ConverseJSTheme, label: string }>,
descriptionHTML: loc('converse_theme_description')
})
registerSetting({
name: 'converse-autocolors',
label: loc('autocolors_label'),
@ -542,6 +541,12 @@ function initThemingSettings ({ registerSetting }: RegisterServerOptions): void
private: false,
descriptionHTML: loc('autocolors_description')
})
registerSetting({
name: 'converse-theme-warning',
type: 'html',
private: true,
descriptionHTML: loc('converse_theme_warning_description')
})
registerSetting({
name: 'chat-style',

View File

@ -170,7 +170,7 @@ Note: for it to be available, the plugin must have been started at least once.
We will create a file `/etc/letsencrypt/renewal-hooks/deploy/prosody.sh` containing:
```bash
#!/bin/sh
#!/usr/bin/env sh
/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \
--root \
--config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \

View File

@ -1452,7 +1452,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1968,14 +1968,14 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"
" cert import \\\n"
" room.your_instance.tld your_instance.tld /etc/letsencrypt/live\n"
msgstr ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/"
"prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: peertube-plugin-livechat-documentation VERSION\n"
"POT-Creation-Date: 2024-09-12 12:53+0200\n"
"PO-Revision-Date: 2025-02-03 09:01+0000\n"
"PO-Revision-Date: 2025-04-26 00:24+0000\n"
"Last-Translator: Jiří Podhorecký <j.podhorecky@gmail.com>\n"
"Language-Team: Czech <https://weblate.framasoft.org/projects/"
"peertube-livechat/peertube-plugin-livechat-documentation/cs/>\n"
@ -16,7 +16,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
"X-Generator: Weblate 5.9.2\n"
"X-Generator: Weblate 5.11\n"
#. type: Yaml Front Matter Hash Value: description
#: support/documentation/content/en/contact/_index.md
@ -1928,14 +1928,14 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"
" cert import \\\n"
" room.your_instance.tld your_instance.tld /etc/letsencrypt/live\n"
msgstr ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/"
"prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
@ -2725,6 +2725,8 @@ msgstr ""
#: build/documentation/pot_in/documentation/admin/settings.md
msgid "You can choose from several different sets the default avatars that will be used for chat users."
msgstr ""
"Můžete si vybrat z několika různých sad výchozích avatarů, které budou "
"použity pro uživatele chatu."
#. type: Plain text
#: build/documentation/pot_in/documentation/admin/settings.md

View File

@ -2415,14 +2415,14 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"
" cert import \\\n"
" room.your_instance.tld your_instance.tld /etc/letsencrypt/live\n"
msgstr ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1636,7 +1636,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1481,7 +1481,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1523,14 +1523,14 @@ msgstr "On va créer un fichier `/etc/letsencrypt/renewal-hooks/deploy/prosody.s
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"
" cert import \\\n"
" room.your_instance.tld your_instance.tld /etc/letsencrypt/live\n"
msgstr ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1451,7 +1451,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1481,7 +1481,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

File diff suppressed because it is too large Load Diff

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1430,7 +1430,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1451,7 +1451,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"

View File

@ -1449,7 +1449,7 @@ msgstr ""
#: support/documentation/content/en/documentation/admin/advanced/xmpp_clients.md
#, no-wrap
msgid ""
"#!/bin/sh\n"
"#!/usr/bin/env sh\n"
"/var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosodyAppImage/squashfs-root/AppRun prosodyctl \\\n"
" --root \\\n"
" --config /var/www/peertube/storage/plugins/data/peertube-plugin-livechat/prosody/prosody.cfg.lua \\\n"