GLEGram 12.5 — Initial public release

Based on Swiftgram 12.5 (Telegram iOS 12.5).
All GLEGram features ported and organized in GLEGram/ folder.

Features: Ghost Mode, Saved Deleted Messages, Content Protection Bypass,
Font Replacement, Fake Profile, Chat Export, Plugin System, and more.

See CHANGELOG_12.5.md for full details.
This commit is contained in:
Leeksov
2026-04-06 09:48:12 +03:00
commit 4647310322
39685 changed files with 11052678 additions and 0 deletions
@@ -0,0 +1,57 @@
import Foundation
import UIKit
import AsyncDisplayKit
open class ASImageNode: ASDisplayNode {
public var image: UIImage? {
didSet {
if self.isNodeLoaded {
if let image = self.image {
let capInsets = image.capInsets
if capInsets.left.isZero && capInsets.top.isZero && capInsets.right.isZero && capInsets.bottom.isZero {
self.contentsScale = image.scale
self.contents = image.cgImage
} else {
ASDisplayNodeSetResizableContents(self.layer, image)
}
} else {
self.contents = nil
}
if self.image?.size != oldValue?.size {
self.invalidateCalculatedLayout()
}
}
}
}
public var customTintColor: UIColor? {
didSet {
self.layer.layerTintColor = self.customTintColor?.cgColor
}
}
public var displayWithoutProcessing: Bool = true
override public init() {
super.init()
}
override open func didLoad() {
super.didLoad()
if let image = self.image {
let capInsets = image.capInsets
if capInsets.left.isZero && capInsets.top.isZero {
self.contentsScale = image.scale
self.contents = image.cgImage
} else {
ASDisplayNodeSetResizableContents(self.layer, image)
}
}
self.layer.layerTintColor = self.customTintColor?.cgColor
}
override public func calculateSizeThatFits(_ contrainedSize: CGSize) -> CGSize {
return self.image?.size ?? CGSize()
}
}