TgWitness / مستندسازی

منبع / جمع‌آوری

نحوهٔ کارکرد جمع‌آوری

دامنهٔ مشاهده، به‌روزرسانی‌های زنده، بازبینی‌ها، پیوست‌ها، اقدامات خود و معنای یک شکاف، رکورد به رکورد.

TgWitness آنچه را که یک حساب تلگرام متصل مشاهده می‌کند، ثبت می‌کند. این دفترچه مشاهدات، توالی آن‌ها و زمینه همراهشان را حفظ می‌کند. این ابزار از روی یک پیام حذف‌شده یا از متصل بودن یک حساب، به وجود اقدامات نامرئی پی نمی‌برد.

از ورود تا دفترچهٔ ثبت#

نمودار جریانمجوز دادن به یک حساب کاربری → گروه‌ها و کانال‌های قابل دسترسی را انتخاب کنید; گروه‌ها و کانال‌های قابل دسترسی را انتخاب کنید → ذخیرهٔ تنظیمات رویداد و پیوست; ذخیرهٔ تنظیمات رویداد و پیوست → شروع مشاهده; شروع مشاهده → دریافت به‌روزرسانی‌ها از کلاینت فعال; دریافت به‌روزرسانی‌ها از کلاینت فعال → اعمال سیاست منبع و رویداد; اعمال سیاست منبع و رویداد → ضمیمه یک مشاهدهٔ امضا شده; ضمیمه یک مشاهدهٔ امضا شده → بازبینی یا صدور مجله; ضمیمه یک مشاهدهٔ امضا شده → هر پیوست صف‌شده را پردازش کنید; هر پیوست صف‌شده را پردازش کنید → ضمیمه کردن نتیجه دانلودمجوز دادن به یک حسابکاربریگروه‌ها و کانال‌هایقابل دسترسی را انتخابکنیدذخیرهٔ تنظیمات رویدادو پیوستشروع مشاهدهدریافت به‌روزرسانی‌هااز کلاینت فعالاعمال سیاست منبع ورویدادضمیمه یک مشاهدهٔ امضاشدهبازبینی یا صدور مجلههر پیوست صف‌شده راپردازش کنیدضمیمه کردن نتیجهدانلود
نمودار به صورت متن
  1. مجوز دادن به یک حساب کاربری → گروه‌ها و کانال‌های قابل دسترسی را انتخاب کنید
  2. گروه‌ها و کانال‌های قابل دسترسی را انتخاب کنید → ذخیرهٔ تنظیمات رویداد و پیوست
  3. ذخیرهٔ تنظیمات رویداد و پیوست → شروع مشاهده
  4. شروع مشاهده → دریافت به‌روزرسانی‌ها از کلاینت فعال
  5. دریافت به‌روزرسانی‌ها از کلاینت فعال → اعمال سیاست منبع و رویداد
  6. اعمال سیاست منبع و رویداد → ضمیمه یک مشاهدهٔ امضا شده
  7. ضمیمه یک مشاهدهٔ امضا شده → بازبینی یا صدور مجله
  8. ضمیمه یک مشاهدهٔ امضا شده → هر پیوست صف‌شده را پردازش کنید
  9. هر پیوست صف‌شده را پردازش کنید → ضمیمه کردن نتیجه دانلود

مجازی‌سازی، دسترسی به منبع، یک جمع‌آور فعال و تحویل کامل، پرسش‌های متفاوتی هستند. ورود موفق، دسترسی به هر گروه را تضمین نمی‌کند. یک انتقال متصل، این را اثبات نمی‌کند که هر به‌روزرسانی مرتبط رسیده است.

دامنهٔ مشاهده: چت‌های منتخب، یک پوشه یا کل حساب#

منابع → دامنهٔ مشاهده تعیین می‌کند که یک فضای کاری کدام چت‌ها را ضبط کند.

