Link Search Menu Expand Document

Modelos/Templates

Os modelos são usados para personalizar as mensagens que aparecem em raids e anúncios. Desta forma, você pode adicionar alguns dados que não são mostrados por padrão, como o CP máximo ou os tipos de Pokémon, ou você também pode alterar a disposição dos elementos existentes.

Plantillas de texto

Existem dois modelos completamente independentes: o modelo raid, que é alterado com /raidtemplate, e o modelo de anúncio, que é alterado com /announcetemplate. Além disso, as raids podem ter conteúdo após a lista de treinadores, que pode ser definida com /raidfootertemplate.

Colocando esses comandos sem argumentos, o código do modelo atual é exibido. Para alterar um modelo, você pode copiar e colar esse código com as modificações desejadas. Por exemplo:

 /raidtemplate <b>{Pokémon}</b> Raid  {{ em <b>{weekday_day_month}</b> }} às {timewarn_icon_} <b>{raidtime}</b> em {gym_icon} {gym}<br> {{ <em>Disponível de {opentime} a {endtime}</em><br> }} <em>Organizado por</em> {organizer} {_ edited_icon} {_ refloated_icon}

Para retornar ao modelo padrão, você deve colocar um hífen -, conforme a seguir:

/raidtemplate -

⚠️ ⚠️ Está tudo muito confuso? Comece colocando o comando /raidtemplate e olhe para o modelo raid atual. Copie, cole e faça algumas modificações. Aos poucos, experimente coisas novas.

Modelos predefinidos

Além do modelo padrão, existem alguns modelos predefinidos adicionais. Para usá-los, você deve especificar seus nomes em vez de colocar o modelo completo. Por exemplo:

/raidtemplate maxcp
/announcetemplate maxcp

Os modelos predefinidos disponíveis são:

Nome Descrição
maxcp Como o modelo padrão, mas também mostra o CP máximo do Pokémon.
pokebattler Como o modelo padrão, mas com um link para Pokébattler no nome do Pokémon.
pokebattler_maxcp A combinação dos dois modelos anteriores: mostra o CP máximo e um link para o Pokébattler em nome do Pokémon.

Variáveis

Em qualquer template você encontrará texto entre colchetes {} que são variáveis que mais tarde serão substituídas pelos dados de raids e anúncios. Por exemplo, {gym} é substituído pelo nome do ginásio, com um link se a localização for conhecida.

Esta lista indica todas as variáveis disponíveis. Alguns já são usados no modelo padrão ou em um dos modelos predefinidos, mas outros não. Para maior clareza, os colchetes {} não aparecem na lista.

