Giter Club home page Giter Club logo

extensionstore's Introduction

Harmony Unofficial Extension Store

This extension is an open source, user curated extension store to help TB Harmony users exchange the scripts they make.

Harmony brings together all kinds of shades of users, all trying to add their own helpful pieces to the experience and help others make the best animations possible. This store makes it easy to share and discover extensions others have made, and to add your own!

Compatibility

Harmony Premium 16 and up (requires package support)


Installation

Download the zip from the release page, create a subfolder named "packages" in the folder specified here, and copy the ExtensionStore folder from the zip directly into it.

Then, from inside Harmony, open the window called Extension Store from the new window drop down.


How to use

Once the window has been added to the Harmony interface, extensions can be installed/uninstalled with a simple click. Users get notified if new updates get posted, and can easily update.

To simplify finding extensions, it is possible to search by extension name but also by keyword.


How it works

HUES is a fully decentralized, open-source store which collects information about extensions made available by script makers on their github pages.

The list of script makers which are fetched by the store is available here and new users can ask to be added by making a pull request or getting in touch.

The github accounts will be checked for good faith, but the content of the extensions on it cannot be curated, so users must make sure they understand what they extensions they install.

For this, users can from the store directly access the repositories in one click from the extension description.


Adding your own extensions

In order to share the scripts they make, script makers must have a github account and create a "main" repository on which they will store the tbpackage.json file that describes the extensions they provide.

This repository's address is the one that will be added to the script maker list file.

Extensions can then be stored on other repositories made by the same user, as long as they are described correctly in the json file.

Register an extension:

After the files have been uploaded to github, it is possible to create the tbpackage.json file automatically by opening the Register new extension dialog at the bottom of the store interface.

The information about the new extension can be entered into the form, and files that will be associated to it can be added by selecting them directly from the repository. It is possible to simply specify a folder in order to include all its contents, as well as a filter to only include specific files from the folder (ex: "*.js" to include only javascript files)

The description can include basic html to be shown in the extension description panel. That said, to display images, only jpg are supported at the moment.

Icons will come soon!

Once the information has been filled, the button "Generate Package File" will allow users to generate a tbpackage.json file and upload it to their main repository.

It is possible to load an existing file in order to make adjustements and additions, either by loading it from the repository directly or by selecting a local version of the file.

Important information for script makers:

For the moment, version numbers are purely indicative and do not allow script makers to point users to a specific version of the code (commit). It only allows to notify users about there being a new version available. Be careful when making commits that break your extensions. This will be rectified in the future.


License

This extension is released under the Mozilla Public License 2.0.


Acknowledgements

  • Jonathan Fontaine for his help testing the store and designing the logo.
  • Chris Fourney for his help writing openHarmony and writing the first install script for this library on which this store is based.
  • All the script makers for their trust using this store.

extensionstore's People

Contributors

bob-ross27 avatar mchaptel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

extensionstore's Issues

Validate file operations

Installation / uninstallations should return the result of a verification - were all folders added or removed successfully - rather than assuming the operation was successful.

A valid CURL install wasn't found. Install CURL first

Hi, trying to run the extension store from Harmony20 on Win10.

it tries to run and then, if I understood correctly the system log, cycles through all the curl.exe(s) found in the system and try to connect to github with the command "-s -S -k https://github.com/", it fails and logs "Couldn't establish a connexion.
Check that somePathInTheSystem/curl.exe has internet access"

I already checked and curl.exe has internet access, it downloads the source for wikipedia.org and google.com. But it does nothing with github.com. (checked with curl.exe located inside Harmony folder in bin_3rdParty)

Maybe it is because I have my github account configured with an SSH key? I have no experience with curl so I have no idea what could be the problem.

Thank you!

image

Inline extension installation progress

All install operations should be made non-blocking where possible, and ideally use a QProgressBar directly in the UI to indicate progress vs a separate modal QProgressDialog.

Fix install on Mac OS

Currently, the install on Mac is done with the cp command which copies the whole download folder as opposed to it's contents.

UI overhaul

Move styling to dedicated lib and stylesheet .qss. Override default Harmony styles with a more modern aesthetic.

add icons to scripts list

For a better looking list and easier highlighting of new extensions, find a way to display icons in the list, hopefully without having to download them manually (html to display them directly?)

WebIcon should use StyledImage

Functionality overlaps between WebIcon and StyledImage. WebIcon could use StyledImage internally to handle icon scaling / setting to icons, while it adds functionality for async icon downloads.

Uninstallation of packages fails

Uninstalling a package fails to remove the containing directory as it's already deleted, and the local extension list isn't updated properly.

Fix logo

Export from source to remove slight pixellation on both the main splash logo and store header logo.

uninstall/install button in different places

Just a suggestion. Do not make the uninstall appear right under the "done" button.
It is very easy to uninstall by accident because the install button becomes a "done" push-me-please-style green button.
I rather would have both buttons present all the time, just greyed until they can be used and a message area under the button area to inform about the success.

Thank you!! Awesome panel.

EULA Page

Move boilerplate EULA text to dedicated view on first load. Once the terms have been accepted, don't show for future loads.
Rewrite existing text to feature social media and information about the store.

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.