حالت ثبت می‌کند چت‌های جدید
گفت‌وگوهای انتخاب‌شده (پیش‌فرض) فقط گفتگوهایی که خودتان به‌صورت دستی اضافه می‌کنید هرگز به‌طور خودکار اضافه نشده است
پوشه تلگرام گفت‌وگوها در یکی از پوشه‌های حساب: شامل گفت‌وگوها بر اساس نام، به‌علاوه دسته‌بندی‌های پوشه (تماس‌ها، غیرتماس‌ها، گروه‌ها، کانال‌ها، ربات‌ها)، منهای گفت‌وگوهای حذف‌شده و، در صورت وجود، گفت‌وگوهای بایگانی‌شده. گفت‌وگوهای مطابقت‌دار به محض فعال شدن اضافه می‌شوند؛ گفت‌وگوهایی که در تلگرام به پوشه اضافه می‌کنید ظرف یک ساعت شناسایی می‌شوند
کل حساب هر چتی که حساب می‌بیند هر چت جدید، گروه، گفتگوی خصوصی یا ربات به محض دریافت اولین به‌روزرسانی اضافه می‌شود
  • انواع منابع (کانال‌ها، گروه‌ها، چت‌های خصوصی، ربات‌ها) پوشه و حالت‌های کل حساب را محدود می‌کنند. چت‌های انتخاب‌شده می‌توانند از هر نوعی باشند، از جمله چت‌های خصوصی و ربات‌ها.
  • چت‌های حذف‌شده هرگز در هیچ حالتی ضبط نمی‌شوند. در حالت پوشه و حالت کل حساب، «حذف» و «برطرف کردن» یک منبع، آن را در این لیست قرار می‌دهد، بنابراین دامنه دیگر آن را اضافه نمی‌کند. انتخاب مجدد چت به‌صورت دستی (در بخش منابع یا از بخش چت‌ها) آن را از لیست خارج می‌کند. این لیست تا ۵۰۰۰ چت را در خود جای می‌دهد؛ پس از آن، گزینه «حذف» رد می‌شود و در عوض می‌توان چت را متوقف کرد.
  • اقدامات خود (به‌طور پیش‌فرض فعال): پیام‌هایی که این حساب ارسال می‌کند، ویرایش‌های آن و فشردن دکمه‌های صفحه‌کلید پاسخ. در صورت غیرفعال بودن، پیام‌ها و ویرایش‌های ارسالی نادیده گرفته می‌شوند.
  • سوئیچ کردن به یک پوشه یا کل حساب نیازمند تأیید است: این حالت‌ها چت‌های خصوصی و پیام‌های اشخاص ثالث را ضبط می‌کنند و فقط باید در یک حساب اختصاصی استفاده شوند. تأیید و هر تغییر دامنه در سوابق امضاشونده scope.changed ثبت می‌شوند.
  • گفت‌وگوهای اضافه شده توسط دامنه به عنوان منابعی با برچسب auto ظاهر می‌شوند، ضبط شده با scope.applied (در شروع و هر ساعت) یا source.discovered (یک گفتگوی جدید در حین مشاهده). بازگشت به گفتگوی انتخاب‌شده، تمام منابع اضافه شده به صورت خودکار را متوقف می‌کند.

کارهایی که این حالت‌ها نمی‌توانند انجام دهند:

  • گفت‌وگوهای مخفی بین دو دستگاه به‌صورت انتها به انتها رمزگذاری می‌شوند و هرگز به TgWitness، در هیچ حالتی، نمی‌رسند.
  • هیچ چیزی ضبط نمی‌شود در حالی که TgWitness در حال اجرا نیست. پس از راه‌اندازی مجدد، از تلگرام درخواست به‌روزرسانی‌های از دست رفته می‌کند و چت‌ها را مجدداً بررسی می‌کند، اما تلگرام پس از قطعی‌های طولانی همه چیز را بازنمی‌گرداند. گزارش‌ها و verify.py چنین دوره‌هایی را به صورت شکاف نشان می‌دهند (به پوشش مراجعه کنید).
  • فقط ۱۰۰۰ گفتگوی اول در شروع فهرست می‌شوند (محدودیت در بخش پارامترها تعریف شده است)؛ چت‌های قدیمی‌تر وقتی دوباره فعال شوند اضافه می‌شوند. تاریخچه قبلی یک چت اضافه شده بازیابی نمی‌شود — در صورت نیاز از اسنپ‌شات تاریخچه یا خروجی کامل چت استفاده کنید.
  • شرایط پوشه که مدام تغییر می‌کنند (بی‌صدا، خوانده شده) اعمال نمی‌شوند: چنین گفتگوهایی همچنان زیر نظر باقی می‌مانند.
  • دکمه‌های بات درون‌خطی (callback) که در اپلیکیشن دیگری فشرده می‌شوند برای جلسه دوم نامرئی هستند؛ پاسخ یا ویرایش بات ضبط می‌شود. فشردن دکمه‌های صفحه‌کلید پاسخ به صورت پیام‌های ارسالی ثبت شده و با برچسب button_press مشخص می‌شوند.
  • چت‌های بیشتر به معنای درخواست‌های بیشتر است. تلگرام حساب‌هایی را که حجم را بیش از حد می‌داند محدود می‌کند، که این خود دلیل دیگری برای استفاده از حساب‌های اختصاصی است.