Variável Descrição HTML  
pokemon O Pokémon ou o ovo. -
pokemon_gameinfo O Pokémon (com um link para seu guia no Gameinfo) ou o ovo. Link
pokemon_pokebattler O Pokémon (com um link para seu guia no Pokebattler) ou o ovo. Link
pokemon_kingcasualbot O Pokémon (com um link para seu guia no KingCasualBot) ou o ovo. Link
pokedexno O número da Pokédex, disponível apenas se o chefe for selecionado -
tier O nível da raid, numericamente: 1, 3, 5; ou mega ou ex. -
expokemon_icon O ícone EX apenas se for um EX Raid Boss. -
shinepokemon_icon O ícone brilhante somente se for um chefe de raid que pode parecer brilhante. -
maxcp O máximo de CP no nível 20. -
maxcp_boosted O CP máximo no nível 25. -
types Os tipos do Pokémon (em ícones). -
types_text Os tipos do Pokémon (em texto). -
type1 O primeiro tipo do Pokémon -
type2 O segundo tipo do Pokémon (se houver) -
numtypes O número de tipos do Pokémon (1 ou 2) -
weatherboosts Os climas que fortalecem o Pokémon (em ícones). -
weatherboosts_text Os climas que fortalecem o Pokémon (no texto). -
numweatherboosts O número de climas intensificados que o Pokémon possui (1 ou 2) -
x1weaknesses Os tipos para os quais o Pokémon é fraco (em ícones) -
x2weaknesses Os tipos aos quais o Pokémon é duplamente fraco (em ícones) -
x1weaknesses_text Os tipos para os quais o Pokémon é fraco (em texto, separados por vírgulas) -
x2weaknesses_text Os tipos para os quais o Pokémon é duplamente fraco (no texto, separados por vírgulas) -
numx1weaknesses O número de tipos que o Pokémon é fraco para -
numx2weaknesses O número de tipos aos quais o Pokémon é duplamente fraco -
gym O ginásio, com um link para o local se for reconhecido. Link
gym_icon O ícone de localização. -
exgym_icon O ícone EX apenas se for um ginásio EX. -
zone A área ou áreas do ginásio. -
country O país do treinador que criou a raid. Isso é usado para localizar as invasões em grupos remotos que permitem a você criar invasões de todo o mundo e fazê-las usando convites. -
country_flag O emoji com a bandeira do país do treinador que criou a raid. -
countryregion A região do país do treinador que criou a raid. Isso serve para localizar raids em grupos remotos com um pouco mais de precisão que permite criar raids em grandes áreas, como um país inteiro ou vários países. -
announcer Treinador que criou um anúncio. Link
organizer Treinador que organizou uma invasão. Link
weekday_day_month Dia da semana, dia e mês se a invasão não for hoje. -
weekday_day Dia da semana e dia se a invasão não for hoje. -
day_month Dia e mês, se a invasão não for hoje. -
opentime É hora de abrir o ovo. Você pode forçar um 0 na primeira posição se o tempo for um único dígito, adicionando 0 ao início da variável: 0endtime. -
lopentime Hora em que o ovo é aberto com um link para um conversor de hora local. Você pode forçar um 0 na primeira posição se o tempo for um único dígito, adicionando 0 após o l: l0opentime inicial. Link
endtime Hora de fechar o ovo. Você pode forçar um 0 na primeira posição se o tempo for um único dígito, adicionando 0 ao início da variável: 0endtime. -
lendtime Horário de fechamento do ovo com um link para um conversor de horário local. Você pode forçar um 0 na primeira posição se o tempo for um único dígito, adicionando 0 após o l: l0endtime inicial. Link
raidtime Hora da invasão. Você pode forçar um 0 na primeira posição se o tempo for um único dígito, adicionando 0 ao início da variável: 0raidtime. -
lraidtime Hora da raid com um link para um conversor de hora local. Você pode forçar um 0 na primeira posição se o tempo for um único dígito, adicionando 0 após o l: l0raidtime inicial. Link
raidtime_europe/madrid Momento da raid em fuso horário diferente do configurado no grupo, neste exemplo o de Europa /Madrid. Você pode colocar qualquer fuso horário válido da IANA. O fuso horário do seu grupo deve ser configurado antes. Você pode forçar um 0 na primeira posição se o tempo for um único dígito, adicionando 0 ao início da variável, por exemplo, 0raidtime_europe /madrid. -
lraidtime_europe/madrid Horário da raid em fuso horário diferente do configurado no grupo, neste exemplo o de Europa /Madrid, com link para conversor de horário para horário local. Você pode colocar qualquer fuso horário válido da IANA. O fuso horário do seu grupo deve ser configurado antes. Você pode forçar um 0 na primeira posição se o tempo for um único dígito, adicionando 0 após o l inicial, por exemplo, l0raidtime_europe /madrid. -
timewarn Envie uma mensagem de texto com close soon se o horário da organização da raid estiver muito próximo do horário de fechamento. -
timewarn_icon ⚠️ ícone se o horário da organização da raid estiver muito próximo do horário de fechamento. -
minutesfromstart O número de minutos entre o tempo de abertura do ovo e o tempo de raid. -
minutestoend O número de minutos entre o momento da raid e o momento em que o chefe da raid desaparece. -
edited_icon 📝 ícone se editado. -
edited Texto editado se for editado. -
refloated_icon Ícone 🎈 se estiver flutuando. -
refloated Texto floated se estiver flutuando. -
note Nota de texto geralmente adicionada por um administrador ou organizador da raid. Se não for especificado no modelo, será adicionado automaticamente no rodapé da raid no caso de adicionar uma nota. -
trainerscount O texto com a quantidade de treinadores cadastrados e os respectivos subtotais, de acordo com a configuração do grupo. Se não for especificado no modelo, ele será adicionado automaticamente logo acima da lista de instrutores direcionados. -
trainerscount_all O número total de inscritos (apenas o número). Também estão disponíveis trainerscount_notremote para treinadores presenciais, trainerscount_remote para os remotos (incluindo os convidados), trainerscount_invited para os treinadores convidados; e também trainerscount_valor, trainerscount_mystic e trainerscount_instinct caso o +1 seja ativado por equipes. -
trainerscount_pendinginvites O número de treinadores que estão solicitando um convite e aguardando que outro treinador concorde em convidá-los. -

