# Desafios Diários do Discourse

**URL:** https://meta.discourse.org/t/discourse-daily-challenges/398980
**Category:** Plugin
**Created:** [21 Março , 2026 19:48 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980 "2026-03-21T19:48:47Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [27 Março , 2026 11:57 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/23 "2026-03-27T11:57:57Z")

</div>

Estou levando minha filha para a escola no momento. Depois, tenho alguns compromissos esta manhã. Vou precisar de algum tempo para investigar.

---

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [27 Março , 2026 13:39 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/24 "2026-03-27T13:39:05Z")

</div>

Parece que algumas colunas do banco de dados podem não ter migrado corretamente. Esta versão adicionou várias colunas novas às tabelas existentes. Você pode tentar executar:

```bash
cd /var/discourse && ./launcher rebuild app

```

Usar o botão Atualizar no painel não aplica as migrações do banco de dados — é necessária uma reconstrução completa quando o plugin adiciona novas colunas.

Obrigado pela paciência. Vamos resolver isso!

---

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [27 Março , 2026 13:46 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/25 "2026-03-27T13:46:49Z")

</div>

Na verdade, você pode executar isso primeiro e publicar a saída?

```bash
./launcher enter app
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "puts ActiveRecord::Base.connection.columns(\"daily_challenges\").map(&:name)"'

```

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [27 Março , 2026 15:16 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/26 "2026-03-27T15:16:58Z")

</div>

```plaintext
root@segredin-app:/var/www/discourse# su discourse -c 'cd /var/www/discourse && bundle exec rails runner "puts ActiveRecord::Base.connection.columns(\"daily_cha llenges\").map(&:name)"'
id
topic_id
hashtag
start_date
end_date
check_ins_needed
description
created_at
updated_at
final_post_sent
weekly_post_enabled
weekly_post_day
weekly_post_hour
award_badge
badge_name
badge_id
check_in_interval
week_start
category_id

```

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [27 Março , 2026 15:22 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/27 "2026-03-27T15:22:24Z")

</div>

veja isso

`ActiveModel::UnknownAttributeError (atributo desconhecido 'challenge_timezone' para DailyChallenge.) app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'`

---

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [27 Março , 2026 15:23 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/28 "2026-03-27T15:23:07Z")

</div>

Parece que você está sem a coluna do banco de dados challenge\_timezone. Você pode executar o seguinte:

```plaintext
./launcher enter app
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "ActiveRecord::Base.connection.add_column(:daily_challenges, :challenge_timezone, :string, default: \"UTC\") unless ActiveRecord::Base.connection.column_exists?(:daily_challenges, :challenge_timezone)"'

```

Isso deve adicioná-la. Vou investigar por que ela não foi adicionada e atualizar os arquivos.

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [27 Março , 2026 15:27 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/29 "2026-03-27T15:27:34Z")

</div>

Certo, resta apenas aguardar a correção dele

```plaintext
ActiveModel::UnknownAttributeError (atributo desconhecido 'challenge_timezone' para DailyChallenge.)
app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:447:in 'ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:1098:in 'ApplicationController#ensure_dont_cache_page'
lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call'
lib/middleware/crawler_hooks.rb:11:in 'Middleware::CrawlerHooks#call'
lib/content_security_policy/middleware.rb:12:in 'ContentSecurityPolicy::Middleware#call'
lib/middleware/anonymous_cache.rb:420:in 'Middleware::AnonymousCache#call'
lib/middleware/csp_script_nonce_injector.rb:12:in 'Middleware::CspScriptNonceInjector#call'
config/initializers/008-rack-cors.rb:14:in 'Discourse::Cors#call'
lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call'
config/initializers/100-quiet_logger.rb:20:in 'DiscourseRackQuietAssetsLogger#call'
config/initializers/100-silence_logger.rb:29:in 'SilenceLogger#call'
lib/middleware/enforce_hostname.rb:23:in 'Middleware::EnforceHostname#call'
lib/middleware/request_tracker.rb:321:in 'Middleware::RequestTracker#call'
lib/middleware/overload_protections.rb:22:in 'Middleware::OverloadProtections#call'
lib/middleware/processing_request.rb:14:in 'Middleware::ProcessingRequest#call'

```

---

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [27 Março , 2026 15:32 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/30 "2026-03-27T15:32:01Z")

</div>

Para garantir que estamos no diretório correto, execute primeiro:

```plaintext
cd /var/discourse && ./launcher enter app

```

Em seguida, execute:

```plaintext
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "ActiveRecord::Base.connection.add_column(:daily_challenges, :challenge_timezone, :string, default: \"UTC\") unless ActiveRecord::Base.connection.column_exists?(:daily_challenges, :challenge_timezone)"'

```

Após executá-lo, você pode digitar “exit” para sair do aplicativo.

Faça uma atualização forçada na página web (Ctrl-Shift-R) e tente novamente. Se isso não funcionar, enviarei uma correção em alguns instantes.

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [27 Março , 2026 15:54 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/31 "2026-03-27T15:54:24Z")

</div>

![image](https://global.discourse-cdn.com/meta/original/4X/0/e/8/0e863b40b6018abf27de6abe2ab371d52bb31014.png)

---

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [27 Março , 2026 16:07 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/32 "2026-03-27T16:07:38Z")

</div>

Estou em uma reunião. Atualizo em breve.

---

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [27 Março , 2026 18:04 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/33 "2026-03-27T18:04:04Z")

</div>

Acabei de enviar uma atualização. Você deverá poder atualizar através do painel de administração. Se isso não funcionar, talvez seja necessário executar

```plaintext
./launcher rebuild app

```

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [27 Março , 2026 20:16 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/34 "2026-03-27T20:16:36Z")

</div>

Funciona

![Friends: Chandler Bing (Matthew Perry) Dançando](https://global.discourse-cdn.com/meta/original/4X/e/9/5/e9571e6e6cb9606e9588d5f86a77b72e42989770.webp)

---

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [27 Março , 2026 20:18 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/35 "2026-03-27T20:18:46Z")

</div>

WOOOO!!! Obrigado por ficar comigo e me ajudar a resolver isso!!

![Funny Man Dancing in Tutu](https://global.discourse-cdn.com/meta/original/4X/2/8/6/28622128d41964cc1f2c94d42fdc9515f1b2842d.webp)

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [27 Março , 2026 20:21 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/36 "2026-03-27T20:21:56Z")

</div>

Então, o próximo passo terá algumas novas funções? Gostaria de compartilhar algumas ideias com você:

Sequências com moedas e emblemas, além de uma área/seção para acompanhar suas próprias estatísticas.

De qualquer forma, adoro e estou aguardando mais 😃

---

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [27 Março , 2026 21:41 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/37 "2026-03-27T21:41:23Z")

</div>

> [@eisammy](#):
>
> local/seção para acompanhar suas próprias estatísticas

Estou trabalhando atualmente nesta parte. Será basicamente um “bot” que você cria (na verdade, apenas uma conta de usuário). O plugin monitorará menções ao bot. Quando ele as detectar, executará a ação. Por exemplo:

Nome do Bot: ChallengeBot

Alguém digita:

```plaintext
@ChallengeBot status

```

O bot enviará uma mensagem direta (DM) com o status atual da pessoa no desafio.

O bot também terá algumas outras opções.

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [28 Março , 2026 13:35 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/38 "2026-03-28T13:35:10Z")

</div>

Como obter essas informações para exibi-las em outro local? Ou fazê-las aparecer no cartão do usuário? Se houver algum caminho para fazer isso, seria ótimo.

 ![image](https://global.discourse-cdn.com/meta/original/4X/a/5/7/a57397782c75a40cd5f33babc9af920a0b64b874.png)

---

<div class="post-metadata">

### Author: ![R23D\_Printing](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/r23d_printing/32/544902_2.png) [@R23D\_Printing](https://meta.discourse.org/u/R23D_Printing)
#### Post date: [28 Março , 2026 21:26 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/39 "2026-03-28T21:26:46Z")

</div>

**v1.4.0 já está disponível!**

Esta versão adiciona o ChallengeBot — uma conta de bot opcional que traz recursos de engajamento baseados em DM para seus desafios.

Novidades nesta versão:

- **Confirmação de check-in por DM** — os membros recebem uma DM do ChallengeBot após cada check-in bem-sucedido, mostrando sua sequência atual e um link para o tópico do desafio.
- **Lembretes por DM** — participantes que não fizeram check-in por 2 ou mais dias consecutivos (desafios diários) ou que não fizeram check-in até o último dia da semana (desafios semanais) recebem um lembrete suave do ChallengeBot. Inclui a contagem atual de check-ins e a meta. Pode ser ativado/desativado por desafio, com padrão ativado.
- **Comandos com @mention** — os membros podem mencionar `@ChallengeBot` em qualquer tópico de desafio ativo para obter estatísticas pessoais via DM. O bot nunca responde no próprio tópico. Comandos disponíveis: `status`, `leaderboard`, `streak`, `checkins`, `progress`, `help`. Limitado a 10 comandos por usuário por hora.
- **Postagens de leaderboard e resultados finais** — se o ChallengeBot estiver configurado, as postagens semanais de leaderboard e os resultados finais são agora enviados pela conta do bot em vez da conta do sistema.
- **Nova configuração do site** — `daily_challenge_bot_username`
- **Novo campo de desafio** — alternador para lembretes por DM (padrão ativado)

A **configuração do ChallengeBot** é opcional — todos os recursos existentes continuam funcionando sem ele. Consulte o post principal para obter instruções completas de [configuração](https://meta.discourse.org/t/discourse-daily-challenges/398980#p-1955949-setting-up-challengebot-10).

**Observação:** Esta versão inclui uma migração de banco de dados. O botão Atualizar no painel aplicará automaticamente.

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [29 Março , 2026 19:02 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/40 "2026-03-29T19:02:42Z")

</div>

Incrível 😃

 ![image](https://global.discourse-cdn.com/meta/original/4X/d/d/1/dd156356e901a0639a216b69ff76858435a47621.png)

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [29 Março , 2026 19:09 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/41 "2026-03-29T19:09:05Z")

</div>

> [@R23D\_Printing](#):
>
> **Comandos com @mention** — os membros podem mencionar `@ChallengeBot` em qualquer tópico de desafio ativo para obter estatísticas pessoais via DM. O bot nunca responde no próprio tópico. Comandos disponíveis: `status`, `leaderboard`, `streak`, `checkins`, `progress`, `help`. Limitado a 10 comandos por usuário por hora.

Essa opção é possível se for enviada para MP e no tópico? Por sinal, configurei @system como chatbot.

---

<div class="post-metadata">

### Author: ![eisammy](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eisammy/32/528804_2.png) [@eisammy](https://meta.discourse.org/u/eisammy)
#### Post date: [29 Março , 2026 19:10 UTC](https://meta.discourse.org/t/discourse-daily-challenges/398980/42 "2026-03-29T19:10:00Z")

</div>

CSS

```plaintext
.painel-desafio-diário {
    background-color: #1a1a1b;
    padding: 20px;
    border-radius: 8px;
    color: #d7dadc;
}

.título-subcabeçalho-página {
    color: #ffffff;
    font-size: 1.5rem;
    margin-bottom: 15px;
    border-bottom: 1px solid #343536;
    padding-bottom: 10px;
}

.dados-estatísticos.painel-estatísticas-fcd {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
    margin-bottom: 30px;
}

.dados-estatístico {
    background-color: #272729;
    border: 1px solid #343536;
    padding: 15px;
    border-radius: 8px;
    transition: border-color 0.2s;
}

.dados-estatístico:hover {
    border-color: #818384;
}

.rótulo-dados-estatístico {
    color: #818384;
    font-size: 0.75rem;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.valor-dados-estatístico {
    display: block;
    font-size: 1.8rem;
    font-weight: 600;
    color: #ff4500;
}

.tabela-classificação-fcd {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 8px;
}

.tabela-classificação-fcd thead th {
    color: #818384;
    font-size: 0.7rem;
    text-transform: uppercase;
    padding: 0 15px 5px 15px;
    text-align: left;
}

.linha-classificação-fcd {
    background-color: #272729;
    transition: transform 0.1s ease;
}

.linha-classificação-fcd td {
    padding: 12px 15px;
    border-top: 1px solid #343536;
    border-bottom: 1px solid #343536;
}

.linha-classificação-fcd td:first-child {
    border-left: 1px solid #343536;
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
}

.linha-classificação-fcd td:last-child {
    border-right: 1px solid #343536;
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
}

.linha-classificação-fcd:hover {
    background-color: #2d2d2e;
}

.ranking-fcd {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: bold;
    font-size: 0.8rem;
}

.ranking-fcd--ouro { background: #ffd700; color: #000; box-shadow: 0 0 10px rgba(255, 215, 0, 0.3); }
.ranking-fcd--prata { background: #c0c0c0; color: #000; }

ícone-sequência-fcd {
    color: #ff4500;
    filter: drop-shadow(0 0 3px rgba(255, 69, 0, 0.5));
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.1); opacity: 0.8; }
    100% { transform: scale(1); opacity: 1; }
}

progresso-fcd {
    height: 8px;
    background-color: #343536;
    border-radius: 4px;
    overflow: hidden;
    width: 100px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
}

barra-progresso-fcd {
    background: linear-gradient(90deg, #ff4500, #ff8c00);
    height: 100%;
    border-radius: 4px;
}

rótulo-progresso-fcd {
    font-size: 0.8rem;
    color: #d7dadc;
    font-weight: bold;
}

.fcd-leaderboard__user img {
    border-radius: 50%;
    border: 2px solid #343536;
    margin-right: 10px;
}

```

[Página anterior](https://meta.discourse.org/t/discourse-daily-challenges/398980.md?page=1)

[Próxima página](https://meta.discourse.org/t/discourse-daily-challenges/398980.md?page=3)
