Я хотел использовать ординалы для моего проекта и после нескольких прототипов, я думаю, что этот метод, хотя и не малый, будет работать для любого положительного целого числа, да любое целое число.
Он работает, определяя, выше или ниже 20, если число ниже 20, оно превратит int 1 в строку 1, 2, 2; 3, 3; а остальные будут добавлены к ней.
Для чисел более 20 он будет принимать последние и секунды до последних цифр, которые я назвал десятками и единицами соответственно, и проверим их, чтобы увидеть, что добавить к числу.
Это, кстати, в python, поэтому я не уверен, что другие языки смогут найти последнюю или вторую последнюю цифру на строке, если они это сделают, она должна легко транслироваться.
def o(numb):
if numb < 20: #determining suffix for < 20
if numb == 1:
suffix = 'st'
elif numb == 2:
suffix = 'nd'
elif numb == 3:
suffix = 'rd'
else:
suffix = 'th'
else: #determining suffix for > 20
tens = str(numb)
tens = tens[-2]
unit = str(numb)
unit = unit[-1]
if tens == "1":
suffix = "th"
else:
if unit == "1":
suffix = 'st'
elif unit == "2":
suffix = 'nd'
elif unit == "3":
suffix = 'rd'
else:
suffix = 'th'
return str(numb)+ suffix
Я назвал функцию «o» для удобства использования и может быть вызван путем импорта имени файла, которое я назвал «порядковым», по порядку импорта, а затем по порядку. (номер).
Дайте мне знать, что вы думаете: D
Этот API может помочь вам получить деталь сообщения: https://api.telegram.org/TOKENBOT/getUpdates
.
То, что вы хотите сделать, может быть выполнено с помощью метода answerCallbackQuery.
Но прежде всего вам нужно создать CallbackQuery с помощью InlineKeyboardMarkup для создания встроенных клавиатур, вы можете выполнить шаги в этой ссылке.
После создания запроса обратного вызова вы должны ответить на него, используя один из следующих кодов:
if (update.CallbackQuery.Data == "CQ1")
{
await Bot.AnswerCallbackQueryAsync(update.CallbackQuery.Id,"Text",true,null, 0);
}
Таким образом, сообщение будет выглядеть как окно сообщения и будет исчезают после того, как пользователь нажимает OK. Но если вы воспользуетесь приведенным ниже кодом, сообщение отобразится и исчезнет автоматически через несколько секунд.
else if (update.CallbackQuery.Data == "CQ2")
{
await Bot.AnswerCallbackQueryAsync(update.CallbackQuery.Id, "Text", false,null, 30);
}
Кстати, сообщения, которые отображаются в разы, например, добавление пользователя в группа - служебные сообщения, а тезисы сообщений могут быть отправлены только сервером телеграммы.
Если мое предложение не устраняет проблему, вы можете использовать метод pinMessage, который прикрепляет одно сообщение к началу страницы в группах и каналы. Но обратите внимание, что вы можете привязывать только одно сообщение к каналу или группе, а для того, чтобы прикрепить другое сообщение, вы должны отменить предыдущий.