API Layer 199: reCAPTCHA, PaidReactionPrivacy

This commit is contained in:
Wizou 2025-02-13 14:12:04 +01:00
parent 1fab219ef6
commit b626c6c644
7 changed files with 67 additions and 25 deletions

2
.github/dev.yml vendored
View file

@ -1,7 +1,7 @@
pr: none
trigger: [ master ]
name: 4.2.9-dev.$(Rev:r)
name: 4.3.1-dev.$(Rev:r)
pool:
vmImage: ubuntu-latest

2
.github/release.yml vendored
View file

@ -1,7 +1,7 @@
pr: none
trigger: none
name: 4.2.$(Rev:r)
name: 4.3.$(Rev:r)
pool:
vmImage: ubuntu-latest

View file

@ -1,4 +1,4 @@
[![API Layer](https://img.shields.io/badge/API_Layer-198-blueviolet)](https://corefork.telegram.org/methods)
[![API Layer](https://img.shields.io/badge/API_Layer-199-blueviolet)](https://corefork.telegram.org/methods)
[![NuGet version](https://img.shields.io/nuget/v/WTelegramClient?color=00508F)](https://www.nuget.org/packages/WTelegramClient/)
[![NuGet prerelease](https://img.shields.io/nuget/vpre/WTelegramClient?color=C09030&label=dev+nuget)](https://www.nuget.org/packages/WTelegramClient/absoluteLatest)
[![Donate](https://img.shields.io/badge/Help_this_project:-Donate-ff4444)](https://buymeacoffee.com/wizou)

View file

@ -257,7 +257,7 @@ namespace TL
has_ttl_seconds = 0x2,
/// <summary>Field <see cref="thumb"/> has a value</summary>
has_thumb = 0x4,
/// <summary>Whether the specified document is a video file with no audio tracks (a GIF animation (even as MPEG4), for example)</summary>
/// <summary>Whether to send the file as a video even if it doesn&#39;t have an audio track (i.e. if set, the <see cref="DocumentAttributeAnimated"/> attribute will <strong>not</strong> be set even for videos without audio)</summary>
nosound_video = 0x8,
/// <summary>Force the media file to be uploaded as document</summary>
force_file = 0x10,
@ -5756,11 +5756,11 @@ namespace TL
public override (long, int, int) GetMBox() => (-1, qts, 1);
}
/// <summary>Contains the current <a href="https://corefork.telegram.org/api/reactions#paid-reactions">default paid reaction privacy, see here »</a> for more info. <para>See <a href="https://corefork.telegram.org/constructor/updatePaidReactionPrivacy"/></para></summary>
[TLDef(0x51CA7AEC)]
[TLDef(0x8B725FCE)]
public sealed partial class UpdatePaidReactionPrivacy : Update
{
/// <summary>Whether paid reaction privacy is enabled or disabled.</summary>
public bool private_;
public PaidReactionPrivacy private_;
}
/// <summary>Updates state. <para>See <a href="https://corefork.telegram.org/constructor/updates.state"/></para></summary>
@ -7118,7 +7118,7 @@ namespace TL
[IfFlag(2)] public int preload_prefix_size;
/// <summary>Floating point UNIX timestamp in seconds, indicating the frame of the video that should be used as static preview and thumbnail.</summary>
[IfFlag(4)] public double video_start_ts;
/// <summary>Codec used for the video, i.e. "h264", "h265", or "av1"</summary>
/// <summary>Codec used for the video, i.e. “h264”, “h265”, or “av1”</summary>
[IfFlag(5)] public string video_codec;
[Flags] public enum Flags : uint
@ -7129,7 +7129,7 @@ namespace TL
supports_streaming = 0x2,
/// <summary>Field <see cref="preload_prefix_size"/> has a value</summary>
has_preload_prefix_size = 0x4,
/// <summary>Whether the specified document is a video file with no audio tracks (a GIF animation (even as MPEG4), for example)</summary>
/// <summary>Whether the specified document is a video file with no audio tracks</summary>
nosound = 0x8,
/// <summary>Field <see cref="video_start_ts"/> has a value</summary>
has_video_start_ts = 0x10,
@ -7361,6 +7361,7 @@ namespace TL
has_attributes = 0x1000,
/// <summary>Whether the size of the media in the preview can be changed.</summary>
has_large_media = 0x2000,
video_cover_photo = 0x4000,
}
/// <summary>Preview ID</summary>
@ -19842,7 +19843,7 @@ namespace TL
public override int AvailabilityTotal => availability_total;
}
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/starGiftUnique"/></para></summary>
[TLDef(0xF2FE7E4A)]
[TLDef(0x5C62D151)]
public sealed partial class StarGiftUnique : StarGiftBase
{
public Flags flags;
@ -19856,12 +19857,14 @@ namespace TL
public StarGiftAttribute[] attributes;
public int availability_issued;
public int availability_total;
[IfFlag(3)] public string gift_address;
[Flags] public enum Flags : uint
{
has_owner_id = 0x1,
has_owner_name = 0x2,
has_owner_address = 0x4,
has_gift_address = 0x8,
}
public override long ID => id;
@ -20299,4 +20302,17 @@ namespace TL
{
public string url;
}
/// <summary><para>See <a href="https://corefork.telegram.org/type/PaidReactionPrivacy"/></para></summary>
/// <remarks>a <see langword="null"/> value means <a href="https://corefork.telegram.org/constructor/paidReactionPrivacyDefault">paidReactionPrivacyDefault</a></remarks>
public abstract partial class PaidReactionPrivacy : IObject { }
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/paidReactionPrivacyAnonymous"/></para></summary>
[TLDef(0x1F0C1AD9)]
public sealed partial class PaidReactionPrivacyAnonymous : PaidReactionPrivacy { }
/// <summary><para>See <a href="https://corefork.telegram.org/constructor/paidReactionPrivacyPeer"/></para></summary>
[TLDef(0xDC6CFCF0)]
public sealed partial class PaidReactionPrivacyPeer : PaidReactionPrivacy
{
public InputPeer peer;
}
}

View file

@ -126,6 +126,14 @@ namespace TL
query = query,
});
/// <summary><para>See <a href="https://corefork.telegram.org/method/invokeWithReCaptcha"/></para></summary>
public static Task<X> InvokeWithReCaptcha<X>(this Client client, string token, IMethod<X> query)
=> client.Invoke(new InvokeWithReCaptcha<X>
{
token = token,
query = query,
});
/// <summary>Send the verification code for login <para>See <a href="https://corefork.telegram.org/method/auth.sendCode"/></para> <para>Possible <see cref="RpcException"/> codes: 400,406,500 (<a href="https://corefork.telegram.org/method/auth.sendCode#possible-errors">details</a>)</para></summary>
/// <param name="phone_number">Phone number in international format</param>
/// <param name="api_id">Application identifier (see <a href="https://corefork.telegram.org/myapp">App configuration</a>)</param>
@ -4336,28 +4344,28 @@ namespace TL
platform = platform,
});
/// <summary>Sends one or more <a href="https://corefork.telegram.org/api/reactions#paid-reactions">paid Telegram Star reactions »</a>, transferring <a href="https://corefork.telegram.org/api/stars">Telegram Stars »</a> to a channel's balance. <para>See <a href="https://corefork.telegram.org/method/messages.sendPaidReaction"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/messages.sendPaidReaction#possible-errors">details</a>)</para></summary>
/// <summary>Sends one or more <a href="https://corefork.telegram.org/api/reactions#paid-reactions">paid Telegram Star reactions »</a>, transferring <a href="https://corefork.telegram.org/api/stars">Telegram Stars »</a> to a channel&#39;s balance. <para>See <a href="https://corefork.telegram.org/method/messages.sendPaidReaction"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/messages.sendPaidReaction#possible-errors">details</a>)</para></summary>
/// <param name="peer">The channel</param>
/// <param name="msg_id">The message to react to</param>
/// <param name="count">The number of <a href="https://corefork.telegram.org/api/stars">stars</a> to send (each will increment the reaction counter by one).</param>
/// <param name="random_id">Unique client message ID required to prevent message resending <para>You can use <see cref="WTelegram.Helpers.RandomLong"/></para></param>
/// <param name="private_">Each post with star reactions has a leaderboard with the top senders, but users can opt out of appearing there if they prefer more privacy. <br/>If the user explicitly chose to make their paid reaction(s) private, pass <see langword="true"/> to <see cref="Messages_SendPaidReaction">Messages_SendPaidReaction</see>.<c>private</c>. <br/>If the user explicitly chose to make their paid reaction(s) private, pass <see langword="true"/> to <see cref="Messages_SendPaidReaction">Messages_SendPaidReaction</see>.<c>private</c>. <br/>If the user did not make any explicit choice about the privacy of their paid reaction(s) (i.e. when reacting by clicking on an existing star reaction on a message), do not populate the <see cref="Messages_SendPaidReaction">Messages_SendPaidReaction</see>.<c>private</c> flag.</param>
public static Task<UpdatesBase> Messages_SendPaidReaction(this Client client, InputPeer peer, int msg_id, int count, long random_id, bool? private_ = default)
/// <param name="private_">Each post with star reactions has a leaderboard with the top senders, but users can opt out of appearing there if they prefer more privacy.<br/>If the user explicitly chose to make their paid reaction(s) private, pass <see langword="true"/> to <see cref="Messages_SendPaidReaction">Messages_SendPaidReaction</see>.<c>private</c>.<br/>If the user explicitly chose to make their paid reaction(s) not private, pass <see langword="true"/> to <see cref="Messages_SendPaidReaction">Messages_SendPaidReaction</see>.<c>private</c>.<br/>If the user did not make any explicit choice about the privacy of their paid reaction(s) (i.e. when reacting by clicking on an existing star reaction on a message), do not populate the <see cref="Messages_SendPaidReaction">Messages_SendPaidReaction</see>.<c>private</c> flag.</param>
public static Task<UpdatesBase> Messages_SendPaidReaction(this Client client, InputPeer peer, int msg_id, int count, long random_id, PaidReactionPrivacy private_ = null)
=> client.Invoke(new Messages_SendPaidReaction
{
flags = (Messages_SendPaidReaction.Flags)(private_ != default ? 0x1 : 0),
flags = (Messages_SendPaidReaction.Flags)(private_ != null ? 0x1 : 0),
peer = peer,
msg_id = msg_id,
count = count,
random_id = random_id,
private_ = private_ ?? default,
private_ = private_,
});
/// <summary>Changes the privacy of already sent <a href="https://corefork.telegram.org/api/reactions#paid-reactions">paid reactions</a> on a specific message. <para>See <a href="https://corefork.telegram.org/method/messages.togglePaidReactionPrivacy"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/messages.togglePaidReactionPrivacy#possible-errors">details</a>)</para></summary>
/// <param name="peer">The channel</param>
/// <param name="msg_id">The ID of the message to which we sent the paid reactions</param>
/// <param name="private_">If true, makes the current anonymous in the top sender leaderboard for this message; otherwise, does the opposite.</param>
public static Task<bool> Messages_TogglePaidReactionPrivacy(this Client client, InputPeer peer, int msg_id, bool private_)
public static Task<bool> Messages_TogglePaidReactionPrivacy(this Client client, InputPeer peer, int msg_id, PaidReactionPrivacy private_)
=> client.Invoke(new Messages_TogglePaidReactionPrivacy
{
peer = peer,
@ -5253,9 +5261,10 @@ namespace TL
/// <summary>Obtains a list of peers that can be used to send messages in a specific group <para>See <a href="https://corefork.telegram.org/method/channels.getSendAs"/></para> <para>Possible <see cref="RpcException"/> codes: 400 (<a href="https://corefork.telegram.org/method/channels.getSendAs#possible-errors">details</a>)</para></summary>
/// <param name="peer">The group where we intend to send messages</param>
public static Task<Channels_SendAsPeers> Channels_GetSendAs(this Client client, InputPeer peer)
public static Task<Channels_SendAsPeers> Channels_GetSendAs(this Client client, InputPeer peer, bool for_paid_reactions = false)
=> client.Invoke(new Channels_GetSendAs
{
flags = (Channels_GetSendAs.Flags)(for_paid_reactions ? 0x1 : 0),
peer = peer,
});
@ -7612,6 +7621,13 @@ namespace TL.Methods
public IMethod<X> query;
}
[TLDef(0xADBB0F94)]
public sealed partial class InvokeWithReCaptcha<X> : IMethod<X>
{
public string token;
public IMethod<X> query;
}
[TLDef(0xA677244F)]
public sealed partial class Auth_SendCode : IMethod<Auth_SentCodeBase>
{
@ -11132,7 +11148,7 @@ namespace TL.Methods
}
}
[TLDef(0x9DD6A67B)]
[TLDef(0x58BBCB50)]
public sealed partial class Messages_SendPaidReaction : IMethod<UpdatesBase>
{
public Flags flags;
@ -11140,7 +11156,7 @@ namespace TL.Methods
public int msg_id;
public int count;
public long random_id;
[IfFlag(0)] public bool private_;
[IfFlag(0)] public PaidReactionPrivacy private_;
[Flags] public enum Flags : uint
{
@ -11148,12 +11164,12 @@ namespace TL.Methods
}
}
[TLDef(0x849AD397)]
[TLDef(0x435885B5)]
public sealed partial class Messages_TogglePaidReactionPrivacy : IMethod<bool>
{
public InputPeer peer;
public int msg_id;
public bool private_;
public PaidReactionPrivacy private_;
}
[TLDef(0x472455AA)]
@ -11840,10 +11856,16 @@ namespace TL.Methods
public InputChannelBase channel;
}
[TLDef(0x0DC770EE)]
[TLDef(0xE785A43F)]
public sealed partial class Channels_GetSendAs : IMethod<Channels_SendAsPeers>
{
public Flags flags;
public InputPeer peer;
[Flags] public enum Flags : uint
{
for_paid_reactions = 0x1,
}
}
[TLDef(0x367544DB)]

View file

@ -6,7 +6,7 @@ namespace TL
{
public static partial class Layer
{
public const int Version = 198; // fetched 22/01/2025 22:22:20
public const int Version = 199; // fetched 13/02/2025 13:06:03
internal const int SecretChats = 144;
internal const int MTProto2 = 73;
internal const uint VectorCtor = 0x1CB5C415;
@ -419,7 +419,7 @@ namespace TL
[0x1EA2FDA7] = typeof(UpdateBusinessBotCallbackQuery),
[0xA584B019] = typeof(UpdateStarsRevenueStatus),
[0x283BD312] = typeof(UpdateBotPurchasedPaidMedia),
[0x51CA7AEC] = typeof(UpdatePaidReactionPrivacy),
[0x8B725FCE] = typeof(UpdatePaidReactionPrivacy),
[0xA56C2A3E] = typeof(Updates_State),
[0x5D75A138] = typeof(Updates_DifferenceEmpty),
[0x00F49CA0] = typeof(Updates_Difference),
@ -1344,7 +1344,7 @@ namespace TL
[0x94CE852A] = typeof(StarsGiveawayOption),
[0x54236209] = typeof(StarsGiveawayWinnersOption),
[0x02CC73C8] = typeof(StarGift),
[0xF2FE7E4A] = typeof(StarGiftUnique),
[0x5C62D151] = typeof(StarGiftUnique),
[0xA388A368] = null,//Payments_StarGiftsNotModified
[0x901689EA] = typeof(Payments_StarGifts),
[0x7903E3D9] = typeof(MessageReportOption),
@ -1377,6 +1377,9 @@ namespace TL
[0x69279795] = typeof(InputSavedStarGiftUser),
[0xF101AA7F] = typeof(InputSavedStarGiftChat),
[0x84AA3A9C] = typeof(Payments_StarGiftWithdrawalUrl),
[0x206AD49E] = null,//PaidReactionPrivacyDefault
[0x1F0C1AD9] = typeof(PaidReactionPrivacyAnonymous),
[0xDC6CFCF0] = typeof(PaidReactionPrivacyPeer),
// from TL.Secret:
[0x6ABD9782] = typeof(Layer143.DecryptedMessageMediaDocument),
[0x020DF5D0] = typeof(Layer101.MessageEntityBlockquote),
@ -1507,6 +1510,7 @@ namespace TL
[typeof(Messages_QuickReplies)] = 0x5F91EB5B, //messages.quickRepliesNotModified
[typeof(Messages_AvailableEffects)] = 0xD1ED9A5B, //messages.availableEffectsNotModified
[typeof(Payments_StarGifts)] = 0xA388A368, //payments.starGiftsNotModified
[typeof(PaidReactionPrivacy)] = 0x206AD49E, //paidReactionPrivacyDefault
[typeof(DecryptedMessageMedia)] = 0x089F5C4A, //decryptedMessageMediaEmpty
};
}

View file

@ -13,7 +13,7 @@
<PackageId>WTelegramClient</PackageId>
<Version>0.0.0</Version>
<Authors>Wizou</Authors>
<Description>Telegram Client API (MTProto) library written 100% in C# and .NET Standard | Latest API layer: 198
<Description>Telegram Client API (MTProto) library written 100% in C# and .NET Standard | Latest API layer: 199
Release Notes:
$(ReleaseNotes.Replace("|", "%0D%0A").Replace(" - ","%0D%0A- ").Replace(" ", "%0D%0A%0D%0A"))</Description>