AmaroK XUL Remote
Amarok 1.x Scripts
Score 50%
Description:

Control AmaroK from any Firefox browser on your network.

This AmaroK script embeds a Firefox extension and a HTTP server


FEATURES:
- player manipulation: play, pause, stop, next, previous, seek, volume
- auto refreshing playlist view, plays a given track on click, can delete tracks
- collection browser with filtering, ordered by artist/album
- drag and drop tracks, album and artists to the playlist
- cover view for current track
- access restricted by login/password/IP address

The project developpement is now hosted on: http://sourceforge.net/projects/xul-amarok/
please go there to report bugs or wishes.


REQUIREMENTS:
- python >= 2.3
- pyqt (python QT bindings)
- AmaroK >= 1.4.3
- Firefox >= 1.5

INSTALL:
- Download the archive, then install and run it with AmaroK script manager
- On the first launch, you will be prompted for some parameters:
- interface(optional): the IP adress of your network interface the server will listen on (empty means all)
- port (required): you can leave 8888 as a default
- login/passwd (optional): if you wish to restrict access
- on any host on your network, launch firefox, go to http://amarok_host:8888 , and install the extension
- restart firefox
- launch "AmaroK remote" in the firefox "Tools" menu.
- set the options of the extension to match those on the server

NOTES:
If you get troubles with the configuration interface, you can use this sample xulremote.ini file:

[debug]
debugajax = off
debugdcop = off

[httpauth]
passwd =
login =

[hosts]
allowed =

[listen]
interface = 127.0.0.1
port = 8888

of course replace 127.0.0.1 with the IP you want to listen on.
Last changelog:

12 years ago

