|
SageTV v7 Customizations This forums is for discussing and sharing user-created modifications for the SageTV version 7 application created by using the SageTV Studio or through the use of external plugins. Use this forum to discuss plugins for SageTV version 7 and newer. |
|
Thread Tools | Search this Thread | Display Modes |
#381
|
|||
|
|||
Anyone interested in Tribune's fanart?
So as most of you may know, all personal projects tend to go on hold once the nice weather rolls around and although rather late this year, we're on the verge of spring breaking out up here in southern Ontario. My baseball season starts in a week and that along with other things chews up most of my summer. Once that starts up, my techy projects go on hiatus (or at least a very, very reduced pace) until the fall. Don't worry, major bug fixes on the EPG plugin are always on the table and I'll address those as needed (especially because I use this feed myself for all my systems).
I was thinking about adding support for Tribune's fanart into the EPG plugin, but am wondering if anyone would use it? Personally, I use BMT to handle all my fanart needs so I'm unlikely to use it myself, but I also see some benefits to it. For example, it appears Tribune has images for things that BMT does not have access to (i.e. sports). Not sure if that's something people are interested in? Looking at the raw data, it seems most shows provide a single image so it wouldn't be as extensive as thetvdb's collection or whatever it is BMT is pulling from. I haven't actually downloaded any of the images from Tribune to look at them, but they seem to be 240(w)x360px or 360(w)x270px so I'm guessing that'd be bluray covers or something? If no one's interested in this fanart then I won't bother with the effort. If that's the case, is there anything missing in this plugin that needs addressing before the fall? If not, I may just start my summer vacation early this year.
__________________
Twitter: @ddb_db Server: Intel i5-4570 Quad Core, 16GB RAM, 1 x 128GB OS SSD (Win7 Pro x64 SP1), 1 x 2TB media drive Capture: 2 x Colossus STB Controller: 1 x USB-UIRT Software:Java 1.7.0_71; SageTV 7.1.9 Clients: 1 x HD300, 2 x HD200, 1 x SageClient, 1 x PlaceShifter Plugins: Too many to list now... |
#382
|
|||
|
|||
FYI, by this morning program listings had gradually filled in for all channels in my lineups. I updated the plugin and forced a refresh of guide data. There were the expected info and warning messages in the log files but no major errors. I have no idea why it took so long to process the data and fill in the program listings but the error I was experiencing yesterday appears to be an artifact of deleting all my video sources and then rebuilding them from scratch.
With respect to the Tribune fanart question, the main problem I currently have with the SD plugin compared to the regular SageTV guide data is caused by the difference way the 2 sources process IDs (ie SageTV inappropriately strips leading zeros and SDepg doesn't). As a result, when I view program listings, fanart is automatically retrieved and displayed with the listing when I use the native SageTV data but not when I use the SD data. Please be aware that this issue only affects SageTV views of program listings/guide data. Once I record a show, BMT kicks in and retrieves the appropriate fanart. The issue is that BMT doesn't retrieve fanart until after the show is recorded so views such as "upcoming movies" or "Malores menus" don't have fanart when I use the SD plugin. If adding Tribune fanart to your plugin is something that is easy to do and would resolve this issue, then I'd definitely use it. If adding Tribune fanart would only affect recorded shows, then I have no use for it since I already get this fanart through BMT. Last edited by JerryB; 04-28-2014 at 05:21 AM. Reason: Correct typo |
#383
|
|||
|
|||
Interesting... see my original thought on this was to only download fanart for recorded programs. I don't think you'd actually want to download every piece of fanart Tribune has available for every show in your epg listings? I have no idea just how much space that would require, but I'm thinking it's on the order of 10s of GBs. And then I'd have to be concerned with how that affects the plugin's speed of access to the data in the local zip file I generate with all of the data (epg data, tv logos, and now fanart).
I'd only download the fanart and make it available thru some kind of API; someone/something else would still have to load it whereever it belongs. Like BMT uses Phoenix APIs to read fanart; other plugins probably read from other sources. Anyway, we'll let this sit for a few days and see if anyone else has thoughts before deciding.
__________________
Twitter: @ddb_db Server: Intel i5-4570 Quad Core, 16GB RAM, 1 x 128GB OS SSD (Win7 Pro x64 SP1), 1 x 2TB media drive Capture: 2 x Colossus STB Controller: 1 x USB-UIRT Software:Java 1.7.0_71; SageTV 7.1.9 Clients: 1 x HD300, 2 x HD200, 1 x SageClient, 1 x PlaceShifter Plugins: Too many to list now... |
#384
|
|||
|
|||
Missing file
Slugger, I upgraded this morning to the .63 upgrade. After upgrade Sage reported that the plugin was missing the "sdepg.jar" file. Investigating I see a file in the directory with this name "sdepg.jar.162". It has a time stamp of 4/27/2014 3:02 PM. Will changing this "sdepg.jar" solve the error report and allow everything to function?
|
#385
|
|||
|
|||
Most likely that will work, but it assumes that it's the latest jar file sitting there. What I suggest is:
Delete that file, download this and put the jar inside that zip into your JARs folder. Also, check your JARs folder: dir sdjson*.jar Ensure there's only one jar file listed: sdjson-api-20131021.1.jar If not, remove any extras. The Sage plugin manager screwed up during the upgrade -- I've seen this happen periodically. So you need to make sure the proper versions of the jars are now installed.
__________________
Twitter: @ddb_db Server: Intel i5-4570 Quad Core, 16GB RAM, 1 x 128GB OS SSD (Win7 Pro x64 SP1), 1 x 2TB media drive Capture: 2 x Colossus STB Controller: 1 x USB-UIRT Software:Java 1.7.0_71; SageTV 7.1.9 Clients: 1 x HD300, 2 x HD200, 1 x SageClient, 1 x PlaceShifter Plugins: Too many to list now... |
#386
|
|||
|
|||
Quote:
I believe that this automatic retrieval of fanart for listings in the program guide is built into SageTV but requires the default stripping of leading zero's in the program ID that occurs when you use the default SageTV guide service. Since these zero's are not stripped by the SD plugin, SageTV and associated interface mods don't find a match when they attempt to retrieve fanart for the selected item in the program guide/menu. I previously opened a Gemstone Issue which goes into this in more detail if you'd like to look at it. http://code.google.com/p/gemstone/is...=&sort=&id=100 Unfortunately, the issue was never resolved and is still open. I was hoping the availability of Tribune Fanart might provide a simple way to resolve it. If it doesn't, that's fine. I'll just continue with things the way they are now. |
#387
|
|||
|
|||
Missing file error
Slugger, I did as you suggested (download the sdepg.jar link you sent) and made sure that the sdjson-api-0.20131021.1.jar was present. Two things happened, I stop sage and added the file. When I restarted the sdepg.jar file was removed. I added back.
BTW each time I restart sage removes the .jar file Second I checked status of schedules direct using web interface. I was given the following error message: HTTP ERROR 500 Problem accessing /sage/sdjson/index.gsp. Reason: Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported): startup failed: SimpleTemplateScript4.groovy: 94: unable to resolve class sagex.epg.schedulesdirect.io.EpgDownloader @ line 94, column 2. import sagex.epg.schedulesdirect.io.EpgDownloader ^ SimpleTemplateScript4.groovy: 95: unable to resolve class sagex.epg.schedulesdirect.plugin.Plugin @ line 95, column 2. import sagex.epg.schedulesdirect.plugin.Plugin ^ 2 errors Caused by: groovy.lang.GroovyRuntimeException: Failed to parse template script (your template may contain an error or be trying to use expressions not currently supported): startup failed: SimpleTemplateScript4.groovy: 94: unable to resolve class sagex.epg.schedulesdirect.io.EpgDownloader @ line 94, column 2. import sagex.epg.schedulesdirect.io.EpgDownloader ^ SimpleTemplateScript4.groovy: 95: unable to resolve class sagex.epg.schedulesdirect.plugin.Plugin @ line 95, column 2. import sagex.epg.schedulesdirect.plugin.Plugin ^ 2 errors at net.sf.sageplugins.webserver.groovy.templates.IncludeTemplateEngine.createTemplate(IncludeTemplateEngine.java:76) at groovy.servlet.TemplateServlet.createAndStoreTemplate(TemplateServlet.java:265) at groovy.servlet.TemplateServlet.getTemplate(TemplateServlet.java:320) at net.sf.sageplugins.webserver.groovy.servlets.SageTemplateServlet.service(SageTemplateServlet.java:66) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.handler.rewrite.RewriteHandler.handle(RewriteHandler.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) Last edited by iumgrad; 04-28-2014 at 08:32 AM. |
#388
|
|||
|
|||
@JerryB: Actually, looking at the Sage APIs for this, it seems that I may be able to do this. But it requires that I can serve the files directly from SD's servers, which I don't think they will appreciate. Seems the API takes a URL for the image so in theory this should work and it should work on demand just like the core EPG service does. I'll talk to SD in the next day or two and see what they say.
__________________
Twitter: @ddb_db Server: Intel i5-4570 Quad Core, 16GB RAM, 1 x 128GB OS SSD (Win7 Pro x64 SP1), 1 x 2TB media drive Capture: 2 x Colossus STB Controller: 1 x USB-UIRT Software:Java 1.7.0_71; SageTV 7.1.9 Clients: 1 x HD300, 2 x HD200, 1 x SageClient, 1 x PlaceShifter Plugins: Too many to list now... |
#389
|
|||
|
|||
Quote:
Copying the jar back in while Sage is running won't work; Sage won't recognize it until it's restarted. Quote:
__________________
Twitter: @ddb_db Server: Intel i5-4570 Quad Core, 16GB RAM, 1 x 128GB OS SSD (Win7 Pro x64 SP1), 1 x 2TB media drive Capture: 2 x Colossus STB Controller: 1 x USB-UIRT Software:Java 1.7.0_71; SageTV 7.1.9 Clients: 1 x HD300, 2 x HD200, 1 x SageClient, 1 x PlaceShifter Plugins: Too many to list now... |
#390
|
|||
|
|||
Quote:
|
#391
|
|||
|
|||
Quote:
|
#392
|
|||
|
|||
Quote:
|
#393
|
|||
|
|||
Nope. There is something really messed up with the state of the Sage plugin manager on your system. It's really weird because apparently Sage knows it's still installed because it's listed as installed, but won't give you the option to uninstall? Are you sure you clicked on it from the Installed Plugins list and not the All Available list? I believe the latter won't give the option to uninstall, but the former will. If you were on the Installed list then I can't offer much more than submitting a support request to Sage and crossing your fingers that they still respond to those requests (or restoring your SageTV directory from a backup, if you have one).
__________________
Twitter: @ddb_db Server: Intel i5-4570 Quad Core, 16GB RAM, 1 x 128GB OS SSD (Win7 Pro x64 SP1), 1 x 2TB media drive Capture: 2 x Colossus STB Controller: 1 x USB-UIRT Software:Java 1.7.0_71; SageTV 7.1.9 Clients: 1 x HD300, 2 x HD200, 1 x SageClient, 1 x PlaceShifter Plugins: Too many to list now... |
#394
|
|||
|
|||
Quote:
|
#395
|
|||
|
|||
Using my epg plugin? Yes, but only for a limited time. It will continue to work until Schedules Direct decides to shutdown the old web service that older versions of the plugin talk to. Once SD does that, you will require 0.0.6.x in order to talk to the new SD web service servers. I do not know when they will do that, but I would assume it will be sooner rather than later (like less than a month for sure).
I would go ahead and reattempt the upgrade, if the same thing happens with the jar files then submit a service request with Sage and hope for the best. It's been my experience that sometimes the plugin manager just does the wrong/weird things and if you rerun it again, it works right. YMMV. I think you may want to ping stuckless, too. I think he has some kind of tool that can fix plugin manager screw ups. Not sure, never used it. Again, YMMV.
__________________
Twitter: @ddb_db Server: Intel i5-4570 Quad Core, 16GB RAM, 1 x 128GB OS SSD (Win7 Pro x64 SP1), 1 x 2TB media drive Capture: 2 x Colossus STB Controller: 1 x USB-UIRT Software:Java 1.7.0_71; SageTV 7.1.9 Clients: 1 x HD300, 2 x HD200, 1 x SageClient, 1 x PlaceShifter Plugins: Too many to list now... |
#396
|
|||
|
|||
Quote:
Quote:
|
#397
|
|||
|
|||
Quote:
We're ok on the schedule/channel refreshes, I always pull the latest data from SD on every epg pull. The issue is that sometimes the sdjson.epg file is not accessible, this is what you need to address. Next time this happens, look at the details of the file (owner/ACL/etc.) before deleting it and try to figure out why the grabber process (executed as the same user as SageTV is running as) can't access the file. This is the underlying problem.
__________________
Twitter: @ddb_db Server: Intel i5-4570 Quad Core, 16GB RAM, 1 x 128GB OS SSD (Win7 Pro x64 SP1), 1 x 2TB media drive Capture: 2 x Colossus STB Controller: 1 x USB-UIRT Software:Java 1.7.0_71; SageTV 7.1.9 Clients: 1 x HD300, 2 x HD200, 1 x SageClient, 1 x PlaceShifter Plugins: Too many to list now... |
#398
|
|||
|
|||
Another possibility is that something else has the file locked. Do you have a zip viewer of the file open still from before? If not, you might want to grab process explorer and see if anything is keeping the file open. After an epg update completes, nothing should have that file open, if SageTV.exe does then that's my plugin and I need to go searching (which will be tough especially since no one else is seeing this). If it's another program (like a zip viewer, etc.) then that's easy to fix. Just close the zip viewer.
__________________
Twitter: @ddb_db Server: Intel i5-4570 Quad Core, 16GB RAM, 1 x 128GB OS SSD (Win7 Pro x64 SP1), 1 x 2TB media drive Capture: 2 x Colossus STB Controller: 1 x USB-UIRT Software:Java 1.7.0_71; SageTV 7.1.9 Clients: 1 x HD300, 2 x HD200, 1 x SageClient, 1 x PlaceShifter Plugins: Too many to list now... |
#399
|
|||
|
|||
I checked the log file and it does seem to be a permission issue. I log into my windows 7 sage server as a user as I run sage as a service under that user in order to connect to my media server via unc. Could that be the issue? I had no problem before the upgrade. I've attached the portion of the log from today.
Last edited by gdippel; 04-28-2014 at 04:47 PM. |
#400
|
|||
|
|||
Quote:
Problem accessing /sage/sdjson/index.gsp. Reason: Token: A JSONObject text must begin with '{' at 1 [character 2 line 1] Caused by: org.schedulesdirect.api.exception.JsonEncodingException: Token: A JSONObject text must begin with '{' at 1 [character 2 line 1] at org.schedulesdirect.api.NetworkEpgClient.authorize(NetworkEpgClient.java:232) at org.schedulesdirect.api.NetworkEpgClient.<init>(NetworkEpgClient.java:202) at org.schedulesdirect.api.NetworkEpgClient.<init>(NetworkEpgClient.java:174) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102) at SimpleTemplateScript1.run(SimpleTemplateScript1.groovy:100) at net.sf.sageplugins.webserver.groovy.templates.IncludeTemplateEngine$SimpleTemplate$1.writeTo(IncludeTemplateEngine.java:120) at net.sf.sageplugins.webserver.groovy.servlets.SageTemplateServlet.service(SageTemplateServlet.java:99) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.handler.rewrite.RewriteHandler.handle(RewriteHandler.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) Caused by: org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1] at org.json.JSONTokener.syntaxError(JSONTokener.java:433) at org.json.JSONObject.<init>(JSONObject.java:194) at org.json.JSONObject.<init>(JSONObject.java:321) at org.schedulesdirect.api.NetworkEpgClient.authorize(NetworkEpgClient.java:230) ... 31 more Caused by: org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1] at org.json.JSONTokener.syntaxError(JSONTokener.java:433) at org.json.JSONObject.<init>(JSONObject.java:194) at org.json.JSONObject.<init>(JSONObject.java:321) at org.schedulesdirect.api.NetworkEpgClient.authorize(NetworkEpgClient.java:230) at org.schedulesdirect.api.NetworkEpgClient.<init>(NetworkEpgClient.java:202) at org.schedulesdirect.api.NetworkEpgClient.<init>(NetworkEpgClient.java:174) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102) at SimpleTemplateScript1.run(SimpleTemplateScript1.groovy:100) at net.sf.sageplugins.webserver.groovy.templates.IncludeTemplateEngine$SimpleTemplate$1.writeTo(IncludeTemplateEngine.java:120) at net.sf.sageplugins.webserver.groovy.servlets.SageTemplateServlet.service(SageTemplateServlet.java:99) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:389) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.handler.rewrite.RewriteHandler.handle(RewriteHandler.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Plugin: Schedules Direct EPG Source for SageTV OSS | Slugger | SageTV v9 Customizations | 89 | 10-11-2016 07:31 AM |
Schedules Direct Plugin Issue | rickgillyon | SageTV v9 Customizations | 20 | 09-25-2016 12:03 PM |
Schedules Direct plugin not compatible | Damstas | SageTV Github Development | 20 | 09-21-2015 05:10 AM |
Schedules Direct EPG Plugin: Call for private beta testers | Slugger | SageTV v7 Customizations | 11 | 01-19-2013 11:59 AM |
Schedules Direct EPG Plugin PoC Completed | Slugger | SageTV EPG Service | 71 | 12-04-2011 12:12 PM |