|
SageTV Customizations This forums is for discussing and sharing user-created modifications for the SageTV application created by using the SageTV Studio or through the use of external plugins. Use this forum to discuss customizations for SageTV version 6 and earlier, or for the SageTV3 UI. |
|
Thread Tools | Search this Thread | Display Modes |
#561
|
|||
|
|||
Are there any exceptions in the SJQ logs or the SageTV/Jetty logs? I usually see this error during dev work where I cause a runtime exception with the app. Could also be a result of a Jetty error. Either way I'll need exception dumps to track it down.
__________________
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... |
#562
|
||||
|
||||
Quote:
Here is the output of the log file: 2010-03-31 17:16:25,596 INFO [SystemMessageQueueLoader]: Run completed [0ms] 2010-03-31 17:16:27,003 WARN [SJQServlet]: All client connections are being accepted and processed, please consider setting up client restrictions in SJQ settings 2010-03-31 17:16:27,003 INFO [SJQServlet]: Servlet POST request completed [0ms] 2010-03-31 17:16:27,018 INFO [MediaFileQueueLoader]: sleep interrupted 2010-03-31 17:16:27,018 WARN [MediaFileQueueLoader]: Processing '60 Minutes'... 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating 'IsObjMediaFile == "true"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.IsTVFile{} == "true"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.IsNotManualOrFavorite{} == "false"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.GetAiringChannelName{} != "HBOHD"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.GetAiringChannelName{} != "HBO2"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.GetAiringChannelName{} != "HBOSIG"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.GetAiringChannelName{} != "HBOF"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.GetAiringChannelName{} != "HBOC"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.GetAiringChannelName{} != "HBOZ"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.GetAiringChannelName{} != "KTCADT"' == true 2010-03-31 17:16:27,018 WARN [RulesParser]: Line 1: Evaluating '$.GetAiringChannelName{} != "KTCADT2"' == true 2010-03-31 17:16:27,034 INFO [MediaFileQueueLoader]: Run completed [16ms] 2010-03-31 17:16:27,034 INFO [DataStore]: Thread 'SJQ-LogCleaner' is seeking an exclusive DataStore connection! 2010-03-31 17:16:27,034 INFO [DataStore]: Thread 'SJQ-LogCleaner' has received an exclusive DataStore connection! [WAIT=0ms] 2010-03-31 17:16:27,034 INFO [DataStore]: 'SJQ-LogCleaner' has returned its exclusive DataStore connection! 2010-03-31 17:16:27,034 INFO [LogCleaner]: Thread finished [0ms] 2010-03-31 17:16:27,034 INFO [VacuumCleaner]: Thread finished [0ms] 2010-03-31 17:16:27,034 WARN [FileCleaner]: Skipping because file cleaner settings are empty! 2010-03-31 17:16:37,987 WARN [SJQServlet]: All client connections are being accepted and processed, please consider setting up client restrictions in SJQ settings 2010-03-31 17:16:37,987 INFO [SJQServlet]: Servlet POST request completed [0ms] 2010-03-31 17:16:54,878 WARN [SJQServlet]: All client connections are being accepted and processed, please consider setting up client restrictions in SJQ settings 2010-03-31 17:16:54,909 INFO [SJQServlet]: Servlet POST request completed [31ms] 2010-03-31 17:17:15,956 INFO [ClientMonitor]: Run completed [0ms] 2010-03-31 17:17:16,128 INFO [InternalTaskClient]: Run completed [0ms] 2010-03-31 17:17:25,612 INFO [SystemMessageQueueLoader]: Run completed [16ms] 2010-03-31 17:17:39,878 WARN [SJQServlet]: All client connections are being accepted and processed, please consider setting up client restrictions in SJQ settings Dave |
#563
|
|||
|
|||
Based on this output, all your tests passed so that recording should have been added to the queue. Are you expecting it not to be added to the queue? If so, then why do you think it shouldn't be in the queue? Or is it not being added to the queue, but you expect it to be? If this is the case, then there's something weird going on b/c based on that output, the 60 Minutes recording should have been placed in the queue.
__________________
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... |
#564
|
||||
|
||||
You're right! The channels named in the script should not be the queue, and they are not in the queue. The problem was that I was thinking about the script in the wrong way.
Dave |
#565
|
||||
|
||||
I made some progress installing the SJQ client service, but I am still having some trouble with the SQL ruleset. I basically use a modified example 2. I removed the $.IsNotManualOrFavorite{} == false statement, since I do not want to Comskip the channels that are recorded regardless of Manual, Favorite, or if SageTV records the program without scheduling it myself.
There seems to be a limit how long the ruleset can be. I tried making a long ruleset which had 26 non commercial channels in the ruleset. I waited for about a minute, after manually running the job, and no items were in the job queue. Maybe I did not wait long enough. Is there a limit to the ruleset length, if so how do you get around that to have a really long list of channels that you don't want comskipped? Can you put several rules after each other in the same ruleset file? The documentation looks like it is possible to have several rules within one ruleset file. Although to do avoid comskipping 26 channels, I think I would need a really long rule, which does not seem to work. Here's an example of a modified short example 2 that does work. When all the channels are in the rule, the size of the rule is about 4 - 5 times longer. if [IsObjMediaFile == true && $.IsTVFile{} == true && ($.GetAiringChannelName{} != "HBOHD" && $.GetAiringChannelName{} != "HBO2" && $.GetAiringChannelName{} != "HBOSIG" && $.GetAiringChannelName{} != "HBOF") && $.GetAiringChannelName{} != "HBOC" && ($.GetAiringChannelName{} != "HBOZ" && $.GetAiringChannelName{} != "ENCORE" && $.GetAiringChannelName{} != "ENCRA")] { COMSKIP } Dave |
#566
|
|||
|
|||
couldn't he use regex to shorten it?
Code:
$.GetAiringChannelName{} !% "HBO*|ENCORE|ENCRA"
__________________
Server: WHS with 11TB of storage Clients:1) HD-200 to a Samsung 32" Slimfit CRT HDTV 2) HD-200 to a Pioneer 26" X1 LCD Tuners: 1) HD-Homerun 2) Avermedia USB ATSC Twitter: ohpleaseno |
#567
|
||||
|
||||
Quote:
Code:
if [IsObjMediaFile == true && $.IsTVFile{} == true && ($.GetAiringChannelName{} !% "KTCADT|KTCADT2|KTCADT3|KTCADT4|CSPAN|CSPAN2|CSPAN3|ENCRWA|ENCORE|ENCRA|ENCRM|ENCRL|ENCRD|ENCRWS|HBOHD|HBO2|HBOSIG|HBOF|HBOC|HBOZ|MPLEX|IFC|SUNDAE|INDIE|RETR|FLIX")] { COMSKIP } I am using the SJQ client configuration file: COMSKIP { :RESOURCES 100 # Up to 1 comskips can be run simultaneously (every client has exactly 100 resources available) # CPU priority to be used for this task process; one of LOW, NORMAL, HIGH (case sensitive) :CPU "LOW" # Default is NORMAL if not specified # Comskip returns 1 on success instead of the universally accepted zero; tell SJQ that # a return code of 1 means success instead of the default value of zero :RETURNCODE 1 "C:/comskip/comskip.exe \"%c%\"" } I don't know if multiple jobs can be run at the same time. SJQ should make a big difference, selectively comskipping only the commercial channels! Dave |
#568
|
|||
|
|||
Long rulesets shouldn't matter - should work fine. If it's not, then look in the server logs for an exception dump, which should explain what's going on (usually you made a typo, which becomes more and more likely as the length of your ruleset grows). As to using a regex, you need to remember the value is a regular expression, not a simple wildcard string. There is a link in the User's Guide that points you to the docs for writing valid regular expressions. In its simplest form, you'll want to do something like this:
$.GetAiringChannelName{} !% "HBO.*|ENCORE|ENCRA" ... and so on. You might be able to replace ENCORE|ENCRA with: "HBO.*|ENC.*", but that might be too generic - you'll have to browse over all your callsigns and ensure that it won't pickup other channels that you do want comskipped. Again, have a look at the User's Guide for the link to the Java regex documentation.
__________________
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... |
#569
|
|||
|
|||
Slugger,
This is just a general question is the first check in 3.0 against the SQLITE db to see if a job ran already for a specific media file?.
__________________
Channels DVR UBUNTU Server 2 Primes 3 Connects TVE SageTV Docker with input from Channels DVR XMLTV and M3U VIA Opendct. |
#570
|
|||
|
|||
Quote:
For anyone interested, a proper fix would require something along the lines of "prescanning"/"compiling" the ruleset in order to discover which tasks are defined and then while looping through the objects to be scanned, you do the SQLite lookup first for each defined task and skip over processing rulesets for those tasks that have already been completed. There are gotchas all over the place though - mainly to do with the situation where a rule defines more than one task. In this case you may still have to proceed with the entire test block evaluation because one or more of the tasks could possibly still be added to the queue even though at least one may have already been processed. This is just one exception that I thought of way back when. I'm sure many more exist and so now you can see why the less efficient, but time tested interpreted ruleset algorithm remains in place. With all that said, I'm willing to accept a patch from anyone willing to tackle this issue. I'd be willing to speculate a proper patch would reduce the avg run time of the QueueLoader from ~2s/1000 media files to probably <250ms/1000 media files (Q6600 CPU). That's only a guess. I can say with certainly that a significant gain of some kind would be seen. I suppose some day my media library may get big enough that a fix will almost be required for my system. If that day does come then I suppose I'll fix it, but given that this is a background process and I really don't want to fix it, it seems unlikely that I'd fix it anytime soon. (nyplayer, I know you weren't asking for it to be fixed or even suggesting that it may be broken, but since you brought it up I felt compelled to confess my long standing knowledge on this issue.)
__________________
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... |
#571
|
||||
|
||||
My SJQ and SJQ client are both installed on my SageTV computer. The client is installed as a service. I was thinking of installing a SJQ client as a service on another computer to do more Comskip processing streams, and offload the CPU load onto another computer. The second computer does not have SageTV installed on it.
My current SJQ client connects with 127.0.0.1. I assume that I would need to configure the remote computer's SJQ IP address somewhere. The SageTV drive letters are mapped on the remote computer, with the same drive letters. Dave |
#572
|
||||
|
||||
You just have to make sure the client can find the sjq server, and have that ip and port specified in the client's .ini file. Also, you have to make sure the client can access the recordings as well. You can either always use UNC paths for everything (recommended), or if no, use can use the :MAPDIR directive in the client to redirect the path the server sees teh file at (where sage tells it the file is) to a path the client can see that file at.
__________________
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 |
#573
|
|||
|
|||
Guys, I'm doing a little SJQ writeup on GeekTonic and I'm interested in how everyone is using it. Do you use it with comskip, showanalyzer, and/or some other tool? Let me know and I'll include that use case in the writeup.
Thanks! |
#574
|
|||
|
|||
I don't do this (yet), but someone else mentioned that they use it to move recordings to a NAS after they're done recording. I thought that was pretty cool as you could let your NAS do what it's good at and not try to stick SageTV + supporting pieces on it.
__________________
Home Network: https://karylstein.com/technology.html |
#575
|
|||
|
|||
I use it with comskip to process all of the recordings except for ones on PBS, HDNET and other channels which do not have commercials. I also have it set to reschedule a recording if it was recorded in SD and there is an HD airing coming up. The other task I have it complete is that it automatically deletes any Family Guy episodes that were recorded on a local broadcast channel simply because they are always in SD even though the guide say it's in HD.
|
#576
|
|||
|
|||
I use it to run ShowAnalyzer. I also use it to call BMT for fanart. I also use the internal SJQ _MOVEREC task to move selected recordings from the server's local recording drives onto my NAS (w/o the need to stop Sage). I also call MediaShrink, and the _RELINK task to relink those recordings that I've transcoded with MediaShrink.
__________________
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... |
#577
|
|||
|
|||
that's a great idea!!! Would you mind sharing yoru code for that?
|
#578
|
|||
|
|||
I use it to remove the manual recording flag from anything that has been watched. (If I want to keep it, I archive it. I don't like manual recordings not being auto-deleted.)
|
#579
|
|||
|
|||
Quote:
Code:
# Download fanart as needed if [IsObjMediaFile == true && $.GetShowExternalID{} !% "(?:SP|MV).*" && $.GetShowExternalID{} != "NoShow" && $.IsTVFile{} == true && ($.GetShowCategory{} !% "Special|Standup|Documentary" || $.GetShowSubCategory{} !% "Special|Standup|Documentary") && FileExists != "D:/FANART/TV/$.GetShowTitle{}" && ($.IsManualRecord{} == true || $.IsFavorite{} == true) && $.IsLibraryFile{} == false] { :PRIORITY -5 TVMETADATA } Code:
TVMETADATA { :RESOURCES 5 "\"C:/Program Files/SageTV/SageTV/bmt.bat\" \"%c%\"" } Code:
@echo off C: cd C:\Program Files\SageTV\SageTV java -jar metadatatool.jar --fanartOnly --auto=true --prompt=false %1 The ruleset skips movies because the BMT call never seems to work for movies for whatever reason. I also skip some other types of recordings (documentaries, specials, manual recordings, etc.). Finally, some shows will always run the BMT call because the show name contains special characters and so the dir name won't match the $.GetShowTitle{} string and so SJQ will always run it.
__________________
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... |
#580
|
|||
|
|||
I use it to move diff favorites to other folders and drives... kids wife etc... archive to NAS.
Reboot server once a week when nothing is recording... also reboot clients. Run Videoredo qfix and cut commercials.
__________________
Channels DVR UBUNTU Server 2 Primes 3 Connects TVE SageTV Docker with input from Channels DVR XMLTV and M3U VIA Opendct. Last edited by nyplayer; 04-03-2010 at 08:48 PM. |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Sage Job Queue (SJQ) new release notifications | Slugger | Customization Announcements | 3 | 12-17-2009 09:59 AM |
Plugin: Sage Job Queue (SJQ) | Slugger | SageTV Customizations | 991 | 12-11-2009 03:52 PM |
Sage Job Queue Completed tasks problem | raffmanlt | SageTV Customizations | 2 | 08-18-2009 07:34 PM |
Comskip Monitor VS Sage Job Queue SJQ | personalt | SageTV Customizations | 6 | 03-02-2009 10:27 AM |
Plugin: SJQ v1.1.0RC1 Available - Testers Needed | Slugger | SageTV Customizations | 35 | 04-21-2008 08:12 AM |