ghostzero / twitch_extension_tools

A "replacement" for the Twitch Developer Rig

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CodeQL

What is this

This Program is an alternative version of the Twitch Developer Rig.

Primarilly this works as a glorified Rest Client but handles the required JWT generation or App Access Token generation and maintance as needed.

Generally it should serve as a "test tool" and not used to manage a live extension, but you could, saves you writing your own Bits Product, or Extension Config Managment tool! If you do so it's at your own risk!

First Launch Screenshot

Check out more Screenshots

Installation

This is an Electron App, so it maybe installed from the GitHub releases tab. It should also update from GitHub as new versions are released on GitHub. (Needs testing as I've never done Electron updates via GitHub)

It is Code Signed with the Publisher Barry Carlyon

You can download the latest version from here on GitHub under releases

Uninstallation

You can use Windows "Add and Remove Programs" to uninstall the program.

You may need to manually remove data stored in the data/config storage location below.

Data/Config Storage

Data is stored in the following location

%appdata%/BarryCarlyonTwitchExtensionTools/

In the file config.json

Which follows the format:

{
    "extensions": {
        ...
        "a_client_id": {
            "name": "Your Entered Name",
            "client_id": "",
            "extension_secret": "base 64 encoded secret",
            "user_id": "Twitch owner ID"
        },
        ...
        "a_client_id_with_secret": {
            "name": "Your Entered Name",
            "client_id": "",
            "extension_secret": "base 64 encoded secret",
            "client_secret": "a client API secret",
            "user_id": "Twitch owner ID",
            "access_token": "A recently generated App Access Token"
        }
        ...
    },
    "active": {
        "client_id": "Selected active Extension ClientID set to use",
        "version": "Selected Version to talk to"
    },
    "window": {
        "size": [ width, height ],
        "position": [ x, y ]
    }
}

⭐ Tip: If you open the Application and the window has gone missing, close the app, open config.json for editing and completely reset "window" to {} and then reopen the app, it'll reset to default display, top left. The App does try to magically 0,0 the window if this happens but it might need a hand!

Supported Features

If a Key Sets Extension API Client Secret is Provided, alllowing the generation of client credentials

Not Supported Features

  • Extension View simulation, this might get explored but it's not gonna be as effective as actually testing on the Twitch Website itself (when in localtest).

Notes

  • Uses Electron to provide as a Desktop App
  • Uses Bootstrap for primary layout
  • Uses GitHub for update delivery and code management
  • JWT tokens are generated inside the App via auth0/node-jsonwebtoken, as apposed to "ClientSide" like this example
  • A number of sindresorhus Electron Modules.

Insomnia?

Basically this app is a "save my Extension configs" Insomnia-esque Rest Client. That wraps the main Extension functions in a handy Application. With some extra features!

Insomnia is a Rest client. I have written a Plugin for Insomnia to aid with JWT generating inside Insomnia itself. You can find that here on Github

Warranty

If you break your extension from using this tool it's your own fault and the author(s) accept no responsbility for problems caused to your extension from using this tool. Granted the worse thing you might do is deprecate a bits product you actually needed.....

License

This project is Licensed under Do What The F*ck You Want To Public License, so Just Do What the F*ck you want to!

Development Notes

This is an Electron Project

To run locally, after cloning, just

$ npm install
$ npn run start

Further Help with Twitch API

TwitchDev Discord

OMGLIEKWUT OHMYGOODNESS U SO MUCH HELP

Thank you for the help I want to give you beer/coffee money -> Check the Funding/Sponsor details

About

A "replacement" for the Twitch Developer Rig

License:Do What The F*ck You Want To Public License


Languages

Language:JavaScript 62.7%Language:HTML 35.5%Language:CSS 1.8%