Formato com HTML

Os modelos podem ser formatados com HTML simples, com as restrições usuais do Telegram:

  • As etiquetas válidas são <i></i> (itálico), <b></b>(negrito), <u></u>(sublinhado), <s></s>(riscado), <code></code>(texto de largura fixa) e <a href=""></a>(link).
  • Se você quiser que os caracteres <, > e & sejam vistos, as entidades &lt;, &gt; e &amp; devem ser usadas.
  • Você pode colocar, por exemplo, texto em negrito e sublinhado ao mesmo tempo, utilizando os rótulos corretamente. <u><b>certo</b></u> está correto, mas <u><b>errado</u></b> é errado e não funcionará.
  • As quebras de linha devem ser indicadas com <br>. Você pode separar os elementos colocando vários em uma linha, por exemplo <br><br>.

Lembre-se de que você está especificando o código para o modelo e o formato que você aplicar diretamente será ignorado. Ou seja, se você deseja que algo seja mostrado em negrito, deverá colocar <b>desta forma</b>, mas não deverá utilizar a opção negrito integrada no Telegram.

Variantes de variáveis

Para ajudar a construir mensagens melhores, existem versões das variáveis com espaços no início, com espaços no final, em letras maiúsculas … Estas são as variantes disponíveis:

  • {VARIABLE}: contém {variable} em maiúsculas.
  • {Variable}: contém {variable} forçando a primeira letra maiúscula.
  • {_variable}: Contém {variable} com um espaço à esquerda.
  • {variable_}: contém {variable} com um espaço no final.
  • {_variable_}: contém {variable} com um espaço no início e no final.

Variáveis que colocam Link na coluna HTML contêm links. Ou seja, {pokemon_gameinfo} será exibido como o nome do Pokémon com um link para Gameinfo.

Este tipo de variável pode ser decomposto para exibir independentemente apenas o texto, adicionando _text no final, ou apenas a URL, adicionando _link no final.

Por exemplo, a variável {pokemon_gameinfo_text} conterá o texto com o nome do Pokémon e {pokemon_gameinfo_link} conterá a URL.

Blocos condicionais

Existem dois tipos de blocos condicionais, que permitem mostrar ou ocultar partes dos modelos, dependendo da situação.

Bloco condicional simples

Este bloco condicional mais simples é simplesmente escrito assim: ` {{texto {variables} e mais texto}}`.

Neste caso, o conteúdo entre colchetes será mostrado apenas se todas as variáveis ​​usadas dentro forem definidas ou verdadeiras.

Existem vários exemplos deste tipo de bloco no modelo padrão, onde apenas uma parte do texto é exibida se a variável weekday_day_month for definida e outra se opentime e endtime forem definidas.

Bloco condicional com condições

O outro tipo de bloco condicional permite que você use condições complexas e é escrito assim: [condiciones]{{texto {variables} e mais texto}}.

Nesse caso, o conteúdo entre colchetes será exibido apenas se as condições definidas entre [] forem verdadeiras. Não importa se as variáveis ​​dentro das chaves {{}} são indefinidas ou falsas, o conteúdo ainda é exibido.

As condições podem ser simplesmente variáveis ​​como opentime ou isegg. Eles também podem recusar, colocando um ! Na frente dele. Por exemplo:

[opentime]{{<em>Abre entre {opentime} e {endtime}</em><br>}}
[!isegg]{{🐒 Raid de <b>{pokemon_kingcasualbot} ({maxcp}/{maxcp_boosted})}}

