|
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 |
#1
|
|||
|
|||
SJQv4: Technology Preview
Ok, I got sick of writing docs today so I'm going to finish my Sage dev time today with a technology preview of SJQv4.
After a solid 2+ months of development, I'm pleased to announce that we've finished coding features for the initial beta of SJQv4 and are now finalizing documentation. Once the doc efforts are complete, SJQv4 public beta 1 will be made available. First, the things you need to know about SJQv4: For those eager to get learning about SJQv4, there are docs available online, but they aren't complete - far from it. But you can read what's there and start to get a feel of what's new in this release. In addition to the above user guide wiki, you will want to become familiar with Groovy. With the shift to a real scripting language comes a new learning curve with this release of SJQ, but a real, robust, complete scripting language also adds an infinite amount of power and flexibility to this tool! "Anything" that was possible in SJQv3 will become way easier to accomplish in SJQv4 - once you learn the basics of Groovy. But more importantly, things that weren't possible in SJQv3 are now available in SJQv4. Variables, for loops and all the things you can do with just those two things are now possible in SJQv4 via Groovy. I'm excited about this release and look forward to the feedback once we make it available. I know this is going to present a new set of challenges for current users of SJQ and new users alike, but I also honestly believe that this iteration of SJQ provides an incredibly powerful platform to script any and all automatic task execution needs for your SageTV platform! Have a look at the screen shots from the STVi and feel free to compliment tmiranda for his incredible efforts on bringing SJQ to the STV. ETA for public beta 1 is December 5. The SJQ menu: http://sagetv-addons.googlecode.com/...i_sjq_menu.jpg Registered Task Clients: http://sagetv-addons.googlecode.com/...st_clients.jpg (Completed) Task List: http://sagetv-addons.googlecode.com/...eted_queue.jpg Assign Tasks to Favourites (Menu Injection): http://sagetv-addons.googlecode.com/...sks_2_favs.jpg Assign Tasks to Favourites (Assignment Menu): http://sagetv-addons.googlecode.com/...ks_2_favs2.jpg Assign Tasks to Events: http://sagetv-addons.googlecode.com/...s_2_events.jpg Manually Queue Media File (after it's already recorded/imported): http://sagetv-addons.googlecode.com/...queue_4_mf.jpg
__________________
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... |
#2
|
||||
|
||||
Slugger did all of the hard work, I just dressed it up a bit.
Here is a preview of the docs for the UI. As Slugger stated, they are not complete but there are a number of screenshots for you to look at. http://code.google.com/p/tmiranda/wi...4UserInterface
__________________
Sage Server: 8th gen Intel based system w/32GB RAM running Ubuntu Linux, HDHomeRun Prime with cable card for recording. Runs headless. Accessed via RD when necessary. Four HD-300 Extenders. |
#3
|
|||
|
|||
Right now, I have STV v7 and SJQ v3 (beta) installed via the plugin manager. It almost works in the sense that when the system starts up, the SJQ client (installed as a service) fails to connect to the SJQ server since SageTV isn't running yet (not installed as a service, but set to autostart with the desktop).
So my questions, when this release comes out, can I just uninstall the SJQ server plugin and install the new v4 plugin via the plug in manager? Is there any other cleanup that will need to be done prior to installing v4? Also, is it as simple as installing the v4 SJQ server and client via the plug in manager and writing the Groovy script? Nothing else needs to be done...except for the config within the SageTV GUI described in the docs? |
#4
|
|||
|
|||
Quote:
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... |
#5
|
|||
|
|||
Excellent! thanks for the reply.
My SJQ setup really just runs comskip (donator version) and then runs a VB script to fixup a skew that always happens due to the video stream created by the HD-PVR. I just need to launch comskip.exe, call the MediaInfo.GetFileDuration() function, and then call the VB script (via cscript.exe). After reading some of the SJQv4 & Groovy docs, this should be an easy Groovy script to write. |
#6
|
||||
|
||||
In V4 since there won't be rulesets/client tasks, how would you go about running comskip but using different .ini files based on channel?
At least for me, I could not get an .ini file that worked well with all channels and therefore had to make a few different ones based on the channels. Example rulesets I use are below...the client tasks are pretty much the same except uses a differently specified .ini file if [IsObjMediaFile == "true" && $.IsTVFile{} == "true" && $.GetAiringChannelName{} =% "TNT.*|USA.*|FX.*|DSC.*|WCCB.*" && FileExists != "%d%/%p%.edl" && (TimeOfDay < "19:40" || TimeOfDay > "23:59") ] { :PRIORITY 10 COMSKIP1 } if [IsObjMediaFile == "true" && $.IsTVFile{} == "true" && $.GetAiringChannelName{} =% "BBCA.*|SYFY.*|WJZY.*" && FileExists != "%d%/%p%.edl" && (TimeOfDay < "19:40" || TimeOfDay > "23:59") ] { :PRIORITY 10 COMSKIP2 } |
#7
|
||||
|
||||
Quote:
Slugger may have a better solution.
__________________
Sage Server: 8th gen Intel based system w/32GB RAM running Ubuntu Linux, HDHomeRun Prime with cable card for recording. Runs headless. Accessed via RD when necessary. Four HD-300 Extenders. |
#8
|
||||
|
||||
Not knowing Groovy or other options for V4,
Would you be able to do a CASE (or similiar function?). Then I could think it would be just 1 TASK and internally it would determine the .ini Something along the lines of the below? CASE channel WHEN "WXYZ" then execute "C:/comskip/comskip.exe --ini=c:/comskip/comskip1.ini \"%c%\"" WHEN "WABC" then execute "C:/comskip/comskip.exe --ini=c:/comskip/comskip1.ini \"%c%\"" WHEN "BBCA" then execute "C:/comskip/comskip.exe --ini=c:/comskip/comskip2.ini \"%c%\"" WHEN "SYFY" then execute "C:/comskip/comskip.exe --ini=c:/comskip/comskip2.ini \"%c%\"" ELSE IGNORE END CASE |
#9
|
|||
|
|||
Quote:
Code:
Object mediaFile = MediaFileAPI.GetMediaFileForID(SJQ4_METADATA.get("SJQ4_ID").toInteger()) String channel = AiringAPI.GetAiringChannelName(mediaFile) String file = SJQ4_METADATA.get("SJQ4_PATH") + SJQ4_METADATA.get("SJQ4_LAST_SEGMENT") String iniFile; if(channel ==~ /WABC|WXYZ/) iniFile = "comskip1.ini" else if(channel ==~ /SYFY|BBCA/) iniFile = "comskip2.ini" else iniFile = "" if(iniFile.length() > 0) iniFile = "--ini ${iniFile}" Process cmd = "C:/comskip/comskip.exe ${iniFile} \"${file}\"".execute() cmd.waitFor() return cmd.exitValue()
__________________
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... Last edited by Slugger; 11-28-2010 at 08:46 PM. |
#10
|
||||
|
||||
I forgot that the "executable" could actually be a Groovy script.
I've got to get my head out of the STV!
__________________
Sage Server: 8th gen Intel based system w/32GB RAM running Ubuntu Linux, HDHomeRun Prime with cable card for recording. Runs headless. Accessed via RD when necessary. Four HD-300 Extenders. |
#11
|
|||
|
|||
This sounds great. I don't currently use SJQ3, and I don't know if I'll end up using SJQ4, but I just donated anyways because I appreciate the hard work people put in trying to make software like this even better.
__________________
Server: Rosewill RSV-L4411 server case, Core i5 4590, 16 GB RAM, 1 Hauppauge Colossus, 1 HDHomeRun, 500GB SATA recording drive, 14 TB JBOD for media, SageTV 7, Win7 Pro, Ubuntu 14.04 VM with Plex Server and Subsonic Frontend: ASUS Chromebox running Kodi with SageTV add-on |
#12
|
|||
|
|||
paying
I don't mind paying and I saw the FAQ about donations but where do you make it to? It mentions paypal but don't see an address I really like SJQ and don't want it to expire or stop working once the new version is available. Thanks
Andy |
#13
|
|||
|
|||
Quote:
__________________
Server 2003 r2 32bit, SageTV9 (finally!) 2x Dual HDHR (OTA), 1x HD-PVR (Comcast), 1x HDHR-3CC via SageDCT (Comcast) 2x HD300, 1x SageClient (Win10 Test/Development) Check out TVExplorer |
#14
|
|||
|
|||
Thanks
Thanks I made my donation to me its well worth it for the time spent on it!
|
#15
|
||||
|
||||
SJQ v4 is sounding very cool, let me run though my v3 tasks real fast to understand how I can convert them for v4.
1) Comskip - Having comskip queue off the recording events a lot of sense, but I worry its going to keep me from doing some of the neat tricks I can do in v3. For example, right now I have 3 COMSKIP tasks configured, one for each recording drive, and I use the resource limits to ensure that there's never more than 2 comskips jobs on the same recording drive at the same time. Am I going to be able to do this in v4 by creating custom events for recording started/completed for each recording drive? In addition, I also have a COMSKIP_FAILURE tasks that I run on recordings that comskip fails on. Right now its artifact based because I can detect the failure by seeing a .log but not an .edl. And since the recovery process is very harddrive/processor intensive I have it kick off in the middle of the night. For this task i'm not clear on how I can implement it in v4. COMSKIP will be initiated by the recording started event and, while I can certainly detect the failure inside the groovy script I use to run comskip, I don't want to respond to the failure immediately rather pop it back in the queue as a new task that only runs at certain times 2) Mediashrink - In v3 I have mediashrink configured to only queue jobs if the recording is over a month old. Will it be possible to generate a custom event that fires when I recording hits a certain age?
__________________
Clients: 1xHD200 Connected to 50" TH-50PZ750U Plasma Server : Shuttle SFF SSH55J2 w/ Win7 Home, SageTV v7, Core i3 540, 2GB RAM, 30GB SSD for OS, 1.5TB+2x1TB WDGP for Recordings, BluRay, 2xHDHR, 1xFirewire SageTV : PlayOn, SJQ, MediaShrink, Comskip, Jetty, Web Client, BMT Having a problem? Don't forget to include a log! (Instructions for: PlayOn For SageTV v1.5, MediaShrink) Last edited by evilpenguin; 12-03-2010 at 01:39 PM. |
#16
|
|||
|
|||
Quote:
However, you won't necessarily need custom events to pull this off. Basically, on RecordingStarted queue up a "COMSKIP" task. It's only job (via Groovy script) will be to inspect the path of the recording and based on that path you can queue up a "COMSKIPDISK1" (or 2 or 3, etc.) task. You can load up tasks into the queue from other tasks via Groovy (or Java) since there is a common jar file for interactions with the SJQv4 task queue. Quote:
Alternately, setup a task via cron that runs periodically and looks for .log with no .edl and then queue up tasks as appropriate. There is an SJQ crontab in v4 that allows periodic/repeated runs of arbitrary tasks. ** That I can think of right off the top of my head. The beauty of moving to Groovy is that there really is 50 different ways to do any one task now in SJQ. When I document my current comskip setup people are going to say, "why are you doing it like that instead of like this?" And in reality there are probably a half dozen better ways to do it, but I migrated to SJQv4 exclusively early in development and at the time it was actually the only way to do it and it also shows an example of tasks that check preconditions and ship tasks back to the queue. 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... |
#17
|
|||
|
|||
How will the upgrade path work? In a day or two we will see a new upgrade in the Sage Plugin screens - we just upgrade and we go from the current version (which I believe is 3.1.0.93 beta) to a version 4 beta? Will we lose any functionality in the v4 beta?
FYI - I am very happy to pay for the upgrade. I personally don't mind if developers charge a small fee, or if they ask for donations to a charity of their choice.
__________________
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 |
#18
|
||||
|
||||
Quote:
I'd suggest reading the wiki's Slugger and I have created to get a feel for what you will have to do. Most of it is straight forward, writing a new "test script" will probably be the most difficult part. Tom
__________________
Sage Server: 8th gen Intel based system w/32GB RAM running Ubuntu Linux, HDHomeRun Prime with cable card for recording. Runs headless. Accessed via RD when necessary. Four HD-300 Extenders. |
#19
|
|||
|
|||
The beta 1 is delayed for two reasons:
__________________
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... |
#20
|
|||
|
|||
I believe you already have a SageAlert license file? SJQv4 uses the same one so no need to donate again. You just have to register your email address with SJQv4 after the upgrade and you'll be good to go. (A future update will centralize the sagetv-addons license registration such that you don't need to register with every plugin, but that's not done yet and won't be for SJQv4 beta 1).
__________________
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... |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Microsoft Abandons Drive Extender Technology for Vail | kevine | General Discussion | 53 | 12-09-2010 04:28 PM |
SJQv4: Design Discussion | Slugger | SageTV v7 Customizations | 26 | 10-18-2010 08:22 AM |
Geeks and Geek Squad/Consumer Technology woes featured on 60 Minutes tonight | Steve2112 | The SageTV Community | 23 | 02-26-2007 04:14 PM |