| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- /*
- 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 "mtproto/mtproto_dc_options.h"
- namespace MTP {
- struct ConfigFields {
- explicit ConfigFields(Environment environment);
- int chatSizeMax = 200;
- int megagroupSizeMax = 10000;
- int forwardedCountMax = 100;
- int onlineUpdatePeriod = 120000;
- int offlineBlurTimeout = 5000;
- int offlineIdleTimeout = 30000;
- int onlineFocusTimeout = 1000; // Not from the server config.
- int onlineCloudTimeout = 300000;
- int notifyCloudDelay = 30000;
- int notifyDefaultDelay = 1500;
- int editTimeLimit = 172800;
- int revokeTimeLimit = 172800;
- int revokePrivateTimeLimit = 172800;
- bool revokePrivateInbox = false;
- int stickersRecentLimit = 30;
- QString internalLinksDomain = u"https://t.me/"_q;
- int channelsReadMediaPeriod = 86400 * 7;
- int callReceiveTimeoutMs = 20000;
- int callRingTimeoutMs = 90000;
- int callConnectTimeoutMs = 30000;
- int callPacketTimeoutMs = 10000;
- int webFileDcId = 4;
- QString txtDomainString;
- bool blockedMode = false;
- int captionLengthMax = 1024;
- int ratingDecay = 2419200;
- QString reactionDefaultEmoji;
- uint64 reactionDefaultCustom = 0;
- QString autologinToken;
- QString gifSearchUsername;
- QString venueSearchUsername;
- };
- class Config final {
- struct PrivateTag {
- };
- public:
- explicit Config(Environment environment);
- Config(const Config &other);
- [[nodiscard]] QByteArray serialize() const;
- [[nodiscard]] static std::unique_ptr<Config> FromSerialized(
- const QByteArray &serialized);
- [[nodiscard]] DcOptions &dcOptions() {
- return _dcOptions;
- }
- [[nodiscard]] const DcOptions &dcOptions() const {
- return _dcOptions;
- }
- [[nodiscard]] MTP::Environment environment() const {
- return _dcOptions.environment();
- }
- [[nodiscard]] bool isTestMode() const {
- return _dcOptions.isTestMode();
- }
- void apply(const MTPDconfig &data);
- [[nodiscard]] const ConfigFields &values() const;
- [[nodiscard]] rpl::producer<> updates() const;
- // Set from legacy local stored values.
- void setChatSizeMax(int value);
- void setStickersRecentLimit(int value);
- void setMegagroupSizeMax(int value);
- void setTxtDomainString(const QString &value);
- private:
- DcOptions _dcOptions;
- ConfigFields _fields;
- rpl::event_stream<> _updates;
- };
- } // namespace MTP
|