From 222d24c9a633e853863c0dc5f58c0230d84ad9f4 Mon Sep 17 00:00:00 2001
From: Wizou <11647984+wiz0u@users.noreply.github.com>
Date: Fri, 2 Sep 2022 23:02:44 +0200
Subject: [PATCH] updated Intellisense / doc
---
EXAMPLES.md | 8 +-
Examples/Program_Heroku.cs | 10 +-
FAQ.md | 5 +-
README.md | 6 +-
src/Client.cs | 2 +-
src/TL.Schema.cs | 233 +++++++++++++++++++++----------------
src/TL.SchemaFuncs.cs | 143 ++++++++++++++---------
src/TL.Secret.cs | 4 +-
src/WTelegramClient.csproj | 2 +-
9 files changed, 235 insertions(+), 178 deletions(-)
diff --git a/EXAMPLES.md b/EXAMPLES.md
index bbea892..1415cd4 100644
--- a/EXAMPLES.md
+++ b/EXAMPLES.md
@@ -26,7 +26,7 @@ More examples can also be found in the [Examples folder](Examples) and in answer
var resolved = await client.Contacts_ResolveUsername("MyEch0_Bot"); // username without the @
await client.SendMessageAsync(resolved, "/start");
```
-*Note: This also works if the @username points to a channel/group, but you must already have joined that channel before posting there.
+*Note: This also works if the @username points to a channel/group, but you must already have joined that channel before sending a message to it.
If the username is invalid/unused, the API call raises an exception.*
@@ -210,7 +210,7 @@ for (int offset = 0; ;)
```
For big Channel/Group, Telegram servers might limit the number of members you can obtain with the normal above method.
-In this case, you can use this helper method, but it can take several minutes to complete:
+In this case, you can use the following helper method, but it can take several minutes to complete:
```csharp
var chats = await client.Messages_GetAllChats();
var channel = (Channel)chats.chats[1234567890]; // the channel we want
@@ -233,7 +233,7 @@ To use them, you need to extract the `HASH` part from the URL and then you can u
```csharp
var chatInvite = await client.Messages_CheckChatInvite("HASH"); // optional: get information before joining
await client.Messages_ImportChatInvite("HASH"); // join the channel/group
-// Note: This works also with invite links of public channel/group
+// Note: This works also with hash invite links of public channel/group
```
@@ -319,7 +319,7 @@ Your event handler implementation can either return `Task.CompletedTask` or be a
See [Examples/Program_ListenUpdates.cs](Examples/Program_ListenUpdates.cs).
-### Monitor new messages being posted in chats
+### Monitor new messages being posted in chats in real-time
You have to handle `client.OnUpdate` events containing an `UpdateNewMessage`.
diff --git a/Examples/Program_Heroku.cs b/Examples/Program_Heroku.cs
index 2eef6c3..cfdb551 100644
--- a/Examples/Program_Heroku.cs
+++ b/Examples/Program_Heroku.cs
@@ -6,7 +6,7 @@ using System.Threading;
using System.Threading.Tasks;
using TL;
-// This is an example userbot designed to run on a free Heroku account with a free PostgreSQL database for session storage
+// This is an example userbot designed to run on a Heroku account with a PostgreSQL database for session storage
// This userbot simply answer "Pong" when someone sends him a "Ping" private message (or in Saved Messages)
// To use/install/deploy this userbot, follow the steps at the end of this file
// When run locally, close the window or type ALT-F4 to exit cleanly and save session (similar to Heroku SIGTERM)
@@ -126,8 +126,8 @@ namespace WTelegramClientTest
/******************************************************************************************************************************
HOW TO USE AND DEPLOY THIS EXAMPLE HEROKU USERBOT:
-- From your free Heroku.com account dashboard, create a new app (Free)
-- Navigate to the app Resources and add the add-on "Heroku Postgres" (Hobby Dev - Free)
+- From your Heroku.com account dashboard, create a new app
+- Navigate to the app Resources and add the add-on "Heroku Postgres"
- Navigate to the app Settings, click Reveal Config Vars and save the Heroku git URL and the value of DATABASE_URL
- Add a new var named "api_hash" with your api hash obtained from https://my.telegram.org/apps
- Add a new var named "phone_number" with the phone_number of the user this userbot will manage
@@ -146,9 +146,7 @@ HOW TO USE AND DEPLOY THIS EXAMPLE HEROKU USERBOT:
- Paste inside the line you copied, and replace the initial "web" with "worker:" (don't forget the colon)
- Commit and push the Git changes to Heroku. Wait until the deployment is complete.
- Verify that the Resources "web" line has changed to "worker" and is enabled (use the pencil icon if necessary)
-- Now your userbot should be running 24/7. Note however that a full month of usage is 31*24 = 744 dyno hours.
- By default a free account gets 550 free dyno hours per month after which your app is stopped. If you register
- a credit card with your account, 450 additional free dyno hours are offered at no charge, which should be enough for 24/7
+- Now your userbot should be running 24/7.
- To prevent AUTH_KEY_DUPLICATED issues, set a SESSION_NAME env variable in your local VS project with a value like "PC"
DISCLAIMER: I'm not affiliated nor expert with Heroku, so if you have any problem with the above I might not be able to help
******************************************************************************************************************************/
diff --git a/FAQ.md b/FAQ.md
index 50f1d90..a0af502 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -87,6 +87,7 @@ You can verify this is your issue by looking at [WTelegram logs](EXAMPLES.md#log
This wrong-server problem typically happens when you use WTelegramClient Github source project in your application in DEBUG builds.
It is **not recommended** to use WTelegramClient in source code form.
Instead, you should use the Nuget manager to **install package WTelegramClient** into your application.
+*And remember to delete the WTelegram.session file to force a new login on the correct server.*
If you use the Github source project in an old .NET Framework 4.x or .NET Core x.x application, you may also experience the following error
> System.TypeInitializationException (FileNotFoundException for "System.Text.Json Version=5.0.0.0 ...")
@@ -163,7 +164,7 @@ That object must be created with both fields `channel_id` and `access_hash` corr
There can be several reasons why `chats.chats[id]` raise an error:
- The user account you're currently logged-in as has not joined this particular chat.
API method [Messages_GetAllChats](https://corefork.telegram.org/method/messages.getAllChats) will only return those chat groups/channels the user is in, not all Telegram chat groups.
-- You're trying to use a Telegram.Bot (or TDLib) numerical ID, like -1001234567890
+- You're trying to use a Bot API (or TDLib) numerical ID, like -1001234567890
Telegram Client API don't use these kind of IDs for chats. Remove the -100 prefix and try again with the rest (1234567890).
- You're trying to use a user ID instead of a chat ID.
Private messages with a user are not called "chats". See [Terminology in ReadMe](README.md#terminology).
@@ -232,7 +233,7 @@ If you need your userbot to run 24/7, you would typically design your userbot as
and hosted online on any [VPS Hosting](https://www.google.com/search?q=vps+hosting) (Virtual Private Server).
Pure WebApp hosts might not be adequate as they will recycle (stop) your app if there is no incoming HTTP requests.
-There are many cheap VPS Hosting offers available, and some even have free tier, like Heroku:
+There are many cheap VPS Hosting offers available, for example Heroku:
See [Examples/Program_Heroku.cs](Examples/Program_Heroku.cs) for such an implementation and the steps to host/deploy it.
diff --git a/README.md b/README.md
index b2d895e..be93df3 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@
[](https://corefork.telegram.org/methods)
[](https://dev.azure.com/wiz0u/WTelegramClient/_artifacts/feed/WTelegramClient/NuGet/WTelegramClient)
[](https://t.me/WTelegramClient)
-[](http://wizou.fr/donate.html)
+[](http://t.me/WTelegramBot?start=donate)
## _Telegram Client API library written 100% in C# and .NET Standard_
@@ -36,7 +36,7 @@ If the verification succeeds but the phone number is unknown to Telegram, the us
If the account already exists and has enabled two-step verification (2FA) a **password** might be required.
All these login scenarios are handled automatically within the call to `LoginUserIfNeeded`.
-And that's it, you now have access to the **[full range of Telegram Client APIs](https://corefork.telegram.org/methods)**.
+After login, you now have access to the **[full range of Telegram Client APIs](https://corefork.telegram.org/methods)**.
All those API methods require `using TL;` namespace and are called with an underscore instead of a dot in the method name, like this: `await client.Method_Name(...)`
# Saved session
@@ -162,4 +162,4 @@ Please don't use this library for Spam or Scam. Respect Telegram [Terms of Servi
Developers feedback is welcome in the Telegram support group [@WTelegramClient](https://t.me/WTelegramClient)
You can also check our [๐ Frequently Asked Questions](https://github.com/wiz0u/WTelegramClient/blob/master/FAQ.md) for more help and troubleshooting guide.
-If you like this library, please [consider a donation](http://wizou.fr/donate.html).โค This will help the project keep going.
+If you like this library, please [consider a donation](http://t.me/WTelegramBot?start=donate).โค This will help the project keep going.
diff --git a/src/Client.cs b/src/Client.cs
index 9e6fbc1..d4f78c5 100644
--- a/src/Client.cs
+++ b/src/Client.cs
@@ -22,7 +22,7 @@ namespace WTelegram
public partial class Client : IDisposable
{
/// This event will be called when unsollicited updates/messages are sent by Telegram servers
- /// Make your handler , or return
See Examples/Program_ListenUpdate.cs for how to use this
+ /// Make your handler , or return or
See Examples/Program_ListenUpdate.cs for how to use this
public event Func OnUpdate;
/// Used to create a TcpClient connected to the given address/port, or throw an exception on failure
public TcpFactory TcpHandler { get; set; } = DefaultTcpHandler;
diff --git a/src/TL.Schema.cs b/src/TL.Schema.cs
index 34d84b3..7323773 100644
--- a/src/TL.Schema.cs
+++ b/src/TL.Schema.cs
@@ -370,7 +370,7 @@ namespace TL
public string provider;
/// JSON-encoded data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider.
public DataJSON provider_data;
- /// Start parameter
+ /// Unique bot deep links start parameter. If present, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter. If absent, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice.
[IfFlag(1)] public string start_param;
[Flags] public enum Flags : uint
@@ -775,9 +775,11 @@ namespace TL
apply_min_photo = 0x2000000,
/// If set, this user was reported by many users as a fake or scam user: be careful when interacting with them.
fake = 0x4000000,
+ /// Whether this bot offers an attachment menu web app
bot_attach_menu = 0x8000000,
/// Whether this user is a Telegram Premium user
premium = 0x10000000,
+ /// Whether we installed the attachment menu web app offered by this bot
attach_menu_enabled = 0x20000000,
}
}
@@ -1953,7 +1955,9 @@ namespace TL
has_info = 0x1,
/// Field has a value
has_shipping_option_id = 0x2,
+ /// Whether this is the first payment of a recurring payment we just subscribed to
recurring_init = 0x4,
+ /// Whether this payment is part of a recurring payment
recurring_used = 0x8,
}
}
@@ -1967,15 +1971,16 @@ namespace TL
public string currency;
/// Price of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
public long total_amount;
- /// An invoice slug taken from a t.me/invoice/ link or from the premium_invoice_slug app config parameter ยป
+ /// An invoice slug taken from an invoice deep link or from the premium_invoice_slug app config parameter ยป
[IfFlag(0)] public string invoice_slug;
[Flags] public enum Flags : uint
{
/// Field has a value
has_invoice_slug = 0x1,
- /// Whether this is a recurring payment
+ /// Whether this is the first payment of a recurring payment we just subscribed to
recurring_init = 0x4,
+ /// Whether this payment is part of a recurring payment
recurring_used = 0x8,
}
}
@@ -2101,16 +2106,18 @@ namespace TL
/// A user was accepted into the group by an admin See
[TLDef(0xEBBCA3CB)]
public class MessageActionChatJoinedByRequest : MessageAction { }
- /// See
+ /// Data from an opened reply keyboard bot web app was relayed to the bot that owns it (bot side service message). See
[TLDef(0x47DD8079, inheritBefore = true)]
public class MessageActionWebViewDataSentMe : MessageActionWebViewDataSent
{
+ /// Relayed data.
public string data;
}
- /// See
+ /// Data from an opened reply keyboard bot web app was relayed to the bot that owns it (user side service message). See
[TLDef(0xB4C38CB5)]
public class MessageActionWebViewDataSent : MessageAction
{
+ /// Text of the that was pressed to open the web app.
public string text;
}
/// Info about a gifted Telegram Premium subscription See
@@ -2561,15 +2568,15 @@ namespace TL
}
}
- /// Object contains info on a wallpaper. Derived classes: , See
+ /// Object contains info on a wallpaper. Derived classes: , See
public abstract class WallPaperBase : IObject
{
/// Identifier
public abstract long ID { get; }
- /// Wallpaper settings
+ /// Info on how to generate the wallpaper, according to these instructions ยป.
public abstract WallPaperSettings Settings { get; }
}
- /// Wallpaper settings. See
+ /// Represents a wallpaper based on an image. See
[TLDef(0xA437C3ED)]
public class WallPaper : WallPaperBase
{
@@ -2579,33 +2586,33 @@ namespace TL
public Flags flags;
/// Access hash
public long access_hash;
- /// Unique wallpaper ID
+ /// Unique wallpaper ID, used when generating wallpaper links or importing wallpaper links.
public string slug;
/// The actual wallpaper
public DocumentBase document;
- /// Wallpaper settings
+ /// Info on how to generate the wallpaper, according to these instructions ยป.
[IfFlag(2)] public WallPaperSettings settings;
[Flags] public enum Flags : uint
{
- /// Creator of the wallpaper
+ /// Whether we created this wallpaper
creator = 0x1,
/// Whether this is the default wallpaper
default_ = 0x2,
/// Field has a value
has_settings = 0x4,
- /// Pattern
+ /// Whether this is a pattern wallpaper ยป
pattern = 0x8,
- /// Dark mode
+ /// Whether this wallpaper should be used in dark mode.
dark = 0x10,
}
/// Identifier
public override long ID => id;
- /// Wallpaper settings
+ /// Info on how to generate the wallpaper, according to these instructions ยป.
public override WallPaperSettings Settings => settings;
}
- /// Wallpaper with no file access hash, used for example when deleting (unsave=true) wallpapers using account.saveWallPaper, specifying just the wallpaper ID.
Also used for some default wallpapers which contain only colours. See
+ /// Represents a wallpaper only based on colors/gradients. See
[TLDef(0xE0804116)]
public class WallPaperNoFile : WallPaperBase
{
@@ -2613,7 +2620,7 @@ namespace TL
public long id;
/// Flags, see TL conditional fields
public Flags flags;
- /// Wallpaper settings
+ /// Info on how to generate the wallpaper.
[IfFlag(2)] public WallPaperSettings settings;
[Flags] public enum Flags : uint
@@ -2622,13 +2629,13 @@ namespace TL
default_ = 0x2,
/// Field has a value
has_settings = 0x4,
- /// Dark mode
+ /// Whether this wallpaper should be used in dark mode.
dark = 0x10,
}
/// Wallpaper ID
public override long ID => id;
- /// Wallpaper settings
+ /// Info on how to generate the wallpaper.
public override WallPaperSettings Settings => settings;
}
@@ -2687,10 +2694,11 @@ namespace TL
[IfFlag(15)] public string theme_emoticon;
/// Anonymized text to be shown instead of the the user's name on forwarded messages
[IfFlag(16)] public string private_forward_name;
- /// A suggested default set of administrator rights for the bot, to be shown when adding the bot as admin to a supergroup (only a suggestion, the admin right set may be modified by the user before adding the bot as admin)
+ /// A suggested set of administrator rights for the bot, to be shown when adding the bot as admin to a group, see here for more info on how to handle them ยป.
[IfFlag(17)] public ChatAdminRights bot_group_admin_rights;
- /// A suggested default set of administrator rights for the bot, to be shown when adding the bot as admin to a channel (only a suggestion, the admin right set may be modified by the user before adding the bot as admin)
+ /// A suggested set of administrator rights for the bot, to be shown when adding the bot as admin to a channel, see here for more info on how to handle them ยป.
[IfFlag(18)] public ChatAdminRights bot_broadcast_admin_rights;
+ /// Telegram Premium subscriptions gift options
[IfFlag(19)] public PremiumGiftOption[] premium_gifts;
[Flags] public enum Flags : uint
@@ -4190,13 +4198,14 @@ namespace TL
/// Reactions
public MessageReactions reactions;
}
- /// The list of added bot web apps ยป has changed, use messages.getAttachMenuBots to fetch the updated list. See
+ /// The list of installed attachment menu entries ยป has changed, use messages.getAttachMenuBots to fetch the updated list. See
[TLDef(0x17B7A20B)]
public class UpdateAttachMenuBots : Update { }
- /// See
+ /// Indicates to a bot that a webview was closed and an inline message was sent on behalf of the user using messages.sendWebViewResultMessage See
[TLDef(0x1592B79D)]
public class UpdateWebViewResultSent : Update
{
+ /// Web app interaction ID
public long query_id;
}
/// The menu button behavior for the specified bot has changed See
@@ -4211,7 +4220,7 @@ namespace TL
/// The list of saved notification sounds has changed, use account.getSavedRingtones to fetch the new list. See
[TLDef(0x74D8BE99)]
public class UpdateSavedRingtones : Update { }
- /// A pending transcription initiated with messages.transcribeAudio was updated. See
+ /// A pending voice message transcription ยป initiated with messages.transcribeAudio was updated. See
[TLDef(0x0084CD5A)]
public class UpdateTranscribedAudio : Update
{
@@ -4232,7 +4241,7 @@ namespace TL
pending = 0x1,
}
}
- /// See
+ /// Some featured emoji stickers were marked as read See
[TLDef(0xFB4C496C)]
public class UpdateReadFeaturedEmojiStickers : Update { }
@@ -4605,7 +4614,7 @@ namespace TL
{
/// File type
public Storage_FileType type;
- /// Modification type
+ /// Modification time
public int mtime;
/// Binary data, file content
public byte[] bytes;
@@ -4729,7 +4738,7 @@ namespace TL
public int call_connect_timeout_ms;
/// If during a VoIP call a packet isn't received for the specified period of time, the call must be aborted
public int call_packet_timeout_ms;
- /// The domain to use to parse in-app links.
For example t.me indicates that t.me/username links should parsed to @username, t.me/addsticker/name should be parsed to the appropriate stickerset and so on...
+ /// The domain to use to parse deep links ยป.
public string me_url_prefix;
/// URL to use to auto-update the current app
[IfFlag(7)] public string autoupdate_url_prefix;
@@ -4745,7 +4754,7 @@ namespace TL
public int caption_length_max;
/// Maximum length of messages (length in utf8 codepoints)
public int message_length_max;
- /// DC ID to use to download webfiles
+ /// DC ID to use to download webfiles
public int webfile_dc_id;
/// Suggested language code
[IfFlag(2)] public string suggested_lang_code;
@@ -5123,7 +5132,7 @@ namespace TL
public EncryptedFile file;
}
- /// Defines a video for subsequent interaction. See
+ /// Defines a document for subsequent interaction. See
/// a null value means inputDocumentEmpty
[TLDef(0x1ABFB575)]
public partial class InputDocument : IObject
@@ -5322,19 +5331,19 @@ namespace TL
/// Privacy key See
public enum InputPrivacyKey : uint
{
- ///Whether we can see the exact last online timestamp of the user
+ ///Whether people will be able to see your exact last online timestamp
StatusTimestamp = 0x4F96CB18,
- ///Whether the user can be invited to chats
+ ///Whether people will be able to invite you to chats
ChatInvite = 0xBDFB0426,
- ///Whether the user will accept phone calls
+ ///Whether you will accept phone calls
PhoneCall = 0xFABADC5F,
- ///Whether the user allows P2P communication during VoIP calls
+ ///Whether to allow P2P communication during VoIP calls
PhoneP2P = 0xDB9E70D2,
- ///Whether messages forwarded from this user will be anonymous
+ ///Whether messages forwarded from you will be anonymous
Forwards = 0xA4DD4C08,
- ///Whether people will be able to see the user's profile picture
+ ///Whether people will be able to see your profile picture
ProfilePhoto = 0x5719BACC,
- ///Whether people will be able to see the user's phone number
+ ///Whether people will be able to see your phone number
PhoneNumber = 0x0352DAFA,
///Whether people can add you to their contact list by your phone number
AddedByPhone = 0xD1219BDD,
@@ -5345,13 +5354,13 @@ namespace TL
/// Privacy key See
public enum PrivacyKey : uint
{
- ///Whether we can see the last online timestamp
+ ///Whether we can see the last online timestamp of this user
StatusTimestamp = 0xBC2EAB30,
///Whether the user can be invited to chats
ChatInvite = 0x500E6DFA,
///Whether the user accepts phone calls
PhoneCall = 0x3D662B7B,
- ///Whether P2P connections in phone calls are allowed
+ ///Whether P2P connections in phone calls with this user are allowed
PhoneP2P = 0x39491CC8,
///Whether messages forwarded from the user will be anonymously forwarded
Forwards = 0x69EC56A3,
@@ -5359,7 +5368,7 @@ namespace TL
ProfilePhoto = 0x96151FED,
///Whether the user allows us to see his phone number
PhoneNumber = 0xD19AE46D,
- ///Whether people can add you to their contact list by your phone number
+ ///Whether this user can be added to our contact list by their phone number
AddedByPhone = 0x42FFD42B,
///Whether the user accepts voice messages
VoiceMessages = 0x0697F414,
@@ -5579,6 +5588,7 @@ namespace TL
[Flags] public enum Flags : uint
{
+ /// Whether this custom emoji can be sent by non-Premium users
free = 0x1,
}
}
@@ -5958,7 +5968,7 @@ namespace TL
has_title = 0x100,
}
}
- /// See
+ /// Used in updates and in the channel log to indicate when a user is requesting to join or has joined a discussion group See
[TLDef(0xED107AB7)]
public class ChatInvitePublicJoinRequests : ExportedChatInvite { }
@@ -6028,11 +6038,11 @@ namespace TL
/// โ REQUIRED FIELD. See how to obtain it
Access hash
public long access_hash;
}
- /// Stickerset by short name, from tg://addstickers?set=short_name See
+ /// Stickerset by short name, from a stickerset deep link ยป See
[TLDef(0x861CC8A0)]
public class InputStickerSetShortName : InputStickerSet
{
- /// From tg://addstickers?set=short_name
+ /// Short name from a stickerset deep link ยป
public string short_name;
}
/// Animated emojis stickerset See
@@ -6048,7 +6058,7 @@ namespace TL
/// Animated emoji reaction stickerset (contains animations to play when a user clicks on a given animated emoji) See
[TLDef(0x0CDE3739)]
public class InputStickerSetAnimatedEmojiAnimations : InputStickerSet { }
- /// See
+ /// Stickers to show when receiving a gifted Telegram Premium subscription See
[TLDef(0xC88B3B02)]
public class InputStickerSetPremiumGifts : InputStickerSet { }
@@ -6066,7 +6076,7 @@ namespace TL
public long access_hash;
/// Title of stickerset
public string title;
- /// Short name of stickerset to use in tg://addstickers?set=short_name
+ /// Short name of stickerset, used when sharing stickerset using stickerset deep links.
public string short_name;
/// Stickerset thumbnail
[IfFlag(4)] public PhotoSizeBase[] thumbs;
@@ -6330,13 +6340,14 @@ namespace TL
/// User ID
public long user_id;
}
- /// See
+ /// Button to open a bot web app using messages.requestWebView, sending over user information after user confirmation. See
[TLDef(0x13767230, inheritBefore = true)]
public class KeyboardButtonWebView : KeyboardButton
{
+ /// Web app url
public string url;
}
- /// See
+ /// Button to open a bot web app using messages.requestSimpleWebView, without sending user information to the web app. See
[TLDef(0xA0C0505C)]
public class KeyboardButtonSimpleWebView : KeyboardButtonWebView
{
@@ -7536,11 +7547,11 @@ namespace TL
/// Type of verification code that will be sent next if you call the resendCode method See
public enum Auth_CodeType : uint
{
- ///Type of verification code that will be sent next if you call the resendCode method: SMS code
+ ///The next time, the authentication code will be delivered via an immediately canceled incoming call.
Sms = 0x72A3158C,
- ///Type of verification code that will be sent next if you call the resendCode method: SMS code
+ ///The next time, the authentication code is to be delivered via an outgoing phone call.
Call = 0x741CD3E3,
- ///Type of verification code that will be sent next if you call the resendCode method: SMS code
+ ///The next time, the authentication code will be delivered via an immediately canceled incoming call.
FlashCall = 0x226CCEFB,
///The next time, the authentication code will be delivered via an immediately canceled incoming call, handled manually by the user.
MissedCall = 0xD61AD6EE,
@@ -7872,13 +7883,13 @@ namespace TL
public StickerSetCoveredBase[] sets;
}
- /// Stickerset, with a specific sticker as preview Derived classes: , , See
+ /// Stickerset preview Derived classes: , , See
public abstract class StickerSetCoveredBase : IObject
{
/// Stickerset
public abstract StickerSet Set { get; }
}
- /// Stickerset, with a specific sticker as preview See
+ /// Stickerset with a single sticker as preview See
[TLDef(0x6410A5D2)]
public class StickerSetCovered : StickerSetCoveredBase
{
@@ -7890,7 +7901,7 @@ namespace TL
/// Stickerset
public override StickerSet Set => set;
}
- /// Stickerset, with a specific set of stickers as preview See
+ /// Stickerset, with multiple stickers as preview See
[TLDef(0x3407E51B)]
public class StickerSetMultiCovered : StickerSetCoveredBase
{
@@ -7902,14 +7913,18 @@ namespace TL
/// Stickerset
public override StickerSet Set => set;
}
- /// See
+ /// Stickerset preview with all stickers of the stickerset included.
Currently used only for custom emoji stickersets, to avoid a further call to messages.getStickerSet. See
[TLDef(0x1AED5EE5)]
public class StickerSetFullCovered : StickerSetCoveredBase
{
+ /// Stickerset
public StickerSet set;
+ /// Emoji information about every sticker in the stickerset
public StickerPack[] packs;
+ /// Stickers
public DocumentBase[] documents;
+ /// Stickerset
public override StickerSet Set => set;
}
@@ -7989,7 +8004,7 @@ namespace TL
{
/// The bot that provides the game
public InputUserBase bot_id;
- /// The game's short name
+ /// The game's short name, usually obtained from a game link ยป
public string short_name;
}
@@ -8673,13 +8688,13 @@ namespace TL
/// โ REQUIRED FIELD. See how to obtain it
Access hash
public long access_hash;
}
- /// Geolocation See
+ /// Used to download a server-generated image with the map preview from a , see the webfile docs for more info ยป. See
[TLDef(0x9F2221C9)]
public class InputWebFileGeoPointLocation : InputWebFileLocationBase
{
- /// Geolocation
+ /// Generated from the lat, long and accuracy_radius parameters of the
public InputGeoPoint geo_point;
- /// โ REQUIRED FIELD. See how to obtain it
Access hash
+ /// โ REQUIRED FIELD. See how to obtain it
Access hash of the
public long access_hash;
/// Map width in pixels before applying scale; 16-1024
public int w;
@@ -8690,14 +8705,17 @@ namespace TL
/// Map scale; 1-3
public int scale;
}
- /// See
+ /// Used to download an album cover for any music file using upload.getWebFile, see the webfile docs for more info ยป. See
[TLDef(0xF46FE924)]
public class InputWebFileAudioAlbumThumbLocation : InputWebFileLocationBase
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// The audio file in question: must NOT be provided in secret chats, provide the title and performer fields instead.
[IfFlag(0)] public InputDocument document;
+ /// Song title: should only be used in secret chats, in normal chats provide document instead, as it has more lax rate limits.
[IfFlag(1)] public string title;
+ /// Song performer: should only be used in secret chats, in normal chats provide document instead, as it has more lax rate limits.
[IfFlag(1)] public string performer;
[Flags] public enum Flags : uint
@@ -8706,6 +8724,7 @@ namespace TL
has_document = 0x1,
/// Field has a value
has_title = 0x2,
+ /// Used to return a thumbnail with 100x100 resolution (instead of the default 600x600)
small = 0x4,
}
}
@@ -10410,7 +10429,7 @@ namespace TL
public int length;
}
- /// Deep linking info See
+ /// Deep link info, see the here for more details See
/// a null value means help.deepLinkInfoEmpty
[TLDef(0x6A4EE832)]
public class Help_DeepLinkInfo : IObject
@@ -10936,7 +10955,7 @@ namespace TL
anonymous = 0x400,
/// If set, allows the admin to change group call/livestream settings
manage_call = 0x800,
- /// Set this flag if none of the other flags are set, but you still want the user to be an admin.
+ /// Set this flag if none of the other flags are set, but you still want the user to be an admin: if this or any of the other flags are set, the admin can get the chat admin log, get chat statistics, get message statistics in channels, get channel members, see anonymous administrators in supergroups and ignore slow mode.
other = 0x1000,
}
}
@@ -10979,25 +10998,25 @@ namespace TL
}
}
- /// Wallpaper Derived classes: , , See
+ /// Wallpaper Derived classes: , , See
public abstract class InputWallPaperBase : IObject { }
- /// Wallpaper See
+ /// Wallpaper See
[TLDef(0xE630B979)]
public class InputWallPaper : InputWallPaperBase
{
- /// Wallpaper ID
+ /// Wallpaper ID
public long id;
/// โ REQUIRED FIELD. See how to obtain it
Access hash
public long access_hash;
}
- /// Wallpaper by slug (a unique ID) See
+ /// Wallpaper by slug (a unique ID, obtained from a wallpaper link ยป) See
[TLDef(0x72091C80)]
public class InputWallPaperSlug : InputWallPaperBase
{
/// Unique wallpaper ID
public string slug;
}
- /// Wallpaper with no file access hash, used for example when deleting (unsave=true) wallpapers using account.saveWallPaper, specifying just the wallpaper ID. See
+ /// Wallpaper with no file access hash, used for example when deleting (unsave=true) wallpapers using account.saveWallPaper, specifying just the wallpaper ID. See
[TLDef(0x967A462E)]
public class InputWallPaperNoFile : InputWallPaperBase
{
@@ -11005,14 +11024,14 @@ namespace TL
public long id;
}
- /// Installed wallpapers See
+ /// Installed wallpapers See
/// a null value means account.wallPapersNotModified
[TLDef(0xCDC3858C)]
public class Account_WallPapers : IObject
{
/// Hash for pagination, for more info click here
public long hash;
- /// Wallpapers
+ /// Wallpapers
public WallPaperBase[] wallpapers;
}
@@ -11040,32 +11059,32 @@ namespace TL
}
}
- /// Wallpaper settings See
+ /// Wallpaper rendering information. See
[TLDef(0x1DC1BCA4)]
public class WallPaperSettings : IObject
{
/// Flags, see TL conditional fields
public Flags flags;
- /// If set, a PNG pattern is to be combined with the color chosen by the user: the main color of the background in RGB24 format
+ /// Used for solid ยป, gradient ยป and freeform gradient ยป fills.
[IfFlag(0)] public int background_color;
- /// If set, a PNG pattern is to be combined with the first and second background colors (RGB24 format) in a top-bottom gradient
+ /// Used for gradient ยป and freeform gradient ยป fills.
[IfFlag(4)] public int second_background_color;
- /// If set, a PNG pattern is to be combined with the first, second and third background colors (RGB24 format) in a freeform gradient
+ /// Used for freeform gradient ยป fills.
[IfFlag(5)] public int third_background_color;
- /// If set, a PNG pattern is to be combined with the first, second, third and fourth background colors (RGB24 format) in a freeform gradient
+ /// Used for freeform gradient ยป fills.
[IfFlag(6)] public int fourth_background_color;
- /// Intensity of the pattern when it is shown above the main background color, 0-100
+ /// Used for pattern wallpapers ยป.
[IfFlag(3)] public int intensity;
- /// Clockwise rotation angle of the gradient, in degrees; 0-359. Should be always divisible by 45
+ /// Clockwise rotation angle of the gradient, in degrees; 0-359. Should be always divisible by 45.
[IfFlag(4)] public int rotation;
[Flags] public enum Flags : uint
{
/// Field has a value
has_background_color = 0x1,
- /// If set, the wallpaper must be downscaled to fit in 450x450 square and then box-blurred with radius 12
+ /// For image wallpapers ยป: if set, the JPEG must be downscaled to fit in 450x450 square and then box-blurred with radius 12.
blur = 0x2,
- /// If set, the background needs to be slightly moved when device is rotated
+ /// If set, the background needs to be slightly moved when the device is rotated.
motion = 0x4,
/// Field has a value
has_intensity = 0x8,
@@ -11324,7 +11343,7 @@ namespace TL
[TLDef(0xF5890DF1)]
public class InputThemeSlug : InputThemeBase
{
- /// Unique theme ID
+ /// Unique theme ID obtained from a theme deep link ยป
public string slug;
}
@@ -11468,9 +11487,9 @@ namespace TL
[IfFlag(3)] public int outbox_accent_color;
/// The fill to be used as a background for outgoing messages, in RGB24 format.
If just one or two equal colors are provided, describes a solid fill of a background.
If two different colors are provided, describes the top and bottom colors of a 0-degree gradient.
If three or four colors are provided, describes a freeform gradient fill of a background.
[IfFlag(0)] public int[] message_colors;
- /// Wallpaper
+ /// Wallpaper
[IfFlag(1)] public InputWallPaperBase wallpaper;
- /// Wallpaper settings
+ /// Wallpaper settings.
[IfFlag(1)] public WallPaperSettings wallpaper_settings;
[Flags] public enum Flags : uint
@@ -11500,7 +11519,7 @@ namespace TL
[IfFlag(3)] public int outbox_accent_color;
/// The fill to be used as a background for outgoing messages, in RGB24 format.
If just one or two equal colors are provided, describes a solid fill of a background.
If two different colors are provided, describes the top and bottom colors of a 0-degree gradient.
If three or four colors are provided, describes a freeform gradient fill of a background.
[IfFlag(0)] public int[] message_colors;
- /// Wallpaper
+ /// Wallpaper
[IfFlag(1)] public WallPaperBase wallpaper;
[Flags] public enum Flags : uint
@@ -11678,7 +11697,7 @@ namespace TL
has_emoticon = 0x2000000,
}
}
- /// See
+ /// Used only when reordering folders to indicate the default (all chats) folder. See
[TLDef(0x363293AE)]
public class DialogFilterDefault : DialogFilterBase { }
@@ -12686,6 +12705,7 @@ namespace TL
has_from_id = 0x8,
/// Field has a value
has_chat_invite = 0x10,
+ /// Whether the message needs to be labeled as "recommended" instead of "sponsored"
recommended = 0x20,
}
}
@@ -13010,7 +13030,7 @@ namespace TL
public string key;
}
- /// Represents an attachment menu icon color for bot web apps ยป See
+ /// Represents an attachment menu icon color for bot web apps ยป See
[TLDef(0x4576F3F0)]
public class AttachMenuBotIconColor : IObject
{
@@ -13020,7 +13040,7 @@ namespace TL
public int color;
}
- /// Represents an attachment menu icon for bot web apps ยป See
+ /// Represents an attachment menu icon for bot web apps ยป See
[TLDef(0xB2A7386B)]
public class AttachMenuBotIcon : IObject
{
@@ -13040,7 +13060,7 @@ namespace TL
}
}
- /// Represents a bot web app that can be launched from the attachment menu ยป See
+ /// Represents a bot web app that can be launched from the attachment menu ยป See
[TLDef(0xC8AA2CD2)]
public class AttachMenuBot : IObject
{
@@ -13059,59 +13079,63 @@ namespace TL
{
/// Whether this bot attachment menu entry should be shown in the attachment menu (toggle using messages.toggleBotInAttachMenu)
inactive = 0x1,
- /// True, if the bot supports the "settings_button_pressed" event
+ /// True, if the bot supports the "settings_button_pressed" event ยป
has_settings = 0x2,
}
}
- /// Represents a list of bot web apps that can be launched from the attachment menu ยป See
+ /// Represents a list of bot web apps that can be launched from the attachment menu ยป See
/// a null value means attachMenuBotsNotModified
[TLDef(0x3C4301C0)]
public class AttachMenuBots : IObject
{
/// Hash for pagination, for more info click here
public long hash;
- /// List of bot web apps that can be launched from the attachment menu ยป
+ /// List of bot web apps that can be launched from the attachment menu ยป
public AttachMenuBot[] bots;
/// Info about related users/bots
public Dictionary users;
}
- /// Represents a bot web app that can be launched from the attachment menu ยป See
+ /// Represents a bot web app that can be launched from the attachment menu ยป See
[TLDef(0x93BF667F)]
public class AttachMenuBotsBot : IObject
{
- /// Represents a bot web app that can be launched from the attachment menu ยป
+ /// Represents a bot web app that can be launched from the attachment menu ยป
public AttachMenuBot bot;
/// Info about related users and bots
public Dictionary users;
}
- /// Contains information about a Web App Derived classes: See
+ /// Contains the webview URL with appropriate theme and user info parameters added Derived classes: See
public abstract class WebViewResult : IObject { }
- /// See
+ /// Contains the webview URL with appropriate theme and user info parameters added See
[TLDef(0x0C14557C)]
public class WebViewResultUrl : WebViewResult
{
+ /// Webview session ID
public long query_id;
+ /// Webview URL to open
public string url;
}
- /// Contains the webview URL with appropriate theme and user info parameters added Derived classes: See
+ /// Contains the webview URL with appropriate theme parameters added Derived classes: See
public abstract class SimpleWebViewResult : IObject { }
- /// See
+ /// Contains the webview URL with appropriate theme parameters added See
[TLDef(0x882F76BB)]
public class SimpleWebViewResultUrl : SimpleWebViewResult
{
+ /// URL
public string url;
}
- /// See
+ /// Info about a sent inline webview message See
[TLDef(0x0C94511C)]
public class WebViewMessageSent : IObject
{
/// Flags, see TL conditional fields
public Flags flags;
+ /// Message ID
[IfFlag(0)] public InputBotInlineMessageIDBase msg_id;
[Flags] public enum Flags : uint
@@ -13123,19 +13147,19 @@ namespace TL
/// Indicates the action to execute when pressing the in-UI menu button for bots Derived classes: , , See
public abstract class BotMenuButtonBase : IObject { }
- /// See
+ /// Placeholder bot menu button never returned to users: see the docs for more info. See
[TLDef(0x7533A588)]
public class BotMenuButtonDefault : BotMenuButtonBase { }
- /// See
+ /// Bot menu button that opens the bot command list when clicked. See
[TLDef(0x4258C205)]
public class BotMenuButtonCommands : BotMenuButtonBase { }
- /// Indicates the action to execute when pressing the in-UI menu button for bots See
+ /// Bot menu button that opens a web app when clicked. See
[TLDef(0xC7B57CE6)]
public class BotMenuButton : BotMenuButtonBase
{
/// Title to be displayed on the menu button instead of 'Menu'
public string text;
- /// URL of a web app to open when the user clicks on the button
+ /// URL of a web app to open when the user clicks on the button
public string url;
}
@@ -13212,7 +13236,7 @@ namespace TL
/// Message ID
public int msg_id;
}
- /// An invoice slug taken from a t.me/invoice/ link or from the premium_invoice_slug app config parameter ยป See
+ /// An invoice slug taken from an invoice deep link or from the premium_invoice_slug app config parameter ยป See
[TLDef(0xC326CAEF)]
public class InputInvoiceSlug : InputInvoice
{
@@ -13220,15 +13244,15 @@ namespace TL
public string slug;
}
- /// Exported invoice See
+ /// Exported invoice deep link See
[TLDef(0xAED0CBD9)]
public class Payments_ExportedInvoice : IObject
{
- /// Exported invoice URL
+ /// Exported invoice deep link
public string url;
}
- /// Transcribed text from a voice message See
+ /// Transcribed text from a voice message ยป See
[TLDef(0x93752C52)]
public class Messages_TranscribedAudio : IObject
{
@@ -13277,6 +13301,7 @@ namespace TL
[Flags] public enum Flags : uint
{
+ /// Pass true if this is a restore of a Telegram Premium purchase; only for the App Store
restore = 0x1,
}
}
@@ -13304,7 +13329,9 @@ namespace TL
public string currency;
/// Price of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
public long amount;
+ /// An invoice deep link ยป to an invoice for in-app payment, using the official Premium bot; may be empty if direct payment isn't available.
public string bot_url;
+ /// An identifier for the App Store/Play Store product associated with the Premium gift.
[IfFlag(0)] public string store_product;
[Flags] public enum Flags : uint
@@ -13314,11 +13341,13 @@ namespace TL
}
}
- /// Represents a payment method See
+ /// Represents an additional payment method See
[TLDef(0x88F8F21B)]
public class PaymentFormMethod : IObject
{
+ /// URL to open in a webview to process the payment
public string url;
+ /// Payment method description
public string title;
}
}
diff --git a/src/TL.SchemaFuncs.cs b/src/TL.SchemaFuncs.cs
index fe44547..b09d00b 100644
--- a/src/TL.SchemaFuncs.cs
+++ b/src/TL.SchemaFuncs.cs
@@ -247,7 +247,7 @@ namespace TL
except_auth_keys = except_auth_keys,
});
- /// Generate a login token, for login via QR code.
The generated login token should be encoded using base64url, then shown as a tg://login?token=base64encodedtoken URL in the QR code. See Possible codes: 400 (details)
+ /// Generate a login token, for login via QR code.
The generated login token should be encoded using base64url, then shown as a tg://login?token=base64encodedtoken deep link ยป in the QR code. See Possible codes: 400 (details)
/// Application identifier (see. App configuration)
/// Application identifier hash (see. App configuration)
/// List of already logged-in user IDs, to prevent logging in twice with the same user
@@ -358,7 +358,7 @@ namespace TL
offline = offline,
});
- /// Returns a list of available wallpapers. See
+ /// Returns a list of available wallpapers. See
/// Hash for pagination, for more info click here
/// a null value means account.wallPapersNotModified
public static Task Account_GetWallPapers(this Client client, long hash = default)
@@ -723,15 +723,15 @@ namespace TL
peer = peer,
});
- /// Get info about a certain wallpaper See Possible codes: 400 (details)
- /// The wallpaper to get info about
+ /// Get info about a certain wallpaper See Possible codes: 400 (details)
+ /// The wallpaper to get info about
public static Task Account_GetWallPaper(this Client client, InputWallPaperBase wallpaper)
=> client.Invoke(new Account_GetWallPaper
{
wallpaper = wallpaper,
});
- /// Create and upload a new wallpaper See Possible codes: 400 (details)
+ /// Create and upload a new wallpaper See Possible codes: 400 (details)
/// The JPG/PNG wallpaper
/// MIME type of uploaded wallpaper
/// Wallpaper settings
@@ -743,8 +743,8 @@ namespace TL
settings = settings,
});
- /// Install/uninstall wallpaper See Possible codes: 400 (details)
- /// Wallpaper to save
+ /// Install/uninstall wallpaper See Possible codes: 400 (details)
+ /// Wallpaper to install or uninstall
/// Uninstall wallpaper?
/// Wallpaper settings
public static Task Account_SaveWallPaper(this Client client, InputWallPaperBase wallpaper, bool unsave, WallPaperSettings settings)
@@ -755,9 +755,9 @@ namespace TL
settings = settings,
});
- /// Install wallpaper See Possible codes: 400 (details)
- /// Wallpaper to install
- /// Wallpaper settings
+ /// Install wallpaper See Possible codes: 400 (details)
+ /// Wallpaper to install
+ /// Wallpaper settings
public static Task Account_InstallWallPaper(this Client client, InputWallPaperBase wallpaper, WallPaperSettings settings)
=> client.Invoke(new Account_InstallWallPaper
{
@@ -765,7 +765,7 @@ namespace TL
settings = settings,
});
- /// Delete installed wallpapers See
+ /// Delete all installed wallpapers, reverting to the default wallpaper set. See
public static Task Account_ResetWallPapers(this Client client)
=> client.Invoke(new Account_ResetWallPapers
{
@@ -898,8 +898,8 @@ namespace TL
{
});
- /// Get info about multiple wallpapers See
- /// Wallpapers to fetch info about
+ /// Get info about multiple wallpapers See
+ /// Wallpapers to fetch info about
public static Task Account_GetMultiWallPapers(this Client client, params InputWallPaperBase[] wallpapers)
=> client.Invoke(new Account_GetMultiWallPapers
{
@@ -1224,8 +1224,8 @@ namespace TL
msg_id = msg_id,
});
- /// Resolve a phone number to get user info, if their privacy settings allow it. See Possible codes: (details)
- /// Phone number in international format, possibly obtained from a t.me/+number or tg://resolve?phone=number URI.
+ /// Resolve a phone number to get user info, if their privacy settings allow it. See Possible codes: 400 (details)
+ /// Phone number in international format, possibly obtained from a phone number deep link.
public static Task Contacts_ResolvePhone(this Client client, string phone)
=> client.Invoke(new Contacts_ResolvePhone
{
@@ -1260,7 +1260,7 @@ namespace TL
hash = hash,
});
- /// Gets back the conversation history with one interlocutor / within a chat See Possible codes: 400 (details)
+ /// Returns the conversation history with one interlocutor / within a chat See Possible codes: 400 (details)
/// Target peer
/// Only return messages starting from the specified message ID
/// Only return messages sent before the specified date
@@ -1282,7 +1282,7 @@ namespace TL
hash = hash,
});
- /// Gets back found messages See Possible codes: 400 (details)
+ /// Returns found messages See Possible codes: 400 (details)
/// User or chat, histories with which are searched, or for global search
/// Text search request
/// Only return messages sent by the specified user ID
@@ -1661,7 +1661,7 @@ namespace TL
data = data,
});
- /// Confirms receipt of messages in a secret chat by client, cancels push notifications. See Possible codes: 400 (details)
+ /// Confirms receipt of messages in a secret chat by client, cancels push notifications.
The method returns a list of random_ids of messages for which push notifications were cancelled. See Possible codes: 400 (details)
/// Maximum qts value available at the client
public static Task Messages_ReceivedQueue(this Client client, int max_qts)
=> client.Invoke(new Messages_ReceivedQueue
@@ -1735,7 +1735,7 @@ namespace TL
});
/// Check the validity of a chat invite link and get basic info about it See Possible codes: 400,406 (details)
- /// Invite hash in t.me/joinchat/hash or t.me/+hash
+ /// Invite hash from chat invite deep link ยป.
public static Task Messages_CheckChatInvite(this Client client, string hash)
=> client.Invoke(new Messages_CheckChatInvite
{
@@ -1743,14 +1743,14 @@ namespace TL
});
/// Import a chat invite and join a private chat/supergroup/channel See Possible codes: 400,406 (details)
- /// hash from t.me/joinchat/hash
+ /// hash from a chat invite deep link
public static Task Messages_ImportChatInvite(this Client client, string hash)
=> client.Invoke(new Messages_ImportChatInvite
{
hash = hash,
});
- /// Get info about a stickerset See [bots: โ] Possible codes: 406 (details)
+ /// Get info about a stickerset See [bots: โ] Possible codes: 400,406 (details)
/// Stickerset
/// Hash for pagination, for more info click here
/// a null value means messages.stickerSetNotModified
@@ -1779,11 +1779,11 @@ namespace TL
stickerset = stickerset,
});
- /// Start a conversation with a bot using a deep linking parameter See Possible codes: 400,403,500 (details)
+ /// Start a conversation with a bot using a deep linking parameter See Possible codes: 400,403,500 (details)
/// The bot
/// The chat where to start the bot, can be the bot's private chat or a group
/// Random ID to avoid resending the same message
- /// Deep linking parameter
+ /// Deep linking parameter
public static Task Messages_StartBot(this Client client, InputUserBase bot, InputPeer peer, long random_id, string start_param)
=> client.Invoke(new Messages_StartBot
{
@@ -2059,7 +2059,7 @@ namespace TL
entities = entities,
});
- /// Save get all message drafts. See
+ /// Return all message drafts.
Returns all the latest updates related to all chats with drafts. See
public static Task Messages_GetAllDrafts(this Client client)
=> client.Invoke(new Messages_GetAllDrafts
{
@@ -3117,7 +3117,7 @@ namespace TL
min_id = min_id,
});
- /// Mark message reactions ยป as read See
+ /// Mark message reactions ยป as read See Possible codes: 400 (details)
/// Peer
public static Task Messages_ReadReactions(this Client client, InputPeer peer)
=> client.Invoke(new Messages_ReadReactions
@@ -3137,7 +3137,7 @@ namespace TL
limit = limit,
});
- /// Returns installed attachment menu bot web apps ยป See
+ /// Returns installed attachment menu bot web apps ยป See
/// Hash for pagination, for more info click here
/// a null value means attachMenuBotsNotModified
public static Task Messages_GetAttachMenuBots(this Client client, long hash = default)
@@ -3146,7 +3146,7 @@ namespace TL
hash = hash,
});
- /// Returns attachment menu entry for a bot web app that can be launched from the attachment menu ยป See Possible codes: 400 (details)
+ /// Returns attachment menu entry for a bot web app that can be launched from the attachment menu ยป See Possible codes: 400 (details)
/// Bot ID
public static Task Messages_GetAttachMenuBot(this Client client, InputUserBase bot)
=> client.Invoke(new Messages_GetAttachMenuBot
@@ -3154,7 +3154,7 @@ namespace TL
bot = bot,
});
- /// Enable or disable web bot attachment menu ยป See
+ /// Enable or disable web bot attachment menu ยป See
/// Bot ID
/// Toggle
public static Task Messages_ToggleBotInAttachMenu(this Client client, InputUserBase bot, bool enabled)
@@ -3164,7 +3164,16 @@ namespace TL
enabled = enabled,
});
- /// See
+ /// Open a bot web app, sending over user information after user confirmation. See
+ /// Whether the webview was opened by clicking on the bot's menu button ยป.
+ /// Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent silently (no notifications for the receivers).
+ /// Dialog where the web app is being opened, and where the resulting message will be sent (see the docs for more info ยป).
+ /// Bot that owns the web app
+ /// Web app URL
+ /// If the web app was opened from the attachment menu using a attachment menu deep link, start_param should contain the data from the startattach parameter.
+ /// Theme parameters for the web app
+ /// Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to this message ID.
+ /// Open the web app as the specified peer, sending the resulting the message as the specified peer.
public static Task Messages_RequestWebView(this Client client, InputPeer peer, InputUserBase bot, bool from_bot_menu = false, bool silent = false, string url = null, string start_param = null, DataJSON theme_params = null, int? reply_to_msg_id = null, InputPeer send_as = null)
=> client.Invoke(new Messages_RequestWebView
{
@@ -3178,7 +3187,13 @@ namespace TL
send_as = send_as,
});
- /// See
+ /// Indicate to the server (from the user side) that the user is still using a web app. See
+ /// Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent silently (no notifications for the receivers).
+ /// Dialog where the web app was opened.
+ /// Bot that owns the web app
+ /// Web app interaction ID obtained from messages.requestWebView
+ /// Whether the inline message that will be sent by the bot on behalf of the user once the web app interaction is terminated should be sent in reply to this message ID.
+ /// Open the web app as the specified peer
public static Task Messages_ProlongWebView(this Client client, InputPeer peer, InputUserBase bot, long query_id, bool silent = false, int? reply_to_msg_id = null, InputPeer send_as = null)
=> client.Invoke(new Messages_ProlongWebView
{
@@ -3190,7 +3205,10 @@ namespace TL
send_as = send_as,
});
- /// See
+ /// Open a bot web app. See
+ /// Bot that owns the webapp
+ /// Web app URL
+ /// Theme parameters
public static Task Messages_RequestSimpleWebView(this Client client, InputUserBase bot, string url, DataJSON theme_params = null)
=> client.Invoke(new Messages_RequestSimpleWebView
{
@@ -3200,7 +3218,9 @@ namespace TL
theme_params = theme_params,
});
- /// โ This method is only for basic Chat. See Terminology to understand what this means
Search for a similar method name starting with Channels_ if you're dealing with a See [bots: โ] Possible codes: 400 (details)
+ /// โ This method is only for basic Chat. See Terminology to understand what this means
Search for a similar method name starting with Channels_ if you're dealing with a Terminate webview interaction started with messages.requestWebView, sending the specified message to the chat on behalf of the user. See [bots: โ] Possible codes: 400 (details)
+ /// Webview interaction ID obtained from messages.requestWebView
+ /// Message to send
public static Task Messages_SendWebViewResultMessage(this Client client, string bot_query_id, InputBotInlineResultBase result)
=> client.Invoke(new Messages_SendWebViewResultMessage
{
@@ -3208,7 +3228,11 @@ namespace TL
result = result,
});
- /// See
+ /// Used by the user to relay data from an opened reply keyboard bot web app to the bot that owns it. See
+ /// Bot that owns the web app
+ /// Unique client message ID to prevent duplicate sending of the same event
+ /// Text of the that was pressed to open the web app.
+ /// Data to relay to the bot, obtained from a web_app_data_send JS event.
public static Task Messages_SendWebViewData(this Client client, InputUserBase bot, long random_id, string button_text, string data)
=> client.Invoke(new Messages_SendWebViewData
{
@@ -3218,7 +3242,7 @@ namespace TL
data = data,
});
- /// Transcribe voice message See
+ /// Transcribe voice message See
/// Peer ID where the voice message was sent
/// Voice message ID
public static Task Messages_TranscribeAudio(this Client client, InputPeer peer, int msg_id)
@@ -3228,7 +3252,7 @@ namespace TL
msg_id = msg_id,
});
- /// Rate transcribed voice message See
+ /// Rate transcribed voice message See
/// Peer where the voice message was sent
/// Message ID
/// Transcription ID
@@ -3325,7 +3349,7 @@ namespace TL
video_start_ts = video_start_ts.GetValueOrDefault(),
});
- /// Deletes profile photos. See
+ /// Deletes profile photos. The method returns a list of successfully deleted photo IDs. See
/// Input photos to delete
public static Task Photos_DeletePhotos(this Client client, params InputPhoto[] id)
=> client.Invoke(new Photos_DeletePhotos
@@ -3388,7 +3412,7 @@ namespace TL
bytes = bytes,
});
- /// Returns content of an HTTP file or a part, by proxying the request through telegram. See Possible codes: 400 (details)
+ /// Returns content of a web file, by proxying the request through telegram, see the webfile docs for more info. See Possible codes: 400 (details)
/// The file to download
/// Number of bytes to be skipped
/// Number of bytes to be returned
@@ -3521,8 +3545,8 @@ namespace TL
id = id,
});
- /// Get info about a t.me link See
- /// Path in t.me/path
+ /// Get info about an unsupported deep link, see here for more info ยป. See
+ /// Path component of a tg: link
/// a null value means help.deepLinkInfoEmpty
public static Task Help_GetDeepLinkInfo(this Client client, string path)
=> client.Invoke(new Help_GetDeepLinkInfo
@@ -4028,7 +4052,7 @@ namespace TL
participant = participant,
});
- /// Set whether all users should join a discussion group in order to comment on a post ยป See
+ /// Set whether all users should join a discussion group in order to comment on a post ยป See Possible codes: 400 (details)
/// Discussion group
/// Toggle
public static Task Channels_ToggleJoinToSend(this Client client, InputChannelBase channel, bool enabled)
@@ -4100,7 +4124,7 @@ namespace TL
lang_code = lang_code,
});
- /// Sets the menu button action for a given user or for all users See [bots: โ]
+ /// Sets the menu button action ยป for a given user or for all users See [bots: โ] Possible codes: 400 (details)
/// User ID
/// Bot menu button action
public static Task Bots_SetBotMenuButton(this Client client, InputUserBase user_id, BotMenuButtonBase button)
@@ -4118,7 +4142,7 @@ namespace TL
user_id = user_id,
});
- /// Set the default suggested admin rights for bots being added as admins to channels. See [bots: โ] Possible codes: (details)
+ /// Set the default suggested admin rights for bots being added as admins to channels, see here for more info on how to handle them ยป. See [bots: โ] Possible codes: 400 (details)
/// Admin rights
public static Task Bots_SetBotBroadcastDefaultAdminRights(this Client client, ChatAdminRights admin_rights)
=> client.Invoke(new Bots_SetBotBroadcastDefaultAdminRights
@@ -4126,7 +4150,7 @@ namespace TL
admin_rights = admin_rights,
});
- /// Set the default suggested admin rights for bots being added as admins to groups. See [bots: โ] Possible codes: (details)
+ /// Set the default suggested admin rights for bots being added as admins to groups, see here for more info on how to handle them ยป. See [bots: โ] Possible codes: 400 (details)
/// Admin rights
public static Task Bots_SetBotGroupDefaultAdminRights(this Client client, ChatAdminRights admin_rights)
=> client.Invoke(new Bots_SetBotGroupDefaultAdminRights
@@ -4209,7 +4233,7 @@ namespace TL
number = number,
});
- /// Export invoice See [bots: โ] Possible codes: 400 (details)
+ /// Generate an invoice deep link See [bots: โ] Possible codes: 400 (details)
/// Invoice
public static Task Payments_ExportInvoice(this Client client, InputMedia invoice_media)
=> client.Invoke(new Payments_ExportInvoice
@@ -4217,7 +4241,9 @@ namespace TL
invoice_media = invoice_media,
});
- /// See
+ /// Informs server about a purchase made through the App Store: for official applications only. See
+ /// Receipt
+ /// Payment purpose
public static Task Payments_AssignAppStoreTransaction(this Client client, byte[] receipt, InputStorePaymentPurpose purpose)
=> client.Invoke(new Payments_AssignAppStoreTransaction
{
@@ -4225,7 +4251,9 @@ namespace TL
purpose = purpose,
});
- /// See
+ /// Informs server about a purchase made through the Play Store: for official applications only. See
+ /// Receipt
+ /// Payment purpose
public static Task Payments_AssignPlayMarketTransaction(this Client client, DataJSON receipt, InputStorePaymentPurpose purpose)
=> client.Invoke(new Payments_AssignPlayMarketTransaction
{
@@ -4233,7 +4261,8 @@ namespace TL
purpose = purpose,
});
- /// See
+ /// Checks whether Telegram Premium purchase is possible. Must be called before in-store Premium purchase. See
+ /// Payment purpose
public static Task Payments_CanPurchasePremium(this Client client, InputStorePaymentPurpose purpose)
=> client.Invoke(new Payments_CanPurchasePremium
{
@@ -4255,7 +4284,7 @@ namespace TL
/// Whether this is a video stickerset
/// Stickerset owner
/// Stickerset name, 1-64 chars
- /// Sticker set name. Can contain only English letters, digits and underscores. Must end with "by" ( is case insensitive); 1-64 characters
+ /// Short name of sticker set, to be used in sticker deep links ยป. Can contain only english letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in "_by_<bot_username>". <bot_username> is case insensitive. 1-64 characters.
/// Thumbnail
/// Stickers
/// Used when importing stickers using the sticker import SDKs, specifies the name of the software that created the stickers
@@ -4336,7 +4365,7 @@ namespace TL
{
});
- /// Start a telegram phone call See Possible codes: 400,403,500 (details)
+ /// Start a telegram phone call See Possible codes: 400,403 (details)
/// Whether to start a video call
/// Destination of the phone call
/// Random ID to avoid resending the same object
@@ -4402,7 +4431,7 @@ namespace TL
connection_id = connection_id,
});
- /// Rate a call See Possible codes: 400 (details)
+ /// Rate a call, returns info about the rating message sent to the official VoIP bot. See Possible codes: 400 (details)
/// Whether the user decided on their own initiative to rate the call
/// The call to rate
/// Rating in 1-5 stars
@@ -4457,7 +4486,7 @@ namespace TL
/// If set, the user's video will be disabled by default upon joining.
/// The group call
/// Join the group call, presenting yourself as the specified user/channel
- /// The invitation hash from the invite link: https://t.me/username?voicechat=hash
+ /// The invitation hash from the invite link ยป, if provided allows speaking in a livestream or muted group chat.
/// WebRTC parameters
public static Task Phone_JoinGroupCall(this Client client, InputGroupCall call, InputPeer join_as, DataJSON params_, bool muted = false, bool video_stopped = false, string invite_hash = null)
=> client.Invoke(new Phone_JoinGroupCall
@@ -4535,7 +4564,7 @@ namespace TL
limit = limit,
});
- /// Check whether the group call Server Forwarding Unit is currently receiving the streams with the specified WebRTC source IDs See Possible codes: 400 (details)
+ /// Check whether the group call Server Forwarding Unit is currently receiving the streams with the specified WebRTC source IDs.
Returns an intersection of the source IDs specified in sources, and the source IDs currently being forwarded by the SFU. See Possible codes: 400 (details)
/// Group call
/// Source IDs
public static Task Phone_CheckGroupCall(this Client client, InputGroupCall call, int[] sources)
@@ -4601,8 +4630,8 @@ namespace TL
peer = peer,
});
- /// Get an invite link for a group call or livestream See
- /// For livestreams, if set, users that join using this link will be able to speak without explicitly requesting permission by (for example by raising their hand).
+ /// Get an invite link for a group call or livestream See
+ /// For livestreams or muted group chats, if set, users that join using this link will be able to speak without explicitly requesting permission by (for example by raising their hand).
/// The group call
public static Task Phone_ExportGroupCallInvite(this Client client, InputGroupCall call, bool can_self_unmute = false)
=> client.Invoke(new Phone_ExportGroupCallInvite
@@ -4686,7 +4715,7 @@ namespace TL
});
/// Get localization pack strings See Possible codes: 400 (details)
- /// Language pack name
+ /// Language pack name, usually obtained from a language pack link
/// Language code
public static Task Langpack_GetLangPack(this Client client, string lang_pack, string lang_code)
=> client.Invoke(new Langpack_GetLangPack
@@ -4696,7 +4725,7 @@ namespace TL
});
/// Get strings from a language pack See Possible codes: 400 (details)
- /// Language pack name
+ /// Language pack name, usually obtained from a language pack link
/// Language code
/// Strings to get
public static Task Langpack_GetStrings(this Client client, string lang_pack, string lang_code, string[] keys)
@@ -4728,7 +4757,7 @@ namespace TL
});
/// Get information about a language in a localization pack See Possible codes: 400 (details)
- /// Language pack name
+ /// Language pack name, usually obtained from a language pack link
/// Language code
public static Task Langpack_GetLanguage(this Client client, string lang_pack, string lang_code)
=> client.Invoke(new Langpack_GetLanguage
diff --git a/src/TL.Secret.cs b/src/TL.Secret.cs
index 8fd4e7c..63f6331 100644
--- a/src/TL.Secret.cs
+++ b/src/TL.Secret.cs
@@ -137,7 +137,7 @@ namespace TL
public string file_name;
/// File MIME-type
public string mime_type;
- /// Document size
+ /// Document size ( on layer <143, on layer >=143)
public int size;
/// Key to decrypt the attached document file
public byte[] key;
@@ -439,7 +439,7 @@ namespace TL
public int thumb_h;
/// File MIME-type
public string mime_type;
- /// Document size
+ /// Document size ( on layer <143, on layer >=143)
public int size;
/// Key to decrypt the attached document file
public byte[] key;
diff --git a/src/WTelegramClient.csproj b/src/WTelegramClient.csproj
index 50b34fe..b0963c6 100644
--- a/src/WTelegramClient.csproj
+++ b/src/WTelegramClient.csproj
@@ -48,7 +48,7 @@
-
+