Compare commits

...

15 Commits

Author SHA1 Message Date
matty 21ecdf77c6 I don't think it worked 2024-08-05 21:49:12 -04:00
matty cfe2ac0607 maybeee?? 2024-08-05 21:46:02 -04:00
matty 74566a895a fix duplicate requires 2024-08-05 21:28:09 -04:00
matty 587334a3e1 separate the nigbot generation and normal avatar generation 2024-08-05 21:26:11 -04:00
matty 30cce2ec03 probably fix issue with Nigbot avatar generation 2024-08-05 21:10:10 -04:00
matty 24f48788ab wheee 2024-08-05 21:04:55 -04:00
matty bed00aa4c5 niggers are so black tbh 2024-08-05 20:44:04 -04:00
matty fd16c95b8f add nigbot build job 2024-08-05 20:29:46 -04:00
matty 39f6e4c637 maybe fr fr? 2024-08-05 20:12:46 -04:00
matty f8c34213cb maybe fr fr fix it? 2024-08-05 19:46:09 -04:00
matty eb889711f5 fix invalid-avatar set 2024-08-05 19:32:57 -04:00
matty 8dd6ed7888 hopefully fix avatar generation for nigbot avatar 2024-08-05 19:25:45 -04:00
matty 0cc38ac575 update index.md 2024-08-05 19:20:28 -04:00
matty cde9b3f74a add options in config 2024-08-05 17:54:22 -04:00
matty 75245c0858 add nigbot avatar 2024-08-05 17:42:01 -04:00
7 changed files with 43 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@ -58,6 +58,9 @@ const avatarPartsDef = {
fur: 10, fur: 10,
eyes: 15, eyes: 15,
mouth: 10 mouth: 10
},
'nctv': {
body: null,
} }
} }
@ -169,6 +172,23 @@ async function generateAvatars (part) {
} }
} }
const generateNigbotAvatar = async () => {
console.log('Starting generating nigbot avatar');
const inputDir = './assets/images/avatars/nctv/';
const outputDir = './dist/server/avatars/nctv/';
fs.mkdirSync(outputDir, { recursive: true });
const buff = await sharp(path.join(inputDir, 'nigbot.png')).toBuffer();
await sharp(buff)
.resize(60, 60)
.png({ palette: true })
.toFile(path.join(outputDir, '1.png'));
}
async function generateBotsAvatars () { async function generateBotsAvatars () {
{ {
// Moderation bot avatar: choosing some parts, and turning it so it is facing left. // Moderation bot avatar: choosing some parts, and turning it so it is facing left.
@ -294,6 +314,21 @@ async function generateBotsAvatars () {
}) })
.toFile(path.join(botOutputDir, '1.png')) .toFile(path.join(botOutputDir, '1.png'))
} }
{
// Nigbot avatar for users
const inputDir = './assets/images/avatars/nctv'
const botOutputDir = './dist/server/bot_avatars/nctv/'
fs.mkdirSync(botOutputDir, { recursive: true })
const buff = await sharp(path.join(inputDir, 'nigbot.png'))
.toBuffer()
await sharp(buff)
// .resize(60, 60)
.png()
.toFile(path.join(botOutputDir, '1.png'))
}
} }
if (isMainThread) { if (isMainThread) {
@ -337,6 +372,9 @@ if (isMainThread) {
throw err throw err
} }
) )
} else if (part === 'nctv') {
generateNigbotAvatar();
parentPort.postMessage('done');
} else { } else {
generateAvatars(part).then( generateAvatars(part).then(
() => { () => {

View File

@ -175,6 +175,7 @@ avatar_set_description: |
Please refer to the documentation: Please refer to the documentation:
<a href="https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/settings/" target="_blank">Settings</a>. <a href="https://livingston.frama.io/peertube-plugin-livechat/documentation/admin/settings/" target="_blank">Settings</a>.
avatar_set_option_sepia: "Sepia (Peertube mascot)" avatar_set_option_sepia: "Sepia (Peertube mascot)"
avatar_set_option_nctv: "NCTV Branded"
avatar_set_option_cat: "Cats" avatar_set_option_cat: "Cats"
avatar_set_option_bird: "Birds" avatar_set_option_bird: "Birds"
avatar_set_option_fenec: "Fenecs (Mobilizon mascot)" avatar_set_option_fenec: "Fenecs (Mobilizon mascot)"

View File

@ -102,7 +102,7 @@ async function getProsodyFilePaths (options: RegisterServerOptions): Promise<Pro
} }
let avatarSet: AvatarSet = (settings['avatar-set'] ?? 'sepia') as AvatarSet let avatarSet: AvatarSet = (settings['avatar-set'] ?? 'sepia') as AvatarSet
if (!['sepia', 'cat', 'bird', 'fenec', 'abstract', 'legacy'].includes(avatarSet)) { if (!['sepia', 'cat', 'bird', 'fenec', 'abstract', 'legacy', 'nctv'].includes(avatarSet)) {
logger.error('Invalid avatar-set setting, using sepia as default') logger.error('Invalid avatar-set setting, using sepia as default')
avatarSet = 'sepia' avatarSet = 'sepia'
} }

View File

@ -13,7 +13,7 @@ import { LivechatProsodyAuth } from './prosody/auth'
import { loc } from './loc' import { loc } from './loc'
const escapeHTML = require('escape-html') const escapeHTML = require('escape-html')
type AvatarSet = 'sepia' | 'cat' | 'bird' | 'fenec' | 'abstract' | 'legacy' type AvatarSet = 'sepia' | 'cat' | 'bird' | 'fenec' | 'abstract' | 'legacy' | 'nctv'
async function initSettings (options: RegisterServerOptions): Promise<void> { async function initSettings (options: RegisterServerOptions): Promise<void> {
const { peertubeHelpers, settingsManager } = options const { peertubeHelpers, settingsManager } = options
@ -506,6 +506,7 @@ function initThemingSettings ({ registerSetting }: RegisterServerOptions): void
private: true, private: true,
options: [ options: [
{ value: 'sepia', label: loc('avatar_set_option_sepia') }, { value: 'sepia', label: loc('avatar_set_option_sepia') },
{ value: 'nctv', label: loc('avatar_set_option_nctv') },
{ value: 'cat', label: loc('avatar_set_option_cat') }, { value: 'cat', label: loc('avatar_set_option_cat') },
{ value: 'bird', label: loc('avatar_set_option_bird') }, { value: 'bird', label: loc('avatar_set_option_bird') },
{ value: 'fenec', label: loc('avatar_set_option_fenec') }, { value: 'fenec', label: loc('avatar_set_option_fenec') },

View File

@ -28,6 +28,7 @@ These files are used to generate multiple avatars (see the `build-avatars.js` sc
* `assets/images/avatars/bird` contains new birds avatar set, based on the work of David Revoy (see copyright informations) * `assets/images/avatars/bird` contains new birds avatar set, based on the work of David Revoy (see copyright informations)
* `assets/images/avatars/fenec` contains new fenecs avatar set, based on the work of David Revoy (see copyright informations) * `assets/images/avatars/fenec` contains new fenecs avatar set, based on the work of David Revoy (see copyright informations)
* `assets/images/avatars/abstract` contains new abstract avatar set, based on the work of David Revoy (see copyright informations) * `assets/images/avatars/abstract` contains new abstract avatar set, based on the work of David Revoy (see copyright informations)
* `assets/images/avatars/nctv` contains NCTV avatar, based on the work of The Almighty Kek
### assets/styles ### assets/styles