Sobre o projeto

ticktick-py-v2 é um wrapper Python para o endpoint não oficial `api/v2` do TickTick, a interface interna usada pelo aplicativo web e clientes desktop. O autor o apresenta como uma alternativa à API oficial do TickTick via OAuth, que cobre tarefas e projetos, mas deixa hábitos apenas para leitura e não possui endpoints de foco/pomodoro. O que a biblioteca expõe, de acordo com o README: - Tarefas e projetos: leia tarefas ativas e listas de projetos, crie tarefas, complete tarefas e enriqueça objetos de tarefa com propriedades de projeto, como nomes de projetos. - Hábitos: leia check-ins (por exemplo, após um determinado carimbo de data) e poste check-ins, o que o README sugere como uma maneira de preencher o histórico de hábitos a partir de outra fonte de dados. - Foco/Pomodoro: leia sessões de foco ao longo de um deslocamento de dia, verifique se uma sessão está atualmente em execução e adicione registros de foco para sessões históricas (carimbos de data/hora de início/fim). - Eventos de calendário: recupere todos os eventos. Notas de design do README: - A API é exposta como funções simples em vez de classes de cliente com estado; cada chamada aceita um argumento `headers` opcional, para que os cabeçalhos de autenticação possam ser buscados uma vez via `get_authenticated_ticktick_headers()` e reutilizados, ou buscados frescos a cada chamada (barato uma vez que o login é armazenado em cache no disco). - A autenticação usa a sessão de login normal (cookies), não OAuth. As credenciais podem ser fornecidas por meio das variáveis de ambiente `TICKTICK_EMAIL` e `TICKTICK_PASSWORD`, com uma sessão headless do Selenium lidando com o login e armazenando cookies em cache; alternativamente, os cookies podem ser exportados manualmente para um arquivo `.ticktick-cookies.json`. - Os valores de retorno são instâncias de `BaseModel` do pydantic, conversíveis com `.model_dump()` ou `.model_dump(by_alias=True)` para os nomes de campo camelCase nativos do TickTick. A instalação é feita via `pip install ticktick-py-v2`; os testes são executados com pytest no diretório `tests/` incluído. O repositório está organizado em `cookies_login.py`, `events.py`, `focus.py`, `habits.py`, `tasks.py`, além de `utils/` e `web/` internos. O README é explícito sobre a principal troca: esta é uma API não oficial, engenheirada reversamente, que autentica por meio da sessão de login de um usuário e pode quebrar se o TickTick alterar seus endpoints internos. A seção de contribuição convida para problemas e pull requests de endpoints não cobertos, como casos de borda de tarefas recorrentes, subtarefas e lembretes, e solicita detalhes de solicitações/respostas com falha quando um endpoint muda. Licenciado sob Apache 2.0.