Telegram Web K with changes to work inside I2P https://web.telegram.i2p/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

70 lines
2.3 KiB

/*
* https://github.com/morethanwords/tweb
* Copyright (C) 2019-2021 Eduard Kuzmenko
* https://github.com/morethanwords/tweb/blob/master/LICENSE
*/
import mediaSizes from '../helpers/mediaSizes';
import {Middleware} from '../helpers/middleware';
import {Chat, Document, EmojiStatus, User} from '../layer';
import rootScope from '../lib/rootScope';
import generateFakeIcon from './generateFakeIcon';
import generatePremiumIcon from './generatePremiumIcon';
import generateVerifiedIcon from './generateVerifiedIcon';
import wrapSticker from './wrappers/sticker';
export default async function generateTitleIcons(
peerId: PeerId,
middleware?: Middleware,
noVerifiedIcon?: boolean,
noFakeIcon?: boolean,
noPremiumIcon?: boolean
) {
const elements: HTMLElement[] = [];
const peer: Chat | User = await rootScope.managers.appPeersManager.getPeer(peerId);
if((peer as Chat.channel).pFlags.verified && !noVerifiedIcon) {
elements.push(generateVerifiedIcon());
}
if(((peer as Chat.channel).pFlags.fake || (peer as User.user).pFlags.scam) && !noFakeIcon) {
elements.push(generateFakeIcon((peer as User.user).pFlags.scam));
}
if((peer as User.user).pFlags.premium && !noPremiumIcon) {
const emojiStatus = (peer as User.user).emoji_status;
if(emojiStatus && emojiStatus._ !== 'emojiStatusEmpty' && false) {
const container = document.createElement('span');
container.classList.add('emoji-status');
const result = await rootScope.managers.acknowledged.appEmojiManager.getCustomEmojiDocument((emojiStatus as EmojiStatus.emojiStatus).document_id);
const wrap = async(doc: Document.document) => {
const size = mediaSizes.active.emojiStatus
const loadPromises: Promise<any>[] = [];
await wrapSticker({
doc,
div: container,
width: size.width,
height: size.height,
loop: 2,
play: true,
group: 'EMOJI-STATUS',
loadPromises,
middleware
// group: 'none'
});
await Promise.all(loadPromises);
};
const p = result.result.then(wrap);
if(result.cached) {
await p;
}
elements.push(container);
} else {
elements.push(generatePremiumIcon());
}
}
return elements;
}