Various minor stuff

This commit is contained in:
Wizou 2022-04-01 21:48:28 +02:00
parent 10e0e08bbb
commit 05752863bd
4 changed files with 13 additions and 139 deletions

View file

@ -17,6 +17,7 @@ and add at least these variables with adequate value: **api_id, api_hash, phone_
Remember that these are just simple example codes that you should adjust to your needs.
In real production code, you might want to properly test the success of each operation or handle exceptions.
WTelegramClient covers 100% of Telegram Client API, much more than the examples below: check the [full API methods list](https://corefork.telegram.org/methods)!
More examples can also be found in answers to [StackOverflow questions](https://stackoverflow.com/questions/tagged/wtelegramclient).
<a name="msg-by-name"></a>

View file

@ -7,7 +7,7 @@
## _Telegram Client API library written 100% in C# and .NET Standard_
This ReadMe is a quick but important tutorial to learn the fundamentals about this library. Please read it all.
This ReadMe is a **quick but important tutorial** to learn the fundamentals about this library. Please read it all.
>⚠️ This library relies on asynchronous C# programming (`async/await`) so make sure you are familiar with this advanced topic before proceeding.
>If you are a beginner in C#, starting a project based on this library might not be a great idea.
@ -44,7 +44,7 @@ This is because WTelegramClient saves (typically in the encrypted file **bin\WTe
That file path is configurable (session_pathname), and under various circumstances (changing user or server address) you may want to change it or simply delete the existing session file in order to restart the authentification process.
# Non-interactive configuration
Your next step will probably be to provide a configuration to the client so that the required elements (in bold above) are not prompted through the Console but answered by your program.
Your next step will probably be to provide a configuration to the client so that the required elements are not prompted through the Console but answered by your program.
To do this, you need to write a method that will provide the answers, and pass it on the constructor:
```csharp
@ -68,19 +68,19 @@ using var client = new WTelegram.Client(Config);
There are other configuration items that are queried to your method but returning `null` let WTelegramClient choose a default adequate value.
Those shown above are the only ones that have no default values and should be provided by your method.
Returning `null` for verification_code or password will show a prompt for console apps, or an error otherwise.
Returning an empty string for verification_code requests resending the code through another method (SMS or Call).
Returning `""` for verification_code requests resending the code through another method (SMS or Call).
Another simple approach is to pass `Environment.GetEnvironmentVariable` as the config callback and define the configuration items as environment variables.
Undefined variables get the default `null` behavior.
Finally, if you want to redirect the library logs to your logger instead of the Console, you can install a delegate in the `WTelegram.Helpers.Log` static property.
Its `int` argument is the log severity, compatible with the classic [LogLevel enum](https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.loglevel)
Its `int` argument is the log severity, compatible with the [LogLevel enum](https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.loglevel)
# Example of API call
> The Telegram API makes extensive usage of base and derived classes, so be ready to use the various syntaxes C# offer to check/cast base classes into the more useful derived classes (`is`, `as`, `case DerivedType` )
All the Telegram API classes/methods are fully documented through Intellisense: Place your mouse over a class/method name, or start typing the call arguments to see a tooltip display their description, the list of derived classes and a web link to the official API page.
All the Telegram API classes/methods are fully documented through Intellisense: Place your mouse over a class/method name, or start typing the call arguments to see a tooltip displaying their description, the list of derived classes and a web link to the official API page.
The Telegram [API object classes](https://corefork.telegram.org/schema) are defined in the `TL` namespace, and the [API functions](https://corefork.telegram.org/methods) are available as async methods of `Client`.
@ -121,13 +121,13 @@ In the API, Telegram uses some terms/classnames that can be confusing as they di
**⚠️ Most chat groups you see are really of type `Channel`, not `Chat`!**
- chats : In plural or general meaning, it means either `Chat` or `Channel`
- `Peer` : Either a `Chat`, `Channel` or a private chat with a `User`
- Dialog : The current status of a chat with a `Peer` *(draft, last message, unread count, pinned...)*
- Dialog : The current status of a chat with a `Peer` *(draft, last message, unread count, pinned...)*. It represents each line from your Telegram chat list.
- DC (DataCenter) : There are a few datacenters depending on where in the world the user (or an uploaded media file) is from.
- Access Hash : Telegram requires you to provide a specific `access_hash` for users, channels, and other resources before interacting with them. See [FAQ #4](https://github.com/wiz0u/WTelegramClient/blob/master/FAQ.md#access-hash) to learn more about it.
# Other things to know
The Client class also offers an `Update` event that is triggered when Telegram servers sends unsollicited Updates or notifications/information/status/service messages, independently of your API requests. See [Examples/Program_ListenUpdates.cs](https://github.com/wiz0u/WTelegramClient/blob/master/Examples/Program_ListenUpdates.cs)
The Client class also offers an `Update` event that is triggered when Telegram servers sends Updates (like new messages or status), independently of your API requests. See [Examples/Program_ListenUpdates.cs](https://github.com/wiz0u/WTelegramClient/blob/master/Examples/Program_ListenUpdates.cs)
An invalid API request can result in a `RpcException` being raised, reflecting the [error code and status text](https://revgram.github.io/errors.html) of the problem.
@ -148,8 +148,8 @@ This library can be used for any Telegram scenarios including:
- Download/upload of files/media
- Building a full-featured interactive client
It has been tested in a Console app, [in a WinForms app](https://github.com/wiz0u/WTelegramClient/blob/master/FAQ.md#gui), [in ASP.NET webservice](https://github.com/wiz0u/WTelegramClient/blob/master/EXAMPLES.md#logging).
Secret chats (end-to-end encryption, PFS) and connection to CDN DCs have not been tested yet.
It has been tested in a Console app, [in a WinForms app](https://github.com/wiz0u/WTelegramClient/blob/master/FAQ.md#gui),
[in ASP.NET webservice](https://github.com/wiz0u/WTelegramClient/blob/master/EXAMPLES.md#logging), and in Xamarin/Android.
Please don't use this library for Spam or Scam. Respect Telegram [Terms of Service](https://telegram.org/tos) as well as the [API Terms of Service](https://core.telegram.org/api/terms) or you might get banned from Telegram servers.

View file

@ -29,7 +29,7 @@ namespace WTelegram
return new BigInteger(data);
}
internal static byte[] ToByteArray(this BigInteger bigInteger, bool isUnsigned = false, bool isBigEndian = false)
internal static byte[] ToByteArray(this BigInteger bigInteger, bool isUnsigned, bool isBigEndian)
{
if (!isBigEndian || !isUnsigned) throw new ArgumentException("Unexpected parameters to ToByteArray");
var result = bigInteger.ToByteArray();
@ -50,11 +50,7 @@ namespace WTelegram
public static V GetValueOrDefault<K, V>(this Dictionary<K, V> dictionary, K key, V defaultValue = default)
=> dictionary.TryGetValue(key, out V value) ? value : defaultValue;
public static void Deconstruct<K, V>(this KeyValuePair<K, V> kvp, out K key, out V value)
{
key = kvp.Key;
value = kvp.Value;
}
public static void Deconstruct<K, V>(this KeyValuePair<K, V> kvp, out K key, out V value) { key = kvp.Key; value = kvp.Value; }
internal static IPEndPoint IPEndPoint_Parse(string addr)
{
@ -78,14 +74,7 @@ namespace WTelegram
static class Convert
{
internal static string ToHexString(byte[] data) => BitConverter.ToString(data).Replace("-", "");
internal static byte[] FromHexString(string hex)
{
int NumberChars = hex.Length;
byte[] bytes = new byte[NumberChars / 2];
for (int i = 0; i < NumberChars; i += 2)
bytes[i / 2] = System.Convert.ToByte(hex.Substring(i, 2), 16);
return bytes;
}
internal static byte[] FromHexString(string hex) => Enumerable.Range(0, hex.Length / 2).Select(i => System.Convert.ToByte(hex.Substring(i * 2, 2), 16)).ToArray();
}
#endif

View file

@ -4572,9 +4572,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="proxy"/> has a value</summary>
has_proxy = 0x1,
/// <summary>Field <see cref="params_"/> has a value</summary>
has_params = 0x2,
}
}
@ -4687,7 +4685,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="new_settings"/> has a value</summary>
has_new_settings = 0x1,
}
}
@ -4788,11 +4785,8 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="first_name"/> has a value</summary>
has_first_name = 0x1,
/// <summary>Field <see cref="last_name"/> has a value</summary>
has_last_name = 0x2,
/// <summary>Field <see cref="about"/> has a value</summary>
has_about = 0x4,
}
}
@ -5061,7 +5055,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="peer"/> has a value</summary>
has_peer = 0x1,
compare_sound = 0x2,
}
@ -5126,7 +5119,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="thumb"/> has a value</summary>
has_thumb = 0x1,
}
}
@ -5142,9 +5134,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="document"/> has a value</summary>
has_document = 0x4,
/// <summary>Field <see cref="settings"/> has a value</summary>
has_settings = 0x8,
}
}
@ -5162,13 +5152,9 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="slug"/> has a value</summary>
has_slug = 0x1,
/// <summary>Field <see cref="title"/> has a value</summary>
has_title = 0x2,
/// <summary>Field <see cref="document"/> has a value</summary>
has_document = 0x4,
/// <summary>Field <see cref="settings"/> has a value</summary>
has_settings = 0x8,
}
}
@ -5191,11 +5177,8 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
dark = 0x1,
/// <summary>Field <see cref="theme"/> has a value</summary>
has_theme = 0x2,
/// <summary>Field <see cref="format"/> has a value</summary>
has_format = 0x4,
/// <summary>Field <see cref="base_theme"/> has a value</summary>
has_base_theme = 0x8,
}
}
@ -5281,9 +5264,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="encrypted_requests_disabled"/> has a value</summary>
has_encrypted_requests_disabled = 0x1,
/// <summary>Field <see cref="call_requests_disabled"/> has a value</summary>
has_call_requests_disabled = 0x2,
}
}
@ -5442,7 +5423,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="self_expires"/> has a value</summary>
has_self_expires = 0x1,
background = 0x2,
}
@ -5488,7 +5468,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
exclude_pinned = 0x1,
/// <summary>Field <see cref="folder_id"/> has a value</summary>
has_folder_id = 0x2,
}
}
@ -5526,9 +5505,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="from_id"/> has a value</summary>
has_from_id = 0x1,
/// <summary>Field <see cref="top_msg_id"/> has a value</summary>
has_top_msg_id = 0x2,
}
}
@ -5553,9 +5530,7 @@ namespace TL.Methods
{
just_clear = 0x1,
revoke = 0x2,
/// <summary>Field <see cref="min_date"/> has a value</summary>
has_min_date = 0x4,
/// <summary>Field <see cref="max_date"/> has a value</summary>
has_max_date = 0x8,
}
}
@ -5588,7 +5563,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="top_msg_id"/> has a value</summary>
has_top_msg_id = 0x1,
}
}
@ -5608,19 +5582,14 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="reply_to_msg_id"/> has a value</summary>
has_reply_to_msg_id = 0x1,
no_webpage = 0x2,
/// <summary>Field <see cref="reply_markup"/> has a value</summary>
has_reply_markup = 0x4,
/// <summary>Field <see cref="entities"/> has a value</summary>
has_entities = 0x8,
silent = 0x20,
background = 0x40,
clear_draft = 0x80,
/// <summary>Field <see cref="schedule_date"/> has a value</summary>
has_schedule_date = 0x400,
/// <summary>Field <see cref="send_as"/> has a value</summary>
has_send_as = 0x2000,
noforwards = 0x4000,
}
@ -5642,18 +5611,13 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="reply_to_msg_id"/> has a value</summary>
has_reply_to_msg_id = 0x1,
/// <summary>Field <see cref="reply_markup"/> has a value</summary>
has_reply_markup = 0x4,
/// <summary>Field <see cref="entities"/> has a value</summary>
has_entities = 0x8,
silent = 0x20,
background = 0x40,
clear_draft = 0x80,
/// <summary>Field <see cref="schedule_date"/> has a value</summary>
has_schedule_date = 0x400,
/// <summary>Field <see cref="send_as"/> has a value</summary>
has_send_as = 0x2000,
noforwards = 0x4000,
}
@ -5675,11 +5639,9 @@ namespace TL.Methods
silent = 0x20,
background = 0x40,
with_my_score = 0x100,
/// <summary>Field <see cref="schedule_date"/> has a value</summary>
has_schedule_date = 0x400,
drop_author = 0x800,
drop_media_captions = 0x1000,
/// <summary>Field <see cref="send_as"/> has a value</summary>
has_send_as = 0x2000,
noforwards = 0x4000,
}
@ -5886,7 +5848,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="entities"/> has a value</summary>
has_entities = 0x8,
}
}
@ -5902,13 +5863,10 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="expire_date"/> has a value</summary>
has_expire_date = 0x1,
/// <summary>Field <see cref="usage_limit"/> has a value</summary>
has_usage_limit = 0x2,
legacy_revoke_permanent = 0x4,
request_needed = 0x8,
/// <summary>Field <see cref="title"/> has a value</summary>
has_title = 0x10,
}
}
@ -5992,7 +5950,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="folder_id"/> has a value</summary>
has_folder_id = 0x1,
}
}
@ -6042,7 +5999,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="geo_point"/> has a value</summary>
has_geo_point = 0x1,
}
}
@ -6061,9 +6017,7 @@ namespace TL.Methods
{
gallery = 0x1,
private_ = 0x2,
/// <summary>Field <see cref="next_offset"/> has a value</summary>
has_next_offset = 0x4,
/// <summary>Field <see cref="switch_pm"/> has a value</summary>
has_switch_pm = 0x8,
}
}
@ -6082,15 +6036,12 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="reply_to_msg_id"/> has a value</summary>
has_reply_to_msg_id = 0x1,
silent = 0x20,
background = 0x40,
clear_draft = 0x80,
/// <summary>Field <see cref="schedule_date"/> has a value</summary>
has_schedule_date = 0x400,
hide_via = 0x800,
/// <summary>Field <see cref="send_as"/> has a value</summary>
has_send_as = 0x2000,
}
}
@ -6117,15 +6068,10 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
no_webpage = 0x2,
/// <summary>Field <see cref="reply_markup"/> has a value</summary>
has_reply_markup = 0x4,
/// <summary>Field <see cref="entities"/> has a value</summary>
has_entities = 0x8,
/// <summary>Field <see cref="message"/> has a value</summary>
has_message = 0x800,
/// <summary>Field <see cref="media"/> has a value</summary>
has_media = 0x4000,
/// <summary>Field <see cref="schedule_date"/> has a value</summary>
has_schedule_date = 0x8000,
}
}
@ -6143,13 +6089,9 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
no_webpage = 0x2,
/// <summary>Field <see cref="reply_markup"/> has a value</summary>
has_reply_markup = 0x4,
/// <summary>Field <see cref="entities"/> has a value</summary>
has_entities = 0x8,
/// <summary>Field <see cref="message"/> has a value</summary>
has_message = 0x800,
/// <summary>Field <see cref="media"/> has a value</summary>
has_media = 0x4000,
}
}
@ -6165,10 +6107,8 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="data"/> has a value</summary>
has_data = 0x1,
game = 0x2,
/// <summary>Field <see cref="password"/> has a value</summary>
has_password = 0x4,
}
}
@ -6184,10 +6124,8 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="message"/> has a value</summary>
has_message = 0x1,
alert = 0x2,
/// <summary>Field <see cref="url"/> has a value</summary>
has_url = 0x4,
}
}
@ -6209,10 +6147,8 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="reply_to_msg_id"/> has a value</summary>
has_reply_to_msg_id = 0x1,
no_webpage = 0x2,
/// <summary>Field <see cref="entities"/> has a value</summary>
has_entities = 0x8,
}
}
@ -6401,9 +6337,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="error"/> has a value</summary>
has_error = 0x1,
/// <summary>Field <see cref="shipping_options"/> has a value</summary>
has_shipping_options = 0x2,
}
}
@ -6417,7 +6351,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="error"/> has a value</summary>
has_error = 0x1,
success = 0x2,
}
@ -6488,14 +6421,11 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="reply_to_msg_id"/> has a value</summary>
has_reply_to_msg_id = 0x1,
silent = 0x20,
background = 0x40,
clear_draft = 0x80,
/// <summary>Field <see cref="schedule_date"/> has a value</summary>
has_schedule_date = 0x400,
/// <summary>Field <see cref="send_as"/> has a value</summary>
has_send_as = 0x2000,
noforwards = 0x4000,
}
@ -6635,9 +6565,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="peer"/> has a value</summary>
has_peer = 0x2,
/// <summary>Field <see cref="url"/> has a value</summary>
has_url = 0x4,
}
}
@ -6654,9 +6582,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
write_allowed = 0x1,
/// <summary>Field <see cref="peer"/> has a value</summary>
has_peer = 0x2,
/// <summary>Field <see cref="url"/> has a value</summary>
has_url = 0x4,
}
}
@ -6707,9 +6633,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="option"/> has a value</summary>
has_option = 0x1,
/// <summary>Field <see cref="offset"/> has a value</summary>
has_offset = 0x2,
}
}
@ -6743,7 +6667,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="filter"/> has a value</summary>
has_filter = 0x1,
}
}
@ -6856,7 +6779,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="offset_date"/> has a value</summary>
has_offset_date = 0x4,
revoked = 0x8,
}
@ -6882,14 +6804,10 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="expire_date"/> has a value</summary>
has_expire_date = 0x1,
/// <summary>Field <see cref="usage_limit"/> has a value</summary>
has_usage_limit = 0x2,
revoked = 0x4,
/// <summary>Field <see cref="request_needed"/> has a value</summary>
has_request_needed = 0x8,
/// <summary>Field <see cref="title"/> has a value</summary>
has_title = 0x10,
}
}
@ -6928,9 +6846,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
requested = 0x1,
/// <summary>Field <see cref="link"/> has a value</summary>
has_link = 0x2,
/// <summary>Field <see cref="q"/> has a value</summary>
has_q = 0x4,
}
}
@ -7003,7 +6919,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
approved = 0x1,
/// <summary>Field <see cref="link"/> has a value</summary>
has_link = 0x2,
}
}
@ -7032,7 +6947,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="reaction"/> has a value</summary>
has_reaction = 0x1,
big = 0x2,
}
@ -7057,9 +6971,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="reaction"/> has a value</summary>
has_reaction = 0x1,
/// <summary>Field <see cref="offset"/> has a value</summary>
has_offset = 0x2,
}
}
@ -7095,11 +7007,8 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="peer"/> has a value</summary>
has_peer = 0x1,
/// <summary>Field <see cref="text"/> has a value</summary>
has_text = 0x2,
/// <summary>Field <see cref="from_lang"/> has a value</summary>
has_from_lang = 0x4,
}
}
@ -7143,7 +7052,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="pts_total_limit"/> has a value</summary>
has_pts_total_limit = 0x1,
}
}
@ -7179,11 +7087,8 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="file"/> has a value</summary>
has_file = 0x1,
/// <summary>Field <see cref="video"/> has a value</summary>
has_video = 0x2,
/// <summary>Field <see cref="video_start_ts"/> has a value</summary>
has_video_start_ts = 0x4,
}
}
@ -7453,7 +7358,6 @@ namespace TL.Methods
{
broadcast = 0x1,
megagroup = 0x2,
/// <summary>Field <see cref="geo_point"/> has a value</summary>
has_geo_point = 0x4,
for_import = 0x8,
}
@ -7576,9 +7480,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="events_filter"/> has a value</summary>
has_events_filter = 0x1,
/// <summary>Field <see cref="admins"/> has a value</summary>
has_admins = 0x2,
}
}
@ -7731,7 +7633,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="theme_params"/> has a value</summary>
has_theme_params = 0x1,
}
}
@ -7771,11 +7672,8 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="requested_info_id"/> has a value</summary>
has_requested_info_id = 0x1,
/// <summary>Field <see cref="shipping_option_id"/> has a value</summary>
has_shipping_option_id = 0x2,
/// <summary>Field <see cref="tip_amount"/> has a value</summary>
has_tip_amount = 0x4,
}
}
@ -7816,9 +7714,7 @@ namespace TL.Methods
{
masks = 0x1,
animated = 0x2,
/// <summary>Field <see cref="thumb"/> has a value</summary>
has_thumb = 0x4,
/// <summary>Field <see cref="software"/> has a value</summary>
has_software = 0x8,
videos = 0x10,
}
@ -7958,9 +7854,7 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="title"/> has a value</summary>
has_title = 0x1,
/// <summary>Field <see cref="schedule_date"/> has a value</summary>
has_schedule_date = 0x2,
rtmp_stream = 0x4,
}
@ -7978,7 +7872,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
muted = 0x1,
/// <summary>Field <see cref="invite_hash"/> has a value</summary>
has_invite_hash = 0x2,
video_stopped = 0x4,
}
@ -8013,7 +7906,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="join_muted"/> has a value</summary>
has_join_muted = 0x1,
reset_invite_hash = 0x2,
}
@ -8054,7 +7946,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
start = 0x1,
/// <summary>Field <see cref="title"/> has a value</summary>
has_title = 0x2,
video = 0x4,
}
@ -8075,17 +7966,11 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="muted"/> has a value</summary>
has_muted = 0x1,
/// <summary>Field <see cref="volume"/> has a value</summary>
has_volume = 0x2,
/// <summary>Field <see cref="raise_hand"/> has a value</summary>
has_raise_hand = 0x4,
/// <summary>Field <see cref="video_stopped"/> has a value</summary>
has_video_stopped = 0x8,
/// <summary>Field <see cref="video_paused"/> has a value</summary>
has_video_paused = 0x10,
/// <summary>Field <see cref="presentation_paused"/> has a value</summary>
has_presentation_paused = 0x20,
}
}
@ -8230,7 +8115,6 @@ namespace TL.Methods
[Flags] public enum Flags : uint
{
/// <summary>Field <see cref="x"/> has a value</summary>
has_x = 0x1,
}
}