Giter Site home page Giter Site logo

bboc / things3-export Goto Github PK

View Code? Open in Web Editor NEW
19.0 1.0 2.0 367 KB

Export your Things 3 Database to Taskspaper with a simple MacOS App or from the terminal.

Python 96.46% Shell 1.01% Makefile 2.54%
taskpaper things3 culturedcode macos-app python

things3-export's Introduction

Export your Things 3 database to TaskPaper

Here's a simple App to export from Things 3 (by Cultured Code) to TaskPaper.

I created this app because I discovered that for me Things works great for some use cases, but for others I want to use a plain text format: I use Things for capturing taks, ideas and bookmarks, for planning my day and for reminding me about all the stuff that I don't care about, but need to do anyway. For detailed planning, for managing ideas and things like reading lists, I am much more effective using TaskPaper files. So I have set up an area "Export" with several projects that act as buckets for certain topics like ideas, reading, research etc., and roughly every two weeks I use this app to export my Things Inbox and the "Export" area with this app and delete all those tasks in Thinks. This keeps my Things database nice and manageable.

Currently, the exporter has the following features:

  • export tasks, projects (including the inbox) and areas
  • headers, checklists, notes
  • tags for tasks, projects and areas
  • done and trashed items are excluded
  • due dates, start dates, today and someday are added as tags to projects and tasks

Repeating tasks are currently not supported. The exporter was tested with Things 3.13.6.

Usage

Download the latest version of the app from the releases page.

Warning: Make sure to close Things before you run the app!!

Run the app, you will see this screen:

Depending on your system, MacOS may present two dialogs to you, where it asks you for the permission to control Finder and System-Events. You have to grant these permissions for the app to work:

If you just click the button "EXPORT", the app will export your Things 3 database to a folder "Things 3 export" in your Downloads folder, with one Taskpaper-file per are.

Here's a brief explanation of the options and other interface elements, from top to bottom:

  • Output as: Select one of three output formats โ€“ all in one Taskpaper file, one Taskpaper file per area (default), or one Taskpapaer file for each project
  • EXPORT: exports your things database with the selected options
  • Output file: (optional) this will be used as a name of the export directory in your Downloads folder (or as a filename in case you want all in one file). If you enter nothing, the default will be "Things 3 export"
  • Select custom database: (optional) Leave this empty if you want to use the default Things 3 database location. Otherwise click "Select File" to select another Things 3 database, you need to locate the file main.sqklite inside the thingsdatabase-bundle.
  • Exporter Output: Here you will see what's happening during the export, sometimes helpful if things are not going according to plan.
  • Quit: Close the app.

That's it. Go to your Downloads folder to see the export.

Command line Tools

In addition to the GUI-Version, the exporter can also be run from the command line.

By default, the exporter will create a folder for each area that contains a TaskPaper file per project. One file per area and one file with everything is also possible. To see what the exporter can do, open the Terminal app and run

$ python3 export_things.py -h

Setup

The exporter is Python program run from the command line, download export_things.py and t2tp.sh to a directory on your Mac, and then navigate to that directory in the Terminal app.

Installing Python 3

While the app comes bundled with a Python interpreter, you need to have Python 3 installed to run the command line version.

If you don't have it installed, here's what you need to do:

$ xcode-select --install
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install python3 

If you have Xcode or the Command Line Tools (CLT) for Xcode already installed, skip step 1. If you have Homebrew installed, skip step 2. If you have Python 3 already installed, why are you reading this anyway?

Usage:

Work on the live database

It's definitely a good idea to close things before you do that:

$ source t2tp.sh

You will find all your tasks in a folder called export data, one TaskPaper file per project, areas are grouped in subfolders.

If you prefer one TaskPaper file per area, you can add the option --format area, if you prefer one file with everything, just add --format all.

Work on a copy of the database

Copy the things database to the same folder where you downloaded the script:

$ cp ~/Library/Group\ Containers/JLMPQHK86H.com.culturedcode.ThingsMac/Things\ Database.thingsdatabase/main.sqlite .

then run the exporter:

$ python3 export_things.py

Restore a database backup in Things 3

If you, like me, play around with your Things database and accidentally sync changes you don't want back to the Things cloud, here's how to restore a backup database

Changelog

  • v 1.0.2. (2021-01-08):
    • re-designed the GUI for better usability
    • default Things 3 database is now automatically selected
    • fixed a bug that prevented opening the file dialog for selecting the database
  • v1.0.1 (2020-12-20)
    • added support for new Database location in Things 3.13+

things3-export's People

Contributors

bboc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

frankkooij xiaomc

things3-export's Issues

ascii error

Hi, thanks so much for this code, I've been searching for something to do this for quite a while! However I do get an immediate error about encoding character \u2019, see exact error below. Hopefully an easy fix? Thanks!

UnicodeEncodeError: 'ascii' codec can't encode character '\u2019' in position 129: ordinal not in range(128)

Paul

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.