Giter VIP home page Giter VIP logo

mac.are.na's Introduction

mac.are.na Travis build status

Are.na channel -> 🎶

Installation

  1. Copy .env.sample to .env
  2. Replace REACT_APP_SOUNDCLOUD_CLIENT_ID with your Soundcloud secret
  3. Run:
yarn install
yarn start

App Structure

This app uses a single state in <Main /> and passes this state first through a router, then to it's child components. Using a single, faux-redux-like state has many benefits – predictability, flexibility and simplicity. Methods and event handlers are treated the same way. Without local state, there is no confusion over where props originate or how different states interact. Items in the state can always be compared or updated.

Contributors

This project is maintained by Gavin Atkinson, Charles Broskoski, Callil Capuozzo, and Sam Hart

mac.are.na's People

Contributors

bradley avatar broskoski avatar callil avatar damassi avatar g-a-v-i-n avatar hxrts 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mac.are.na's Issues

directly visiting a playlist via URL = 404

To replicate:

  1. paste http://mac.are.na/playlist/what-i-think-is-sexy into browser and hit enter
  2. 404 Not Found (nginx)

However, this works:

  1. go to http://mac.are.na
  2. click page 6
  3. click Casey Gollan / what i think is sexy!

Anyway, thank you — this is so awesome & useful. Just discovered it last week because somebody added my channel to the mac.arena channel!! (Not expecting a fix, just noting it here in case it's helpful.)

Pagination

I will probably wait until GraphQL is set up to do this. Search and sorting/filtering make it difficult to use the API at the moment. In order for these features to work with pagination, the search/filter/sort params would have to be included in the GraphQL request instead of the front-end <Playslist /> and <Playlists /> components.

play / pause

I plan to implement this with a subheader that persists across views. It will have a play button and a current track time.

Eventually, this subheader will allow the user to nav away from the current playlist to browse other playlists while having control over playback and being able to return to the playlist of the current track.

analytics

We got a shoutout on Lot 2046's stream today which got me wondering what our actual usage is.

Generalize lib/helpers/tinyAPI

  • remove or reduce preference for mac.are.na in tinyAPI and helpers. caveat here is that the parser part of the API should be app-specific.
  • generalize react methods ie 'goToNextTrack' -> 'goToNext'
  • regex returns 1 match group but comments says it returns 2
  • append source identifier to block object like how validation is done now
  • eventually control validation / sanitization / source control with config file so the whole shebang can be used in are.na tv / are.na toolkit
  • make a template config for validation/filtering etc

Channel Sorting

I'd love to be able to sort channel list by name and date added.

Listened tracks

Store an array of track IDs which have been listened to in localstorage. Load this into state. Use this to show what tracks have been listened to, sort of like a :visited state.

bandcamp links

would be awesome to be able to add tracks from bandcamp. the 3rd largest selection of my links to music tracks are from there.

playback quality 'audit'

Since there is no config set on youtube quality (there can be) and the video is 1px x 1px, I wonder what the default playback quality is. If it is like 240/360 on hi-res uploads, we should up the ante if possible.

better player error handling

maybe log this with console.error for debug purposes. Sometimes track that have played successfully will error out.

tests

As Cab pointed out in #40, it might be a good idea to have some tests for fundamental features like track increment/decrement. Does anyone know how to write a test for this? It's a little more complex than just asking if a class has changed correctly etc.

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.