N
N
Nikolai Ostrovsky2020-09-30 10:29:50
Python
Nikolai Ostrovsky, 2020-09-30 10:29:50

Incorrect message line wrapping, what's the matter?

Good afternoon, I can not understand what the problem is.
When sending a message by a bot, with the structure I need, for some reason it is displayed crookedly.

This is how the finished text looks like, but the problem is that I need to make either permanent indents or no indents at all (it happens in different places, in this case "Additional Information" and "Location of the bunker"). I use '\nText: ' + (variable)

Новая игра создана!

•Катастрофа: колонизация других планет. в следствии человеческой деятельности - земле настал конец. её магнитное поле уже не держит земную кору и она улетает в космос. у вас есть возможность сбежать на другие, колонизированые планеты. вы решаете, кто попадёт на спасательный корабль "убежище".

•Остаток выживших: 44%

•Разрушеня на поверхности: 73%

•Бункер: убежище в хорошем состоянии. существам и другим выжившим, которые настроены враждебно, попасть туда вряд ли получится, потому что убежище достаточно спрятано и защищено. все системы жизнеобеспечения в норме, работают в автономном режиме и вряд ли могу дать сбой.

•Время нахождения в убежище: 4 месяца

•Дополнительная информация: еда, питьё и инсулин есть, но придётся экономить, чтобы их количеств хватило на весь период пребывания
•Местонахождение бункера: убежище находиться в прекрасном состоянии, надежно спрятано и хорошо защищено от недодоброжелателей защитно-герметичными дверями. всё системы жизнеобеспечения в норме и работают в автономном режиме. в таком убежище можно жить и не бояться за себя.

•В убежище оборудовано: склад с защитной экипировкой

•В убежище оборудовано: -

•В убежище оборудовано: кухня-столовая

•В убежище есть: ничего

•В убежище есть: книга про зомби

•В убежище есть: -

•В убежище живут: кожееды


spoiler
@bot.message_handler(commands=['start'])
def start_message(message):
    bot.send_message(message.chat.id, 'Удачной игры!', reply_markup=keyboard1)

@bot.message_handler(content_types=['text'])
def send_text(message):
    
    if message.text.lower() == 'создать игру':
        #Создание катастрофы и бункера

        #Создание катаклизма
        cataclysm = '\n\r*•Катастрофа:* %s' % str.lower(random.choice(list(open('cataclysm.txt', 'r', encoding='utf-8'))))
        #Кол-во выживших
        people = '\n\r*•Остаток выживших:* %s' % str.lower(random.choice(list(open('burn.txt', 'r', encoding='utf-8'))))
        #Разрушения на поверхности
        burn = '\n\r*•Разрушеня на поверхности:* %s' % str.lower(random.choice(list(open('burn.txt', 'r', encoding='utf-8'))))
        #Создание бункера
        bunker = '\n\r*•Бункер:* %s' % str.lower(random.choice(list(open('bunker.txt', 'r', encoding='utf-8'))))
        #Время нахождения в бункере
        time1 = '\n\r*•Время нахождения в убежище:* %s' % str.lower(random.choice(list(open('time2.txt', 'r', encoding='utf-8'))))
        time2 = '\n\r*•Дополнительная информация:* %s' % str.lower(random.choice(list(open('time1.txt', 'r', encoding='utf-8'))))
        #Местонахождение бункера
        place = '\n\r*•Местонахождение бункера:* ' + str.lower(random.choice(list(open('place.txt', 'r', encoding='utf-8'))))
        #Оборудование бункера
        one1 = '\n\r*•В убежище оборудовано:* %s' % str.lower(random.choice(list(open('station.txt', 'r', encoding='utf-8'))))
        two1 = '\n\r*•В убежище оборудовано:* %s' % str.lower(random.choice(list(open('station.txt', 'r', encoding='utf-8'))))
        three1= '\n\r*•В убежище оборудовано:* %s' % str.lower(random.choice(list(open('station.txt', 'r', encoding='utf-8'))))
        #В убежище есть
        one2 = '\n\r*•В убежище есть:* %s' % str.lower(random.choice(list(open('bagage.txt', 'r', encoding='utf-8'))))
        two2 = '\n\r*•В убежище есть:* %s' % str.lower(random.choice(list(open('bagage.txt', 'r', encoding='utf-8'))))
        three2 = '\n\r*•В убежище есть:* %s' % str.lower(random.choice(list(open('bagage.txt', 'r', encoding='utf-8'))))
        #В убежище живут
        inbunker = '\n\r*•В убежище живут:* %s' % str.lower(random.choice(list(open('inbunker.txt', 'r', encoding='utf-8'))))


        bot.send_message(message.chat.id, '*Новая игра создана!*\n' + cataclysm + people + burn + bunker + time1 + time2 + place + one1 + two1 + three1 + one2 + two2 + three2 + inbunker, parse_mode= 'Markdown')


        #Перекючение клавиатуры
        bot.send_message(message.chat.id, 'Выбирите нужное количество игроков.', reply_markup=keyboard2)

    elif message.text.lower() == '-':
        bot.send_message(message.chat.id, '-')

    elif message.text.lower() == 'вернуться обратно':
        bot.send_message(message.chat.id, 'Что хотите сделать?', reply_markup=keyboard1)

    elif message.text.lower() == '-':
        bot.send_sticker(message.chat.id, '-')

Answer the question

In order to leave comments, you need to log in

3 answer(s)
S
Sergey Pankov, 2020-10-02
@KotoFeyic

Look in 'time1.txt' there is no paragraph after the last line, but in all the rest, most likely there is.
Or in some others, too, and the problem is floating, it depends on whether the last line was chosen randomly or not and whether there is a paragraph in this line or not.
Process uploaded stringsfilter(None, map(str.rstrip, <lines_iter>))

S
soremix, 2020-09-30
@SoreMix

1. Why \r ?
2. Are the files indented?

N
Nikolai Ostrovsky, 2020-10-02
@KotoFeyic

I found the answer, I did not know that in a text document, if each word is on a different line, then \n is not necessary. It helped just not to specify \n and \r.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question