Skip to content

jessedp/tablo-tools-electron

Repository files navigation

Publish



Tablo Tools allows you to Bulk Export and Delete recordings from your Tablo as well as minimally (sans guide) watch Live TV.

Hi!

You likely want to head on over to the main site for install instructions, documentation and videos to get started wrangling your Tablo.


If you're interested in the code and/or contributing, Welcome and I hope this helps...


Development

What This Is

The obvious:

  • Cross-platform GUI Win/Mac/Linux
  • Export easily put all of my recordings elsewhere
  • Delete please go away quickly

And then doing other fun, weird, and/or hopefully useful things with/for/to a Tablo.

Parts and Pieces

At its simplest, this is a web app being distributed with a modified browser. If you're familiar with React/Vue/etc, this is mostly nothing new.

Electon React Boilerplate (< v1, flow, not typescript) was the base, thus this is a React+Redux+Node app.

Aside from that, the two main cogs are ffmpeg nedb/nedb-async (document database) and tablo-api-js.

Setup

Something like this should work...

 (clone this repo via git or https)
$ git clone git@github.com:jessedp/tablo-tools-electron.git
$ yarn install
$ yarn dev

Packaging

If you get this far, we've probably already talked - but this isn't going to work out of the box because of the Sentry.io integrations.

To package apps for the local platform:

$ yarn package-linux
$ yarn package-win
$ yarn package-mac

To package apps for all platforms:

First, refer to the Multi Platform Build docs for dependencies.

Then,

$ yarn package-all
  - or -
$ yarn package-linux
$ yarn pacakge-win

To run End-to-End Test

$ yarn build-e2e
$ yarn test-e2e

# Running e2e tests in a minimized window
$ START_MINIMIZED=true yarn build-e2e
$ yarn test-e2e

💡 You can debug your production build with devtools by simply setting the DEBUG_PROD env variable:

DEBUG_PROD=true yarn package

CSS Modules

This boilerplate is configured to use css-modules out of the box.

All .css file extensions will use css-modules unless it has .global.css.

If you need global styles, stylesheets with .global.css will not go through the css-modules loader. e.g. app.global.css

If you want to import global css libraries (like bootstrap), you can just write the following code in .global.css:

@import '~bootstrap/dist/css/bootstrap.css';

SASS support

If you want to use Sass in your app, you only need to import .sass files instead of .css once:

import './app.global.scss';

Static Type Checking

This project comes with Flow support out of the box! You can annotate your code with types, get Flow errors as ESLint errors, and get type errors during runtime during development. Types are completely optional.

Dispatching redux actions from main process

See #118 and #108

MIT © Electron React Boilerplate and kinda me