Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jessedp/tablo-tools-electron
A desktop app to help manage your Tablo devices
https://github.com/jessedp/tablo-tools-electron
dvr electron nodejs tablo
Last synced: 3 months ago
JSON representation
A desktop app to help manage your Tablo devices
- Host: GitHub
- URL: https://github.com/jessedp/tablo-tools-electron
- Owner: jessedp
- License: mit
- Created: 2019-12-12T17:33:32.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-05-08T20:24:20.000Z (over 1 year ago)
- Last Synced: 2024-10-11T02:28:30.337Z (4 months ago)
- Topics: dvr, electron, nodejs, tablo
- Language: TypeScript
- Homepage: https://jessedp.github.io/tablo-tools-electron/
- Size: 14.5 MB
- Stars: 29
- Watchers: 6
- Forks: 2
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![Publish](https://github.com/jessedp/tablo-tools-electron/actions/workflows/publish.yml/badge.svg)](https://github.com/jessedp/tablo-tools-electron/actions/workflows/publish.yml)
[](https://jessedp.github.io/tablo-tools-electron/)
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](https://jessedp.github.io/tablo-tools-electron/) 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](https://github.com/electron-react-boilerplate/electron-react-boilerplate) (< v1, flow, not typescript) was the base, thus this is a [React](https://reactjs.org/)+[Redux](https://redux.js.org/)+[Node](https://nodejs.org/en/) app.
Aside from that, the two main cogs are [ffmpeg](https://ffmpeg.org/)
[nedb](https://github.com/louischatriot/nedb)/[nedb-async](https://github.com/Akumzy/nedb-async) (document database) and [tablo-api-js](https://github.com/jessedp/tablo-api-js).## Setup
Something like this should work...
```bash
(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](Sentry.io) integrations.
To package apps for the local platform:
```bash
$ yarn package-linux
$ yarn package-win
$ yarn package-mac
```To package apps for all platforms:
First, refer to the [Multi Platform Build docs](https://www.electron.build/multi-platform-build) for dependencies.
Then,
```bash
$ yarn package-all
- or -
$ yarn package-linux
$ yarn pacakge-win
```To run End-to-End Test
```bash
$ 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:
```bash
DEBUG_PROD=true yarn package
```#### CSS Modules
This boilerplate is configured to use [css-modules](https://github.com/css-modules/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`:
```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:
```js
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](https://github.com/amilajack/eslint-plugin-flowtype-errors), and get [type errors during runtime](https://github.com/codemix/flow-runtime) during development. Types are completely optional.
#### Dispatching redux actions from main process
See [#118](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/118) and [#108](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/108)
MIT © [Electron React Boilerplate](https://github.com/electron-react-boilerplate) and kinda me