mirror of
https://gitlab.com/bignutty/labscore.git
synced 2025-06-08 06:03:04 -04:00
add stringwrap by words, limit ani description length
This commit is contained in:
parent
d58fa1fbe4
commit
19979e440e
3 changed files with 26 additions and 5 deletions
|
@ -4,7 +4,7 @@ const { PERMISSION_GROUPS, OMNI_ANIME_FORMAT_TYPES } = require('#constants');
|
||||||
|
|
||||||
const { createEmbed, formatPaginationEmbeds, page, hexToEmbedColor } = require('#utils/embed');
|
const { createEmbed, formatPaginationEmbeds, page, hexToEmbedColor } = require('#utils/embed');
|
||||||
const { acknowledge } = require('#utils/interactions');
|
const { acknowledge } = require('#utils/interactions');
|
||||||
const { smallPill, link, pill } = require('#utils/markdown');
|
const { smallPill, link, pill, stringwrapPreserveWords} = require('#utils/markdown');
|
||||||
const { editOrReply } = require('#utils/message');
|
const { editOrReply } = require('#utils/message');
|
||||||
const { InteractionContextTypes, ApplicationIntegrationTypes, ApplicationCommandOptionTypes } = require('detritus-client/lib/constants');
|
const { InteractionContextTypes, ApplicationIntegrationTypes, ApplicationCommandOptionTypes } = require('detritus-client/lib/constants');
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ function renderAnimeResultsPage(context, res){
|
||||||
if(res.subtitle) result.description += `-# ${res.subtitle}\n\n`;
|
if(res.subtitle) result.description += `-# ${res.subtitle}\n\n`;
|
||||||
if(res.subtype) result.description += pill(OMNI_ANIME_FORMAT_TYPES[res.subtype]) + " "
|
if(res.subtype) result.description += pill(OMNI_ANIME_FORMAT_TYPES[res.subtype]) + " "
|
||||||
if(res.genres) result.description += res.genres.map((r)=>smallPill(r)).join(" ") + "\n\n";
|
if(res.genres) result.description += res.genres.map((r)=>smallPill(r)).join(" ") + "\n\n";
|
||||||
if(res.description) result.description += res.description;
|
if(res.description) result.description += stringwrapPreserveWords(res.description, 600);
|
||||||
if(res.attribution?.description) result.description += `\n\n-# Source • ${res.attribution.description}`
|
if(res.attribution?.description) result.description += `\n\n-# Source • ${res.attribution.description}`
|
||||||
|
|
||||||
// Render Images
|
// Render Images
|
||||||
|
|
|
@ -4,7 +4,7 @@ const { PERMISSION_GROUPS, OMNI_ANIME_FORMAT_TYPES } = require('#constants');
|
||||||
|
|
||||||
const { createEmbed, formatPaginationEmbeds, page, hexToEmbedColor } = require('#utils/embed');
|
const { createEmbed, formatPaginationEmbeds, page, hexToEmbedColor } = require('#utils/embed');
|
||||||
const { acknowledge } = require('#utils/interactions');
|
const { acknowledge } = require('#utils/interactions');
|
||||||
const { smallPill, link, pill } = require('#utils/markdown');
|
const { smallPill, link, pill, stringwrap, stringwrapPreserveWords} = require('#utils/markdown');
|
||||||
const { editOrReply } = require('#utils/message');
|
const { editOrReply } = require('#utils/message');
|
||||||
|
|
||||||
function renderAnimeResultsPage(context, res){
|
function renderAnimeResultsPage(context, res){
|
||||||
|
@ -29,7 +29,7 @@ function renderAnimeResultsPage(context, res){
|
||||||
if(res.subtitle) result.description += `-# ${res.subtitle}\n\n`;
|
if(res.subtitle) result.description += `-# ${res.subtitle}\n\n`;
|
||||||
if(res.subtype) result.description += pill(OMNI_ANIME_FORMAT_TYPES[res.subtype]) + " "
|
if(res.subtype) result.description += pill(OMNI_ANIME_FORMAT_TYPES[res.subtype]) + " "
|
||||||
if(res.genres) result.description += res.genres.map((r)=>smallPill(r)).join(" ") + "\n\n";
|
if(res.genres) result.description += res.genres.map((r)=>smallPill(r)).join(" ") + "\n\n";
|
||||||
if(res.description) result.description += res.description;
|
if(res.description) result.description += stringwrapPreserveWords(res.description, 600);
|
||||||
if(res.attribution?.description) result.description += `\n\n-# Source • ${res.attribution.description}`
|
if(res.attribution?.description) result.description += `\n\n-# Source • ${res.attribution.description}`
|
||||||
|
|
||||||
// Render Images
|
// Render Images
|
||||||
|
|
|
@ -66,7 +66,7 @@ module.exports.timestamp = function(time, flag = "t"){
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports.stringwrap = function(content = "", length, newlines = true){
|
module.exports.stringwrap = function(content = "", length, newlines = true){
|
||||||
if(!newlines) content = content.replace(/\n/, ' ')
|
if(!newlines) content = content.replace(/\n/g, ' ')
|
||||||
if(content.length > length){
|
if(content.length > length){
|
||||||
c = content.substring(0, length-1) + '…';
|
c = content.substring(0, length-1) + '…';
|
||||||
while(c.endsWith(' …')) c = c.substr(0, c.length - 2) + '…';
|
while(c.endsWith(' …')) c = c.substr(0, c.length - 2) + '…';
|
||||||
|
@ -75,6 +75,27 @@ module.exports.stringwrap = function(content = "", length, newlines = true){
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Limits a string to fit within a certain amount of characters.
|
||||||
|
* Alternative to {@link stringwrap} that ensures words don't
|
||||||
|
* get broken up in the middle.
|
||||||
|
* @param content String Content
|
||||||
|
* @param length Maximum Length in characters
|
||||||
|
* @param newlines Remove newlines
|
||||||
|
* @returns {string} Wrapped String
|
||||||
|
*/
|
||||||
|
module.exports.stringwrapPreserveWords = function(content = "", length, newlines = true){
|
||||||
|
if(!newlines) content = content.replace(/\n/g, ' ')
|
||||||
|
if(content.length <= length) return content;
|
||||||
|
|
||||||
|
content = content.split(" ");
|
||||||
|
// content size + amount of spaces length + ... char
|
||||||
|
while(content.join(" ").length + (content.length - 1) > length - 1){
|
||||||
|
content.pop();
|
||||||
|
}
|
||||||
|
return content.join(" ") + "…";
|
||||||
|
}
|
||||||
|
|
||||||
module.exports.pill = function(content = ""){
|
module.exports.pill = function(content = ""){
|
||||||
return " **` " + _escapeCodeblock(content) + " `**"
|
return " **` " + _escapeCodeblock(content) + " `**"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue