public override void OnResponse(BinaryReader reader) { var code = reader.ReadUInt32(); // upload.file#96a18d5 type = Tl.Parse <storage_FileType>(reader); mtime = reader.ReadInt32(); bytes = Serializers.Bytes.read(reader); // reader.ReadBytes(_limit); }
public override void OnResponse(BinaryReader reader) { var code = reader.ReadUInt32(); // upload.file#96a18d5 type = TL.Parse<storage_FileType>(reader); mtime = reader.ReadInt32(); bytes = reader.ReadBytes(_limit); }
static string GetExtension(storage_FileType storageFileType) { var typeName = storageFileType.GetType().Name; typeName = typeName.Substring("Storage_file".Length); typeName = typeName.Substring(0, typeName.Length - "Constructor".Length); //if(typeName.ToLowerInvariant() == "partial" || typeName.ToLowerInvariant() == "unknown") return(typeName.ToLowerInvariant()); }
public async Task GetFile() { // Get uploaded file from last message (ie: cat.jpg) var store = new FileSessionStore(); var client = new TelegramClient(store, "session", apiId, apiHash); await client.Connect(); Assert.IsTrue(client.IsUserAuthorized()); var res = await client.ImportContactByPhoneNumber(NumberToSendMessage); Assert.IsNotNull(res); // Get last message var hist = await client.GetMessagesHistoryForContact(res.Value, 0, 1); Assert.AreEqual(1, hist.Count); var message = (MessageConstructor)hist[0]; Assert.AreEqual(typeof(MessageMediaPhotoConstructor), message.media.GetType()); var media = (MessageMediaPhotoConstructor)message.media; Assert.AreEqual(typeof(PhotoConstructor), media.photo.GetType()); var photo = (PhotoConstructor)media.photo; Assert.AreEqual(3, photo.sizes.Count); Assert.AreEqual(typeof(PhotoSizeConstructor), photo.sizes[2].GetType()); var photoSize = (PhotoSizeConstructor)photo.sizes[2]; Assert.AreEqual(typeof(FileLocationConstructor), photoSize.location.GetType()); var fileLocation = (FileLocationConstructor)photoSize.location; var file = await client.GetFile(fileLocation.volume_id, fileLocation.local_id, fileLocation.secret, 0, photoSize.size + 1024); storage_FileType type = file.Item1; byte[] bytes = file.Item2; string name = "../../data/get_file."; if (type.GetType() == typeof(Storage_fileJpegConstructor)) { name += "jpg"; } else if (type.GetType() == typeof(Storage_fileGifConstructor)) { name += "gif"; } else if (type.GetType() == typeof(Storage_filePngConstructor)) { name += "png"; } using (var fileStream = new FileStream(name, FileMode.Create, FileAccess.Write)) { fileStream.Write(bytes, 4, photoSize.size); // The first 4 bytes seem to be the error code } }
public override void Read(BinaryReader reader) { this.type = Tl.Parse <storage_FileType>(reader); this.mtime = reader.ReadInt32(); this.bytes = Serializers.Bytes.read(reader); }
public Upload_fileConstructor(storage_FileType type, int mtime, byte[] bytes) { this.type = type; this.mtime = mtime; this.bytes = bytes; }