Plugins compatibility since switch to Movian

Added by Anthony Dahanne over 4 years ago

Hello,
I manually installed latest Movian version to my ps3 (showtime-4.9.559.pkg), and the plugins I wrote (tou.tv https://github.com/anthonydahanne/showtime-plugin-tou.tv, tv5video.ca https://github.com/anthonydahanne/showtime-plugin-tv5video.ca and 2 others) are not available from the plugins list from Movian interface.
That said, they're still listed as public plugins on this page : https://movian.tv/plugins/movian

So I'm wondering, did something change ? does something prevent my plugins to be downloaded to Movian 4.9 ? What do I need to change in them so that they can be downloaded from Movian ?

Thanks,
Anthony


Replies (4)

RE: Plugins compatibility since switch to Movian - Added by Andreas Smas over 4 years ago

Yes, the old plugins ran using a javacript engine called SpiderMonkey which now have been replaced with Duktape.

Basically, you need to change your plugin to have type: "ecmascript" in plugin.json and then try to run it.

It should be mostly compatible but if you run into problems it should be straight forward to fix (spidermonkey had some non-ecmascript-5 compatible things like 'const', etc)

If you run into problems, just ask here.

RE: Plugins compatibility since switch to Movian - Added by Anthony Dahanne over 4 years ago

Hello Andreas,
Thanks for your answer.
So I did the change, and the most recurring issue I had was to change the :

for each (variable in objet) {
  //instruction
}

to :

object.forEach(function(variable) {
  //instruction
});

see https://github.com/anthonydahanne/showtime-plugin-vtele.ca/commit/311606b0cd7aa6471d33832742be71640f0f1ff6#diff-04c2e3600087585372060b41b2906c6bL141 for example.
Anyway, I did that in most of my plugins and it seems to have worked (btw, could you please approve them ? thanks, I have 2 approval requests waiting)
Now, I have a new issue :
00:37:52.736: tv5video.ca     [DEBUG]: Getting episodes list : http://m.video.tv5.ca/api/json/tools/loadSerieEmissions 2736
00:37:52.737: tv5video.ca     [ERROR]: TypeError (not callable) at file:///Users/anthony/workspaces/movian/showtime-plugin-tv5video.ca/tv5video.js:67
00:37:52.737: tv5video.ca     [ERROR]: STACK DUMP: TypeError: not callable
00:37:52.737:                              duk_js_call.c:682
00:37:52.737:                              anon file:///Users/anthony/workspaces/movian/showtime-plugin-tv5video.ca/tv5video.js:67 preventsyield
00:37:52.737:                              apply  native strict preventsyield
00:37:52.737:                              anon showtime/page:366 preventsyield

because of :

    showtime.trace("Getting episodes list : " + EPISODES_URL + " " + emissionId);
    var objectData = {"parameters" : "{\"id\":" + emissionId + ",\"pagesize\":\"16\",\"page\":1}"}
    (#67) var getEpisodesResponse = showtime.httpPost(EPISODES_URL, objectData);

It used to work, any ideas ?
Thanks again Andreas,
Anthony
PS : I'm working against Movian 4.10 , release/4.10 branch, commit 444f6782badf9adc0121a4c0025303968f24e301

RE: Plugins compatibility since switch to Movian - Added by Leonid Protasov over 4 years ago

Hi, Anthony!

httpPost as well as httpGet are deprecated. Just use httpReq. Take a look at the wiki to see how much power it has now. Or just use as is.

RE: Plugins compatibility since switch to Movian - Added by Anthony Dahanne over 4 years ago

Leonid Protasov wrote:

Hi, Anthony!

httpPost as well as httpGet are deprecated. Just use httpReq. Take a look at the wiki to see how much power it has now. Or just use as is.

OKee, done, I've replaced with httpReq and it works again.
Thanks !
(BTW could you please approve tv5video.ca ? thanks again !)

(1-4/4)