quarta-feira, 21 de outubro de 2015

Como se livrar de eventos recorrentes no Google Calendar

Havia instalado um app de corrida no celular para me iludir tentar fazer algum exercício. A questão foi que o aplicativo, para me lembrar das corridas, criou centenas de eventos na agenda do Google e eu não conseguia apagar todos de uma vez pois eles não estavam ligados, como se fossem independentes.


A solução de programador foi criar um script na plataforma Google Apps Script que permite interagir com algumas aplicações através de javascript. Mais informações aqui .


Criei o script abaixo 

var calendar_name = 'put calendar name here';
var event_name = 'put event title here';
var start_date = 'AAAA-MM-DD';
var end_date = 'AAAA-MM-DD'
var not_found_calendar = true;


function wipeBastardEvent(cal){
 
  Logger.log(cal.getName());
  
  date_start_parts = start_date.split('-');
  date_end_parts = end_date.split('-');
  
  var date_initial = new Date(date_start_parts[0], date_start_parts[1], date_start_parts[2]);
  var date_end = new Date(date_end_parts[0], date_end_parts[1], date_end_parts[2]);
  
  var events = cal.getEvents(date_initial, date_end)
  
  var bastardEventsSentToHellCount = 0;
  Logger.log(start_date);
  Logger.log(end_date);
  for(i in events){
    
    Logger.log(events[i].getTitle());
    if(events[i].getTitle() == event_name){
      bastardEventsSentToHellCount += 1;
      events[i].deleteEvent();
    }
    
  }
  msg = "Deleted " + bastardEventsSentToHellCount + " events with name '" + event_name + "'";
  Logger.log(msg);
  
}

function main() {
 
  var calendars = CalendarApp.getAllOwnedCalendars();

  for (i in calendars){
    if(calendar_name == calendars[i].getName()){
      wipeBastardEvent(calendars[i]);
      not_found_calendar = false;
      break;
    }
  }
  
  if(not_found_calendar){
     msg  = "Calendar with name '" + calendar_name + "' not found. Is it correct?";
     Logger.log(msg);
   
  }               
}


e executá-lo aqui

sexta-feira, 17 de abril de 2015

Python 3: A novela ou por que o PIP insiste em atualizar o python2

Python 3 foi lançado no final de 2008 e, desde então, nunca pensei em dar uma chance a essa nova versão. Vivia feliz e contente com o Python 2.7.
Belo dia, decidi me aventurar na nova versão, acreditando que já estava suficientemente maduro e que deveria, enfim, absorver as mudanças inseridas na linguagem. Confesso! Eu me sentia incomodado com a necessidade de usar parênteses para evocar o print.
Após instalado e já com um projeto para servir de piloto, tento instalar as libs necessárias para o projeto. A saber, flask e pexpect. E me deparo com o seguinte erro:



Perplexo, olho para a última linha sem entender nada. Python2.7? Estou usando o pip3!! Instala, desinstala, brew, ports, configure, make... sem sucesso.

Até que tenho a ideia de debugar para ver de onde o des... o programa está tirando esse path.

Para encurtar, existem 3 arquivos de configuração e o responsável pela minha desgraça era o <home>/.pip/pip.conf com a linha target=/Library/Python/2.7/site-packages.

Bastou removê-la e voilà!