Closed comporder1 closed 12 months ago
@comporder1 I have used the software for 6 channels. each channel past static analysis and deep linking! The channels were approved and published without issues!
I guess that is good news and bad. Good that it should work... bad that my parse xml code has broken it in some way. Would you like to take a look at my code? My xml file follows the official MRSS feed spec as outlined here... https://developer.roku.com/docs/specs/direct-publisher-feed-specs/mrss-dp-spec.md It seems as though it could be implemented into this project. I can't be the only one that uses xml.
I find the software works well with a json feed! I found that MRSS feeds that were good in DP somehow have issues in SDK channels, But go ahead and post your feed link so We can look at it! I myself have another template that works w mrss feeds to test it on and see what parses! @rrirower can look at the feed and answer more about this software and mrss feeds!
This is MainLoaderTask. I haven't quite got it dialed in, but it is working pretty good. It creates rows based on media:category element. It finds all the unique categories, creates a row for each, and populates the row with all the items that match.
(struggling to get this code to paste correctly! I guess I'll just upload the file....) MainLoaderTask.txt
@comporder1 Please send your feed link!
It is in the code.
also, it sets every item's mediaType as "movie".
@comporder1 OK got it https://home.colin.edu/roku.xml will look at it and see if it works in my other template and try this software to see if it parses anything!
I am in the process of updating the code to accept an mrss (xml) feed file. It may be available in the next release.
I am in the process of updating the code to accept an mrss (xml) feed file. It may be available in the next release.
Thanks. Maybe my code above can help.
@comporder1 I added cfategories to your feed file, I can't upload the xml here so I am uploading a text file. Try using the xml w categories feed.txt
Thanks for trying. At this point, I am not ready to abandon the official feed spec.
@rrirower Here is my latest iteration of the code generated by this script. I have made several layout changes, but nothing else really besides the mrss parse code. I have still not been able to get deep linking working. Hopefully you can help me figure this out and also be able to use some this to add to your script. Thanks! comporder1.zip
edit: I also plan to add a function to change pubDate (in this format- 2023-04-28T17:00:00-06:00) to something like 4/28/2023 1pm
@comporder1 thanks for the submission. However, I am close to finishing my version of the parsing code that integrates into the existing code base.
I have the XML parsing working. After some more testing, I should be able to post it by the end of this coming week. It includes re-formatting the 'pubDate'.
@rrirower That's amazing, can't wait to test it myself and see what it can do!
That’s good here. In the mean time, I got deep linking working yesterday. I had plan to post….. things I found that had deeplinking broken were in the core code that I had not messed with. It was mentioned above that deeplinking works with core code, but I just don’t see how my feed code would have messed it up. May want to check your latest release that deeplinking does in fact work.
@comporder1 Are you indicating that the deep linking code from this project does not work? Can you provide examples where it fails?
I should first admit that I was only introduced to brightscript about 2 weeks ago. I very well could be wrong. Also, I do not have a json feed to test your code as-is. This is what I found...
in ContentTaskLogic.brs line 22 references m.top.launchArgs I could not find anywhere else in the code that set launchArgs when a launch deeplink was called. So with args=invalid, deeplinking was never initiated. I finally started making progress when I replaced line 22 with
args = {
contentId: m.global.contentId
mediaType: m.global.mediaType
}
Also in this file I had to add (before line 24) m.global.isDeeplink = true
for the rest the code to treat the call properly.
There were several other changes I had to make, but that was the start. Again, I am not sure if what I did would be "correct", but I do know that deeplinking now works.
Attached is my latest iteration. comporder1.zip
I do have one more question. There are two warnings generated (seen via telnet 8085) when playing any video. In VideoPlayer.brs singleVideoNode.SetFields(fields) is what throws the warnings. The warnings are type mismatch warnings for change and focusedChild fields. Will warnings like this cause a channel to not pass certification?
Thank you for your work on this project. I welcome any corrections or advice. CW
@comporder1 I appreciate the feedback and will re-test the deep linking code.
I've seen those two warnings and they appear to be benign. I have not had a chance to investigate them further as I am trying to get more functionality into the code. I don't think they will affect certification as some channel developers have already had their channels pass.
Perhaps @ferdiworks can comment on the certification process.
@rrirower It is good to hear that roku doesn't get too picky. I feel like it could be fixed by setting only the fields that are required for the ContentNode.
@comporder1 The deep linking code was indeed broken from a regression. I've found the problem and fixed it. I should have a release available this coming weekend.
@rrirower Glad to hear you have fixed the issue and that I’m was not doing something wrong in my testing! I look forward to testing your new release.
@comporder1 I can help test w the certification process.
I see The new version Alph6 with the MRSS support was just released and will test it
I am testing the new version this morning. Launch deep linking is still not working. Input deep linking is working. I'm investigating now.
@rrirower args = m.top.inputArgs continues to return invalid on launch deep linking The following code change in ContentTaskLogic.brs fixes the the bug....
sub OnMainContentLoaded() ' invoked when content has been parsed and is ready to use. m.GridScreen.SetFocus(true) ' set focus to the GridScreen. m.loadingIndicator.visible = false ' hide loading indicator because content was retrieved. m.GridScreen.content = m.contentTask.content ' populate GridScreen with content.
args = { dl_contentId: m.global.contentId dl_mediaType: m.global.mediaType }
if args <> invalid and ValidateDeepLink(args)
m.global.isDeeplink = true
DeepLink(m.contentTask.content, args.dl_mediaType, args.dl_contentId)
end if
end sub
Can you provide the deep linking steps you are using? I've tested this and it worked. I'm thinking you may have hit an edge case I have not found. Also can you provide your feed URL to test?
note: I changed mediatype of items to movie
@rrirower make sure the app is NOT running on the roku device and use the "launch" send button.
Thanks. I'll investigate.
@comporder1 Have you been able to use the Deep Linking tool with the Launch option? I can't seem to get the Launch button to work using the standalone tool.
@comporder1 Never mind....I figured it out. The documentation is not the best.
@comporder1 I was able to recreate the error you reported. It resulted from my misunderstanding of the Deep Linking Launch event and the lack of clear Roku docs to explain it. I believe that I have resolved this problem and have successfully Launched the channel into a video. I've attached a zip for you to try. If it works for you, I'll repost it.
@rrirower It works! I added my manifest and images to your zip and tested. Deep linking (launch and input) both worked. I did have to add overhang image references back in several places. Does the full script add those in when it is run?
Only other changes that I made were layout\visual related. I've attached my final version if you are interested. I will be attempting to get this to pass certification soon.
Thank you again for your effort in this project. I hope I have been able to contribute in some way!
@comporder1 Thanks for sticking with this issue. As for Overhang images, you must specify that you want them when you run the wizard tool. They are programmatically added to the BrightScript code if you elect to display them.
@rrirower I am happy to report that my channel past certification and is published! The biggest learning curve for me in this process has been the deep linking requirements. As you mentioned above, the requirements, testing procedures, and channel submission process is not clearly documented. I had a channel built using the roku provided scenegraph template that I could not submit because it did not include deep linking code... even though it is required for a public channel! My final suggestion for this project would be to include in the readme info on how to submit deep linking parameters during the publish process. This would be helpful for those like me to get through the whole process of using this tool to upgrade from Direct Publish to SDK. Thank you again for all of your work on this project! CW
edit: It is also helpful to know that warnings in the console will not prevent certification.
Deep linking has been the biggest issue for me to get our DP channel over to scenegraph. Should deep linking work in the channel produced by this script? I have run the script, but I have had to modify to parse my rss feed.... and deep linking is not working.