Modelli
I modelli vengono utilizzati per personalizzare i messaggi che appaiono nei raid e negli annunci. In questo modo, puoi aggiungere alcuni dati che non vengono mostrati di default, come i PL massimi o le forme dei Pokémon, cambiare la disposizione/l’ordine degli elementi esistenti, oppure utilizzare dei modelli immagine.
Modelli di testo
Ci sono due modelli completamente indipendenti tra loro: il modello raid, che viene modificato con /raidtemplate
, e il modello di annuncio, che viene modificato con /announcetemplate
. Inoltre, i raid possono contenere del testo dopo l’elenco degli allenatori segnati, che può essere impostato con /raidfootertemplate
.
Inviando questi comandi senza argomenti, viene mostrato il codice del modello corrente. Per modificare un modello, puoi copiarlo e incollarlo con le modifiche desiderate. Ad esempio:
/raidtemplate <b>{Pokemon}</b> Raid {{il <b>{weekday_day_month}</b> }}alle {timewarn_icon_}<b>{raidtime}</b> presso {gym_icon}{gym}<br>{{<em>Disponibile dalle {opentime} alle {endtime}</em><br>}}<em>Organizzato da </em>{organizer}{_edited_icon}{_refloated_icon}
Per tornare al modello predefinito, devi inserire un trattino -
, come segue:
/raidtemplate -
⚠️ Ti sembra molto complicato? Inizia inserendo il comando
/raidtemplate
e guarda il modello raid corrente. Copia, incolla e apporta una piccola modifica. Pian piano poi prova ad aggiungere nuovi parametri.
Modelli predefiniti
Oltre al modello predefinito, ci sono alcuni modelli predefiniti aggiuntivi. Per utilizzarli, è necessario specificare il loro nome invece di inserire il modello completo. Ad esempio:
/raidtemplate maxcp
/announcetemplate maxcp
I modelli predefiniti disponibili sono:
Nome | Descrizione |
---|---|
maxcp | Come il modello predefinito, ma mostra anche i PL massimi del Pokémon. |
pokebattler | Come il modello predefinito, ma con un collegamento diretto alla scheda del Pokémon su di Pokébattler. |
pokebattler_maxcp | La combinazione dei due modelli precedenti: mostra i PL massimi e un collegamento alla scheda di Pokébattler. |
Variabili
In ogni modello troverai del testo tra parentesi {}
che sono variabili che verranno poi sostituite dai dati dei raid e degli annunci. Ad esempio, {gym}
viene sostituito dal nome della palestra, con un collegamento per raggiungerla se la posizione è stata impostata.
Questo elenco indica tutte le variabili disponibili. Alcune sono già utilizzate nel modello predefinito o in uno dei modelli predefiniti, ma altre non lo sono. Per appunto, le parentesi {}
non compaiono nell’elenco.
Variabile | Descrizione | HTML |
---|---|---|
pokemon | Il Pokémon o l’uovo. | - |
pokemon_gameinfo | Il Pokémon (con un link alla sua guida su Gameinfo) o l’uovo. | Link |
pokemon_pokebattler | Il Pokémon (con un link alla sua guida su Pokebattler) o l’uovo. | Link |
pokemon_kingcasualbot | Il Pokémon (con un link alla sua guida su KingCasualBot) o l’uovo. | Link |
pokedexno | Il numero di Pokédex, disponibile solo se è selezionato il boss | - |
tier | Il livello del raid, sotto forma di numero: 1 , 3 , 5 ; o mega o ex . | - |
expokemon_icon | L’icona EX solo se è un EX Raid Boss. | - |
shinypokemon_icon | L’icona shiny solo se si tratta di un boss raid che può comparire shiny. | - |
maxcp | I PL massimi al livello 20. | - |
maxcp_boosted | I PL massimi al livello 25. | - |
types | I tipi del Pokémon (icone). | - |
types_text | I tipi del Pokémon (testo). | - |
type1 | Il 1° tipo del Pokémon | - |
type2 | Il 2° tipo del Pokémon (se presente) | - |
numtypes | Numero che indica quanti tipi ha il Pokémon (1 o 2) | - |
weatherboosts | I climi che potenziano il Pokémon (icone). | - |
weatherboosts_text | I climi che potenziano il Pokémon (testo). | - |
numweatherboosts | Numero che indica quanti meteo potenzionano il Pokémon (1 o 2) | - |
x1weaknesses | Tipi al quale il Pokémon è debole (icone) | - |
x2weaknesses | Tipi al quale il Pokémon è doppiamente debole (icone) | - |
x1weaknesses_text | Tipi al quale il Pokémon è debole (testo, separati da virgole) | - |
x2weaknesses_text | Tipi al quale il Pokémon è doppiamente debole (testo, separati da virgole) | - |
numx1weaknesses | El número de tipos ante los que es débil el Pokémon | - |
numx2weaknesses | El número de tipos ante los que es doblemente débil el Pokémon | - |
gym | La palestra, con link alla location se impostata. | Link |
gym_icon | L’icona della palestra. | - |
exgym_icon | L’icona EX solo se è una palestra EX. | - |
zone | La zona o le zone della palestra. | - |
country | Il paese dell’allenatore che ha creato il raid. Può essere utile nei gruppi remoti a livello globale. | - |
country_flag | L’emoji con la bandiera del paese dell’allenatore che ha creato il raid. | - |
countryregion | La regione del paese dell’allenatore che ha creato il raid. Come country ma più precisa sull’area di provenienza. | - |
announce | Allenatore che ha creato l’annuncio. | Link |
organizer | Allenatore che ha organizzato il raid. | Link |
weekday_day_month | Giorno della settimana, giorno e mese se il raid non è oggi. | - |
weekday_day | Giorno della settimana e giorno se il raid non è oggi. | - |
day_month | Giorno e mese se il raid non è oggi. | - |
opentime | È l’orario di schiusa dell’uovo. Puoi forzare uno 0 nella prima posizione se l’ora è una singola cifra aggiungendo 0 all’inizio della variabile: 0opentime . | - |
lopentime | Orario di schiusa dell’uovo con un collegamento a un convertitore di ora locale. È possibile forzare uno 0 nella prima posizione se l’ora è una singola cifra aggiungendo 0 dopo la l iniziale: l0opentime . | Link |
endtime | È l’orario in cui il raid scompare. Puoi forzare uno 0 nella prima posizione se l’ora è una singola cifra aggiungendo 0 all’inizio della variabile: 0endtime . | - |
lendtime | È l’orario in cui il raid scompare con un collegamento a un convertitore di ora locale. Puoi forzare uno 0 nella prima posizione se l’ora è una singola cifra aggiungendo 0 dopo la l iniziale: l0endtime . | Link |
raidtime | Ora del raid. Puoi forzare uno 0 nella prima posizione se l’ora è una singola cifra aggiungendo 0 all’inizio della variabile: 0raidtime . | - |
lraidtime | Ora del raid con un collegamento a un convertitore di ora locale. Puoi forzare uno 0 nella prima posizione se l’ora è una singola cifra aggiungendo 0 dopo la l iniziale: l0raidtime . | Link |
raidtime_europe/rome | Orario del raid in un fuso orario diverso da quello configurato nel gruppo, in questo esempio quello di Europe/Rome . Puoi inserire qualsiasi fuso orario IANA valido. Il fuso orario del tuo gruppo deve essere configurato in precedenza. Puoi forzare uno 0 nella prima posizione se l’ora è una singola cifra aggiungendo 0 all’inizio della variabile, ad esempio, 0raidtime_europe/rome . | - |
lraidtime_europe/rome | Orario del raid in un fuso orario diverso da quello configurato nel gruppo, in questo esempio quello di Europe/Rome , con un collegamento ad un convertitore di ora locale. Puoi inserire qualsiasi fuso orario IANA valido. Il fuso orario del tuo gruppo deve essere configurato in precedenza. Puoi forzare uno 0 nella prima posizione se l’ora è una singola cifra aggiungendo 0 dopo la l iniziale, ad esempio, l0raidtime_europe/rome . | - |
timewarn | Aggiunge vicino alla scadenza se l’orario del raid raid è molto vicino all’orario di scadenza. | - |
timewarn_icon | ⚠️ icona se l’orario del raid è molto vicino all’orario di scadenza. | - |
edited_icon | 📝 icona se viene fatta una modifica. | - |
edited | Testo modificato se viene fatta una modifica. | - |
refloated_icon | Icona 🎈 se è stato riproposto. | - |
refloated | Testo riproposto se è stato riproposto. | - |
note | Nota di testo solitamente aggiunta da un amministratore o dall’organizzatore del raid. Se non è specificato nel modello, verrà automaticamente aggiunto nel piè del raid in caso di aggiunta di una nota. | - |
trainerscount | Il testo con il conteggio degli allenatori segnati e i totali parziali corrispondenti, secondo la configurazione del gruppo. Se non specificato nel modello, verrà automaticamente aggiunto appena sopra l’elenco degli allenatori segnati. | - |
trainerscount_all | Il numero totale degli iscritti (solo il numero). Disponibile anche trainerscount_notremote per gli allenatori presenti fisicamente, trainerscount_remote per quelli remoti (inclusi gli invitati), trainerscount_invited per gli invitati; e anche trainerscount_valor , trainerscount_mystic e trainerscount_instinct nel caso sia stato attivato il +1 per squadra. | - |
trainerscount_pendinginvites | Il numero degli allenatori che sono in attesa di essere invitati. | - |
Formato con HTML
I modelli possono essere formattati con HTML semplice, con le solite restrizioni di Telegram:
- I tag validi sono
<i></i>
(corsivo),<b></b>
(grassetto),<u></u>
(sottolineato),<s></s>
(barrato),<code></code>
(testo copiabile con click da cellulare) e<a href=""></a>
(collegamento). - Se si desidera che i caratteri
<
,>
e&
vengano visualizzati, è necessario utilizzare le entità<
,>
e&
. - È possibile inserire, ad esempio, testo in grassetto e sottolineato contemporaneamente, annidando correttamente le etichette.
<u><b>Bene</b></u>
è corretto, ma<u><b>Male</u></b>
è sbagliato e non funzionerà - Le interruzioni di riga (gli “invii” praticamente) dovrebbero essere indicate con
<br>
. Puoi separare gli elementi mettendone diversi in fila, ad esempio<br><br>
aggiungerà due invii quindi una riga vuota.
Ricorda che stai specificando il codice per il modello e il formato che applichi direttamente verrà ignorato. Cioè, se vuoi che qualcosa venga mostrato in grassetto, devi metterlo <b>in questo modo</b>
, e non usare il grassetto di Telegram.
Varianti di variabili
Per aiutare a costruire messaggi migliori ci sono versioni delle variabili con spazi all’inizio, con spazi alla fine, in lettere maiuscole… Queste sono le varianti disponibili:
{VARIABILE}
: contiene la{variabile}
in maiuscolo.{Variabile}
: contiene la{variabile}
forzando la prima lettera maiuscola.{_variabile}
: contiene la{variabile}
con uno spazio all’inizio.{variabile_}
: contiene la{variabile}
con uno spazio alla fine.{_variabile_}
: contiene la{variabile}
con uno spazio all’inizio e uno alla fine.
Varianti di variabili con collegamenti
Le variabili che riportano Link nella colonna HTML contengono collegamenti. Cioè, {pokemon_gameinfo}
verrà visualizzato come nome del Pokémon con un collegamento a Gameinfo.
Questo tipo di variabile può essere scomposto per visualizzare in modo indipendente solo il testo, aggiungendo _text
alla fine, o solo l’URL, aggiungendo _link
alla fine.
Ad esempio, la variabile {pokemon_gameinfo_text}
conterrà il testo con il nome del Pokémon e {pokemon_gameinfo_link}
conterrà l’URL.
Blocchi condizionali
Esistono due tipi di blocchi condizionali, che consentono di mostrare o nascondere parti dei modelli a seconda della situazione.
Blocco condizionale semplice
Questo blocco condizionale più semplice è scritto semplicemente così: {{testo {variabile} e altro testo }}
.
In questo caso, il contenuto tra doppie parentesi graffe verrà mostrato solo se tutte le variabili utilizzate all’interno sono definite o sono vere.
Ci sono diversi esempi di questo tipo di blocco nel modello predefinito, dove viene visualizzato solo un pezzo di testo se la variabile weekend_day_month
è definita e un altro se sono definiti opentime
e endtime
.
Blocco condizionale con condizioni
L’altro tipo di blocco condizionale consente di utilizzare condizioni complesse ed è scritto in questo modo: [condizioni]{{testo {variabile} e altro testo}}
.
In questo caso, il contenuto tra doppie parentesi graffe verrà visualizzato solo se le condizioni definite tra “[]” sono vere. Non importa se le variabili all’interno delle doppie parentesi graffe ` {{}}` sono indefinite o false, il contenuto viene comunque visualizzato.
Le condizioni possono essere semplicemente variabili come opentime
o isegg
. Possono anche essere negate mettendo un “!” davanti. Per esempio:
[opentime]{{<em>Aperto dalle {opentime} alle {endtime}</em><br>}}
[!isegg]{{🐒 Raid di <b>{pokemon_kingcasualbot} ({maxcp}/{maxcp_boosted})}}
All’interno delle condizioni è possibile utilizzare comparatori matematici comuni: minore di <
, maggiore di >
, uguale a ==
, diverso di !=
, minore o uguale a <=
e maggiore o uguale a >=
. Possono essere utilizzati per confrontare valori variabili con valori arbitrari, ad esempio:
[opentime>20:00]{{🌚 Stai attento, fa buio!}}
[minutestoend<5]{{⛔️ C'è pochissimo tempo per fare il raid, anticipalo!!}}
[tier==ex]{{🎟 'Ricorda che hai bisogno di un pass speciale per poter fare il raid, non iscriverti se non lo hai!}}
Puoi anche usare le congiunzioni logiche: e &&
e o ||
. In questo modo si possono unire più condizioni per renderne una più complessa, ad esempio:
[isegg && minutesfromstart<10]{{<em>🥚🚫 Possono schiudersi diversi Pokémon e hai impostato l'ora molto vicina al tempo di schiusa. Se puoi, modifica l'ora per un po 'più tardi.}}
[raidispending && trainerscount_remote > 5]{{⛔️💌 <u>Vietato invitare chiunque non sia registrato!!</u> }}
In caso di utilizzo di più di due condizioni &&
e ||
, tieni conto che le condizioni vengono sempre valutate da sinistra verso destra e questo ordine di valutazione non può essere modificato.
Variabili da utilizzare nei blocchi condizionali
Tutte le variabili descritte nella tabella sopra possono essere utilizzate come condizioni. Nel caso in cui abbiano un valore definito, la condizione sarà vera. Nel caso in cui non abbiano un valore definito, la condizione sarà falsa.
Inoltre, ci sono alcune variabili appositamente indicate da utilizzare come condizioni, che non mostrano nulla anche se sono vere:
Variabile | Descrizione |
---|---|
isegg | Vero se è un uovo. |
ispokemon | Vero se si tratta di un boss. |
isannounce | Vero se è un annuncio da organizzare ancora in raid (da utilizzare con i modelli immagine). |
israid | Vero se è un raid già organizzato (da utilizzare con i modelli immagine). |
istier5 | Vero se è un boss o un uovo di livello 5. Disponibile anche per tutti gli altri livelli. |
hasforms | Vero se il Pokémon ha forme definite globalmente (una o più). |
has1type | Vero se il Pokémon è di 1 solo tipo. |
has2types | Vero se il Pokémon è di 2 tipi. |
has1weatherboost | Vero se il Pokémon ha 1 solo tipo di boost meteo. |
has2weatherboosts | Vero se il Pokémon ha 2 tipi di boost meteo. |
ismissingform | Vero se il Pokémon ha forme definite a livello globale (una o più) ma non è stato scelto nel raid. |
timenearopen | Vero se l’orario di organizzazione del raid è inferiore a 12 minuti dall’orario di schiusa. Disponibili anche timenearend , timefaropen , timefarend e timeverynearend (come timenearend ma meno di 6 minuti). |
pendinginvites | Vero se sono presenti richieste di invito in attesa di accettazione. |
maxjoined | Vero se è stato raggiunto il numero massimo di allenatori presenti fisicamente configurato nel gruppo. |
maxtotal | Vero se è stato raggiunto il numero massimo totale di allenatori configurati nel gruppo. |
maxremote | Vero se è stato raggiunto il numero massimo di allenatori remoti configurato nel gruppo. |
maxinvited | Vero se è stato raggiunto il numero massimo di allenatori invitati configurato nel gruppo. |
maxgametotal | Vero se è stato raggiunto il limite del numero totale massimo di allenatori nel gioco, indipendentemente dalla configurazione del gruppo. |
maxgameremote | Vero se è stato raggiunto il limite del numero totale massimo di allenatori remoti nel gioco, indipendentemente dalla configurazione del gruppo. |
raidpending | Vero se il raid non è ancora stato fatto o se è in corso ma non è stato chiuso manualmente, l’uovo non è scomparso o è trascorso un ragionevole lasso di tempo dall’orario previsto. |
raidended | Vero se il raid è stato chiuso manualmente o l’uovo è scomparso o è trascorso un periodo di tempo ragionevole dall’orario programmato. |
raidcancelled | Vero se il raid è stato annullato. |
pokemon_hatchable_canbeshiny1 | Se il Pokémon che può schiudersi dall’uovo in posizione 1 può essere catturato shiny (possono essere utilizzate le posizioni da 1 a 10; è da utilizzare con i modelli di immagine). |
Modelli immagine
I modelli immagine ti consentono di aggiungere immagini ai sondaggi raid, che possono essere personalizzati con le informazioni di ogni singolo annuncio/raid. Sono disabilitati per impostazione predefinita. Per attivarli o cambiarli, usa il comando /imagetemplate
. Ad esempio, per utilizzare il modello default
:
/imagetemplate default
Per vedere i modelli disponibili o scaricare il modello attualmente in uso, usa /imagetemplate
senza parametri. Per smettere di usare i modelli immagine, usa il parametro -
, ovvero:
/imagetemplate -
I modelli immagine possono essere personalizzati. Sono file SVG con una dimensione compresa tra 600x300 pixel e 600x400 pixel. All’interno, contengono elementi di testo e immagine che vengono interpretati e sostituiti dal bot con i dati effettivi del raid o dell’annuncio. Si consiglia di utilizzare Inkscape per la modifica (richiede un computer Linux, Windows o Mac).
Per iniziare a utilizzare un modello personalizzato, invia il file SVG del modello al gruppo, inserendo /imagetemplate
nella descrizione. Il bot ti risponderà che il modello è stato caricato.
Puoi iniziare un modello completamente da zero, ma la cosa più semplice da fare è iniziare prendendo un modello già esistente, modificandolo. Con il comando /imagetemplate
puoi scaricare il modello immagine corrente e apportare modifiche per usarlo in seguito come modello personalizzato.
Se apri un modello, le immagini collegate verranno visualizzate con un errore poiché il file di riferimento non esiste (leggi la sezione immagini di seguito). Per evitare ciò, puoi scaricare questo pacchetto di immagini e decomprimerlo nella stessa directory in cui hai il tuo modello, il che faciliterà la modifica avendo un’idea migliore di come sarà l’immagine una volta finita.
Per interpretare gli elementi del modello, vengono usate le proprietà id
, class
e alcune proprietà che iniziano con data-
, in base all’elemento. Per visualizzare e modificare queste proprietà è necessario attivare l’editor XML di Inkscape. Abilitalo nel menu Edit » XML Viewer….
Sostituzioni negli elementi di testo
Gli elementi di testo possono essere interpretati, come se fossero normali modelli di testo. Non puoi usare blocchi condizionali di alcun tipo. Perché un elemento di testo possa essere interpretato, deve avere una class
chiamata parsetext
.
Tieni presente che l’HTML non può essere utilizzato nelle immagini, quindi le variabili che contengono collegamenti visualizzeranno il codice HTML diretto. Ad esempio, la variabile {gym}
. Per impedire la visualizzazione dell’HTML, è possibile utilizzare la variante di solo testo, ovvero {gym_text}
.
Condizionali
Utilizzando i condizionali possono essere mostrati e nascosti interi blocchi di elementi. Perché i condizionali di un elemento possano essere interpretati, devono avere una class
chiamata parseconditions
.
Le condizioni devono essere impostate come valore di un attributo chiamato data-conditions
. Possono essere utilizzate tutte le condizioni descritte nella sezione dei modelli di testo, come isegg && minutestoend<10
.
Immagini
In un file SVG puoi incorporare (embed) immagini o collegare (link) immagini esterne. Se trascini un file immagine in Inkscape, devi dirgli quale dei due vuoi fare. Se desideri includere la tua immagine (ad esempio, un’immagine di sfondo o il logo del gruppo), dovrai incorporarla. Al contrario, se vuoi che l’immagine venga sostituita da una di quelle disponibili nel bot, devi collegarla.
Il bot può sostituire le immagini collegate per mostrare Pokémon, tipi dei Pokémon (fuoco, erba, ecc.) e altre cose. Per specificare quale immagine si desidera sostituire, è necessario specificare l’identificatore corretto nell’attributo id
, secondo la seguente tabella:
Id | Descrizione | Rapporto |
---|---|---|
pokemon_img | Immagine del Pokémon o dell’uovo di dimensione reale (come da sprite del gioco) | 1:1 |
spokemon_img | Immagine del Pokémon o dell’uovo ridimensionato in proporzione, ma meno realista anche se più equilibrato, completamente centrato | 1:1 |
dspokemon_img | Immagine del Pokémon o dell’uovo ridimensionato in proporzione, ma meno realista anche se più equilibrato, centrato e ancorato al basso | 1:1 |
pokemon_img_shiny | Immagine del Pokémon nella variante shiny di dimensione reale (come da sprite del gioco) | 1:1 |
spokemon_img_shiny | Immagine del Pokémon nella variante shiny ridimensionato in proporzione, ma meno realista anche se più equilibrato, completamente centrato | 1:1 |
dspokemon_img_shiny | Immagine del Pokémon nella variante shiny ridimensionato in proporzione, ma meno realista anche se più equilibrato, centrato e ancorato al basso | 1:1 |
pokemon_type1 | Icona del primo tipo del Pokémon | 1:1 |
pokemon_type2 | Icona del secondo tipo del Pokémon (se presente) | 1:1 |
pokemon_weatherboost1 | Icona meteo che potenzia il primo tipo del Pokémon | 1:1 |
pokemon_weatherboost2 | Icona meteo che potenzia il secondo tipo del Pokémon (se presente) | 1:1 |
pokemon_weatherboostw1 | Icona meteo che potenzia il primo tipo del Pokémon (di colore bianco) | 1:1 |
pokemon_weatherboostw2 | Icona meteo che potenzia il secondo tipo del Pokémon (se presente, di colore bianco) | 1:1 |
pokemon_x1weakness1 | Icona del tipo che indica la debolezza del Pokémon in posizione 1 (si può utilizzare con la posizione da 1 a 7) | 1:1 |
pokemon_x2weakness1 | Icona del tipo che indica la doppia debolezza del Pokémon in posizione 1 (si può utilizzare con la posizione 1 o 2) | 1:1 |
pokemon_hatchable1 | Immagine del Pokémon che potrebbe schiudersi dall’uovo in prima posizione (si può usare da 1 a 10) | 1:1 |
spokemon_hatchable1 | Immagine del Pokémon che potrebbe schiudersi dall’uovo in prima posizione (si può usare da 1 a 10), ridimensionato in proporzione, meno realista ma più equilibrato, completamente centrato | 1:1 |
dspokemon_hatchable1 | Immagine del Pokémon che potrebbe schiudersi dall’uovo in prima posizione (si può usare da 1 a 10), ridimensionato in proporzione, meno realista ma più equilibrato, centrato e ancorato verso il basso | 1:1 |
country_img | Bandiera del paese dove è localizzato il raid, simile a country_flag dei modelli di testo. | 4:3 |
gym_img | Immagine della palestra (è necessario inviarla, vedi la sezione immagini delle palestre) | 1:1 |
Se un’immagine collegata è definita con uno di questi id
e l’immagine non esiste, viene automaticamente nascosta. Ad esempio, se il Pokémon ha un solo tipo ma vengono utilizzate immagini che si riferiscono al secondo tipo. Le immagini collegate che non hanno nessuno di questi ID verranno ignorate e mostreranno errori nel modello.
Posizione e dimensione del testo
Gli elementi di testo possono essere riposizionati verticalmente o ridimensionati in base alla lunghezza del testo, per facilitare l’inserimento del testo nei modelli. Adattare il testo a lunghezza variabile è complicato e utilizzando queste tecniche è difficile ottenere risultati perfetti quando si utilizzano caratteri a larghezza variabile, ma con un po’ di tentativi (ed errori) è possibile ottenere buoni risultati.
Per cambiare la dimensione del carattere in base alla lunghezza del testo, l’elemento deve avere una class
chiamata resizetext
. Puoi specificare la lunghezza da cui partire per ridimensionare inserendo la lunghezza come valore di un attributo chiamato data-resizetext-length
e la dimensione desiderata in data-resizetext-size
. La dimensione deve essere specificata in unità e verrà applicata nella proprietà CSS font-size
. Per esempio:
class: resizetext
data-resizetext-length: 30
data-resizetext-size: 8px
Per cambiare la posizione verticale del testo in base alla sua lunghezza, l’elemento deve avere una class
chiamata movetext
. Puoi specificare la lunghezza dalla quale il testo deve essere riposizionato inserendo la lunghezza come valore di un attributo chiamato data-movetext-length
e la dimensione desiderata in data-movetext-distance
. La distanza deve essere specificata senza unità e verrà applicata come attributo y
dell’elemento. Per esempio:
class: movetext
data-movetext-length: 25
data-movetext-distance: -5
Immagini delle palestre
Affinché le immagini della palestra funzionino, il gruppo deve avere un foglio di calcolo definito e le palestre vengono caricate. Fatto ciò, devi ottenere le immagini e inviarle al bot all’interno di un file ZIP inserendo la descrizione /gymimages
.
Le immagini devono essere in formato JPEG e devono essere chiamate come il nome della palestra (prima colonna) nel foglio di calcolo, con l’estensione .jpg
o .jpeg
alla fine. Inoltre, ogni immagine non può superare i 300 kB di dimensione e il file ZIP non può superare i 5 MB. Lo ZIP non deve contenere sottodirectory, le immagini devono essere nella directory principale. Vengono elaborati un massimo di 300 file, quindi se hai più palestre nel tuo gruppo, dovrai limitarti a 300 di esse.
Le immagini ricevute vengono accettate solo se è presente una palestra precaricata con quel nome. Una volta accettate, vengono ridimensionate e tagliate in un riquadro di 250x250 pixel, indipendentemente dal formato dell’immagine originale.
Limitazioni
A differenza dei modelli di testo, i modelli immagine non vengono aggiornati ogni volta che il messaggio viene aggiornato, ma solo quando cambiano i dati base del raid, come: il Pokémon, l’orario, la palestra, ecc. Questo è il motivo per cui le variabili e le condizioni che si riferiscono al numero di allenatori registrati non dovrebbero essere utilizzate nel modello dell’immagine, poiché l’immagine non verrà aggiornata correttamente.
I caratteri che possono essere utilizzati sono tutti inclusi in questa raccolta di Google Fonts. Se utilizzi caratteri non supportati, noterai subito che sembrano “errati”. Per risolvere questo problema, puoi convertire quei testi in percorsi. Ciò non può essere fatto se si desidera che le variabili vengano interpretate all’interno del testo, poiché quando le si converte in percorsi smettono di comportarsi come testi.
Gli ID elemento non possono essere ripetuti, quindi quando si utilizza l’attributo id
per specificare il tipo di immagine, non è possibile inserire due volte la stessa immagine collegata nello stesso modello. Per risolvere questo problema, puoi aggiungere delle linee basse _
alla fine, e il bot lo capirà comunque. Cioè, pokemon_img_
e pokemon_img__
funzionano allo stesso modo di pokemon_img
.
La generazione dei messaggi con immagini richiede più tempo e, a seconda del carico del server, ciò può causare problemi. Dovresti provare a utilizzare modelli il più semplici possibile e, se incorpori immagini, prima comprimerle a una dimensione adeguata. I modelli più grandi di 400 elementi o di dimensioni 2 MB vengono automaticamente rifiutati.
I messaggi con immagini su Telegram hanno un massimo di 1024 caratteri, mentre i messaggi normali hanno un massimo di 4096 caratteri. Con modelli di testo non eccessivi e un massimo di 20 allenatori segnati per raid non dovrebbero esserci problemi, ma se non limiti il numero di allenatori nel tuo gruppo o metti testi molto lunghi nei modelli, potresti raggiungere quel limite e il sondaggio raid smetterà di funzionare. Puoi copiare e incollare il testo di un raid con molti allenatori segnati in uno strumento come charactercountonline.com per vedere il numero di caratteri che usi abitualmente. Tieni presente che volendo, i dati mostrati nell’immagine, potrebbero benissimo essere omessi dal sondaggio raid, risparmiando così caratteri utili.
Testare i modelli
Per rendere più facile lo sviluppo dei modelli, puoi inviare i file SVG dei modelli insieme alla descrizione /testimagetemplate
per testarli privatamente (non in un gruppo). Il bot eseguirà il rendering del modello in diverse situazioni in modo da poter controllare come appare e correggere gli errori.