Giter Site home page Giter Site logo

spicetify / marketplace Goto Github PK

View Code? Open in Web Editor NEW
955.0 9.0 169.0 12.89 MB

Download extensions and themes directly from Spicetify

License: MIT License

JavaScript 0.55% SCSS 19.67% PowerShell 1.52% Shell 1.18% TypeScript 77.08%
spicetify spicetify-extensions spicetify-custom-apps spotify

marketplace's People

Contributors

adamo2499 avatar afonsojramos avatar charlies1103 avatar dbolger avatar dependabot[bot] avatar fadexz avatar florry avatar inmk114514 avatar kyrie25 avatar mikahd666 avatar mythicsoul avatar neonyaa avatar ohitstom avatar om-thorat avatar pan93412 avatar plueres avatar pnthach95 avatar resxt avatar roythearsonist avatar rxri avatar sakura125809 avatar samuel2793 avatar spectrixdev avatar sunsettechuila avatar tetrax-10 avatar therealpadster avatar toomas633 avatar tsuliwaensis avatar ult227 avatar xerta555 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

marketplace's Issues

Refresh colour schemes on load?

It downloads the colour schemes on theme install, and caches them with the card/localstorage. While themes themselves will always be up-to-date, since they directly reference the css file, the colour schemes are cached in this way and won't update if the color.ini is updated on GitHub.

Add reset button to Settings modal

Reset button would need to delete all our keys. Not sure if we hardcode those in or iterate over localstorage (if possible) and delete anything starting with "marketplace".

Change button icon for options + tabs in Settings based on status

Right now, the "show stars" and "show installed in marketplace" settings always shows a checkmark, and the tab options always shows an x. The icon lights up a bit based on if it's enabled or not. It's not super clear what the icon means and what clicking it will do. We should make the icons change from a checkmark to an x and vice versa, or display an actual toggle switch UI if possible.

image

Clicking off Settings modal closes it without reload

Describe the bug
Clicking off Settings modal closes it without reload

To Reproduce
Steps to reproduce the behaviour:

  1. Open settings modal
  2. Click off the modal, in the overlay

Expected behaviour
Spotify reloads, like when you hit the close button

Desktop (please complete the following information):

  • OS: macOS
  • Marketplace version: 66361fb

Installed tab cards cache stars and never update

What I have now, with the "installed" tab cards loading just from localstorage, it's super fast, but also caches the stars at install time and never updates them. We may want a hybrid approach that just runs API calls if stars are enabled, or render the cards, but trigger an API call on creation that seamlessly updates the stars after render.

Support nested manifest.json files

It would be great to allow for repos to house multiple extensions.

Options:

  1. Search each top-level folder in the repo for a manifest.json
  • This would require a lot more github api calls.
  1. Allow the initialization of multiple extensions in a singular manifest file. (e.g. the manifest contains an array instead of single object).
  • This is probably the way to go.

Add children functionality

We could add a manifest key for an array of additional JS files I suppose. That would allow dribblish dynamic to work, since it needs an extension.

Add multiextension repo support to blacklists

Describe the bug
Currently, you can only blacklist an entire repository, would most likely be a good idea to add the ability to blacklist individual extensions on those repositories (but not necessary at this moment.)

Remove SCSS stack?

The scss stack was added mostly so I could easily nest/scope the water.css stylesheet into the readme pages, to get some basic styling in. I also just like how is more modular/readable. It does mean that the build/install process is more complicated for the main Spicetify repo if/when the marketplace is merged in.

I'm wondering if we are able to add a GitHub action to compile the css on release or when it's changed. Otherwise we might have to pick through water.css and strip anything extra, and end up with a lot of messy css for the custom app.

Library tab

a tab that displays already installed extensions so users can easily manage them: disable or delete it

Stop loading cards when switching tabs

I've noticed if you go back and forth in tabs while it's loading, it will finish every load and have a million of them. We should have something to abort when switching pages

Update extensions

Indicate to user in some way and automate updating extensions.
Use latest commit ID from the repo's default branch (main or master or whatever).
We'd have to save the commit ID in our metadata somewhere and check against the repo.
This would only be for if we do a local copy of the extension (e.g. with shell integration). If we do remote injection, it's always up to date.

Actually disable extension when uninstalling

Currently it just removes the extension from localstorage. We should call location.reload() and/or show some indication that the user needs to reload for the changes to reset (since the extension may have changed the DOM etc).

Handle themes without colour schemes

We should check for a colour schemes ini file and skip the colour scheme injection step if there is none. We might also need to make sure that it doesn't break when removing the existing user.css link...

Allow using non-default branch

We might need to add a branch key to the manifest, since I believe it just uses the default now. This would allow people to have a marketplace-specific branch, or a branch that houses releases as opposed to dev stuff.

Add categories to manifest?

We could display category tags in the cards, or in some UI for filtering, or have tabs for different categories maybe. It could possibly be displayed or ordered with an interface like the subreddit one in the settings modal.

image

Add card button functionality

We could have a download button that downloads/enables the extension, and change to a trash bin if they have it enabled already.

Optimize or better handle API limits

When switching back and forth between the marketplace and installed tabs, it makes a LOT of API calls (since we have one per page and then another one per extension in the results). This results in the API limit being hit and the calls to 403 error, which breaks stuff.

We should see if there is a way to fetch what we need without gobbling up API calls like it's pumpkin pie on Thanksgiving. And if that's not possible, at least have a more graceful fallback than just being stuck indefinitely with a loading icon.

Add theme support

This issue is for discussion on how to implement theme support. Someone brought up in Discord that you could add a custom "spicetify://" url handler that can be set up to run native commands. This would add a little extra setup for anyone using the store, but might work. We also want to be careful about fragmenting the code for different OSes, so probably not using any ActiveX shell stuff for Windows.

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.