tablo-tools-electron
tablo-tools-electron copied to clipboard
A desktop app to help manage your Tablo devices
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 [email protected]: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
:bulb: 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
MIT © Electron React Boilerplate and kinda me