دامنه و انتخاب رویدادها#

هر فضای کاری، منابع خاص خود را دارد. TgWitness به گروه‌ها نمی‌پیوندد، دعوت‌نامه‌ها را قبول نمی‌کند، یا اعضای هر گروه را به طور خودکار فهرست نمی‌کند. منابع باید از قبل برای حساب کاربری قابل دسترسی باشند. در هنگام راه‌اندازی، گردآورنده منابع انتخاب‌شده را با دیالوگ‌های قابل مشاهده حساب بررسی می‌کند؛ ۱۰۰۰ دیالوگ اول بررسی می‌شوند، مگر اینکه گزینه «پارامترها → گفتگوها» در لیست حساب خلاف این را تعیین کرده باشد. یک منبع غایب با برچسب «دسترسی تأیید نشده» علامت‌گذاری می‌شود، نه اینکه فرض شود شما را حذف کرده است.

تنظیمات جمع‌آوری می‌کند اثر هنگام غیرفعال‌سازی
پیام‌های جدید پیام‌های ارسال‌شده عادی ویرایش‌ها/حذف‌های بعدی ممکن است متن ضبط‌شده قبلی برای مقایسه نداشته باشند.
ویرایش‌ها ارائه نسخه‌های ویرایش‌شده پیام تغییرات میانی بعداً بازسازی نمی‌شوند.
حذف‌ها اعلان‌های حذف محدود و اعلان‌های سطح حساب نامحدود اعلان‌های حذف به دفترچه شواهد افزوده نمی‌شوند.
واکنش‌ها ارائهٔ اسنپ‌شات‌های واکنش به‌روزرسانی‌های واکنش جداگانه اضافه نمی‌شوند.
عضویت ارسال پیام‌های خدمات عضویت و به‌روزرسانی‌های شرکت‌کنندگان آن مشاهدات عضویت اضافه نشده‌اند.

تنظیمات بر تمام منابع انتخاب‌شده در فضای کاری اعمال می‌شوند. برای اعمال تغییرات، فرم را ذخیره کنید؛ تغییرات با مقادیر امضا‌شده قبل و بعد ثبت می‌شوند. غیرفعال کردن یک دسته‌بندی، سوابق قبلی را حذف نمی‌کند. فعال کردن مجدد آن، به‌روزرسانی‌های از دست رفته را بازپروری نمی‌کند.

سوابق عملیاتی و سایر رویدادهای خدمات گروهی از این سوئیچ‌ها مجزا باقی می‌مانند. پیام‌های خدمات عضویت می‌توانند هنگام فعال بودن عضویت، سوابق پیام ایجاد کنند، حتی اگر ضبط معمولی پیام جدید غیرفعال باشد. اشیاء ضبط‌شده تلگرام، متادیتای جاسازی‌شده را حفظ می‌کنند؛ یک سوئیچ یک قاعده سانسور نیست.

حذف‌ها در چت‌های خصوصی و گروه‌های عادی به صورت شناسه پیام بدون چت دریافت می‌شوند. این چت‌ها یک توالی شناسه پیام در سطح کل حساب را به اشتراک می‌گذارند، بنابراین وقتی پیامی با آن شناسه قبلاً ذخیره شده باشد، چت آن مشخص است: حذف در همان چت با chat_resolution ثبت می‌شود که چگونگی آن را توضیح می‌دهد. شناسه‌هایی که هرگز ذخیره نشده‌اند، یک حذف بدون دامنه با منبع صریحاً ناشناخته باقی می‌مانند؛ گردآورنده حدس نمی‌زند. تلگرام هرگز نمی‌گوید چه کسی یک پیام را حذف کرده است؛ زمانی که پیام حذف‌شده توسط این حساب ارسال شده باشد، سند به این موضوع اشاره می‌کند (deleted_message_was_outgoing) بدون اینکه نام حذفی را ذکر کند.

اقدامات خود#

پیام‌های ارسال‌شده توسط حساب کاربری مورد مشاهده با برچسب outgoing علامت‌گذاری می‌شوند. ویرایش یک پیام ارسالی نشان می‌دهد که در چت‌های خصوصی و گروه‌ها فقط نویسنده آن می‌تواند آن را ویرایش کند، در حالی که پست‌های کانال را می‌توان توسط مدیران دیگر ویرایش کرد. وقتی یک پیام ارسالی، متن یک دکمه از جدیدترین صفحه‌کلید پاسخ‌های ذخیره‌شده در آن چت را تکرار می‌کند، حاوی شناسه button_press به همراه لینکی به سوابق آن صفحه‌کلید است.

استثنای اقدامات خود کاربر همچنین برای بازپرونده‌سازی‌های پس‌زمینه و تاریخچه خودکار چت‌های جدید نیز اعمال می‌شود. پیام‌های خروجی ردشده، موقعیت بازپرونده‌سازی را جلو می‌برند تا نتوانند پیام‌های ورودی بعدی را مسدود کنند. اقدامات صریح پنل و اسنپ‌شات‌های تاریخچه که به‌صورت دستی درخواست شده‌اند، همچنان ثبت می‌مانند.

حالت تحقیق: پیوستن به تیم‌ها و گفتگو با ربات‌ها#

منابع → دامنه مشاهده → حالت تحقیق، دامنه را برای یک حساب کاربری اختصاصی که به چت‌های تیمی می‌پیوندد، ربات‌ها را راه‌اندازی می‌کند و برای آن‌ها پیام می‌فرستد، آماده می‌سازد: کل حساب کاربری، هر نوع منبع، اقدامات خود، و برای هر چت یا رباتی که ظاهر می‌شود، پروفایل آن و ۲۰۰ پیام قابل مشاهده اخیر آن. فرم را مرور کرده و روی «ذخیره دامنه» (Save scope) کلیک کنید؛ سوئیچ به کل حساب کاربری، تأیید معمول را می‌طلبد.

  • دکمه‌ها. دکمه‌های زیر یک پیام همراه آن باقی می‌مانند و در چت‌ها نمایش داده می‌شوند: لینک‌ها، اپلیکیشن‌های وب، لینک‌های ورود، متن‌های قابل کپی، داده‌های فراخوانی مجدد، پرس‌وجوهای درون‌خطی، درخواست شماره تلفن یا موقعیت مکانی. لینک‌ها به صورت متن نمایش داده می‌شوند و هرگز توسط پنل باز نمی‌شوند. هنگامی که یک ربات فقط دکمه‌ها را تغییر می‌دهد (مثلاً یک لینک پرداخت جدید)، این یک نسخه جدید از پیام محسوب می‌شود، چه از طریق به‌روزرسانی‌های زنده و چه از طریق بازبینی‌ها.
  • چت‌ها و ربات‌های جدید. در حالت‌های پوشه و کل حساب، وقتی یک چت یا ربات جدید ظاهر می‌شود، بلافاصله پس از ظاهر شدن ذخیره می‌کند:

    • پروفایل آن به‌عنوان یک رکورد source.profile: توضیحات و دستورات ربات، متن دربارهٔ کاربر، گروه یا کانال، اعضا، چت مرتبط و لینک دعوت در صورتی که تلگرام بازگرداند؛
    • آخرین پیام‌های قابل مشاهده آن (تا ۱۰۰۰ پیام) به عنوان یک نمای کلی تاریخچه با شناسه new_chat: پیام‌های قبلی یک گفتگوی تیمی که به تازگی به آن پیوسته‌اید، یا آنچه یک ربات قبل از اینکه چت تحت نظارت قرار گیرد، گفته است. پیام‌هایی که قبلاً به صورت زنده ذخیره شده‌اند، تکرار نمی‌شوند.

    گفتگوهایی که هنگام فعال شدن حالت در لیست موجود هستند، بدون اسنپ‌شات اضافه می‌شوند. یک FloodWait این کار را متوقف می‌کند و پس از آن از سر می‌گیرد؛ خطاها ثبت می‌شوند و ضبط زنده گفتگوی متوقف نمی‌شود. - پروفایل‌ها بنا به درخواست. چت‌ها → پروفایل → ذخیره پروفایل اکنون پروفایل فعلی هر منبعی را ذخیره می‌کند؛ جدیدترین پروفایل بالای پیام‌ها نمایش داده می‌شود. - نامرئی. دکمه‌های درون‌خطی (بازپاس) که در اپلیکیشن دیگری از تلگرام فشرده می‌شوند، پاپ‌آپ یا لینکی که ربات به چنین فشاری پاسخ می‌دهد، و لینک‌های دعوت استفاده‌شده در اپلیکیشن دیگر به TgWitness نمی‌رسند. آنچه ربات بعداً ارسال یا ویرایش می‌کند، ضبط می‌شود.

اقدام از پنل#

