[plugin] HTTP server to control exaile

Bug #139584 reported by Mathieu Virbel
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Exaile
Confirmed
Wishlist
Mathieu Virbel

Bug Description

Hey !

I wrote a simple HTTP server to Exaile. You can view current playlist, change song, do some action on current track, and view track.
It's in xhtml/javascript, using XmlHTTPRequest.

They are few bugs :
- can't selected a track in playlist if some char are misunderdecoded
- can't stop webserver if it's launched

And some idea not yet implemented :
- detect if exaile is closed
- select another playlist
- detect if playlist have changed

I want some feedback before continue my work :)

Revision history for this message
Mathieu Virbel (tito-bankiz) wrote :

HttpServer.exz - the plugin

Revision history for this message
Mathieu Virbel (tito-bankiz) wrote :

And a screenshot

Revision history for this message
Mathieu Virbel (tito-bankiz) wrote :

I forgot : plugin don't appear has "started" after start.
And url to access : http://127.0.0.1:10000/

Revision history for this message
Mathias Brodala (mathbr) wrote :

The "Play" button doesn't reflect the current playback status. It should also be able to pause playback and resume instead of restarting it over and over again.

Revision history for this message
Mathias Brodala (mathbr) wrote :

Also changing document.title according to the current track info would be nice.

Revision history for this message
Adam Olsen (arolsen) wrote :

Wow, this is pretty awesome. Keep up the good work :)

Revision history for this message
Mathieu Virbel (tito-bankiz) wrote :

Include fix :
- work in Opera
- pause/play/resume button
- change document.title
and add :
- convert duration into 00:00
- add remaining duration in progress bar

Revision history for this message
Mathias Brodala (mathbr) wrote :

I recommend renaming the plugin to something like "Web frontend" since this is what it actually is and the user could be wanting. For him it’s not relevant that there’s a http server running in the background.

Revision history for this message
Mathieu Virbel (tito-bankiz) wrote :

New version include :
- a panel preference (to control which column to display, refresh time...)
- possibility to seek in current track
- rating and genre are available
- based on Prototype.js.

Enjoy.

Revision history for this message
Mathieu Virbel (tito-bankiz) wrote :

Screenshot with rating + panel preferences

Revision history for this message
Adam Olsen (arolsen) wrote :

I really like how you've implemented this. Would you like me to put in the preferences for things like port number and etc?

Changed in exaile:
assignee: nobody → tito-bankiz
importance: Undecided → Wishlist
status: New → Confirmed
Revision history for this message
Adam Olsen (arolsen) wrote :

Btw, I've added this to the main bzr repository. The latest version will be available in the plugins manager soon.

Revision history for this message
Mathieu Virbel (tito-bankiz) wrote :

For sure, you can add preferences for port !

Just one more thing : how can we do to terminate a Thread in Python ?

Revision history for this message
Betes (ben-t-scully) wrote :

Is there documentation for this plugin somewhere? I can't figure out how it works.

Revision history for this message
Mathias Brodala (mathbr) wrote :

> Is there documentation for this plugin somewhere? I can't figure out how it works.

Install the plugin, activate it and restart Exaile. Now you should be able to access the webinterface via http://localhost:10000.

Revision history for this message
Betes (ben-t-scully) wrote :

Thanks, got it!

Revision history for this message
vbman11 (vbman11) wrote :

Would it be faster/possible to run this in apache2?

Revision history for this message
vbman11 (vbman11) wrote :

Sorry for the double post, but you should also add audio/video streaming to this.

Btw I love this plugin, I have a jukebox like setup with this at my house.

Revision history for this message
Thorsten Mühlfelder (thenktor) wrote :

Will you port this to the 0.3 branch?

Some suggestions:
- Make the port configurable
- Add a login with name and password

Revision history for this message
reacocard (reacocard) wrote :

> Will you port this to the 0.3 branch?

All current plugin functionality will eventually be ported to 0.3.

Revision history for this message
A2 (barnard-martin) wrote :

Nice start to a http frontend!! (new to exaile & just examining it atm).
Wishlist for your excellent plugin:
Bindings for full playlist control & creation, database searching (etc) would be very nice if you have the time (basically port the frontend to the httpserver, 'cause I'm fed up of having to open the vnc client to connect to my media server to select playlist, etc. :-)

Revision history for this message
jgz (jegazmail) wrote :

Hey guyz.

Nice job man.

I was wondering.. (and sorry for being such a noob).
Is there any way to log in in to a site (not localhost), to access this plugin?
Would be great to control exaile via web (with my cellphone).

Anyway.

Thanks! Keep up the good work.
--
jgz

Revision history for this message
Mathias Brodala (mathbr) wrote :

> Is there any way to log in in to a site (not localhost), to access this plugin?

This is nothing Exaile can do but you are free to use a DynDNS service to have your system accessible from the web through a persistent host name.

Revision history for this message
MetalMatze (metalmatze) wrote :

Hey, I want this plugin too. Controlling exaile with my Android Phone would be amazing. But if I try to install it. It says something like "Incorrect Plugin Format"...I have Exaile 0.3.1.1. Thanks

Revision history for this message
Magnes (magnesus2) wrote :

The plugin format changed in Exaile 0.3.x. I tried to correct the plugin (it's a zip file, so you can edit the source code) using this documentation: http://exaile.org/wiki/index.php?title=PluginDevelopment - but I failed. I don't know Python so I was just grasping at straws here. Maybe someone who know more about Python could fix it?

Revision history for this message
Jonathan Tsai (jontsai) wrote :

Well, I just spent about 20 or so hours over the last two days learning how to get this plugin to work =). The existing API that can be found out there completely changed from Exaile 0.2.x to Exaile 0.3.x and is now obsolete, and the documentation was completely off. I am working off of Ubuntu Lucid Lynx. First, to get on the same, page, I needed to get the latest stable Exaile.

From: https://launchpad.net/~exaile-devel/+archive/ppa
    sudo add-apt-repository ppa:exaile-devel/ppa
    sudo apt-get update
    sudo apt-get install exaile

On my system, I use found the code just by doing
    which exaile
    less /usr/bin/exaile
    cd /usr/lib/exaile
    ...

Then I went to town

I created a new GitHub repository for this project so that people can work together on it collaboratively!
https://github.com/jontsai/Exaile-HTTP-Server

The build that I made today that works can be found here: https://github.com/jontsai/Exaile-HTTP-Server/downloads

Also attached here for convenience.

Revision history for this message
Jonathan Tsai (jontsai) wrote :

I just made another few fixes and built another package.

Please just download it from https://github.com/jontsai/Exaile-HTTP-Server/downloads

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.