Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
Beberapa Detail tentang Moderasi Telegram dari Investigasi eSafety
Telegram dikenal sangat tertutup terkait struktur dan proses internalnya. Namun, seiring pertumbuhan jumlah pengguna, tekanan pada perusahaan pun meningkat: regulator di berbagai negara menuntut transparansi lebih besar, terutama dalam hal keamanan pengguna.
Pada Maret 2024, regulator keamanan internet Australia, eSafety, memulai investigasi terhadap praktik moderasi Telegram. Editor @tginfo telah mempelajari dokumen yang diterbitkan, di mana aplikasi perpesanan ini mengungkap beberapa detail tentang operasi sistem yang memblokir konten ilegal kepada regulator.
Jika Anda tertarik memahami:
• Cara Telegram menyeimbangkan privasi dan keamanan
• Berapa banyak laporan yang diproses oleh moderator versus algoritme
• Cara kerja pemindaian konten otomatis
kami merekomendasikan untuk membaca analisis lengkap kami.
Artikel saat ini hanya tersedia dalam bahasa Inggris
Artikel: tginfo.me/esafety-analysis-en/
#antispam
Telegram Mungkin Memperkenalkan Akun 'Beku' untuk Pelanggar Aturan
Editor @tginfoid telah menemukan rangkaian baru dalam kode sumber Unigram, yang mengindikasikan bahwa aplikasi messenger tersebut akan segera memperkenalkan kemampuan untuk menempatkan akun pengguna ke dalam status "beku" dalam pembaruan mendatang.
Berdasarkan rangkaian ini, seseorang dapat berspekulasi:
• Akun dapat dibekukan karena melanggar Syarat dan Ketentuan Telegram.
• Saat dibekukan, pengguna “dapat mengakses akun mereka tetapi tidak dapat mengirim pesan atau melakukan tindakan apa pun”. Akun yang dibekukan akan beroperasi dalam “mode baca-saja”. Agaknya, pembatasan ini bahkan akan meluas ke pengiriman pesan pribadi dengan kontak.
• Telegram dapat menawarkan opsi kepada pengguna untuk mengajukan banding atas keputusan ini melalui @SpamBot. Jika pembekuan tidak dicabut, akun akan dihapus.
• Ada kemungkinan pengguna lain mungkin melihat indikator khusus pada profil akun yang dibekukan.
• Masih belum jelas apakah “pembekuan” akan digunakan untuk semua akun yang diblokir secara permanen sebelum dihapus.
Fitur ini masih dalam tahap pengembangan, dan informasi di atas merupakan asumsi dari editor @tginfoid. Rinciannya mungkin tidak akurat atau dapat berubah di kemudian hari.
#antispam
¿Que puede hacer este bot?
🤖@AntiSpam
📎Bot para eliminar spam en Telegram: chats, foros y comentarios
Basado en algoritmos únicos, el bot identifica automáticamente a los spammers, elimina sus mensajes y los incluye en la lista negra.
🔻 Funciona gratis
🔻 No requiere configuración
🔻 Encuentra y elimina todos los tipos populares de spam
#Administración#AntiSPAM
( Visto en: @BotsGram_Cu )
Telegram Mungkin Mulai Menggunakan CAPTCHA
Perubahan dalam kode sumber TDLib menunjukkan bahwa aplikasi perpesanan ini mungkin mulai menggunakan CAPTCHA — sebuah verifikasi "Saya bukan robot" untuk beberapa tindakan tertentu. Menurut kode tersebut, verifikasi ini hanya akan diterapkan di aplikasi Telegram resmi.
Secara umum, CAPTCHA digunakan untuk melindungi dari spam dan permintaan yang tidak diinginkan lainnya. Sebelumnya, aplikasi perpesanan ini hanya bisa memblokir tindakan mencurigakan seperti itu.
Masih belum diketahui untuk tindakan apa dan seberapa sering verifikasi ini akan diminta. Ada kemungkinan Telegram akan menggunakan CAPTCHA tak terlihat, yang akan mengumpulkan data di latar belakang dan memberikan skor bot kepada Telegram saat dibutuhkan.
Menurut editor @tginfo, CAPTCHA dapat mengurangi jumlah kesalahan dan pembatasan (floodwaits) yang dialami oleh sebagian pengguna. Namun, jika hal ini justru menyebabkan lebih banyak penyalahgunaan, aplikasi perpesanan ini mungkin akan memperketat sistemnya, dan dalam kasus itu, CAPTCHA akan menjadi tambahan yang mengganggu. Jika Telegram menggunakan CAPTCHA tak terlihat, pengguna tidak akan memiliki cara lain untuk mengatasi masalah ketika aktivitas mereka dianggap mencurigakan.
Kode sumber menyebutkan bahwa reCAPTCHA adalah solusi verifikasi pengguna dari Google. Kemungkinan besar, inilah teknologi yang akan digunakan oleh aplikasi perpesanan tersebut. Hal ini menimbulkan beberapa pertanyaan tentang privasi, karena reCAPTCHA menggunakan pengumpulan data yang luas untuk mendeteksi bot. Fitur ini masih dalam pengembangan, dan tim Telegram dapat memodifikasi atau membatalkannya.
#tdlib#antispam
@littleGuardianBot
Qué puede hacer este bot?
LittleGuardian fue creado como un bot para apoyar los esfuerzos de los administradores del grupo Telegram mientras luchaba con comportamientos antisociales y varios ataques contra los grupos o miembros del grupo.
Idioma: Inglés
(visto en @BotsGram_cu)
#antispam, #protection, #management, #groups, #filter, #welcome
@ChatKeeperBot
Qué puede hacer este bot?
Este bot brinda un servicio internacional de analítica, estadística y moderación para grupos de telegram
(visto en @BotsGram_cu)
#analítica, #antispam, #spam, #reputación, #captcha, #saludos, #bienvenida, #administración, #moderación, #grupos
@BanInfoRobot
Qué puede hacer este bot?
Comprueba si estás prohibido en los populares servicios Anti-Spam de Telegram como SpamWatch, CAS, etc
Idioma: Inglés
(visto en @BotsGram_cu)
#ban, #userinfo, #spamwatch, #cas, #combot, #spam, #antispam, #spamprotection, #spb, #antispaminc, #check, #api, #scam, #spammer