mirror of
https://gitlab.com/bignutty/labscore.git
synced 2025-06-09 06:33:05 -04:00
💸💸💸 DISCORD IS PAYING FOR THIS 💸💸💸
This commit is contained in:
parent
5a93e8402d
commit
40cc793ed0
3 changed files with 79 additions and 9 deletions
|
@ -1,16 +1,48 @@
|
|||
const { createEmbed, formatPaginationEmbeds } = require('../../../labscore/utils/embed')
|
||||
const { link } = require('../../../labscore/utils/markdown')
|
||||
const { createEmbed, formatPaginationEmbeds, page } = require('../../../labscore/utils/embed')
|
||||
const { link, iconPill, timestamp } = require('../../../labscore/utils/markdown')
|
||||
const { editOrReply } = require('../../../labscore/utils/message')
|
||||
const { STATICS } = require('../../../labscore/utils/statics')
|
||||
|
||||
const { paginator } = require('../../../labscore/client');
|
||||
const { youtube } = require('../../../labscore/api');
|
||||
|
||||
// https://www.html-code-generator.com/javascript/shorten-long-numbers
|
||||
const intToString = num => {
|
||||
num = num.toString().replace(/[^0-9.]/g, '');
|
||||
if (num < 1000) return num;
|
||||
|
||||
let si = [
|
||||
{v: 1E3, s: "K"},
|
||||
{v: 1E6, s: "M"},
|
||||
{v: 1E9, s: "B"},
|
||||
{v: 1E12, s: "T"},
|
||||
{v: 1E15, s: "P"},
|
||||
{v: 1E18, s: "E"}
|
||||
];
|
||||
let index;
|
||||
for (index = si.length - 1; index > 0; index--) {
|
||||
if (num >= si[index].v) break;
|
||||
}
|
||||
return (num / si[index].v).toFixed(2).replace(/\.0+$|(\.[0-9]*[1-9])0+$/, "$1") + si[index].s;
|
||||
};
|
||||
|
||||
function createYoutubePage(context, result){
|
||||
let res = {
|
||||
"embeds": [
|
||||
createEmbed("default", context, {
|
||||
description: `**${link(result.url, result.name)}**\n${result.description}`,
|
||||
let res;
|
||||
let iconHeader;
|
||||
switch(result.type){
|
||||
case 1: //video
|
||||
iconHeader = [
|
||||
iconPill("eye", intToString(parseInt(result.metadata.views))),
|
||||
iconPill("like", intToString(parseInt(result.metadata.likes))),
|
||||
iconPill("message", intToString(parseInt(result.metadata.comments)))
|
||||
]
|
||||
res = page(createEmbed("default", context, {
|
||||
author: {
|
||||
name: result.channel.name,
|
||||
url: result.channel.url,
|
||||
iconUrl: result.channel.icon
|
||||
},
|
||||
description: `**${link(result.url, result.name)}**\n${iconHeader.join(' ')}\n*Uploaded ${timestamp(result.date, "f")}*\n\n${result.description}`,
|
||||
thumbnail: {
|
||||
url: result.image
|
||||
},
|
||||
|
@ -18,8 +50,41 @@ function createYoutubePage(context, result){
|
|||
iconUrl: STATICS.youtube,
|
||||
text: `YouTube • ${context.application.name}`
|
||||
}
|
||||
})
|
||||
]
|
||||
}))
|
||||
break;
|
||||
case 2: // channel
|
||||
iconHeader = [
|
||||
iconPill("videos", intToString(parseInt(result.metadata.videos).toLocaleString('en-US'))),
|
||||
iconPill("eye", intToString(parseInt(result.metadata.views).toLocaleString('en-US')))
|
||||
]
|
||||
res = page(createEmbed("default", context, {
|
||||
description: `**${link(result.url, result.name)}**\n${iconHeader.join(' ')}\n*Created ${timestamp(result.date, "f")}*\n\n${result.description}`,
|
||||
thumbnail: {
|
||||
url: result.icon
|
||||
},
|
||||
footer: {
|
||||
iconUrl: STATICS.youtube,
|
||||
text: `YouTube • ${context.application.name}`
|
||||
}
|
||||
}))
|
||||
break;
|
||||
case 3: // playlist
|
||||
iconHeader = [
|
||||
iconPill("videos", intToString(parseInt(result.metadata.videos).toLocaleString('en-US')))
|
||||
]
|
||||
res = page(createEmbed("default", context, {
|
||||
description: `**${link(result.url, result.name)}**\n${iconHeader.join(' ')} *Created ${timestamp(result.date, "f")}*\n\n${result.description}`,
|
||||
thumbnail: {
|
||||
url: result.image
|
||||
},
|
||||
footer: {
|
||||
iconUrl: STATICS.youtube,
|
||||
text: `YouTube • ${context.application.name}`
|
||||
}
|
||||
}))
|
||||
break;
|
||||
default: // wtf?
|
||||
break;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
|
|
@ -77,7 +77,11 @@ module.exports.ICONS = Object.freeze({
|
|||
"robouser": "<:ico_robouser:1002944679744131092>",
|
||||
"lock": "<:ico_lock:1002948236971085924>",
|
||||
"badge_slash": "<:badge_slash:1002954716315140167>",
|
||||
"flag": "<:ico_flag:1002957495138009251>"
|
||||
"flag": "<:ico_flag:1002957495138009251>",
|
||||
"like": "<:ico_like:1086443586700181514>",
|
||||
"message": "<:ico_message:1086443588784758844>",
|
||||
"eye": "<:ico_eye:1086443585337036860>",
|
||||
"videos": "<:ico_videos:1086449271609503764>"
|
||||
})
|
||||
|
||||
const GUILD_FEATURE_ICONS = Object.freeze({
|
||||
|
|
|
@ -113,6 +113,7 @@ module.exports.formatPaginationEmbeds = function(embeds){
|
|||
for(const e of embeds){
|
||||
i += 1;
|
||||
let ne = e;
|
||||
if(!e) continue;
|
||||
if(e.embed){
|
||||
ne.embed.footer.text = e.embed.footer.text + ` • Page ${i}/${l}`
|
||||
formatted.push(ne)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue