Skip to content
This repository

Online music player

Octocat-spinner-32 dateutil Added cron job to get last_updated on external_users
Octocat-spinner-32 dropbox Add a dropbox connection to your account
Octocat-spinner-32 html Cleanup
Octocat-spinner-32 images Added favicon.ico and fixed icon links with sizes
Octocat-spinner-32 make Removed fastclick
Octocat-spinner-32 scripts Code style
Octocat-spinner-32 styles Remove share/flattr buttons from about popup
Octocat-spinner-32 .gitignore Updated git ignore
Octocat-spinner-32 MIT-LICENSE.txt Add MIT-LICENSE text file
Octocat-spinner-32 README.md Updated build instructions
Octocat-spinner-32 activities.py Migrated to python 2.7
Octocat-spinner-32 alternatives.py Set debug to off
Octocat-spinner-32 app.yaml Cleanup
Octocat-spinner-32 appengine_config.py Enabled app stats
Octocat-spinner-32 chrome_webstore_background.js Add ability to use absolute URLs to Youtify API
Octocat-spinner-32 chrome_webstore_manifest.json Fix bug in manifest
Octocat-spinner-32 config_template.py Remove SearchStats system
Octocat-spinner-32 cron.yaml Cleanup
Octocat-spinner-32 dropbox-handler.py Set debug to off
Octocat-spinner-32 external_users.py Set debug to off
Octocat-spinner-32 fakesetup.py Set debug to off
Octocat-spinner-32 favorites.py Set debug to off
Octocat-spinner-32 flattr.py Set debug to off
Octocat-spinner-32 happytranslate.py Set debug to off
Octocat-spinner-32 index.yaml Updated external_users with last_checked so all get checked by the cr…
Octocat-spinner-32 lastfm.py Set debug to off
Octocat-spinner-32 mail.py Set debug to off
Octocat-spinner-32 main.py Set debug to off
Octocat-spinner-32 me.py All playlist requests now returns playlist overviews
Octocat-spinner-32 migrations.py Set debug to off
Octocat-spinner-32 model.py All playlist requests now returns playlist overviews
Octocat-spinner-32 opensearch.xml Added www to address in opensearch.xml
Octocat-spinner-32 ping.py Set debug to off
Octocat-spinner-32 playlists.py Set debug to off
Octocat-spinner-32 playlists_toplist.py Set debug to off
Octocat-spinner-32 robots.txt Updated robots.txt
Octocat-spinner-32 soundcloud_id_to_permalink.py Set debug to off
Octocat-spinner-32 sucks.py Set debug to off
Octocat-spinner-32 translations.json Update translations with 'Keyboard Shortcuts' label
Octocat-spinner-32 update_translations.sh Add script to update translations
Octocat-spinner-32 users.py All playlist requests now returns playlist overviews
Octocat-spinner-32 youtify.webapp Updated Youtify's logo and banner. Added guidlines to /logo
README.md

Youtify is an online music player.

Flattr this git repo

Code Style

Filenames are PascalCased and match the class name. Example:

ContextMenu.js

Namespaces are always PascalCased. Example:

var TopList = {
}

Classes are always PascalCased. Example:

function PlaylistManager(foo, bar) {
}

Variables are camelCased. Example:

var playlistManager = ...;

Global functions and variables should be avoided and are only allowed in Main.js

Namespaces and classes are always put in files with the same name.

How to get the development environment set up

  1. git clone git@github.com:youtify/youtify.git
  2. Download and install the Google AppEngine SDK http://code.google.com/appengine/downloads.html
  3. From the GAE SDK, select File -> Add Existing Application -> Select the Youtify git repository folder you just checked out
  4. Start Youtify from the GAE SDK
  5. You're done! Navigate your browser to http://localhost:8080 (or whatever port you selected).

Build & Deploy

When developing, Youtify requests all script files individually. However, on the production envrioronment we use a one big minimized script. To generate this script, you need to run our build system.

Dependencies: python 2.7 and node 0.8.2 needs to be installed.

$ cd YOUTIFY_DIR/make

Install JSLint, UglifyJS and other dependencies:

$ npm install

To run the build system:

$ node make/generate_production_javascript.js

Discussion

Twitter: @youtify, @pthulin, @kallux Mail: youtify@youtify.com ... or create issues here on GitHub!

Something went wrong with that request. Please try again.