گفت‌وگوها اکنون شامل یک مینی‌کلاینت است که از حساب تلگرام فضای کاری انتخاب‌شده استفاده می‌کند:

  • یک پیام متنی ساده بنویسید یا زیر یک پیام ذخیره‌شده گزینه «پاسخ» را انتخاب کنید. پیام ارسالی بازگردانده‌شده حتی زمانی که دامنه به‌روزرسانی‌های ارسالی را مستثنی می‌کند، ضبط می‌شود.
  • دکمه را در زیر کال‌بک فعلی یا دکمه متنی فشار دهید. سرور پیام را دوباره بازیابی می‌کند و اگر صفحه‌کلید با نسخهٔ ذخیره شده متفاوت باشد، اقدام را رد می‌کند. رسیدهای کال‌بک متن پاپ‌آپ، پرچم هشدار و URL تلگرام را حفظ می‌کنند؛ پاسخ نیز در زیر گفتگو نمایش داده می‌شود. URLها به صورت متن قابل انتخاب باقی می‌مانند و به طور خودکار باز نمی‌شوند.
  • لینک تلگرام را باز کنید، @username، یک لینک عمومی https://t.me/name، https://t.me/+invite / joinchat/invite، یا یک لینک بات با ?start=parameter را وارد کنید و دکمه «ذخیره پیش‌نمایش» (Save preview) را فشار دهید. لینک اصلی و پیش‌نمایش تلگرام قبل از پیوستن امضا می‌شوند. عضویت / باز کردن و مشاهده سپس به گروه/کانال می‌پیوندد یا کاربر/ربات را باز می‌کند، چت را به عنوان یک منبع فعال اضافه می‌کند، و /start را به یک ربات ارسال می‌کند، شامل پارامتر شروع آن. یک درخواست عضویت که در انتظار تأیید مدیر است، به عنوان در انتظار ثبت می‌شود، نه به عنوان عضویت.

گزینه «شروع مشاهده» را برای ضبط زنده پاسخ‌های دریافتی فعال کنید. اقدامات پنل در حالی که مشاهده متوقف شده است کار می‌کنند، اما در این صورت تنها پاسخ‌های مستقیم آن‌ها تضمین شده که ذخیره شوند. منابع تازه‌افزوده شده هنگام اجرای مشاهده، از ورودی پروفایل/تاریخچه پیکربندی‌شده استفاده می‌کنند. هنگامی که یک منبع متوقف شده است، قبل از ارسال یا فشردن دکمه‌های آن، آن را در بخش «منابع» فعال کنید.

رویدادهای مجله‌ای امضا شده معمولی interaction.preview، interaction.requested و interaction.result در خروجی‌های شواهد گنجانده شده‌اند. درخواست‌ها، حساب کاربری، پیام/دکمه یا رکورد پیش‌نمایش و اینکه آیا مشاهده در حال اجرا بوده است را شناسایی می‌کنند. رسیدها بین موفقیت، رد، در انتظار تأیید و نتیجه نامشخص تمایز قائل می‌شوند. یک درخواست قطع شده ممکن است به تلگرام رسیده باشد: قبل از شروع یک اقدام جدید، چت را بررسی کنید. استفاده مجدد از شناسه درخواست، رسید ذخیره شده آن را بدون تکرار عمل، حتی پس از راه‌اندازی مجدد، بازیابی می‌کند. پنل پس از یک پاسخ مبهم برای همان عمل در طول جلسه صفحه جاری، شناسه را حفظ می‌کند. همچنین هنگامی که پس از یک عمل موفق، تازه‌سازی نمایانگر ناموفق باشد، آن شناسه را حفظ می‌کند: رسید قابل مشاهده باقی می‌ماند و با کلیک مجدد، بازیابی می‌شود. RPCهای Callback و join یک بار برای اجرا تلاش می‌کنند؛ خواندن‌های قابل تلاش (retryable reads) سیاست تلاش مجدد پیکربندی‌شده خود را حفظ می‌کنند. سوئیچ کردن بین چت‌ها بلافاصله پیش‌نویس و هدف پاسخ را پاک می‌کند و ارسال را تا زمانی که گفتگوی جدید بارگذاری شود، غیرفعال می‌نماید.

این مینی‌کلاینت، متن و دکمه‌های کال‌بک را مدیریت می‌کند. اپلیکیشن‌های وب، درخواست‌های ورود/تلفن/مکان، پرداخت‌ها، پرس‌وجوهای درون‌خطی و ضمیمه‌ها همچنان به کلاینت تلگرام نیاز دارند؛ متادیتای دکمه‌های ذخیره‌شده‌ی آن‌ها همچنان قابل مشاهده باقی می‌ماند. کنترل‌های جدید از متن انگلیسی استفاده می‌کنند.

