WakatimeTD banner

WakatimeTD

7 devlogs
22h 5m 53s

A .tox plugin for TouchDesigner to allow for WakaTime tracking.

Demo Repository

Loading README...

Tristan

Shipped this project!

Hours: 11.29
Cookies: šŸŖ 179
Multiplier: 15.89 cookies/hr

I’ve expanded upon the features most requested in previous feedback to allow for a better user experience. The plugin is able to initialize the wakatimeCLI correctly and error handling has been improved substantially. The plugin now has a proper display to better understand it’s current state (first time touchdesigner helped rather than hampered). Hopefully this tool inspires some more projects in the touchdesigner ecosystem now that tracking is accessible, especially now that the tool has been improved.

cskartikey

Tagged your project as well cooked!

šŸ”„ cskartikey marked your project as well cooked! As a prize for your nicely cooked project, look out for a bonus prize in the mail :)

Tristan

Added the errors panel to display when an error is hit and made the readme more actionable. Hopefully the pipeline of the demo gif serves as usage instructions.
I’ve baked in a lot of error handling and messages that the troubleshooting shouldn’t really occur as much as the messages serve as indicators of what needs to be done.

Changelog

Attachment
0
Tristan

Codename: The Feelings Update

This update mostly focuses on QoL and the overall feel of the plugin. So the status bar now shows initialization progress and there were tweaks to the wakatime download after v2 release tweaked how the internal/normal config saved cli_version. The wakatime_cli should now properly download and extract on most architectures and removed cases of redownloading the same version of semantic versioning. Internal config is now parsed and appended with the proper versioning and checked with a tuple to verify which version is the latest in semantic versioning.
Goals:
status change [√]
errors panel []


Changelog

Attachment
0
Tristan

Main extension script had been modified to better handle errors and display logic had been added to give the extension a nicer visual and alert the user when the script catches an error. Still you can’t catch what you don’t know so I’ll add some troubleshooting steps and better guides to the repo. Big shoutout to all the feedback I’ve been given as the major pain point seemed to be the tool was under explained and when it didn’t work you were lost. Hopefully the display and modified readme will help to lower that barrier a bit.

One small issue I’ve seen but been unable to recreate is a delay of a couple of minutes before the project is recognized on hackatime, unsure if this is intended behavior and may be a can of beans to open later cwy

Changelog:

Attachment
0
Tristan

Shipped this project!

Hours: 10.81
Cookies: šŸŖ 196
Multiplier: 18.16 cookies/hr

Created a WakaTime plugin for TouchDesigner. I’ve recently gone into the deep end with this tool and wanted to build something for it. I noticed that the wakatime coverage didn’t really have a good fit for it and decided to make something myself. Because TouchDesigner functions as it’s own programming language it seemed fit for something close to the implementations of the VSCode plugin. I relied a lot on the documentation for Wakatime and previous implements such as super godot by Budzio because it had hack club’s stamp of approval. The most challenging portion of this project was finding proper documentation for TouchDesigner. I’ve discovered the platform is not really suitable for direct plugins and most of the documentation is outdated and unmaintained. So many class name and functions are defunct so I ended up having to make custom ones to support it instead.

I hope to allow for greater coverage across environment platforms, happy to make any adjustments to better suit testing/debugging.

Happy SailingšŸ“ā€ā˜ ļø!

Tristan

The logic was reviewed and corrected to better fit the logic control as stated in the WakaTime documentation for plugins. It now correctly logs the correct flags and pushes according to the states isWrite flag flow. I’ve kept the python file in even though the .tox component no longer references it to allow for easier version control and editing as well as more direct access to viewable components. This project has collected a lot of dust and I’ve put of really working on it due to a difficult schedule and lacking drive to allow for all system architectures. Now that I have more time on my hands if there’s any bugs or system incompatibilities please leave a comment here or open an issue on the github page so I can readily patch new versions.

One feature I’m already thinking of is adding some visual to the component to spice things up, feel free to put some suggestions into my head mind-control style!

Commit

  • Write logic (7ddabf0)
  • Compiled .tox and removed .py dependancy (4f8f877)
  • Add README for plugin (5b8acac)
Attachment
0
Tristan

3c
Created popDialog for prompting api key when missing from config. My plans for next session are going to be balancing how it’s displayed a little as currently it appears in the top-right corner which is not the best. The logic for sending heartbeats needs to be tweaked to activate flags on edit actions and write on save. I’ll also check if additional info like os attributes and plugin name are being sent properly.

Commit

Attachment
0
Tristan

Merging hackatime projects, unfortunately still missing time from initially setting up TD but what can you do.
Quite ironic that the best example for the usefulness of this project is itself.thumbs-up

Fixed the path for entity and started the ui components for the input window if missing an api key.
Feat:

  • Entity logic fix + partial api prompt (e0633a4)
Attachment
0
Tristan

First devlog yay! yippeee


Finally got a heartbeat to be sent so figured I’d need to get logging, I always feel weird writing a devlog before anything works preliminarily.
Almost gave up on this project before this first devlog xdd
There was EXTREME issues with having the base comp recognize and promote the extension dat. There is a lot of very niche and specific hierarchy that needs to be implemented to have Touchdesigner recognize the functions that is not very well documented. Many hours spent on obscure docs and videos to get a slapstick method going to have the extension called as a module.

Checkpoint commits:

Attachment
0