1.0 - 2007-05-24
- new option to open the remote in a tab
- disable launch by KDE session manager (closes #1614228)

0.9b - 2007-04-30
minor fixes:
- Default server IP address to 127.0.0.1
- No more client hostname lookup
- new window for cover display

0.9a - 2006-11-03
- fix bug [ 1585368 ] Wrong file name transmitted

0.9 - 2006-10-21
- feature: context menus on collection and playlist
- feature: restrict connections from an IP addresses list
- works with firefox2, Amarok 1.4.3
- extension code rewrite

0.8 - 2006-04-30
- feature: delete tracks from playlist (press delete key)
- better playlist refreshing behaviour
- more playlist columns
- bugfix: collection browser now works fine with sqlite
- bugfix: more robust handling of unicode/non-unicode locales

0.7a - 2006-03-01
- bugfix: non resolved IPs could not connect
- no changes to extension

0.7 - 2006-02-25
- login/password authentication (HTTP Basic)
- big changes on the script side, now a pyqt application
- configuration interface
- always use dcop CLI, pydcop no longer required
- unicode bugfixes
- no more javascript warnings
- debugging possibilities, see xulremote.ini

0.6 - 2006-02-12
- unicode support
due to some issues with unicode and pydcop, the command line dcop is used for some actions

- reworked communication layer
uses AJAX instead of XML-RPC, which was designed for ascii

- sliders for seek and volume
adapted from foxytunes (thanks to Alex Sirota)

- amarok message on new connections
- cover view

0.5 - 2006-02-05
- support for firefox 1.5.0.1

0.4 - 2005-10-16
- drag and drop now works with albums and artists
- support for special characters

0.3 - 2005-09-10
- support for firefox 1.5 (won't work anymore with 1.0.x)
- use the new firefox preferences system
- works with amaroK 1.3
- better layout
- collection browser handles compilations
- dropped the Dynamic mode switch

0.2 - 2005-05-03
- Add a party mode enable/disable switch
- corrected bugs in the collection browser
- some cleanups

Sauna

11 years ago

Works really well with Ubuntu Dapper and Amarok 1.4-beta3.

The only problem I've had is with some unicode stuff, and for example if the Band has # in its name (like Hurricane#1).

Thank you!

Report

theheretic

11 years ago

Hello

I'm having some trouble with the script. It installs fine however upon starting it nothing happens. No config dialogue starts and the http server is not present either. I'm pasting some python debug output below for "python -dv XulRemote.py" in the hopes that it will help some.

Particulars:
XULRemote - latest available
Python - 2.3.4
PyQt - 3.13-1
Amarok - 1.4beta3

I'm running the RHEL 4 x86_64 distro.

[@draper xulremote]$ python -dv XulRemote.py
# installing zipimport hook
import zipimport # builtin
# installed zipimport hook
# /usr/lib64/python2.3/site.pyc matches /usr/lib64/python2.3/site.py
import site # precompiled from /usr/lib64/python2.3/site.pyc
# /usr/lib64/python2.3/os.pyc matches /usr/lib64/python2.3/os.py
import os # precompiled from /usr/lib64/python2.3/os.pyc
import posix # builtin
# /usr/lib64/python2.3/posixpath.pyc matches /usr/lib64/python2.3/posixpath.py
import posixpath # precompiled from /usr/lib64/python2.3/posixpath.pyc
# /usr/lib64/python2.3/stat.pyc matches /usr/lib64/python2.3/stat.py
import stat # precompiled from /usr/lib64/python2.3/stat.pyc
# /usr/lib64/python2.3/UserDict.pyc matches /usr/lib64/python2.3/UserDict.py
import UserDict # precompiled from /usr/lib64/python2.3/UserDict.pyc
# /usr/lib64/python2.3/copy_reg.pyc matches /usr/lib64/python2.3/copy_reg.py
import copy_reg # precompiled from /usr/lib64/python2.3/copy_reg.pyc
# /usr/lib64/python2.3/types.pyc matches /usr/lib64/python2.3/types.py
import types # precompiled from /usr/lib64/python2.3/types.pyc
import japanese # directory /usr/lib64/python2.3/site-packages/japanese
# /usr/lib64/python2.3/site-packages/japanese/__init__.pyc matches /usr/lib64/python2.3/site-packages/japanese/__init__.py
import japanese # precompiled from /usr/lib64/python2.3/site-packages/japanese/__init__.pyc
import japanese.aliases # directory /usr/lib64/python2.3/site-packages/japanese/aliases
# /usr/lib64/python2.3/site-packages/japanese/aliases/__init__.pyc matches /usr/lib64/python2.3/site-packages/japanese/aliases/__init__.py
import japanese.aliases # precompiled from /usr/lib64/python2.3/site-packages/japanese/aliases/__init__.pyc
import encodings # directory /usr/lib64/python2.3/encodings
# /usr/lib64/python2.3/encodings/__init__.pyc matches /usr/lib64/python2.3/encodings/__init__.py
import encodings # precompiled from /usr/lib64/python2.3/encodings/__init__.pyc
# /usr/lib64/python2.3/codecs.pyc matches /usr/lib64/python2.3/codecs.py
import codecs # precompiled from /usr/lib64/python2.3/codecs.pyc
import _codecs # builtin
# /usr/lib64/python2.3/encodings/aliases.pyc matches /usr/lib64/python2.3/encodings/aliases.py
import encodings.aliases # precompiled from /usr/lib64/python2.3/encodings/aliases.pyc
# /usr/lib64/python2.3/warnings.pyc matches /usr/lib64/python2.3/warnings.py
import warnings # precompiled from /usr/lib64/python2.3/warnings.pyc
# /usr/lib64/python2.3/linecache.pyc matches /usr/lib64/python2.3/linecache.py
import linecache # precompiled from /usr/lib64/python2.3/linecache.pyc
# /usr/lib64/python2.3/encodings/utf_8.pyc matches /usr/lib64/python2.3/encodings/utf_8.py
import encodings.utf_8 # precompiled from /usr/lib64/python2.3/encodings/utf_8.pyc
Python 2.3.4 (#1, Feb 6 2006, 10:38:45)
[GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
# /usr/lib64/python2.3/ConfigParser.pyc matches /usr/lib64/python2.3/ConfigParser.py
import ConfigParser # precompiled from /usr/lib64/python2.3/ConfigParser.pyc
# /usr/lib64/python2.3/re.pyc matches /usr/lib64/python2.3/re.py
import re # precompiled from /usr/lib64/python2.3/re.pyc
# /usr/lib64/python2.3/sre.pyc matches /usr/lib64/python2.3/sre.py
import sre # precompiled from /usr/lib64/python2.3/sre.pyc
# /usr/lib64/python2.3/sre_compile.pyc matches /usr/lib64/python2.3/sre_compile.py
import sre_compile # precompiled from /usr/lib64/python2.3/sre_compile.pyc
import _sre # builtin
# /usr/lib64/python2.3/sre_constants.pyc matches /usr/lib64/python2.3/sre_constants.py
import sre_constants # precompiled from /usr/lib64/python2.3/sre_constants.pyc
# /usr/lib64/python2.3/sre_parse.pyc matches /usr/lib64/python2.3/sre_parse.py
import sre_parse # precompiled from /usr/lib64/python2.3/sre_parse.pyc
# /usr/lib64/python2.3/string.pyc matches /usr/lib64/python2.3/string.py
import string # precompiled from /usr/lib64/python2.3/string.pyc
dlopen("/usr/lib64/python2.3/lib-dynload/strop.so", 2);
import strop # dynamically loaded from /usr/lib64/python2.3/lib-dynload/strop.so
# /usr/lib64/python2.3/threading.pyc matches /usr/lib64/python2.3/threading.py
import threading # precompiled from /usr/lib64/python2.3/threading.pyc
import thread # builtin
# /usr/lib64/python2.3/StringIO.pyc matches /usr/lib64/python2.3/StringIO.py
import StringIO # precompiled from /usr/lib64/python2.3/StringIO.pyc
import errno # builtin
dlopen("/usr/lib64/python2.3/lib-dynload/timemodule.so", 2);
import time # dynamically loaded from /usr/lib64/python2.3/lib-dynload/timemodule.so
# /usr/lib64/python2.3/traceback.pyc matches /usr/lib64/python2.3/traceback.py
import traceback # precompiled from /usr/lib64/python2.3/traceback.pyc
# /usr/lib64/python2.3/atexit.pyc matches /usr/lib64/python2.3/atexit.py
import atexit # precompiled from /usr/lib64/python2.3/atexit.pyc
dlopen("/usr/lib64/python2.3/site-packages/qt.so", 2);
dlopen("/usr/lib64/python2.3/site-packages/sip.so", 2);
import sip # dynamically loaded from /usr/lib64/python2.3/site-packages/sip.so
import qt # dynamically loaded from /usr/lib64/python2.3/site-packages/qt.so
# /home/dmair/.kde/share/apps/amarok/scripts/xulremote/XULremoteConfigDialog.pyc matches /home/dmair/.kde/share/apps/amarok/scripts/xulremote/XULremoteConfigDialog.py
import XULremoteConfigDialog # precompiled from /home/dmair/.kde/share/apps/amarok/scripts/xulremote/XULremoteConfigDialog.pyc
# /home/dmair/.kde/share/apps/amarok/scripts/xulremote/AmarokHTTPServer.pyc matches /home/dmair/.kde/share/apps/amarok/scripts/xulremote/AmarokHTTPServer.py
import AmarokHTTPServer # precompiled from /home/dmair/.kde/share/apps/amarok/scripts/xulremote/AmarokHTTPServer.pyc
# /usr/lib64/python2.3/shutil.pyc matches /usr/lib64/python2.3/shutil.py
import shutil # precompiled from /usr/lib64/python2.3/shutil.pyc
# /usr/lib64/python2.3/BaseHTTPServer.pyc matches /usr/lib64/python2.3/BaseHTTPServer.py
import BaseHTTPServer # precompiled from /usr/lib64/python2.3/BaseHTTPServer.pyc
# /usr/lib64/python2.3/socket.pyc matches /usr/lib64/python2.3/socket.py
import socket # precompiled from /usr/lib64/python2.3/socket.pyc
dlopen("/usr/lib64/python2.3/lib-dynload/_socketmodule.so", 2);
import _socket # dynamically loaded from /usr/lib64/python2.3/lib-dynload/_socketmodule.so
dlopen("/usr/lib64/python2.3/lib-dynload/_ssl.so", 2);
import _ssl # dynamically loaded from /usr/lib64/python2.3/lib-dynload/_ssl.so
# /usr/lib64/python2.3/mimetools.pyc matches /usr/lib64/python2.3/mimetools.py
import mimetools # precompiled from /usr/lib64/python2.3/mimetools.pyc
# /usr/lib64/python2.3/rfc822.pyc matches /usr/lib64/python2.3/rfc822.py
import rfc822 # precompiled from /usr/lib64/python2.3/rfc822.pyc
# /usr/lib64/python2.3/tempfile.pyc matches /usr/lib64/python2.3/tempfile.py
import tempfile # precompiled from /usr/lib64/python2.3/tempfile.pyc
# /usr/lib64/python2.3/random.pyc matches /usr/lib64/python2.3/random.py
import random # precompiled from /usr/lib64/python2.3/random.pyc
dlopen("/usr/lib64/python2.3/lib-dynload/mathmodule.so", 2);
import math # dynamically loaded from /usr/lib64/python2.3/lib-dynload/mathmodule.so
dlopen("/usr/lib64/python2.3/lib-dynload/_random.so", 2);
import _random # dynamically loaded from /usr/lib64/python2.3/lib-dynload/_random.so
dlopen("/usr/lib64/python2.3/lib-dynload/fcntlmodule.so", 2);
import fcntl # dynamically loaded from /usr/lib64/python2.3/lib-dynload/fcntlmodule.so
# /usr/lib64/python2.3/SocketServer.pyc matches /usr/lib64/python2.3/SocketServer.py
import SocketServer # precompiled from /usr/lib64/python2.3/SocketServer.pyc
dlopen("/usr/lib64/python2.3/lib-dynload/cStringIO.so", 2);
import cStringIO # dynamically loaded from /usr/lib64/python2.3/lib-dynload/cStringIO.so
# /usr/lib64/python2.3/cgi.pyc matches /usr/lib64/python2.3/cgi.py
import cgi # precompiled from /usr/lib64/python2.3/cgi.pyc
# /usr/lib64/python2.3/urllib.pyc matches /usr/lib64/python2.3/urllib.py
import urllib # precompiled from /usr/lib64/python2.3/urllib.pyc
# /usr/lib64/python2.3/httplib.pyc matches /usr/lib64/python2.3/httplib.py
import httplib # precompiled from /usr/lib64/python2.3/httplib.pyc
# /usr/lib64/python2.3/urlparse.pyc matches /usr/lib64/python2.3/urlparse.py
import urlparse # precompiled from /usr/lib64/python2.3/urlparse.pyc
import xml # directory /usr/lib64/python2.3/xml
# /usr/lib64/python2.3/xml/__init__.pyc matches /usr/lib64/python2.3/xml/__init__.py
import xml # precompiled from /usr/lib64/python2.3/xml/__init__.pyc
import _xmlplus # directory /usr/lib64/python2.3/site-packages/_xmlplus
# /usr/lib64/python2.3/site-packages/_xmlplus/__init__.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/__init__.py
import _xmlplus # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/__init__.pyc
import xml.dom # directory /usr/lib64/python2.3/site-packages/_xmlplus/dom
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/__init__.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/__init__.py
import xml.dom # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/__init__.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/DOMImplementation.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/DOMImplementation.py
import xml.dom.DOMImplementation # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/DOMImplementation.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/Range.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/Range.py
import xml.dom.Range # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/Range.pyc
import xml.dom.html # directory /usr/lib64/python2.3/site-packages/_xmlplus/dom/html
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/html/__init__.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/html/__init__.py
import xml.dom.html # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/html/__init__.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/html/HTMLDOMImplementation.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/html/HTMLDOMImplementation.py
import xml.dom.html.HTMLDOMImplementation # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/html/HTMLDOMImplementation.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/MessageSource.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/MessageSource.py
import xml.dom.MessageSource # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/MessageSource.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/FtCore.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/FtCore.py
import xml.FtCore # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/FtCore.pyc
# /usr/lib64/python2.3/gettext.pyc matches /usr/lib64/python2.3/gettext.py
import gettext # precompiled from /usr/lib64/python2.3/gettext.pyc
# /usr/lib64/python2.3/copy.pyc matches /usr/lib64/python2.3/copy.py
import copy # precompiled from /usr/lib64/python2.3/copy.pyc
dlopen("/usr/lib64/python2.3/lib-dynload/structmodule.so", 2);
import struct # dynamically loaded from /usr/lib64/python2.3/lib-dynload/structmodule.so
# /usr/lib64/python2.3/locale.pyc matches /usr/lib64/python2.3/locale.py
import locale # precompiled from /usr/lib64/python2.3/locale.pyc
dlopen("/usr/lib64/python2.3/lib-dynload/_localemodule.so", 2);
import _locale # dynamically loaded from /usr/lib64/python2.3/lib-dynload/_localemodule.so
# /usr/lib64/python2.3/encodings/latin_1.pyc matches /usr/lib64/python2.3/encodings/latin_1.py
import encodings.latin_1 # precompiled from /usr/lib64/python2.3/encodings/latin_1.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/domreg.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/domreg.py
import xml.dom.domreg # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/domreg.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/minicompat.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/minicompat.py
import xml.dom.minicompat # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/minicompat.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/minidom.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/minidom.py
import xml.dom.minidom # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/minidom.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/xmlbuilder.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/xmlbuilder.py
import xml.dom.xmlbuilder # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/xmlbuilder.pyc
# /usr/lib64/python2.3/site-packages/_xmlplus/dom/NodeFilter.pyc matches /usr/lib64/python2.3/site-packages/_xmlplus/dom/NodeFilter.py
import xml.dom.NodeFilter # precompiled from /usr/lib64/python2.3/site-packages/_xmlplus/dom/NodeFilter.pyc
# /usr/lib64/python2.3/base64.pyc matches /usr/lib64/python2.3/base64.py
import base64 # precompiled from /usr/lib64/python2.3/base64.pyc
dlopen("/usr/lib64/python2.3/lib-dynload/binascii.so", 2);
import binascii # dynamically loaded from /usr/lib64/python2.3/lib-dynload/binascii.so
# /home/dmair/.kde/share/apps/amarok/scripts/xulremote/Amarok.pyc matches /home/dmair/.kde/share/apps/amarok/scripts/xulremote/Amarok.py
import Amarok # precompiled from /home/dmair/.kde/share/apps/amarok/scripts/xulremote/Amarok.pyc
# /usr/lib64/python2.3/inspect.pyc matches /usr/lib64/python2.3/inspect.py
import inspect # precompiled from /usr/lib64/python2.3/inspect.pyc
# /usr/lib64/python2.3/dis.pyc matches /usr/lib64/python2.3/dis.py
import dis # precompiled from /usr/lib64/python2.3/dis.pyc
# /usr/lib64/python2.3/opcode.pyc matches /usr/lib64/python2.3/opcode.py
import opcode # precompiled from /usr/lib64/python2.3/opcode.pyc
import imp # builtin
# /usr/lib64/python2.3/tokenize.pyc matches /usr/lib64/python2.3/tokenize.py
import tokenize # precompiled from /usr/lib64/python2.3/tokenize.pyc
# /usr/lib64/python2.3/token.pyc matches /usr/lib64/python2.3/token.py
import token # precompiled from /usr/lib64/python2.3/token.pyc
[XUL remote] starting readStdin
[XUL remote] error reading config: won't start HTTPD

Report

mbedouet

11 years ago

hi,

that's weird.
the HTTP server is not launched until a config file is created.
however, the config window should appear if you don't have a config file.
just to be sure, do you have a ~.kde/share/apps/amarok/scripts-data directory, is there a xulremote.ini file into?

Report

theheretic

11 years ago

Yes, I did check the scripts-data directory to see if I could change some settings manually and there was not config file in there.

I did try to run this on my FC5 system with Amarok 1.4beta3 and it worked perfectly so that leads me to believe this has something to do with my system being 64-bit (maybe there's some compat lib missing or something for python?)

Just for the heck of it I tried copying over the working XULremote.ini from my FC5 system and tried to fire it up. Still nothing, even with turning the debugajax and debugdcop parameters set to on.

Report

theheretic

11 years ago

Sorry to reply to my own post but I just double checked lsof and I must have missed it the first time. The remote script is running on my system so the problem seems to only be with the configuration dialogue itself.

Let me know what you need as I'll be more than happy to help debug this (or figure out what stupid thing I've done to cause this ;o))

Report

mbedouet

11 years ago

there may be a problem with pyqt on your system.
have you tried another script like webcontrol (provided with amarok) that uses pyqt for its config dialog?

Report

theheretic

11 years ago

Thanks for the responses. Yes, I have. WebControl, for example, does work.

On a side note, WebControl doesn't offer nearly the amount of control that your script does. Actually, I think the only thing I'm missing is the ability to load playlists already stored in Amarok (as opposed to making playlists on the fly).

At any rate, I have XULRemote working by creating the config file manually on the system and outside of that problem I'm quite happy with this script.

When I'm back in my office later this week, I'll try testing loading the script on an FC5 x86_64 distro to see if the same problem occurs and let you know how that goes as well.

Report

theheretic

11 years ago

I'm going to chalk this up to a borked install on my RHEL 4 system. I just tested this on my FC5 x86_64 box and it worked perfectly.

It is a little wierd that others, like WebControl work but the config interface doesn't for XUL but it's definitely not a big deal since it can be worked around by supplying the config file manually.

All in all, I love this script! Like I said in an earlier post the only thing I'm really missing and would love to see added is the ability to manipulate existing saved playlists. Great job!!

heretic

Report

GodsMadClown

11 years ago

I had a similar problem with the config interface being wonky. This was on a spanking new install of Ubuntu 6.06.

Report

JoeBlack

10 years ago

I do have exactly the same Problems as you have, and i would like to configure XUL by Hand, so that it may work.
Could anyone plz paste the xulremote.ini here?

Report

laboua

11 years ago

Excellent script! Worked out of the box on Gentoo64, running Amarok 1.4_beta3-r2, with the installation done from the script manager. Don't you just love this program?

Now my girlfriend can listen to her favourite music, controlling it through her windows(...) pc :)

very basic suggestions (probably already in your head):
* it would be nice to have more control over the playist, like changing order
* also be able to add entries from the playlists tab (think radio stations)

All in all, I think this one should be shipped by default with Amarok :)

Report

azreal

11 years ago

Hi,

maybe a stupid think. My problem is that the download of the extension only works if I try it on the localhost, means if I start firefox with localhost:8888 on the amarok server with my amarok 1.3 and the XUL remote script running.

If I try to install the extension on any other computer in the lan via ip_of_amarok_server:8888 then nothing happens. The firefox 1.5.0.1 is set to accept extensions from the amarok server, and the firewalls of server and client are deactivated. Other ports don't work, too.

Anybody got an idea what could be wrong?

Thx...

Report

mbedouet

11 years ago

Hi,

it depends on the interface you set up in the script preferences, you can configure this from the script manager.

you may try to leave it empty, or to put the IP adress of your server's LAN interface.

Report

azreal

11 years ago

Thanks, but that is obviously not the thing... I tried with the IP of the server in the field "Interface" and also with leaving this field empty. For the Clients there is no difference visible. If I start firefox on the server itself it depends to the value of "Interface" if I can install the extension or not, so the function itself seems to work, but not in my lan.

Any other ideas?

Report

mbedouet

11 years ago

Hi,

I've reproduced the problem, it's now fixed in 0.7a.
the script was failing when trying to resolve IPs without hostname.

thanks for your feedback!

Report

azreal

11 years ago

Thank you, that was really fast! It's working now.

Report

rugge

11 years ago

When I start the extension in Firefox 1.5.0.1 an error message is shown. The collection remains empty.

This is the error message:

amarok: BEGIN: void ScriptManager::slotReceivedStderr(KProcess*, char*, int)
amarok: [ScriptManager] [ERROR!] XulRemote.py:
amarok: localhost - - [13/Feb/2006 11:36:10] code 500, message UnicodeDecodeError: 'utf8' codec can't decode bytes in position 2-4: invalid data

Report

ti22

11 years ago

second that. get the same error on firefox 1.5.0.1

Report

mbedouet

11 years ago

Hi,
one of your artists tags may contain characters than can't be converted to unicode.
I will release a new version this week-end that will handle this, and will have new features like authentication, some debugging possibilities and correct others bugs.

Report

diamondT

11 years ago

Nice extension!

But what about UTF strings in tags? Most of my mp3s have non-english tag fields, they appear just fine in amarok but completely scr***d in firefox window :-(

Report

mbedouet

11 years ago

Hi,

I'm working on it, and it's almost ready for release.
0.6 will be released very soon, after some more testing (I have to check it still works with a non-SVN amarok, on a non utf-8 system).

It features big changes under the hood, I've replaced xml-rpc with ajax.
Also I'd like to put real sliders for volume and seek, I have to find an example.

stay tuned!

Report

jjensen

11 years ago

Is there an update comming? I was just checking this out and while I was installing the script on the server the client machine updated to Firefox 1.5.0.1, when I tried to install the extension it gave me a compatibility error (XML remote only works with firefox versions 1.4 to 1.5!!) and I was so excited...

Report

mbedouet

11 years ago

Hi,
try the new version, it should work

Report

rottie

11 years ago

wow! great! super!


One question: clicking on a song in the collection list doesn't add it to the playlist. Rightclicking doesn't do anything either. Only draging seems to work.
Is this normal behaviour or do I have a problem.
Same behaviour on the (linux) localhost as on the remote xp box.

Report

jtchaneg

11 years ago

Wow! This remote app complies almost exactly with my needs.

Would it be possible to sort songs ?

Report

12 years ago

1.0 - 2007-05-24
- new option to open the remote in a tab
- disable launch by KDE session manager (closes #1614228)

0.9b - 2007-04-30
minor fixes:
- Default server IP address to 127.0.0.1
- No more client hostname lookup
- new window for cover display

0.9a - 2006-11-03
- fix bug [ 1585368 ] Wrong file name transmitted

0.9 - 2006-10-21
- feature: context menus on collection and playlist
- feature: restrict connections from an IP addresses list
- works with firefox2, Amarok 1.4.3
- extension code rewrite

0.8 - 2006-04-30
- feature: delete tracks from playlist (press delete key)
- better playlist refreshing behaviour
- more playlist columns
- bugfix: collection browser now works fine with sqlite
- bugfix: more robust handling of unicode/non-unicode locales

0.7a - 2006-03-01
- bugfix: non resolved IPs could not connect
- no changes to extension

0.7 - 2006-02-25
- login/password authentication (HTTP Basic)
- big changes on the script side, now a pyqt application
- configuration interface
- always use dcop CLI, pydcop no longer required
- unicode bugfixes
- no more javascript warnings
- debugging possibilities, see xulremote.ini

0.6 - 2006-02-12
- unicode support
due to some issues with unicode and pydcop, the command line dcop is used for some actions

- reworked communication layer
uses AJAX instead of XML-RPC, which was designed for ascii

- sliders for seek and volume
adapted from foxytunes (thanks to Alex Sirota)

- amarok message on new connections
- cover view

0.5 - 2006-02-05
- support for firefox 1.5.0.1

0.4 - 2005-10-16
- drag and drop now works with albums and artists
- support for special characters

0.3 - 2005-09-10
- support for firefox 1.5 (won't work anymore with 1.0.x)
- use the new firefox preferences system
- works with amaroK 1.3
- better layout
- collection browser handles compilations
- dropped the Dynamic mode switch

0.2 - 2005-05-03
- Add a party mode enable/disable switch
- corrected bugs in the collection browser
- some cleanups

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
1.0
updated May 23 2007
added May 01 2005
downloads today
0
page views today 3