بازبینی مجدد سطوح#

بازبینی مجدد، تلگرام را برای پیام‌های از دست رفته، ویرایش‌ها و پیام‌هایی که دیگر بازنمی‌گرداند، مجدداً بررسی می‌کند. منابعی که با ستاره علامت‌گذاری شده‌اند، منابع اولویت‌دار هستند که به طور پیش‌فرض هر ۱۵ دقیقه یک‌بار بازبینی می‌شوند؛ سایر منابع هر ۶ ساعت یک‌بار. چت‌های انتخاب‌شده به عنوان منابع اولویت‌دار شروع می‌شوند، در حالی که چت‌های اضافه شده از طریق یک پوشه یا کل حساب کاربری به عنوان منابع عادی در نظر گرفته می‌شوند. در هر نوبت حداکثر ۳۰ منبع مجدداً بررسی می‌شوند و بقیه تا دقیقه بعد منتظر می‌مانند؛ پس از برقراری مجدد اتصال، منابع اولویت‌دار در اولویت قرار می‌گیرند. هر دو بازه زمانی در مسیر «منابع → تنظیمات ضبط → بررسی مجدد» (Sources → Recording settings → Recheck) تنظیم می‌شوند (عدد ۰ یک سطح را غیرفعال می‌کند) و به صورت recheck.changed ثبت می‌گردند.

پیام‌های از دست رفته از جایی که بررسی قبلی متوقف شده بود، فراخوانی می‌شوند؛ حداکثر «پیام‌های جدید در هر بازبینی» (به‌طور پیش‌فرض ۱۰۰۰) در هر مرحله. بنابراین پس از یک توقف طولانی، بازپروژه کردن کل شکاف را پر می‌کند، حتی زمانی که پیام‌های زنده جدیدتر از آن شکاف ابتدا ذخیره شده باشند. یک چت که هنوز در حال جبران عقب‌ماندگی است، به جای انتظار برای فاصله زمانی لایه‌بندی‌اش، در دقیقه بعد دوباره بازپروژه می‌شود؛ recheck.completed وضعیت continues_after را تا زمانی که کامل شود نشان می‌دهد.

مقایسه‌ها شامل متن پیام، اشیاء، صفحه‌کلیدها (شامل حذف)، و محتوای/هویت ضمیمه است. تغییر هش‌های دسترسی به فایل یا ارجاعات به فایل به تنهایی یک ویرایش ایجاد نمی‌کند، و همچنین مواردی که تلگرام خود به خود وارد می‌کند نیز ویرایش محسوب نمی‌شوند: پیش‌نمایش لینک، مشاهده استوری‌ها، رسانه‌های پولی که توسط این حساب باز شده‌اند، و رسید فاکتور. هر نسخهٔ ذخیره شده در چت‌ها به رکورد کامل دفترچهٔ خود، شامل متادیتای رسانه، لینک می‌شود.

تاریخچه پیام و انتساب#

فرض کنید گردآورنده مشاهده «جلسه در ساعت ۱۰:۰۰» را ثبت می‌کند، بعداً «جلسه در ساعت ۱۱:۰۰» را می‌بیند، و سپس یک اعلان حذف دریافت می‌کند. این کار سه مشاهده متمایز را ضمیمه می‌کند. متن اصلی باقی می‌ماند، ویرایش یک نسخه جداگانه است، و اعلان ثبت می‌کند که یک حذف مشاهده شده است.

اگر جمع‌آوری پس از ناپدید شدن نسخه اول شروع شده باشد، آن متن در دسترس نخواهد بود. اگر چندین ویرایش در حالی که فرآیند آفلاین بود انجام شده باشد، تنها نسخه‌هایی که بعداً مشاهده می‌شوند قابل ذخیره هستند. یک اعلان حذف، محتوایی را که هرگز ضبط نشده است، بازیابی نمی‌کند.

فرستنده پیام لزوماً ویرایشگر نیست. تلگرام معمولاً شخص حذف‌کننده پیام یا زمان دقیق حذف را ارائه نمی‌دهد. عاملان ناشناس، ناشناس باقی می‌مانند. اسنپ‌شات‌های واکنش و به‌روزرسانی‌های شرکت‌کنندگان تنها شامل شمارش‌ها و هویت‌هایی هستند که تلگرام برای حساب کاربری قابل مشاهده می‌کند.

