Hi all,,
Here follows a brief update about my work at Amarok scripting engine. I
have ported back Amarok.Lyrics interface, and have been writing my own
QTScript extensions. With that I plan to have previous scripts, such as
Ultimate Lyrics, running over QJSEngine without any modification.
The port of QTScript extensions is not easy; I have to do it
class-by-class upon usage at the scripts. Therefore I will select few of
the most popular scripts and only port the classes/methods needed by
those. Other scripts and their requirements will be ported upon requests.
Finally, I ask the other member about the revision process. I know we
have shortage of people. Still many merge requests are simply not moving
forward. Thus I ask if there's something I can do to speed it up, such
as publish at Phabricator. Or even if I anyone oppose to the policy of
merging without peer approval if no response for more than X weeks.
Regards,
Pedro
Den 2020-06-24 kl. 11:34, skrev Pedro de Carvalho Gomes:
Hi all,
I have concluded the port from QTScript, which is deprecated, to
QJSEngine. I tried to mimic the old script behavior as close as
possible, and I think I mostly succeeded.
Few things couldn't be ported yet. Here are the most important ones:
- QJSEngine doesn't have a script debugger widget. Such was used by
the script console. Probably it can be reimplemented by reusing the
QML debugger from KDevelop.
- QJSEngine doesn't have an equivalent to QTScript's extensions,
which are loaded with Importer.loadQtBinding (qt.core, qt.network,
qt.gui, etc). I believe it's possible to simulate those by exporting
classes from those packages (If I find a list of which class is at
which package, things would be easier).
- Amarok.Lyrics had been removed from the scripting API when the new
C++ lyrics engine was added. I think it should be restored it and
combined it with the current lyrics engine
I believe the code is in good shape, and may be incorporated to
master. And thus shipped with the next alpha release for testing. Here
is the link to merge request:
https://invent.kde.org/multimedia/amarok/-/merge_requests/9
If you want to try it, I have created packages for Ubuntu 18.04, 19,10
and 20.04:
https://launchpad.net/~pgomes/+archive/ubuntu/amarok/+packages
I also provided few Dockerfiles for trying in other distros:
https://github.com/pcgomes/amarok/tree/master/distribution/docker
As usual, all feedback and support is welcome.
Cheer,
Pedro