Porting MM4 scripts

To discuss development of addons / skins / customization of MediaMonkey.

Moderators: jiri, drakinite, Addon Administrators

ZvezdanD
Posts: 3257
Joined: Thu Jun 08, 2006 7:40 pm

Porting MM4 scripts

Post by ZvezdanD »

I see, it will be as I feared. So, count me out. And all my scripts. I spent months and months of my time developing VBScripts and I really don't have any intention to spend the rest of my life to do that again in some another language and using some another API. Maybe if you pay me, bit not for free anymore.

By the way, you should make a public poll to see if users more prefer Windows application which would be compatible with the previous versions or some new cross-platform application which cannot use any of the existing scripts.
Magic Nodes 4.3.3 / 5.2 RegExp Find & Replace 4.4.9 / 5.2  Invert Selection/Select None 1.5.1  Export/Create Playlists for Child Nodes 4.1.1 / 5.4.1  Expand Child Nodes/Expand All 1.1.2  Event Logger 2.7  Filtered Statistics Report 1.6  Track Redirection & Synchronization 3.4.2  Restore/Synchronize Database 3.1.8 / 4.0.1  Find Currently Playing Track 1.3.2  Queue List 1.2.1  Add to Library on Play 1.0.1  Tree Report for Child Nodes 1.1.1  Update Location of Files in Database 1.4.5 / 2.3  Inherit Child Playlists 1.0.3  Add Currently Playing/Selected Track(s) to Playlist 1.2
Melloware
Posts: 339
Joined: Mon Aug 18, 2008 9:46 am
Location: Philadelphia, PA, US
Contact:

Re: MM5 Developer API

Post by Melloware »

While as a developer I totally appreciate what you are trying to do and the goal of cross platform is difficult undertaking but opens you to new markets.

I have to agree with ZvezdanD.

My product MonkeyTunes is a complicated C# .NET app that uses your COM object to handle all the communication back and forth to MM. I just don't see how in any world I could port that to your JS based framework, and even if I could I would estimate it would take me tons of hours of investment that I just don't have to give.

I think you will find too many developers that have invested so much in your previous Scripting/COM framework that some will be easy to port, but others like mine will be almost impossible to port without throwing away almost all the code we are written and starting from scratch.

So unfortunately I will not be porting MonkeyTunes to MM5. I do honestly and sincerely wish you the best of luck with MM5.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Melloware Inc.
MonkeyTunes - DACP Server for MediaMonkey
Intelliremote - Take Back Control of your HTPC!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
trixmoto
Posts: 10024
Joined: Fri Aug 26, 2005 3:28 am
Location: Hull, UK
Contact:

Re: MM5 Developer API

Post by trixmoto »

Wow, a bold and exciting move - I'm looking forward to trying it out. I'm never going to find time to port all my scripts across, but I only learned VBScript for MM scripting, HTML/CSS/Javascript is where I'm more comfortable, so I don't mind the change. Some of my scripts reply on VBscript functionality that can't be replicated in Javascript though (tight IE coupling) so might need a few API methods adding. It would be interesting to discuss what new features might be coming along in MM5 that would make any of my scripts redundant, as this would help narrow the field!
Download my scripts at my own MediaMonkey fansite.
All the code for my website and scripts is safely backed up immediately and for free using Dropbox.
jiri
Posts: 5417
Joined: Tue Aug 14, 2001 7:00 pm
Location: Czech Republic
Contact:

Re: Porting MM4 scripts

Post by jiri »

Let me start with some clarification. We understand that nobody is happy to rewrite code because of some API changes. After all, we are all developers and we know how annoying it can be. That said, solution using COM objects and VBS clearly isn't sustainable in a long term. I guess that I don't need to go into details, but VBS is pretty much a dead language now, replaced by far more widespread and standardized languages.

Then, another point, the whole step of redeveloping MM5 wasn't only to support more platforms. This new version offers so much more! The whole UI is developed in HTML/JS and this part is open-sourced. So whatever you see in the app can be modified/removed/rewritten in a custom script. Please check out the sample scripts - bitrate shown in different colors based on its value? No problem, it's a trivial script. JS also is so much faster - did you notice that the whole visualization is a pure JS?! And thanks to the crossplatformness, this scripts aren't Win-only, but work in the upcoming Mac build and it doesn't necessarily stop there - Android? Windows Phone? Even this might be possible in the future.

Anyway, back to porting VBS scripts. We certainly don't want to lose you, our dedicated community of scripters. That's also the reason why we started this Preview - to let you know about the upcoming changes a long time before our regular users and to discuss here in the forum, what could be done in order to perform this transition smoothly. Namely:

- Undertaking the VBS->JS conversion (@ZvezdanD): I wonder whether using something like the http://slingfive.com/pages/code/scriptconverter/ would help? This way the basics of the conversion could be done automatically and only details could be tweaked. Since the source is available, maybe it could even be tweaked to perform some MM specific modifications. Thoughts?