اعداد توالی، ترتیب مشاهده را نشان می‌دهند. مهر زمانی UTC گردآورنده، ساعت محلی آن است؛ در صورت ارائه، مهر زمانی منبع تلگرام به طور جداگانه ذخیره می‌شود. هیچ‌کدام از این موارد یک مهر زمانی مستقل و معتبر نیستند.

لحظه‌های تاریخی#

یک اسنپ‌شات جدیدترین پیام‌های قابل مشاهده را از یک منبع فعال، تا سقف ۵۰۰ پیام در هر درخواست، درخواست می‌کند. نتایج برچسب «مشاهدات تاریخی» دریافت می‌کنند. این موارد می‌توانند با ضبط زنده تداخل داشته باشند و مشاهدات تکراری به صورت سوابق جداگانه نگهداری می‌شوند.

اسنپ‌شات‌ها از سیاست پیوست‌ها پیروی می‌کنند اما از کلیدهای رویداد زنده جدا هستند. آنها پیام‌های حذف‌شده یا نسخه‌های میانی از دست رفته را بازسازی نمی‌کنند. شما می‌توانید در حالت مکث یک اسنپ‌شات درخواست کنید؛ هر پیوست که در صف قرار گیرد تا زمانی که مشاهده شروع شود و کارگر دانلود اجرا شود، منتظر می‌ماند.

مدیریت پیوست‌ها#

دانلود پیوست به‌صورت پیش‌فرض فعال است و در صورتی که فضای آزاد دیسک کمتر از ۱ گیگابایت باشد، متوقف می‌شود. گردآورنده، عملیات مشاهده پیام و دانلود را به‌طور همزمان انجام می‌دهد. این عملیات، شناسه‌ی رسانه‌ی اصلی و سیاست اندازه‌بندی را حفظ می‌کند، بنابراین پیوست ویرایش‌شده‌ی بعدی به‌صورت بی‌صدا جایگزین نمی‌شود.

دانلودها پس از ضبط پیام انجام می‌شوند. یک دانلود کامل، یک رکورد media.saved با SHA-256 و تعداد بایت‌های آن ایجاد می‌کند. کارهای نادیده گرفته شده، ناموفق، مجدداً تلاش شده و قطع شده، نتایج متفاوتی دارند. یک کار صف‌شده، مدرکی بر حفظ فایل نیست. فایل تکمیل‌شده همچنین باید با تعداد بایت در توصیف‌کننده پیوست اصلی مشاهده‌شده مطابقت داشته باشد. یک پاسخ کوتاه یا غیرمنتظره طولانی، به‌عنوان رسانه حفظ‌شده ثبت نمی‌شود.

محدودیت‌ها به ازای هر نوع تعیین می‌شوند: عکس‌ها، ویدیوها، گیف‌ها و انیمیشن‌ها، پیام‌های ویدیویی گرد، پیام‌های صوتی، موسیقی و صدا، استیکرها و فایل‌ها. هر نوع را می‌توان غیرفعال کرد و محدودیت اندازه خاص خود را از ۱ تا ۲۰۰۰ مگابایت (MiB) دارد؛ فضاهای کاری جدید با ۲۰ مگابایت برای عکس‌ها، ۱۰۰ مگابایت برای ویدیوها، ۵۰ مگابایت برای فایل‌ها، صدا و ویدیوهای دایره‌ای، ۲۰ مگابایت برای پیام‌های صوتی و گیف‌ها و ۵ مگابایت برای استیکرها. حداکثر اندازه فایل، تمام انواع را به طور همزمان تنظیم می‌کند. سیاست‌هایی که قبل از تنظیم محدودیت‌های هر نوع ذخیره شده‌اند، محدودیت تکی خود را برای هر نوع حفظ می‌کنند. غیرفعال کردن یک نوع، یک رکورد media.skipped ایجاد می‌کند؛ فایل‌های با اندازه نامشخص یا بزرگ‌تر از حد مجاز دانلود نمی‌شوند. فایل‌های بزرگ حداقل سرعت دانلود ۲۵۶ کیلوبیت بر ثانیه را دریافت می‌کنند. جاب‌ها پس از راه‌اندازی مجدد باقی می‌مانند، اما ارجاعات منقضی‌شده، از دست رفتن دسترسی یا فایل‌های حذف‌شده همچنان می‌توانند مانع بازیابی شوند. جاب‌های موجود، سیاست ذخیره‌شده با خود را حفظ می‌کنند.

