Size: a a a

Боты на Telegraf

2020 November 28

OS

Oscar S in Боты на Telegraf
ты можешь любое число представить в любой системе счисления
источник

OS

Oscar S in Боты на Telegraf
различия составляют символы
источник

VK

Vladislav K. in Боты на Telegraf
хех
источник

D

Dika in Боты на Telegraf
Oscar S
ты можешь любое число представить в любой системе счисления
О чем речь? Зачем мне неэффективно кодировать числа через ascii? Какой в этом смысл?
источник

OS

Oscar S in Боты на Telegraf
Dika
О чем речь? Зачем мне неэффективно кодировать числа через ascii? Какой в этом смысл?
бля там utf-8
источник

D

Dika in Боты на Telegraf
Я уже сказал, можно отправлять любые байты
источник

OS

Oscar S in Боты на Telegraf
а теперь посмотри сколько символов в utf-8
источник

D

Dika in Боты на Telegraf
Oscar S
а теперь посмотри сколько символов в utf-8
Что ты хочешь сказать вообще?
источник

D

Dika in Боты на Telegraf
Я сказал, что можно отправлять невалидный utf-8
источник

OS

Oscar S in Боты на Telegraf
что можно закодировать число свыше основания 255
источник

D

Dika in Боты на Telegraf
Oscar S
что можно закодировать число свыше основания 255
Это не имеет смысла, потому что считаться будут байты, как и написано в доке
источник

D

Dika in Боты на Telegraf
Телеграм сервер проверяет длину callback_data, туда отправляется сырой массив байт, не строка
источник

️ ️️ in Боты на Telegraf
Oscar S
как вы понять не можете, что бы вы не делали у вас всегда один символ будет занимать 1 байт
Language:
python3


Source:
import struct

n = 4294967295

print(len(str(n)))

p = struct.pack('I', n)
print(len(p), p)


Result:
10
4 b'\xff\xff\xff\xff'
источник

️ ️️ in Боты на Telegraf
как так получилось?
источник

D

Dika in Боты на Telegraf
Oscar S
как вы понять не можете, что бы вы не делали у вас всегда один символ будет занимать 1 байт
И да, я тебя сперва неправильно понял, поэтому дискуссия затянулась. В общем, считаются сами байты, а не символы.
источник

OS

Oscar S in Боты на Telegraf
️ ️️
Language:
python3


Source:
import struct

n = 4294967295

print(len(str(n)))

p = struct.pack('I', n)
print(len(p), p)


Result:
10
4 b'\xff\xff\xff\xff'
А теперь тоже самое через бот api, на выхлопе с action скинь стату
источник

i

ik in Боты на Telegraf
Подскажите плз

Хочу хранить где то список файлов, к которому постоянно делаются запросы на чтение (по велению юзера) и который чекается на обновления раз в час

Плюс доступ к файлам должен быть у двух процессов (бот-скрипт на чтение, отдельный скрипт на проверку обновлений)

Думаю держать в редисе, чтобы было быстра, а окно потери данных не имеет значения

Норм затея?
источник

️ ️️ in Боты на Telegraf
Oscar S
А теперь тоже самое через бот api, на выхлопе с action скинь стату
CallbackQuery.Event(original_update=UpdateBotCallbackQuery(query_id=1562391782695117314, user_id=363772684, peer=PeerUser(user_id=363772684), msg_id=198, chat_instance=-1326406853366532757, data=b'\xff\xff\xff\xff', game_short_name=None), query=UpdateBotCallbackQuery(query_id=1562391782695117314, user_id=363772684, peer=PeerUser(user_id=363772684), msg_id=198, chat_instance=-1326406853366532757, data=b'\xff\xff\xff\xff', game_short_name=None), data_match=None, pattern_match=None)
источник

N

Nikita in Боты на Telegraf
ik
Подскажите плз

Хочу хранить где то список файлов, к которому постоянно делаются запросы на чтение (по велению юзера) и который чекается на обновления раз в час

Плюс доступ к файлам должен быть у двух процессов (бот-скрипт на чтение, отдельный скрипт на проверку обновлений)

Думаю держать в редисе, чтобы было быстра, а окно потери данных не имеет значения

Норм затея?
под списоком файлов имеешь ввиду просто их названия или содержание?
источник

N

Nikita in Боты на Telegraf
(пути)
источник