Разделение SMS-ответа - PullRequest
       13

Разделение SMS-ответа

0 голосов
/ 19 июня 2010

При ответе на SMS у меня есть ограничение в 160 символов.В настоящее время у меня есть код, настроенный на получение ответа (который может быть> 160) и разделение его на список из нескольких текстов каждый <160.Это также настроено так, чтобы это держало слова целыми.Я включил его: </p>

repl='message to be sent. may be >160'
texts=[]
words=repl.split()
curtext=''
for word in words:
    #for the first word, drop the space
    if len(curtext)==0:
        curtext+=word

    #check if there's enough space left in the current message
    elif len(curtext)<=155-(len(word)+1):
        curtext+=' '+word

    #not enough space. make a new message
    else:
        texts.append(curtext)
        curtext=word
if curtext!='':
    texts.append(curtext)
return texts

Однако теперь я хочу изменить его так, чтобы он добавлял «ответить m для большего» в конец каждого второго сообщения.Есть идеи, как это сделать?

(я пишу код на Python)

Ответы [ 2 ]

2 голосов
/ 19 июня 2010
reply = "text to be sent ...."
texts = []

count = 0
current_text = []
for word in reply.split():
   if count + len(word) < (160 if len(texts) % 2 == 0 else (160-17)):
      current_text.append(word)
      count += (len(word) + 1)
   else:
      count = 0
      if len(texts) % 2 != 0):
         #odd-numbered text gets additional message...
         texts.append(" ".join(current_text) + "\nreply m for more")
      else:
         texts.append(" ".join(current_text))
   current_text = []
0 голосов
/ 26 февраля 2018
def sms_calculator(msg_text):
    sms_lst=[]
    if len(msg_text) == 0:
        return sms_lst

    l_m_text = (msg_text.split())
    if len(max(l_m_text, key=len))> 160:
        return sms_lst

    sms_string=l_m_text[0]
    for i in range(1,len(l_m_text)):
        if len(sms_string +' '+ l_m_text[i]) < 160 :
            sms_string=sms_string +' '+ l_m_text[i]
        else:
            sms_lst.append(sms_string)
            sms_string = l_m_text[i]
    sms_lst.append(sms_string)
    return sms_lst
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...