Giter Club home page Giter Club logo

qooxtunes's Introduction

-------------------------------------------------------------------------------
qooxtunes
-------------------------------------------------------------------------------

qooxtunes is a webinterface addon for XBMC.  It leverages the powerful qooxdoo 
framework to present the user with a RIA interface that emulates some of the
best features of iTunes for library management.  It currently only supports 
music, but it could be extended to handle video and photos.


-------------------------------------------------------------------------------
server software
-------------------------------------------------------------------------------

qooxtunes is a unique webinterface addon in that it starts up a python-based web
service that runs on a separate TCP/IP port from the standard XBMC
JSON-RPC API.

This secondary web service is designed to do a few things that the standard
API does not provide:
  - downloading song files in a ZIP archive
  - listing m3u playlists
  - reading/creating/editing/deleting m3u playlists and playlist folders
  - saving metadata changes to multiple songs at once

The web service is found in qooxtunes-ws.py, and it uses some additional
libraries:
  - SimpleJSONRPCServer.py (part of the jsonrpclib project,
    https://code.google.com/p/jsonrpclib/)
  - zipstream2.py (a quick-and-dirty modification to SpiderOak's zipstream
    module, https://github.com/gourneau/SpiderOak-zipstream)

This web service brings with it some limitations:
 - the code only works with XBMC Frodo, since it makes direct database
   access; the filenames and/or schemas could change between versions
 - the code currently only works with sqlite databases
 - because the web service runs on another port from the main web
   application, it is considered "cross-origin".  The web service uses
   the appropriate CORS headers, but be advised that some browsers
   will not support this mechanism.
   http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

Obviously, I would love to get everything directly from the built-in
JSON-RPC API, but until all these features are available in the API, this
secondary web service will be required.


-------------------------------------------------------------------------------
client software
-------------------------------------------------------------------------------

The client software uses the qooxdoo framework (qooxdoo.org).

To build it, you need to download a copy of the library and unpack it into
the client/qx directory (e.g. client/qx/qooxdoo-3.0.1-sdk).

Then from the client directory, type "./generate.py build".  If you want to
do any debugging, I recommend doing "./generate.py source-hybrid".  This will
compile the necessary qooxdoo classes into an optimized JS file, but will leave
your class files separate for easy debugging.

You can deploy the code by running tools/deploy.sh.  Note that you will need 
to edit the file to set the appropriate path to your addon.  This script will
also deploy the server-side python code.

The deploy script deploys the code in such a way that the build code (the
compiled and optimized code) is in the default location.  But it also puts
the debuggable source version into place.

Access the build version at

 http://localhost:8080/

Access the source version at

 http://localhost:8080/source/

Note about SmartTableModel:

I included a copy of the SmartTableModel code in the source tree.  We are not
actually using that copy during the build; the qooxdoo config.json
is configured to pull the SmartTableModel code from the contrib repo. 
I just felt better having the source here as a "just in case" sort of thing.

qooxtunes's People

Contributors

jpriebe avatar

Stargazers

Phyo Arkar Lwin avatar  avatar

Watchers

James Cloos avatar dev Kim avatar  avatar

Forkers

yyl8815

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.