GithubHelp home page GithubHelp logo

legolasdimir / habitica-googletaskssync Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zemmyang/habitica-googletaskssync

0.0 0.0 0.0 171 KB

An assortment of Habitica scripts for various purposes

JavaScript 100.00%

habitica-googletaskssync's Introduction

Notice

The Original maintainer stopped maintaining this because they no longer use habitica. I forked it to use for myself and possibly look at implementing the remaining features listed below. I am very new to programming so please be patient with me.

Original readme follows

Do you like Google Tasks to keep everything in place but also want to level up your character in Habitica? This tool copies all of your Google Tasks to Habitica and checks if any of the GTasks are updated/marked as done and marks the corresponding Habitica todo accordingly.

Limited to 100 tasks per tasklist theoretically, but you'll hit the Google Apps Script runtime limit at that point. Best to limit it at around 50 tasks total (including completed tasks)

Usage

  1. Download the *.gs files.
  2. Find your Habitica API User ID and API Token, available at this page.
  3. Upload, or copy and paste, all the files into a Google Apps Script project.
  4. Add the "Tasks API" service to the Apps Script project.
    • From within the project, select the "Services" + then scroll down and add the "Tasks API" service.

  1. Go to "Project Settings" (gear icon at the right) and populate the "Script Properties" as follows:
    • habitica_apikey, habitica_userid, and habitica_apiurl are self-explanatory
    • delay_in_seconds forces the script to take a break between requests, so that the Habitica API won't kick you out for making too many requests at a time
    • gtasks_maxresults limits the amount of tasks you can get per tasklist in GTasks. you can theoretically increase this number...
    • verbose makes the log more chatty. not implemented.

  1. Add a trigger to the Apps Script project to run main on a timer, e.g., every 5 minutes.
    • From within the project, select the clock icon on left then the "+ Add Trigger" button on the bottom right.
      • Choose which function to run: "main"
      • Choose which deployment should run: "Head" (the only option)
      • Select event source: "Time-driven"
      • Select type of time based trigger: "Minutes timer" (adjust as desired)
      • Select minute interval: "Every 5 minutes" (adjust as desired)

Limitations

  • Does not handle repeating tasks
  • Each subtask is imported as a separate task
  • The Habitica side does end up looking quite cluttered later on

Future planned features

  • Support for repeated tasks
  • Use the Task List name as a Habitica tag
  • Two-way sync <- serious questiom, does anyone want this? lmk
  • Trigger-based updating on GTasks. That's on Google's side, not me :)

Changelog

v2.0.0 - Overhauled the code completely.
v1.2.0 - Checklist and tags support.
v1.1.0 - Works in longer testing, now supports up to 100 tasks per task list.
v1.0.0-alpha - Works in testing but not completely tested yet

habitica-googletaskssync's People

Contributors

zemmyang avatar daniellopes04 avatar stevenchowell avatar legolasdimir avatar j-piza avatar lomenzel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.