SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV Github Development

Notices

SageTV Github Development Discussion related to SageTV Open Source Development. Use this forum for development topics about the Open Source versions of SageTV, hosted on Github.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 12-31-2015, 09:00 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,541
V9 of various plugins are coming... but...

Since SageTV has been opened sourced, there has been more interest (at least from me) to update some of the plugins that I work on (or use).

I've deprecated Phoenix UI because the UI maintainers have moved on, and I switched to Gemstone. I'm been pleased with Gemstone.

Jusjoken has been actively updating the Phoenix core code and he's recently added new views for Missing TV Episodes and he's added Collection support. In doing this we needed to move to the latest version of the TheMovieDB apis, which required newer versions of other jars, etc, etc. This plugin update is likely to break some other plugins that depend on http client.

Because of this, the new Phoenix Core will be a V9 ONLY plugin. ie, you can't install it on V7, and the V7 version is no longer exist.

Because of how SageTV manages plugins, there can only be a single version for a plugin id. So, once the new Phoenix Core plugin is released, you will no longer be able to update/install Phoenix in V7. In my mind, this isn't a big deal, because either you have Phoenix installed on V7 and you'll continue to use that version, or if you want to move to Gemstone (or use Phoenix features), you'll move to V9.

That being said, I've mentioned before that I really do think that the Open Source version of SageTV SHOULD have a separate SageTVPlugins.xml from the V7 version and the that the V9 version would "inherit" V7 plugins, and override the ones are updated in V9. This would require Jeff to update the plugin submit process to separate V7 and V9 submissions or the open source community would need to build a plugin repository that handles submissions, etc.

We could create new plugin ids for the V9 phoenix (and all dependent libraries) but that's just crazy... and we'd end up with the possibilty that people would install both phoenix-core and phoenix-core-sagetv9 and they'd clobber each other, or end up with duplicate jars in the JARs area, etc.

Jusjoken has stated that he'll be making the new Gemstone a V9 only plugin as well, which, he'd have to do, if it depends on Phoenix (which it does).

I'm also working on updating the Jetty Plugin to Version 9, which will be a SageTV 9 only update as well. (BMT is dead, but not sure if the mobile web and the main web will be updated to work with the V9 server, or if we just start over and build a single web app that encompases, mobile, web and bmt applications -- I'm leaning towards the latter)

And I have a new plugin, PushBullet for SageTV, that will be a V9 only plugin, since it uses some APIs that are not available in V7. This plugin basically pushes SageTV System Messages (Halt Detected, etc) to your phone/desktop, if you have the PushBullet app (or extension) installed.

I'm also working on updating the sagex-api plugin and it move to a V9 version as well.

So, I guess the good news is that there are new and updated plugins coming, but, because of how intertwined V7 and the Open Source versions are (ie, sharing the same plugins), then V7 is about to get a lot less functional.

This really isn't a question of not wanting to support V7... it's just that once you move a plugin to depend on V9, V7 can no longer access the V7 version of that plugin, and anything that depended on that V7 version can not be installled, etc.

