condedrive (alpha)


condedrive é um cliente de sincronismo bidirecional para o Onedrive que executa em sistemas GNU/Linux e que escrevi na linguagem Python.

A Microsoft, como se espera, só disponibiliza seu cliente oficial de sincronismo para ambientes Windows e como utilizo GNU/Linux, fica complicado :/. Felizmente, a MS disponibilizou uma API em python compatível com o Onedrive (apesar de simplória e com alguns bugs).

condedrive está em constante aprimoramento e não está em versão estável, a considero em versão alpha e destinado a desenvolvedores. Alguma de suas características atuais são:

  • Bidirecionalidade: Ou seja, alterações no Onedrive refletem no ambiente local e local no Onedrive.
  • SQLite para armazenamento dos dados.
  • Arquivo de configuração.
  • Regras de espelhamento: /home/jsl/dir_local –> Onedrive/Documentos , /home/jsl/músicas –> Onedrive/Music/TOP_100
  • Regras de envio: Diretórios especificados não sofreram upload ou download, respeitando-se o contexto.
  • Log informativo e debug.
  • Permite envio de arquivos maiores que 100mb com detalhamento da quantidade enviada.

Alguns detalhes internos:

  • Thread’s para renovação do token de acesso.
  • Dependência do onedrivesdk, pillow e requests (versão 2.6.1).
  • INODE para checagem de algumas alterações, como por exemplo, renomeio de arquivo.
  • sha1 para demais alterações.
  • Sincronização separada, local e onedrive.
  • Docstrings detalhadas, gere documentação com o epydoc.

Pretensões pós estabilização:

  • Uso de inotify (via pyinotify)
  • Daemon
  • Instalador

Instruções para instalação:

  • Registre uma aplicação na sua conta da Microsoft Dev
  • Copie o CLIENT_ID e CLIENT_SECRET para o arquivo de configuração (condedrive.conf)
  • Execute: python conde.python
  • Siga a orientação: Copie no link no navegador e copie o código de retorno.
  • Insira o código no console.