مکث، قفل، قطع اتصال و راه‌اندازی مجدد#

اقدام یا وضعیت اثر
جابجایی فضای کاری نما پنل را تغییر می‌دهد؛ سایر گردآورنده‌ها وضعیت خود را حفظ می‌کنند.
قفل کردن پنل یا بستن زبانه سرور و مشاهده را در حال اجرا باقی می‌گذارد.
مراقبه را متوقف کنید آن گردآورنده را متوقف می‌کند و کار روی پیوست‌های صف‌شده را حفظ می‌کند.
غیرفعال کردن یک منبع از ضبط محدودهٔ زمانی آینده جلوگیری می‌کند؛ وظایف رسانه‌ای صف‌شده برای آن در حالی که غیرفعال است، منتظر می‌مانند.
حذف یک منبع آن را به‌عنوان منبع فراموش می‌کند و پروفایل‌های افراد را حذف می‌کند؛ پیام‌هایی که قبلاً ذخیره شده‌اند در دفترچه شواهد فقط-پیوست باقی می‌مانند. ضمیمه‌های در انتظار آن همچنان به‌عنوان ناموفق ثبت می‌شوند (source_removed). در حالت‌های پوشه و کل حساب نیز این موارد مستثنی هستند.
مسیر اتصال را تغییر دهید نیاز به مکث دارد، کلاینت‌های قدیمی را می‌بندد و ورود ناتمام را لغو می‌کند.
متوقف کردن فرآیند پایتون تمام فضاهای کاری را متوقف می‌کند؛ هیچ مشاهداتی در حالی که آفلاین است ثبت نمی‌شود.
پس از مشاهدهٔ فعال، مجدداً راه‌اندازی کنید تلاش برای از سرگیری محدودهٔ ذخیره‌شده با استفاده از جلسهٔ ذخیره‌شده. توقف دستی آن نیت را لغو می‌کند.

جمع‌کننده قطع اتصالات، تلاش‌های مجدد، خطاها، شروع/وقفه و تپش‌های قلب (heartbeats) را ثبت می‌کند. وقفه‌های کوتاه ممکن است توسط بررسی‌های دوره‌ای اتصال نادیده گرفته شوند. پس از راه‌اندازی مجدد، به‌روزرسانی‌های از دست رفته از موقعیت ذخیره شده درخواست می‌شوند و گفت‌وگوهای مشاهده شده به صورت دوره‌ای مجدداً بررسی می‌شوند؛ به فرمت شواهد مراجعه کنید. یک اسنپ‌شات زمینه را فراهم می‌کند؛ این امر ثابت نمی‌کند که یک شکاف برطرف شده است.

ایزوله‌سازی و تأیید حساب#

هر فضای کاری دارای دفتر ثبت، کلید تأیید صلاحیت، کلید امضا، سیاست و صف خود است. تنها کلاینت فعال آن می‌تواند مشاهدات زنده را ثبت کند. کلاینت‌های ردشده، در انتظار، منسوخ‌شده و تست اتصال نمی‌توانند به‌روزرسانی‌های زنده را در دفتر ثبت آن بنویسند. حساب‌های مختلف می‌توانند یک گروه را مشاهده کنند، اما دفتر ثبت‌های آن‌ها جدا از هم باقی می‌ماند.

هر رویداد شامل هش قبلی و یک امضای Ed25519 است. خروجی‌ها کل دفتر کار را از طریق یک شماره توالی ثابت پوشش می‌دهند. فیلترهای پنل، خروجی را فیلتر نمی‌کنند؛ جمع‌آوری ممکن است در حین آماده‌سازی، فراتر از محدوده آن ادامه یابد.

بررسی مجله، زنجیره رویدادها و امضاها را از طریق مرز نمایش‌داده‌شده اعتبارسنجی می‌کند. نتیجه آن هنگام تغییر فضای کاری پاک می‌شود و پنل، سوابق جدید افزوده‌شده پس از بررسی را شناسایی می‌کند. خروجی‌گیری ZIP نیز رسانه‌های جمع‌آوری‌شده را اعتبارسنجی می‌کند.

یک امضای معتبر، یکپارچگی را نسبت به کلید مورد اعتماد برقرار می‌کند، نه نسبت به منشأ تلگرام یا صحت محتوا. اثر انگشت‌ها و نقاط کنترل را به‌طور مستقل حفظ کنید. برای الزامات اعتماد و تحویل، به مدل شواهد، عملیات روزانه و رویه پذیرش زنده مراجعه کنید.