I guess I'm wondering if it's time to simply change the V9 code to support additional plugin repositories (something I've suggested in the past), and then maintain a separate SageTVPluginsV9.xml in a github repository for V9 plugin updates. This allows V7 to carry on, unbroken, while V9 can evolve without impacting V7.
Reply With Quote
  #2  
Old 12-31-2015, 09:21 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Re: open source plugin repository, I think we can likely go away completely from the web form, and simply edit the SageTVPluginsV9.xml directly in github. This would allow community management, and allow us to make global changes in the future (like say we implement a way to have auto-mirroring of the plugins, for instance) without needing the original dev to be involved.

First step should be easy - adding a loader for SageTVPluginsV9.xml to the code. It essentially would be a duplicate of how SageTVPluginsDev.xml is loaded in, but done before the Dev one.

SageTVPlugins.xml is loaded.
SageTVPluginsV9.xml is loaded and merged in, replacing any elements with the same ID.
SageTVPluginsDev.xml is loaded and merged in, replacing and elements with the same ID.

Distributing and updating the V9.xml is a separate issue, and can be handled separately after the plugin core is made to look at it.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room

Last edited by Fuzzy; 12-31-2015 at 09:42 AM.
Reply With Quote
  #3  
Old 12-31-2015, 09:36 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,541
Quote:
Originally Posted by Fuzzy View Post
Re: open source plugin repository, I think we can likely go away completely from the web form, and simply edit the SageTVPlugins9.xml directly in github. This would allow community management, and allow us to make global changes in the future (like say we implement a way to have auto-mirroring of the plugins, for instance) without needing the original dev to be involved.

First step should be easy - adding a loader for SageTVPlugins9.xml to the code. It essentially would be a duplicate of how SageTVPluginsDev.xml is loaded in, but done before the Dev one.

SageTVPlugins.xml is loaded.
SageTVPlugins9.xml is loaded and merged in, replacing any elements with the same ID.
SageTVPluginsDev.xml is loaded and merged in, replacing and elements with the same ID.

Distributing and updating the 9.xml is a separate issue, and can be handled separately after the plugin core is made to look at it.
That is my thinking as well, since the core code is already doing this when it loads SageTVPluginsDev.xml.

Let's see what Jeff has to say
Reply With Quote
  #4  
Old 12-31-2015, 09:42 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by stuckless View Post
That is my thinking as well, since the core code is already doing this when it loads SageTVPluginsDev.xml.

Let's see what Jeff has to say
Well, I just looked, and haven't tested yet, but this looks rather easy (for step 1 at least).

https://github.com/CraziFuzzy/sagetv...01da9931aa46d3
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #5  
Old 12-31-2015, 12:26 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,541
Quote:
Originally Posted by Fuzzy View Post
Well, I just looked, and haven't tested yet, but this looks rather easy (for step 1 at least).

https://github.com/CraziFuzzy/sagetv...01da9931aa46d3
Yeah that's good for a local file, but we to implement a hosted version, like the SageTVPlugins.xml where it checks the md5 to determine if we need to update etc.

I'll spend some time and make the changes, and see if Jeff agrees.
Reply With Quote
  #6  
Old 12-31-2015, 03:27 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,541
So, I made the core changes to support additional repos... I basically just refactored the core code that does the checking and downloading of the SageTVPlugins.xml to accept parameters for the url, md5 url, and the local filename.

The repo configuration is stored in the Sage.properties, and this is the documentation in the file.

Code:
  // The Repo Properties contains a set of Plugin Repositories that SageTV will periodically check for new
  // and updated SageTV Plugins.
  // The main key is sagetv_repos
  // Each Repo has a unique id, and contains the URL for the REPO, md5, and the local filename
  // sagetv_repos/xxxx/url=Plugin Repo URL
  // sagetv_repos/xxxx/md5=Plugin Repo MD5
  // sagetv_repos/xxxx/local=The Local Filename to use for this repo
  //
  // There are reserved REPO IDs, v7, and v9, with future reserved ids of v10, v11, etc.
  // sagetv_repos/v7/url=Plugin Repo URL
  //
  // When SageTV loads the REPO plugins, it will read v7, then v9, and then any alternate repos
  // listed in the sagetv_additional_repo_list, which is a comma separated list of alternate repos and
  // the order in which to read them.
  // Finally, SageTVPluginsDev.xml is read last, as means to allow devs to forcefully overrade the plugins
  // listed in the plugin system.

  // Comma separated list of alternate repos.  Should not contain, v7, v9, etc, but can contain additional
  // configured repos.  Configured repos would be configured under the sagetv_repos parent key.
This allows, that in the future, we can change the location of the v7 (and v9, etc) repo urls, should be ever need to. It also allows for custom repos that developers can add for beta testing, etc.

The default values for v7 and v9 repos (in the code) is
Code:
sagetv_repos/v7/local=SageTVPlugins.xml
sagetv_repos/v7/md5=http\://download.sagetv.com/SageTVPlugins.md5.txt
sagetv_repos/v7/url=http\://download.sagetv.com/SageTVPlugins.xml
sagetv_repos/v9/local=SageTVPluginsV9.xml
sagetv_repos/v9/md5=https\://raw.githubusercontent.com/OpenSageTV/sagetv-plugin-repo/master/SageTVPluginsV9.md5
sagetv_repos/v9/url=https\://raw.githubusercontent.com/OpenSageTV/sagetv-plugin-repo/master/SageTVPluginsV9.xml
I've testing this locally on my development machine, and, it downloaded the V9 repo file, and loaded the plugins from there (which is only 1, right now, which is my pushbullet plugin) and I was able to install it.

I did some testing to update the md5 url, and sagetv appears to noticed that it changed, and updated the V9 plugins.

The code changes are pretty minimal, because as I said, I just refactored Jeff's code to accept 3 parameters, and then I just call it for each repo configuration.

One last note, the repo order is.. v7, v9, additional repos, then the local SageTVPluginsDev.xml
Reply With Quote
  #7  
Old 01-01-2016, 02:29 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Quote:
Originally Posted by stuckless View Post
Yeah that's good for a local file, but we to implement a hosted version, like the SageTVPlugins.xml where it checks the md5 to determine if we need to update etc.

I'll spend some time and make the changes, and see if Jeff agrees.
Yeah, my little commit, as mentioned in it's comment, was just about the reading of the file, didn't deal with actually fetching a new version, because I wasn't really sure which way we want to go for that. If it's something to be generated with nightly builds (which aren't happening yet either) from the it, or what.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #8  
Old 01-03-2016, 03:26 PM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 6,578
Quote:
Originally Posted by stuckless View Post
And I have a new plugin, PushBullet for SageTV, that will be a V9 only plugin, since it uses some APIs that are not available in V7. This plugin basically pushes SageTV System Messages (Halt Detected, etc) to your phone/desktop, if you have the PushBullet app (or extension) installed.
This sounds very similar to Slugger's SageAlert plugin which would allow you to publish alerts in various ways such as email, Growl/Prowl, text files and Twitter (until Twitter clamped down on their API).

Any chance on making the PushBullet more generic like SageAlert? SageAlert still works and I use it all the time. And I also get Growl alerts from my Control4 HA system.

What's the difference between Pushbullet and Growl? I suspect Pushbullet is more Android centric and Growl is more Mac/iOS specific.
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA
Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA
Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server
Reply With Quote
  #9  
Old 01-03-2016, 04:08 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,541
Quote:
Originally Posted by wayner View Post
This sounds very similar to Slugger's SageAlert plugin which would allow you to publish alerts in various ways such as email, Growl/Prowl, text files and Twitter (until Twitter clamped down on their API).

Any chance on making the PushBullet more generic like SageAlert? SageAlert still works and I use it all the time. And I also get Growl alerts from my Control4 HA system.

What's the difference between Pushbullet and Growl? I suspect Pushbullet is more Android centric and Growl is more Mac/iOS specific.
The premise is probably the same, Sage Alert is probably a little more developed with a web ui. This plugin is just a single file that literally maps a Sage System Message to Push Bullet notification. You can configure which messages you want to see in the plugin configuration.

PushBullet not an android centric notification system, but rather, a mobile/web notification system. I use it for a number of other different (non sagetv) tasks, and I like the fact that notifications go directly to my phone and my desktop browser, using the pushbullet chrome extension.

It would seem to me that something like pushbullet is just the next evolution of something like growl. PushBullet doesn't require any desktop software to be installed... ie, it's a purely hosted solution. You do need software to receive messages through. So, from a plugin perspective, if you installed this, it would send messages, but unless you install the iOS app you'd never get them.

I have some iOS devices and a macbook, but I'm not that interested in growl... but if sagealert is working and I don't see why it would stop, then I'm not sure there's any need to extend this with growl... but if I get more time, I'll look into it.
Reply With Quote
  #10  
Old 01-03-2016, 05:03 PM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 6,578
Quote:
Originally Posted by stuckless View Post
The premise is probably the same, Sage Alert is probably a little more developed with a web ui. This plugin is just a single file that literally maps a Sage System Message to Push Bullet notification. You can configure which messages you want to see in the plugin configuration.

PushBullet not an android centric notification system, but rather, a mobile/web notification system. I use it for a number of other different (non sagetv) tasks, and I like the fact that notifications go directly to my phone and my desktop browser, using the pushbullet chrome extension.

It would seem to me that something like pushbullet is just the next evolution of something like growl. PushBullet doesn't require any desktop software to be installed... ie, it's a purely hosted solution. You do need software to receive messages through. So, from a plugin perspective, if you installed this, it would send messages, but unless you install the iOS app you'd never get them.

I have some iOS devices and a macbook, but I'm not that interested in growl... but if sagealert is working and I don't see why it would stop, then I'm not sure there's any need to extend this with growl... but if I get more time, I'll look into it.
That's fair enough. I think SageAlert will continue for a bit but I believe Slugger as EOL'ed all of his plugins.

By the way, how do you kick off a process on a system message? Then it would be easy to send anything you want, assuming that it has an API.

On a related note - can you kick off an event when the playback of a media file ends?
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA
Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA
Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server
Reply With Quote
  #11  
Old 01-03-2016, 05:53 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,541
Quote:
Originally Posted by wayner View Post
That's fair enough. I think SageAlert will continue for a bit but I believe Slugger as EOL'ed all of his plugins.

By the way, how do you kick off a process on a system message? Then it would be easy to send anything you want, assuming that it has an API.

On a related note - can you kick off an event when the playback of a media file ends?
It would be easy enough for me to extend the plugin to fire off a process or script... I'll look into that.

My plugin doesn't actually send a message on recording complete, although it looks like I thought about it, since I added the method.

Here's the plugin source...
https://github.com/stuckless/sagex.p...letPlugin.java
Reply With Quote
  #12  
Old 01-04-2016, 05:28 PM
Narflex's Avatar
Narflex Narflex is offline
Sage
 
Join Date: Feb 2003
Location: Redondo Beach, CA
Posts: 6,301
I'm OK with how this was done...I'm happy the prior repo isn't getting abandoned and is included as the 'base' for the V9 repo. That was my main concern about the whole V9 repo discussions before. I'll go over the change, and likely approve it shortly.
__________________
Jeffrey Kardatzke
Google
Founder of SageTV
Reply With Quote
  #13  
Old 01-03-2016, 03:48 PM
wayner wayner is offline
SageTVaholic
 
Join Date: Jan 2008
Location: Toronto, ON
Posts: 6,578
Quote:
Originally Posted by stuckless View Post
(BMT is dead, but not sure if the mobile web and the main web will be updated to work with the V9 server, or if we just start over and build a single web app that encompases, mobile, web and bmt applications -- I'm leaning towards the latter)
It makes sense to have everything in the same place but I find the functionality in BMT crucial, especially fixing metadata for files that don't import correctly. Often TV shows get imported as movies if the filename doesn't correspond to the convention. So it would be great if that functionality remained as it is today. The current media file pages of the web server are not that strong. And don't forget about the batch functionality as that is occasionally VERY useful. BMT also works with folders/directories as entities rather than just Sage concepts like MediaFile, Airings and Shows.

It would also be great if this be web admin functionality also allowed you to "hot change" properties in the sage.properties file that used to require you to edit that file - one example is encoder merit (of which there was a discussion a little while ago).
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA
Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA
Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server
Reply With Quote
  #14  
Old 01-03-2016, 04:10 PM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,541
Quote:
Originally Posted by wayner View Post
It makes sense to have everything in the same place but I find the functionality in BMT crucial, especially fixing metadata for files that don't import correctly. Often TV shows get imported as movies if the filename doesn't correspond to the convention. So it would be great if that functionality remained as it is today. The current media file pages of the web server are not that strong. And don't forget about the batch functionality as that is occasionally VERY useful. BMT also works with folders/directories as entities rather than just Sage concepts like MediaFile, Airings and Shows.

It would also be great if this be web admin functionality also allowed you to "hot change" properties in the sage.properties file that used to require you to edit that file - one example is encoder merit (of which there was a discussion a little while ago).
BMT is dead in the sense that I don't want to continue developing it under GWT. I do think that whatever happens, there will always be a "BMT" like set of features.
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
So when's the new release coming? teq Sage My Movies 7 10-07-2010 04:57 PM
How do plugins get into the list of plugins? michaeldjcox SageTV v7 Customizations 4 06-12-2010 03:05 AM
Ion coming soon... Polypro General Discussion 5 04-09-2009 01:30 PM
Coming from BTV SageGk SageTV Software 2 03-30-2008 01:05 PM


All times are GMT -6. The time now is 08:54 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.