| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /*
- This file is part of Telegram Desktop,
- the official desktop application for the Telegram messaging service.
- For license and copyright information please follow this link:
- https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
- */
- #pragma once
- #include "base/flags.h"
- #include "base/flat_map.h"
- namespace Export {
- namespace Output {
- enum class Format;
- } // namespace Output
- struct MediaSettings {
- bool validate() const;
- enum class Type {
- Photo = 0x01,
- Video = 0x02,
- VoiceMessage = 0x04,
- VideoMessage = 0x08,
- Sticker = 0x10,
- GIF = 0x20,
- File = 0x40,
- MediaMask = Photo | Video | VoiceMessage | VideoMessage,
- AllMask = MediaMask | Sticker | GIF | File,
- };
- using Types = base::flags<Type>;
- friend inline constexpr auto is_flag_type(Type) { return true; };
- Types types = DefaultTypes();
- int64 sizeLimit = 8 * 1024 * 1024;
- static inline Types DefaultTypes() {
- return Type::Photo;
- }
- };
- struct Settings {
- bool validate() const;
- enum class Type {
- PersonalInfo = 0x001,
- Userpics = 0x002,
- Contacts = 0x004,
- Sessions = 0x008,
- OtherData = 0x010,
- PersonalChats = 0x020,
- BotChats = 0x040,
- PrivateGroups = 0x080,
- PublicGroups = 0x100,
- PrivateChannels = 0x200,
- PublicChannels = 0x400,
- Stories = 0x800,
- GroupsMask = PrivateGroups | PublicGroups,
- ChannelsMask = PrivateChannels | PublicChannels,
- GroupsChannelsMask = GroupsMask | ChannelsMask,
- NonChannelChatsMask = PersonalChats | BotChats | PrivateGroups,
- AnyChatsMask = PersonalChats | BotChats | GroupsChannelsMask,
- NonChatsMask = (PersonalInfo
- | Userpics
- | Contacts
- | Stories
- | Sessions),
- AllMask = NonChatsMask | OtherData | AnyChatsMask,
- };
- using Types = base::flags<Type>;
- friend inline constexpr auto is_flag_type(Type) { return true; };
- QString path;
- bool forceSubPath = false;
- Output::Format format = Output::Format();
- Types types = DefaultTypes();
- Types fullChats = DefaultFullChats();
- MediaSettings media;
- MTPInputPeer singlePeer = MTP_inputPeerEmpty();
- TimeId singlePeerFrom = 0;
- TimeId singlePeerTill = 0;
- TimeId availableAt = 0;
- bool onlySinglePeer() const {
- return singlePeer.type() != mtpc_inputPeerEmpty;
- }
- static inline Types DefaultTypes() {
- return Type::PersonalInfo
- | Type::Userpics
- | Type::Contacts
- | Type::Stories
- | Type::PersonalChats
- | Type::PrivateGroups;
- }
- static inline Types DefaultFullChats() {
- return Type::PersonalChats
- | Type::BotChats;
- }
- };
- struct Environment {
- QString internalLinksDomain;
- QByteArray aboutTelegram;
- QByteArray aboutContacts;
- QByteArray aboutFrequent;
- QByteArray aboutSessions;
- QByteArray aboutWebSessions;
- QByteArray aboutChats;
- QByteArray aboutLeftChats;
- };
- } // namespace Export
|