Faz anos que uso a Agenda (Address Book) do Mac OS X para guardar nomes, endereços e telefones de todos os meus contatos. Está tudo lá, bem organizado, com grupos, fotinhos, impecável.
Quando ganhei um iPhone de aniversário (valeu Gabriel!), sincronizei alegremente meus contatos e plim!, tudo funcionou perfeitamente. Eu clicava em um contato, ele chamava e eu falava. Normal.
Pelo menos era assim na operadora Oi (Brasil Telecom). Mas recentemente migrei para a TIM para poder usufruir da internet de pobre por 50 centavos/dia no pré-pago. A internet funcionou bem, mas quando fui fazer uma ligação:
“O número chamado não existe. Por favor, verifique o número discado e tente novamente.”
— Mas hein?
— Como assim o meu número de casa não existe?
Tentei ligar para o celular da Mog, e nada, mesma mensagem. Editei o número e tirei o DDD, aí funcionou. Com DDD, só funcionou se o número estiver no formato completo: zero + operadora + DDD + número, mesmo que seja um número local.
Achei bizarro, pois durante anos sempre cadastrei os telefones em minha agenda no formato (DDD) NNNN-NNNN. Então, um telefone de Curitiba, por exemplo, fica como (41) 1234-5678. E pronto. Sem zero e sem operadora, conforme Deus gosta.
Após pesquisas na internet e com a ajuda de amigos no twitter, descobri que na Oi funcionava porque eles são espertos e moderninhos. Eles alteram o número no momento da chamada, para que fique correto:
- Se for uma chamada local, o código DDD é removido.
- Se for chamada à distância, eles colocam o zero e o código de operadora (a deles, claro).
Tudo automaticamente, sem que eu precise sequer saber que isso existe. Simplesmente funciona, conforme Deus gosta também. Na TIM, porém, a central é mais tosca e não sabe o que fazer com o meu número. Daí a tiazinha me fala que o número não existe…
Mas tá, já que a modernização da central da TIM não deve ocorrer a curto prazo, terei que mudar o meu lado e fornecer o número no formato que eles entendem. Em outras palavras, terei que poluir minha agenda colocando o código da operadora em todos os números. Que saco.
A TIM até oferece uma solução para isso, um programinha no Menu TIM chamado Agenda LD, que adiciona o zero e o código da operadora deles (41) em todos os seus contatos do chip. Do chip? Quack!
- O iPhone guarda os contatos em sua memória, e não no chip.
- Não há opção para copiar os contatos do telefone para o chip.
- Quack!
Então, só me restou a última alternativa: eu mesmo modificar manualmente todas as centenas de contatos da minha agenda (Quack²), ou achar algum programa que faça isso automaticamente. Encontrei três na App Store:
Todos parecem funcionar bem e não são caros, e teria sido melhor eu ter simplesmente comprado um deles e pronto. Mas nerd é uma merda. Lendo as descrições dos apps e as opiniões dos usuários, acabei tendo uma ideia que arruinou meus planos de trabalho ontem:
“E se eu pudesse usar expressões regulares para reformatar os números de telefone do jeito que eu quiser?”
A ideia me empolgou, e como anos atrás eu já havia feito um programa em Python que acessa a Agenda do Mac usando PyObjC, não teve mais volta: abre o TextMate, pesquisas no Google, digita daqui, testa dali, e oito horas depois nascia mais um filhote: ab-rephone.py.
ab-rephone: Usa expressões regulares para alterar telefones na Agenda do Mac. Útil para adicionar/remover código de área e código da operadora. Pode editar todos os contatos ou um grupo específico. ATENÇÃO: SOMENTE PARA NERDS. https://github.com/aureliojargas/ab-rephone
Resolveu o meu problema atual e futuros, pois agora tenho a liberdade de modificar os telefones de maneira automática. Assim como agora coloquei o bendito prefixo 041 em todos os telefones, amanhã posso remover, trocar por outro, colocar um +55 na frente, etc. Além disso, com poucas alterações este script pode virar um grep ou alterar outros campos da Agenda.
Se você passa por um problema parecido e o termo “expressões regulares” não lhe causa medo nem estranheza, usa lá que é software livre/aberto/gratuito/casa-da-mãe-Joana. Como o código está limpo e comentado, também serve de aprendizado para usar o PyObjC.
Se você não for nerd, nem perca tempo que este programa só servirá para você voltar aqui e me xingar. Aconselho que você compre um dos programas para iPhone que citei anteriormente.
Ah, esse script marca minha estreia no Git e no GitHub. Sou um feliz usuário do SVN para todos os meus projetos, e num raro acesso de falta de conservadorismo, resolvi experimentar o concorrente. Sinto-me estranho :)