[FEITO] Numeração de mensagens

Implementar uma forma para numerar as mensagens, incluindo no início das mesmas essa numeração (1/2, por exemplo).Os primeiros caracteres de cada segmento de uma mensagem deverão ser a numeração daquele segmento, no seguinte formato:

x/n:MENSAGEM…
onde x é o número daquele segmento em relação aos demais que compõem a mensagem; n é o número total de segmentos no qual a mensagem foi quebrada.

Deverá ser desenvolvido um algoritmo adaptável com relação ao número de segmentos no qual uma mensagem é quebrada. O mesmo deve ser genérico o suficiente para aceitar qualquer ‘n’, reajustando as mensagens conforme o tamanho da numeração.

A partir da versão 2.41, os segmentos que compõem uma mensagem são numerados de acordo com o descrito acima.

13 Responses to “[FEITO] Numeração de mensagens”

  1. boto says:

    Leia minha mensagem no forum de erros sobre divisão de mensagem. acho que ele seria bem utio incluindo a numeração das mensagens

  2. Felipe Lessa says:

    Olá!

    Talvez você esteja interessado em ver como eu implementei no MensagemWeb um algoritmo desse tipo. O arquivo é o "code/Messages/MessageDispatcher.cs" e pode ser encontrado no CVS do projeto ou no tarball das versões lançadas. Como C# se assemelha muito ao Java, não será muito difícil adaptar o código.

    Até mais,
    Felipe.

    • renatoc says:

      Boa idéia! Assim qu’eu voltar a mexer no código, dou uma olhada no seu.

      Minha pergunta é a seguinte: seu algoritmo é escalável? Conforme ele vai gerando os segmentos das mensagens e adicionando a parte “x/n”, se o número de segmentos passar de 9, ele gera todos os segmentos denovo? Nesse caso, o ‘n’ ocuparia um caracter a mais… Você está prevendo isso?

      • Felipe Lessa says:

        Oh sim, claro! Ele suporta até 99 mensagens, se não me engano. Mas esse limite eu pus porque é insano alguém mandar mais de 99 mensagens, e não porque seria difícil implementar (na verdade são apenas mais duas linhas de código e voilà, até 999 mensagens =D). E até hoje nunca descobri nenhum bug, nem analisando o código, nem usando (pq o MensagemWeb mostra que mensagens serão enviadas, qualquer bug faria com que palavras fossem decapitadas).

  3. Felipe M Pereira says:

    Não sei se isso está "incluído no pacote" desse algoritmo, mas seria bom um mecanismo para guardar no histórico um grupo de mensagens em vez de cada uma em separado. Também não fica muito claro para o usuário, se a mensagem for quebrada e apenas parte dela for enviada, como proceder.

    • Felipe Lessa says:

      Acredito que você esteja falando do algoritmo que eu escrevi. Bom, nesse caso tudo o que você falou não tem a ver com o algoritmo em si, e sim com o programa que o utiliza. Se você quiser saber como eu resolvi no meu:
      - Quanto ao histórico, o MensagemWeb não tem um.
      - Quanto a apenas uma parte ser enviada, ele avisa o usuário quantas foram enviadas e recomenda ao mesmo enviar todas novamente mais tarde.

  4. Alexandre Magno says:

    Olá!

    Quero sugerir uma correção.

    Por favor, leia o documento do link http://budurl.com/m562. Quem desejar acrescentar algo à descrição de erro, solicite-me o compartilhamento do documento no Google Docs.

    Seria interessante também a tela de edição remover o acentos já no momento da digitação. Pois se não é possível enviar acentos e caracteres especiais, o redator deve estar informado de como sua redação será enviada.

    Construções ficam muito ruins de interpretar quando os acentos e caracteres especiais são limpos (substituídos) sem sinalização.

    Olhando o resultado da digitação em tempo real o usuário poderá se acostumar mais facilmente a escrever “eh” no lugar de “é”, por exemplo, já que não realidade só poderia ser enviado “e”.

    Quero pedir também que o projeto seja hospedado em um CVS. Poderia ser o Google Code – code.google.com. Isso poderia despertar pessoas a contribuir com código.

    Solicito que você disponibilize e-mail de contato na barra lateral do blog, para evitar esse tipo de comentário.

    Alexandre Magno

    • renatoc says:

      Até onde eu sei, nenhuma operadora aceita acentos em seus sites e tampouco quebras de linha. No jSMS funciona assim: uma quebra de linha é substituída por um espaço. O jSMS possui um algoritmo que quebra as mensagens automaticamente, tentando maximizar o tamanho das mensagens e não partir nenhuma palavra ao meio. Com relação aos acentos, todos eles são removidos antes do envio da mensagem, assim como as operadoras fazem em seus sites.

      Com relação ao que você escreveu, eu acho uma boa idéia já não permitir a escrita de acentos e caracteres descartados na tela principal (funcionalidade ativada através de uma nova opção nas preferências do jSMS). Mas discordo das quebras de linha delimitarem os segmentos das mensagens.

      Discussões deste tipo devem efetivamente ser feitas através da página e não via email. Não vou publicar o meu email diretamente na página, pois não tenho interesse em receber emails com dúvidas simples e cujas respostas constam na página do jSMS. Não é o seu caso no que diz respeito ao envio das mensagens, mas acontece com muita freqüência.

      Conforme descrito nesta pergunta freqüente, o código-fonte do jSMS está disponível para o público e está em um SVN.

  5. Alexandre Magno says:

    Quanto ao seu primeiro parágrafo: você não entendeu a minha questão. Por favor, leia http://budurl.com/m562 com mais atenção. As informações que você me deu em seu primeiro parágrafo eu já tinha.

    Você diz: “Mas discordo das quebras de linha delimitarem os segmentos das mensagens.” Acontece que o jSMS já faz isso visualmente (apenas). Para ficar efetivo é só considerar / prever (no momento da edição) a quantidade de caracteres usada na numeração de cada mensagem da seqüência numerada.

    Você diz: “Discussões deste tipo devem efetivamente ser feitas através da página e não via email. ” A qual página você se refere? A esses comentários aqui no blog? Se desejar: http://alexandre.mbm.googlepages.com/plugoo

    Eu não tinha visto a FAQ com a indicação do SVN. Somente conhecia a página Donwload, acessível através da barra lateral do blog. Nela há o arquivo do Código Fonte – jSMS-302-src.jar. Pensei que era só.

    • renatoc says:

      Apesar do texto longo que você escreveu, eu li tudo. No meu comentário anterior, eu expliquei como o jSMS faz. Também disso que vou implementar uma forma de desabilitar a acentuação na caixa de escrita das mensagens e, por fim, disse que não vou implementar esse esquema de separar as mensagens por quebra de linha.

      Não é o jSMS que faz isso visualmente, mas o componente gráfico da biblioteca gráfica do Java. O motivo pelo qual digo que não vou implementar isso é o seguinte: mensagens de texto foram criadas para serem curtas. Não faz sentido alguém mandar um texto muito grande via SMS. Vai contra a natureza das mensagens. Em cinco anos ninguém sugeriu algo assim. Me dê um motivo para mudar a ferramenta.

      Antigamente havia um fórum para discussões. Porém, havia bug no plugin do WordPress e tive que desativá-lo. As discussões devem ser feitas através de comentários, exatamente como estamos fazendo aqui.

      • Alexandre Magno says:

        Não pense que estou exigindo algo de você, pois eu estou ciente de que eu não tenho esse direito.

        Mesmo sendo o componente gráfico. Observe os contadores. Se eu escrevo uma palavra de cinco letras, quebro a linha, e escrevo outra, eu tenho duas mensagens. E o jSMS envia de fato duas mensagens. Você já observou isso? Pois considerando isso e o que eu falei sobre a minha “necessidade” eu penso que “pode” não ser tão custosa a alteração.

        Você diz: “Não faz sentido alguém mandar um texto muito grande via SMS. Vai contra a natureza das mensagens.”

        Eu concordo, se for uma mensagem de celular para celular, custando R# 0,35. Mas no caso da possibilidade de mensagens gratuitas, de computador/notebook para celular, discordo; podemos encontrar várias aplicações.

        Alguns exemplos:

        1) Várias vezes eu já tive de responder para um tio uma pesquisa de preços sobre determinado produto. Ele estava na rua e precisava da informação. O jSMS possibilitou que eu a enviasse pra ele, sem custo.

        2) Minha mãe já precisou de alguns endereços. Ela ligou pra casa, eu fiquei de coletar e enviar por Torpedo.

        3) Eu já enviei “orçamentos” de computadores para uma amiga, que não entendia de informática e pediu ajuda a mim numa compra.

        4) Se eu quero comunicar mais de um evento em massa, eu posso organizar as mensagens em seqüência e enviá-la para um grupo. Cada pessoa receberá de uma vez duas mensagens, caso se trate de dois eventos. OBS.: eu uso o jSMS pra isso na comunidade local.

        Você diz: “Em cinco anos ninguém sugeriu algo assim. Me dê um motivo para mudar a ferramenta.”

        Eu dei alguns. Não sei se você vai considerá-los relevantes…

        • renatoc says:

          Fiz o seguinte teste: escrevi meia dúzia de letras, quebrei várias linhas e escrevi mais meia dúzia de letras. Foi enviada somente uma mensagem, não duas. Apenas o contador de caracteres foi alterado.

          Entendo o seu caso, faz sentido.

Leave a Reply

You must be logged in to post a comment.