- COM objects (@Melloware): I don't think that supporting the whole COM model in MM5 is possible, but maybe it'd make sense to support at least some basic objects. Which objects are needed for MonkeyTunes operation?

- IE coupling (@trixmoto): Not sure what exactly you need, but web browser usage is possible in MM5, it's just embedded Chromium in MM5, which I suppose should be fine?

Let me know your thoughts please!

Jiri
ZvezdanD
Posts: 3257
Joined: Thu Jun 08, 2006 7:40 pm

Re: Porting MM4 scripts

Post by ZvezdanD »

jiri wrote: - Undertaking the VBS->JS conversion (@ZvezdanD): I wonder whether using something like the http://slingfive.com/pages/code/scriptconverter/ would help? This way the basics of the conversion could be done automatically and only details could be tweaked. Since the source is available, maybe it could even be tweaked to perform some MM specific modifications. Thoughts?
Too bad I am old enough not to believe in Santa Claus and fairy tales. Then again, maybe you are speaking from your own experience after using some similar software that converted MM4 to MM5 with only some small "detail tweaks".
Magic Nodes 4.3.3 / 5.2 RegExp Find & Replace 4.4.9 / 5.2  Invert Selection/Select None 1.5.1  Export/Create Playlists for Child Nodes 4.1.1 / 5.4.1  Expand Child Nodes/Expand All 1.1.2  Event Logger 2.7  Filtered Statistics Report 1.6  Track Redirection & Synchronization 3.4.2  Restore/Synchronize Database 3.1.8 / 4.0.1  Find Currently Playing Track 1.3.2  Queue List 1.2.1  Add to Library on Play 1.0.1  Tree Report for Child Nodes 1.1.1  Update Location of Files in Database 1.4.5 / 2.3  Inherit Child Playlists 1.0.3  Add Currently Playing/Selected Track(s) to Playlist 1.2
Melloware
Posts: 339
Joined: Mon Aug 18, 2008 9:46 am
Location: Philadelphia, PA, US
Contact:

Re: Porting MM4 scripts

Post by Melloware »

Jiri,

I will PM you my main C# .NET source file of Monkeytunes so you can see what I am using the COM for and I use an Auto VBScript to launch Monkeytunes and attach to the inprocess COM object. I wrapped most of the other logic up into a DACP library I open sourced a while ago.

That way you can see for yourself how ingrained it is with the COM.

Mello
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Melloware Inc.
MonkeyTunes - DACP Server for MediaMonkey
Intelliremote - Take Back Control of your HTPC!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
gege
Posts: 866
Joined: Tue Sep 05, 2006 2:10 pm
Location: Brazil

Re: Porting MM4 scripts

Post by gege »

Well,
I have only one script, Lyrics Viewer, which is just a panel with HMTL content. MM5 being basically a browser turned multimedia manager/player, I suppose it won't be that difficult to re-write it from scratch. On the other hand, all existing themes previously created, by me and by other forum members, will need rewrintg too, since they rely heavily on IE's way of doing things.

But, then, there's a doubt: is LV still relevant enough, now that MM can display (and fetch!) Lyrics natively in Art & Details window?

Additionally, I don't have all that spare time I used to, so, converting LV to MM5 is still kind of a maybe for me...
flashk
Posts: 188
Joined: Sun Dec 11, 2005 5:04 pm

Re: Porting MM4 scripts

Post by flashk »

Wow, big changes! The use of chromium seems like a great choice in terms of opening up the application to developers/skinners. Will the build of chromium used by MM5 include support for WebGL and WebSockets? Also, are you leveraging any existing JS frameworks for creating the UI (e.g. Sencha, Dojo, jQueryUI)?

I do share some concern with the other developers. Losing the existing library of addons would be a big loss. Having some sort of automatic VBScript to JS conversion/translation layer would be nice, even if it were Windows only. Not sure how it would be done though.
jiri
Posts: 5417
Joined: Tue Aug 14, 2001 7:00 pm
Location: Czech Republic
Contact:

Re: Porting MM4 scripts

Post by jiri »

@Melloware: Thanks, we'll look into it and decide what's the best approach.

@gege: I guess that any extension to MM functionality would be welcomed! MM5 offers more itself, but I'd say that it still can be extended in many ways and LV would be nice to have.

@flashk: The Chromium used by MM5 is complete and so anything that runs fine in Chrome should work fine in MM5. We don't use any JS framework, since we decided that targeting a modern HTML5 browser only solves many things these frameworks offer. Then, we needed some own common utility functions that are mostly in mminit.js, which is a kind of lightweight framework (together with some other bits of code). That said, should you need any particular framework for your project, it's easy to just add it to your code.

Jiri
crap_inhuman
Posts: 933
Joined: Sat Jan 26, 2013 6:00 am
Location: Friedberg / Hessen / Germany
Contact:

Re: Porting MM4 scripts

Post by crap_inhuman »

I maintain the Discogs Tagger and the DarkLyrics Script. VBScript is my favourite language, with JS I'm having a hard time. So, if you ask me, i'm not happy about this new way of scripting. But i will having a look into the new API, trying to port the scripts.
Metal up your ass !
-----------------------------------------------
I added my first 2 videos on youtube. The language is german.

Discogs Autorisierung: https://www.youtube.com/watch?v=oryxKKtnEnc
Discogs Tagger Bedienung: https://www.youtube.com/watch?v=85Wk-5rd-W0
crap_inhuman
Posts: 933
Joined: Sat Jan 26, 2013 6:00 am
Location: Friedberg / Hessen / Germany
Contact:

Re: Porting MM4 scripts

Post by crap_inhuman »

Happy new year all together.

I'm sorry to say that, but i can't port my scripts to JS. I don't have the time doing it.
But with some basic COM objects in mm5 it should be easy to port the scripts, at least Discogs Tagger.
Metal up your ass !
-----------------------------------------------
I added my first 2 videos on youtube. The language is german.

Discogs Autorisierung: https://www.youtube.com/watch?v=oryxKKtnEnc
Discogs Tagger Bedienung: https://www.youtube.com/watch?v=85Wk-5rd-W0
crap_inhuman
Posts: 933
Joined: Sat Jan 26, 2013 6:00 am
Location: Friedberg / Hessen / Germany
Contact:

Re: Porting MM4 scripts

Post by crap_inhuman »

Is it possible to test COM objects with MM5?
Metal up your ass !
-----------------------------------------------
I added my first 2 videos on youtube. The language is german.

Discogs Autorisierung: https://www.youtube.com/watch?v=oryxKKtnEnc
Discogs Tagger Bedienung: https://www.youtube.com/watch?v=85Wk-5rd-W0
jiri
Posts: 5417
Joined: Tue Aug 14, 2001 7:00 pm
Location: Czech Republic
Contact:

Re: Porting MM4 scripts

Post by jiri »

We'll publish a new pre-release build very soon.

Jiri
jemmm
Posts: 7
Joined: Thu Oct 16, 2008 3:21 am

Re: Porting MM4 scripts

Post by jemmm »

Hi,

Just joined the developer preview today, and have had no more than a feelting glimpse. Personally, given my background, using the HTML/CSS/JS stack is brilliant - however, I totally understand the frustrations of earlier developers faced with porting existing work.

People have, understandably, mentioned time, resources and payment; just a random thought, and I must stress that I haven't thought this through fully and there may be an obvious reason why it won't work - but given that MM5 uses Chromium, would it be possible to distribute plug-ins as browser extensions, and if so couldn't we monetize them via the Chrome Web Store?

I've developed a few private plug-ins for MM4 in the past - I've never shared them, primarily, because they were written with the explicit intention of providing functionality that I wanted; as such, they were a bit hacky, I simply wasn't motivated enough to produce a shiny user-friendly interface, when I could spend ten minutes tinkering with the code to change things for my use as I went along. Had there been the opportunity to sell them, I'd have thought again.

If MM5 provides the opportunity for developers to do what we do and earn a little money, it strikes me that you could build up a solid, sustainable, innovative eco-system around the core product, that benefits everybody.

Thoughts?
Just Guessing
Posts: 64
Joined: Mon Sep 03, 2012 12:06 pm

Re: Porting MM4 scripts

Post by Just Guessing »

Funny, I just joined today as well, and was thinking along similar lines with monetization of some kind; in order to stimulate fast and numerous script offerings/conversions. Another real benefit - the chaotic hunting and searching for available scripts would mostly get a refined and sane interface/source location!

BUT - alas the potentially significant concerns; if profit becomes involved, the SHARING of knowledge and techniques may understandably decline substantially, (self-interest would make it self-defeating). And, how could the realm be kept civil - where similar scripts aren't generating disputes over ownership, and intellectual rights? If a much earlier script submission achieves the same goal (but more crudely or poorly), than a later script, is the second script infringing? Could EASILY get quite messy, I fear.

To sever all existing script/forum/bug-resolution/skinwork efforts to date in pursuit of better (easier?) potential is a double-edged sword to be sure. While some folks can dive in and code solutions for themselves overnight, MOST are reliant on the extensive forums, examples, and vast catalog of existing contributions by the many generous members.

Point is, if MM does not quickly get a very lively forum for ANSWERS in addition to questions, I would expect to see a DECLINE in market saturation for Windows. I will look forward to learning JS, but I personally won't be able to offer answers. Maybe the inclusion of a new Mac user crowd will rev forum activity up. (or ruin it utterly??...kidding)

What about some manner of rewards system for forum contributors who get 'upvotes' or such for solutions and assistance?
Post Reply