Dentro das condições, você pode usar comparadores matemáticos comuns: menor que <, maior que >, igual a ==, diferente de !=, Menor ou igual a <= e maior ou igual a >=. Eles podem ser usados ​​para comparar valores de variáveis ​​com valores arbitrários, por exemplo:

[opentime>20:00]{{🌚 Cuidado, raid noturna!}}
[minutestoend<5]{{⛔️ Falta pouco tempo para fazer a raid, coloque um pouco mais cedo!!}}
[tier==ex]{{🎟' Lembre-se que você precisa de um passe especial para poder fazer a raid, não se inscreva se você não tiver!}}

Você também pode usar as conjunções lógicas: and && e or ||. Desta forma, várias condições podem ser unidas para tornar uma mais complexa, por exemplo:

[isegg && minutesfromstart<10]{{<em>🥚🚫 Vários Pokémon podem ser lançados e você definiu a hora muito próxima da hora de chocar. Se puder, altere a hora para um pouco mais tarde.}}
[raidispending && trainerscount_remote > 5]{{⛔️💌 <u>Proíbido convidar qualquer pessoa que não esteja registrada!</u> }}

No caso de usar mais de duas condições e misturar && e ||, observe que elas são sempre avaliadas da esquerda para a direita e esta ordem de avaliação não pode ser alterada.

Variáveis ​​específicas para usar em blocos condicionais

Todas as variáveis descritas na tabela acima podem ser usadas como condições. Caso tenham um valor definido, a condição será verdadeira. Caso não tenham valor definido, a condição será falsa.

Além disso, existem algumas variáveis especialmente indicadas para uso como condições, que não imprimem nada mesmo que sejam verdadeiras:

Variável Descrição
isegg Verdadeiro se for um ovo.
ispokemon Verdadeiro se você for um chefe de raid.
isannounce Verdadeiro se for um anúncio de raid sem organizar (para uso com modelos de imagem).
israid Verdadeiro se for uma raid organizada (para uso com modelos de imagem).
istier5 Verdadeiro se for um chefe ou ovo de nível 5. Também disponível para todos os outros níveis.
hasforms Verdadeiro se o Pokémon tiver formas definidas globalmente (uma ou mais).
has1type Verdadeiro se o Pokémon tiver apenas 1 tipo.
has2types Verdadeiro se o Pokémon tiver 2 tipos.
has1weatherboost Verdadeiro se o Pokémon for fortalecido por apenas 1 clima.
has2weatherboosts Verdadeiro se o Pokémon for fortalecido por 2 clima.
ismissingform Verdadeiro se o Pokémon tiver formas definidas globalmente (uma ou mais), mas não tiver sido escolhido na raid.
timenearopen Verdadeiro se o horário da organização da raid for inferior a 12 minutos do horário de abertura. Também disponível timenearend, timefaropen, timefarend e timeverynearend (como timenearend mas menos de 6 minutos).
pendinginvites Verdadeiro se houver solicitações de convites com aceitação pendente.
maxjoined Verdadeiro se o número máximo de treinadores presenciais configurados no grupo for atingido.
maxtotal Verdadeiro se o número máximo total de treinadores configurados no grupo foi atingido.
maxremote Verdadeiro se o número máximo de treinadores remotos configurados no grupo foi alcançado.
maxinvited Verdadeiro se o número máximo de treinadores convidados configurados no grupo for atingido.
maxgametotal Verdadeiro se o número máximo total de treinadores por limite foi excedido no jogo, independentemente da configuração do grupo.
maxgameremote Verdadeiro se o número máximo de treinadores remotos foi excedido com base no limite do jogo, independentemente da configuração do grupo.
raidpending Verdadeiro se a raid ainda não ocorreu ou se está ocorrendo, mas não foi fechada manualmente, se o ovo não desapareceu ou se passou um período de tempo razoável desde o horário programado.
raidended Verdadeiro se a raid foi fechado manualmente, o ovo desapareceu ou se passou um período de tempo razoável desde a hora programada.
raidcancelled Verdadeiro se a raid foi cancelada.
pokemon_hatchable_canbeshiny1 Se o Pokémon que pode vir do ovo na posição 1 pode ser pego brilhante (1 a 10 pode ser usado, para ser usado com os modelos de imagem).

Modelos de imagem

Os modelos de imagem permitem que você adicione imagens às raids, que podem ser personalizadas com informações de cada raid. Eles são desativados por padrão. Para ativá-los ou alterá-los para outros, use o comando /imagetemplate. Por exemplo, para usar o modelo default:

/imagetemplate default

Para ver os modelos disponíveis ou baixar o modelo atual, use /imagetemplate sem parâmetros. Para parar de usar modelos de imagem, use o parâmetro -, que é:

/imagetemplate -

Os modelos de imagem também podem ser personalizados. Eles são arquivos SVG com um tamanho entre 600x300 pixels e 600x400 pixels. Dentro, eles contêm elementos de texto e imagem que são interpretados e substituídos pelo bot com os dados reais de raid ou anúncio. Recomenda-se usar o Inkscape para edição (requer um computador Linux, Windows ou Mac).

Para começar a usar um template customizado, envie o arquivo SVG do template para o grupo, colocando /imagetemplate na descrição.

Você pode iniciar um modelo do zero, mas a coisa mais fácil é começar pegando um modelo existente e modificando-o. Com o comando /imagetemplate você pode baixar o modelo de imagem atual e fazer modificações para usá-lo posteriormente como um modelo personalizado.

Se você abrir um modelo, as imagens vinculadas serão exibidas com um erro, pois o arquivo referenciado não existe (leia a seção sobre imagens abaixo). Para evitar isso, você pode baixar este pacote de imagens e descompactá-lo no mesmo diretório onde você tem o modelo, o que facilitará a edição ao ter uma ideia melhor de como as imagens olhe enquanto edita.

Para interpretar os elementos do template, são utilizadas as propriedades id, class e algumas propriedades que começam com data-, específicas para cada caso. Para visualizar e editar essas propriedades, você precisa ativar o editor Inkscape XML. Habilite-o no menu Edit »_ XML Viewer …_.

Substituições em elementos de texto

Os elementos de texto podem ser interpretados como se fossem modelos de texto normais. Você não pode usar condicionais de qualquer tipo. Para que um elemento de texto seja interpretado, ele deve ter um class chamada parsetext.

Observe que o HTML não pode ser usado em imagens, portanto, as variáveis ​​que contêm links exibirão o código HTML. Por exemplo, a variável {gym}. Para evitar que o HTML seja exibido, você pode usar a variante somente texto, ou seja, {gym_text}.

Condicionales

Elementos inteiros podem ser mostrados e ocultados usando condicionais. Para que as condicionais de um elemento sejam interpretadas, ele deve ter uma classe chamada parsconditions.

As condições devem ser definidas como o valor de um atributo chamado condições de dados. Todas as condições descritas na seção de modelos de texto podem ser usadas, como isegg && minutestoend <10.

Imagens

Em um arquivo SVG, você pode incorporar (embed) imagens ou vincular (link) imagens externas. Se você arrastar um arquivo de imagem para o Inkscape, deve informar qual dos dois deseja fazer. Se você quiser incluir sua própria imagem (por exemplo, uma imagem de fundo ou o logotipo do grupo), você vai querer incorporá-la. Pelo contrário, se quiser que a imagem seja substituída por uma das disponíveis no bot, você deve vinculá-la.

O bot pode substituir imagens vinculadas para mostrar Pokémon, tipos de Pokémon e algumas outras coisas. Para especificar qual imagem você deseja substituir, você deve especificar o identificador correto no atributo id, de acordo com a seguinte tabela:

Id Descripción Relación
pokemon_img Imagem do Pokémon ou do ovo com uma escala mais realista (de acordo com os sprites do jogo) 1:1
spokemon_img Imagem do Pokémon ou ovo com uma escala alternativa menos realista, mas mais equilibrada, totalmente centralizada 1:1
dspokemon_img Imagem do Pokémon ou ovo com uma escala alternativa menos realista, mas mais equilibrada, centralizada verticalmente abaixo 1:1
pokemon_img_shiny Imagem do Pokémon ou do ovo com uma escala mais realista (de acordo com os sprites do jogo) em sua variante brilhante 1:1
spokemon_img_shiny Imagem do Pokémon ou do ovo com uma escala alternativa menos realista, mas mais equilibrada, totalmente focada, em sua variante brilhante 1:1
dspokemon_img_shiny Imagem do Pokémon ou ovo com uma escala alternativa menos realista, mas mais equilibrada, centralizada verticalmente abaixo, em sua variante brilhante 1:1
pokemon_type1 Ícone do primeiro tipo do Pokémon 1:1
pokemon_type2 Ícone do segundo tipo do Pokémon (se houver) 1:1
pokemon_weatherboost1 Ícone de clima habilitado para o primeiro tipo do Pokémon 1:1
pokemon_weatherboost2 Ícone de clima habilitado para o segundo tipo do Pokémon (se houver) 1:1
pokemon_weatherboostw1 Ícone de clima habilitado para o primeiro tipo do Pokémon (em branco) 1:1
pokemon_weatherboostw2 Ícone de clima habilitado para o segundo tipo do Pokémon (se houver, em branco) 1:1
pokemon_x1weakness1 Ícone do tipo para o qual o Pokémon é fraco na posição 1 (pode ser usado de 1 em diante, até 7) 1:1
pokemon_x2weakness1 Ícone do tipo para o qual o Pokémon é duplamente fraco na posição 1 (um 1 ou um 2 podem ser usados) 1:1
pokemon_hatchable1 Imagem do Pokémon que pode sair do ovo na posição 1 (eles podem ser usados ​​de 1 a 10) 1:1
spokemon_hatchable1 Imagem do Pokémon que pode sair do ovo na posição 1 (eles podem ser usados ​​de 1 a 10) com uma escala alternativa menos realista, mas mais equilibrada, totalmente centralizada 1:1
dspokemon_hatchable1 Imagem do Pokémon que pode sair do ovo na posição 1 (eles podem ser usados ​​de 1 a 10) com uma escala alternativa menos realista, mas mais equilibrada, centralizada verticalmente abaixo 1:1
country_img Bandeira do país do local do ataque, semelhante ao country_flag nos modelos de texto. 4:3
gym_img Imagem do ginásio (é necessário fazer o upload, leia a seção de imagens de Ginásios) 1:1

Se uma imagem vinculada for definida com um desses id e a imagem não existir, ela será automaticamente ocultada. Por exemplo, se o Pokémon tem apenas um tipo, mas as imagens que se referem ao segundo tipo são usadas. Imagens vinculadas que não possuem nenhum desses ids serão ignoradas e mostrarão erros no modelo.

Posição e tamanho do texto

Os elementos de texto podem ser reposicionados verticalmente ou redimensionados com base no comprimento do texto, para ajudar a acomodar o texto nos modelos. É complicado acomodar texto de comprimento variável e, usando essas técnicas, é difícil obter resultados perfeitos ao usar fontes de largura variável, mas com um pouco de tentativa e erro você pode obter bons resultados.

Para alterar o tamanho da fonte com base no comprimento do texto, o elemento deve ter uma class chamada resizetext. Você pode especificar o comprimento de qual redimensionar, colocando o comprimento como o valor de um atributo chamado data-resizetext-length e o tamanho desejado em data-resizetext-size. O tamanho deve ser especificado em unidades e será aplicado na propriedade CSS font-size. Por exemplo:

class: resizetext
data-resizetext-length: 30
data-resizetext-size: 8px

Para alterar a posição vertical do texto com base em seu comprimento, o elemento deve ter uma class chamada movetext. Você pode especificar o comprimento do qual o texto deve ser reposicionado, colocando o comprimento como o valor de um atributo chamado data-movetext-length e o tamanho desejado em data-movetext-distance. A distância deve ser especificada sem unidades e será aplicada como o atributo y do elemento. Por exemplo:

class: movetext
data-movetext-length: 25
data-movetext-distance: -5

Imagens de ginásio

Para que as imagens de ginásios funcionem, o grupo precisa ter uma planilha definida e os ginásios carregadas. Feito isso, deve-se obter as imagens e enviá-las para o grupo dentro de um arquivo ZIP, colocando o comando /gymimages no comentário.

As imagens devem estar no formato JPEG e devem ser nomeadas conforme o nome do ginásio (primeira coluna) consta na planilha, com a extensão .jpg ou .jpeg ao final. Além disso, cada imagem não pode exceder 300 KB de tamanho e o arquivo ZIP não pode exceder 5 MB. O arquivo ZIP não deve conter subdiretórios: as imagens devem estar todas no diretório principal. Um máximo de 300 arquivos são processados, portanto, se você tiver mais ginásios em seu grupo, terá que se limitar a 300 delas.

As imagens recebidas só serão aceitas se houver um ginásio pré-carregado com esse nome. Depois de aceitos, eles são redimensionados e cortados em um quadrado de 250x250 pixels centralizado, independentemente do formato da imagem original.

Se você quiser fazer upload de mais imagens posteriormente, terá que reenviar todas, pois, cada vez que um novo arquivo ZIP é recebido, todos os anteriores são excluídos primeiro.

Limitações

Ao contrário dos modelos de texto, os modelos de imagem não são atualizados toda vez que a mensagem é atualizada, eles só são atualizados quando os dados básicos da raid mudam, como: o Pokémon, tempo, ginásio, etc. É por isso que variáveis ​​e condicionais que se referem ao número de treinadores cadastrados não devem ser usados ​​no template de imagem, uma vez que a imagem não será atualizada adequadamente.

As fontes que podem ser usadas são todas incluídas nesta coleção de fontes do Google. Se você usar fontes não suportadas, elas parecerão incorretas. Para resolver isso, você pode converter esses textos em paths. Isso não pode ser feito se você quiser que as variáveis ​​sejam interpretadas dentro do texto, pois ao convertê-las para paths elas param de se comportar como textos.

IDs de elemento não podem ser repetidos, portanto, ao usar o atributo id para especificar o tipo de imagem, você não pode colocar a mesma imagem vinculada duas vezes no mesmo modelo. Para corrigir isso, você pode adicionar barras baixas _ no final e o bot vai entender de qualquer maneira. Ou seja, pokemon_img_ e pokemon_img__ funcionam da mesma forma que pokemon_img.

As mensagens de imagem demoram mais para serem geradas e, dependendo da carga do servidor, isso pode causar problemas. Você deve tentar usar os modelos o mais simples possível e, se incorporar imagens, compactá-los para um tamanho adequado primeiro. Os modelos com mais de 400 itens ou 2 MB são rejeitados automaticamente.

As mensagens gráficas no Telegram têm no máximo 1024 caracteres, enquanto as mensagens normais têm no máximo 4096 caracteres. Com modelos de texto não excessivos e um máximo de 20 treinadores marcados por raid, não deve haver nenhum problema, mas se você não limitar o número de treinadores em seu grupo ou colocar textos muito longos nos modelos, você pode atingir esse limite e a pesquisa raid irá parar de funcionar. Você pode copiar e colar o texto de uma raid com muitos treinadores marcados em uma ferramenta como o charactercountonline.com para ver o número de caracteres que você costuma usar. Lembre-se de que, se você colocar informações na imagem, normalmente não deseja que sejam duplicadas no texto também, portanto, você pode remover informações duplicadas de modelos de texto para salvar caracteres.

Teste os modelos

Para tornar o desenvolvimento de modelos mais fácil, você pode enviar os arquivos SVG dos modelos junto com a descrição /testimagetemplate para testá-los de forma privada (não em um grupo). O bot renderizará o modelo em várias situações diferentes para que você possa verificar sua aparência e corrigir erros.


Os servidores podem ser pagos mensalmente graças às generosas doações deste e de outros. Mesmo pequenas doações ajudam a manter os custos do servidor, então, por favor, faça uma doação no Patreon: Tina Arroyo, Pokémon Go Tarragona, RAMeow, Jordi2908, CosladaGO, Incursiones Tenerife Norte, PoGo Areeiro, Gcg93ZoNe, TFalkenLop, RaidsAveiro, Go Vallecas, Eleita, CidHigh, Pilfer, itsnursejessi, LucasOnRubia, jillo71, FeiGei