SageTV Community  

Go Back   SageTV Community > SageTV Products > SageTV Software
Forum Rules FAQs Community Downloads Today's Posts Search

Notices

SageTV Software Discussion related to the SageTV application produced by SageTV. Questions, issues, problems, suggestions, etc. relating to the SageTV software application should be posted here. (Check the descriptions of the other forums; all hardware related questions go in the Hardware Support forum, etc. And, post in the customizations forum instead if any customizations are active.)

Reply
 
Thread Tools Search this Thread Display Modes
  #81  
Old 10-17-2018, 04:38 AM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by Skirge01 View Post
Using 0.5, the decrease is incredible. That L&O episode decreased by 2 watches, BTW.

Before:

Most watched movies:



After:

Most watched movies:


BUT... there's a nasty little side effect to the new RealWatchedEndTime setting. Anything marked as watched in the guide, but never actually watched, will not be sent to Trakt at all when this setting is enabled.

For example, Arachnophobia doesn't show up as ever being watched. Likely, that's technically true, as I probably just marked it as watched so that the intelligent recording engine wouldn't record it for me.

However, even as obsessive as I can sometimes be, I doubt I would've marked a single movie as watched 48 times. IMO, something still seems off with how Sage is determining whether something has been watched. I continue to wonder if Sage goes through every guide download and tries to match up previously watched airings and marks them as watched again. Perhaps, Arachnophobia simply showed up in the guide on 48 separate occasions and Sage marked 47 of them as watched on its own. Or, it could be what Tiki was mentioning.

Without knowing how Sage works, I can't offer up any suggestions for 'fixing' this. What I can say for me, though, is that I'd be happy if the only thing sent to Trakt was the first instance of something getting watched. That goes for both the initial, bulk upload to Trakt, as well as future updates to Trakt.
I've thought about this a little bit. I think the solution is to consider the oldest one "watched", even if the RealWatched time is not set.
__________________

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.
Reply With Quote
  #82  
Old 10-17-2018, 05:01 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by tmiranda View Post
I've thought about this a little bit. I think the solution is to consider the oldest one "watched", even if the RealWatched time is not set.
Is there an option to only set watched once? I mean some people might care that rocky was watched 4 times... I just care that it was watched. It would nice to have an option of treating watched as a binary operation.
Reply With Quote
  #83  
Old 10-17-2018, 06:41 AM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by stuckless View Post
Is there an option to only set watched once? I mean some people might care that rocky was watched 4 times... I just care that it was watched. It would nice to have an option of treating watched as a binary operation.
Yes, I can do that.

I'm about to get on a plane and won't be back for about a week. I'll continue working on this when I return.
__________________

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.
Reply With Quote
  #84  
Old 10-17-2018, 09:41 AM
Skirge01's Avatar
Skirge01 Skirge01 is offline
SageTVaholic
 
Join Date: Jun 2007
Location: New Jersey
Posts: 2,599
Quote:
Originally Posted by stuckless View Post
Is there an option to only set watched once? I mean some people might care that rocky was watched 4 times... I just care that it was watched. It would nice to have an option of treating watched as a binary operation.
I know my post was lengthy, so you may not have seen it, but that's what I was also trying to suggest at the end.

Since we don't know how many different factors Sage uses to flag something as watched, I don't think it makes sense to use any additional "watches" to increase the watched count in Trakt. Some people might like to know how many times they've watched something, but I don't think most people will find it that important. A binary operation should suffice.

Right now, I'm focused on making note of what shows or movies haven't matched correctly and trying to figure out what it should be.

The first one I found is Merlin. I watched both of these at some point:

https://trakt.tv/shows/merlin-1998
https://trakt.tv/shows/merlin

But, only the 2nd one is showing as watched in Trakt. However, the plugin also (incorrectly) flagged this as watched:

https://trakt.tv/movies/merlin-2018

I'm having trouble finding these in the logs, so I'm going to wipe and start over again so I can provide the data. But, I do know that the 2 items I watched were watched several years before 2018.

Enjoy your trip, Tom! We'll be here when you get back.
__________________
Server: XP, SuperMicro X9SAE-V, i7 3770T, Thermalright Archon SB-E, 32GB Corsair DDR3, 2 x IBM M1015, Corsair HX1000W PSU, CoolerMaster CM Storm Stryker case
Storage: 2 x Addonics 5-in-3 3.5" bays, 1 x Addonics 4-in-1 2.5" bay, 24TB
Client: Windows 7 64-bit, Foxconn G9657MA-8EKRS2H, Core2Duo E6600, Zalman CNPS7500, 2GB Corsair, 320GB, HIS ATI 4650, Antec Fusion
Tuners: 2 x HD-PVR (HTTP tuning), 2 x HDHR, USB-UIRT
Software: SageTV 7
Reply With Quote
  #85  
Old 10-17-2018, 10:12 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by Skirge01 View Post
I know my post was lengthy, so you may not have seen it, but that's what I was also trying to suggest at the end.

Since we don't know how many different factors Sage uses to flag something as watched, I don't think it makes sense to use any additional "watches" to increase the watched count in Trakt. Some people might like to know how many times they've watched something, but I don't think most people will find it that important. A binary operation should suffice.

Right now, I'm focused on making note of what shows or movies haven't matched correctly and trying to figure out what it should be.

The first one I found is Merlin. I watched both of these at some point:

https://trakt.tv/shows/merlin-1998
https://trakt.tv/shows/merlin

But, only the 2nd one is showing as watched in Trakt. However, the plugin also (incorrectly) flagged this as watched:

https://trakt.tv/movies/merlin-2018

I'm having trouble finding these in the logs, so I'm going to wipe and start over again so I can provide the data. But, I do know that the 2 items I watched were watched several years before 2018.

Enjoy your trip, Tom! We'll be here when you get back.
I can't speak for how this is implemented, but, I THINK, that if your item has an imdb entry, then Tom's code will use that to identify the item in Trakt. Now, only systems that are using Phoenix/BMT will have that. For systems that are not using Phoenix, then a title match will have to be done, and I can tell you that is not easy. The Phoenix matchers were under active development for several years, and they still are only about 85% effective (and it does things like find all matching titles and then try to narrow it down by the year that is closest to what is returned in the search results, etc, compare titles swapping "and" for "&" and vice versa, etc, etc.)
Reply With Quote
  #86  
Old 10-17-2018, 10:45 AM
Skirge01's Avatar
Skirge01 Skirge01 is offline
SageTVaholic
 
Join Date: Jun 2007
Location: New Jersey
Posts: 2,599
While I am using Phoenix/BMT, the above Merlin example is a historical lookup from the wiz.bin. Those 2 shows I watched haven't been in my library for years now, so I don't know that BMT would be able to assist. It's entirely possible those were watched before BMT was installed on my system or, possibly, even before it was available as a plugin.
__________________
Server: XP, SuperMicro X9SAE-V, i7 3770T, Thermalright Archon SB-E, 32GB Corsair DDR3, 2 x IBM M1015, Corsair HX1000W PSU, CoolerMaster CM Storm Stryker case
Storage: 2 x Addonics 5-in-3 3.5" bays, 1 x Addonics 4-in-1 2.5" bay, 24TB
Client: Windows 7 64-bit, Foxconn G9657MA-8EKRS2H, Core2Duo E6600, Zalman CNPS7500, 2GB Corsair, 320GB, HIS ATI 4650, Antec Fusion
Tuners: 2 x HD-PVR (HTTP tuning), 2 x HDHR, USB-UIRT
Software: SageTV 7
Reply With Quote
  #87  
Old 10-17-2018, 10:54 AM
stuckless's Avatar
stuckless stuckless is offline
SageTVaholic
 
Join Date: Oct 2007
Location: London, Ontario, Canada
Posts: 9,713
Quote:
Originally Posted by Skirge01 View Post
While I am using Phoenix/BMT, the above Merlin example is a historical lookup from the wiz.bin. Those 2 shows I watched haven't been in my library for years now, so I don't know that BMT would be able to assist. It's entirely possible those were watched before BMT was installed on my system or, possibly, even before it was available as a plugin.
If the file is no longer in your library, then, not sure any of the Phoenix/BMT metadata would be around, and in those cases, manual matching would have to be done.
Reply With Quote
  #88  
Old 10-17-2018, 02:09 PM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by stuckless View Post
I can't speak for how this is implemented, but, I THINK, that if your item has an imdb entry, then Tom's code will use that to identify the item in Trakt. Now, only systems that are using Phoenix/BMT will have that. For systems that are not using Phoenix, then a title match will have to be done, and I can tell you that is not easy. The Phoenix matchers were under active development for several years, and they still are only about 85% effective (and it does things like find all matching titles and then try to narrow it down by the year that is closest to what is returned in the search results, etc, compare titles swapping "and" for "&" and vice versa, etc, etc.)
The matching generally works like this:
- I first use the info available from the wiz.bin, which is usually only name and year, and any IMDB info available (which as Sean said is only available for items that are still physically on your hard drive) and send that to Trakt. If it matches something great.
- If it does not match I do a general search on track using the title and episode name (if it's a TV show) and any season:episode info. If I get an exact match great.
- If I do not get an exact match I use "fuzzy" string matching on name and episode name. This is actually pretty accurate at this point because the general search on Trakt also does fuzzy matching and returns the matches in order of most likely matches.
__________________

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.
Reply With Quote
  #89  
Old 10-17-2018, 02:10 PM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by Skirge01 View Post
I know my post was lengthy, so you may not have seen it, but that's what I was also trying to suggest at the end.

Since we don't know how many different factors Sage uses to flag something as watched, I don't think it makes sense to use any additional "watches" to increase the watched count in Trakt. Some people might like to know how many times they've watched something, but I don't think most people will find it that important. A binary operation should suffice.

Right now, I'm focused on making note of what shows or movies haven't matched correctly and trying to figure out what it should be.

The first one I found is Merlin. I watched both of these at some point:

https://trakt.tv/shows/merlin-1998
https://trakt.tv/shows/merlin

But, only the 2nd one is showing as watched in Trakt. However, the plugin also (incorrectly) flagged this as watched:

https://trakt.tv/movies/merlin-2018

I'm having trouble finding these in the logs, so I'm going to wipe and start over again so I can provide the data. But, I do know that the 2 items I watched were watched several years before 2018.

Enjoy your trip, Tom! We'll be here when you get back.
Thanks for testing and isolating these issues.
__________________

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.
Reply With Quote
  #90  
Old 10-17-2018, 08:43 PM
Skirge01's Avatar
Skirge01 Skirge01 is offline
SageTVaholic
 
Join Date: Jun 2007
Location: New Jersey
Posts: 2,599
Tom, do you want me to track down mismatches like the Merlin example, where there's no file currently in the library, or should I ignore those because of the difficulty in getting them to match?
__________________
Server: XP, SuperMicro X9SAE-V, i7 3770T, Thermalright Archon SB-E, 32GB Corsair DDR3, 2 x IBM M1015, Corsair HX1000W PSU, CoolerMaster CM Storm Stryker case
Storage: 2 x Addonics 5-in-3 3.5" bays, 1 x Addonics 4-in-1 2.5" bay, 24TB
Client: Windows 7 64-bit, Foxconn G9657MA-8EKRS2H, Core2Duo E6600, Zalman CNPS7500, 2GB Corsair, 320GB, HIS ATI 4650, Antec Fusion
Tuners: 2 x HD-PVR (HTTP tuning), 2 x HDHR, USB-UIRT
Software: SageTV 7
Reply With Quote
  #91  
Old 10-23-2018, 05:28 AM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by Skirge01 View Post
Tom, do you want me to track down mismatches like the Merlin example, where there's no file currently in the library, or should I ignore those because of the difficulty in getting them to match?
I'll be back at it in a few days. It's probably better if you wait until the next build as I've made improvements in the matching.
__________________

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.
Reply With Quote
  #92  
Old 10-27-2018, 08:22 AM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
I should have version 0.07 ready tomorrow. It has more fixes and enhancements. I think this version will be a big improvement as I have been working on many "edge cases".
__________________

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.
Reply With Quote
  #93  
Old 10-28-2018, 09:26 AM
Skirge01's Avatar
Skirge01 Skirge01 is offline
SageTVaholic
 
Join Date: Jun 2007
Location: New Jersey
Posts: 2,599
Quote:
Originally Posted by tmiranda View Post
I should have version 0.07 ready tomorrow. It has more fixes and enhancements. I think this version will be a big improvement as I have been working on many "edge cases".
Sounds good. I'm finishing up some tests with 0.6 still.
__________________
Server: XP, SuperMicro X9SAE-V, i7 3770T, Thermalright Archon SB-E, 32GB Corsair DDR3, 2 x IBM M1015, Corsair HX1000W PSU, CoolerMaster CM Storm Stryker case
Storage: 2 x Addonics 5-in-3 3.5" bays, 1 x Addonics 4-in-1 2.5" bay, 24TB
Client: Windows 7 64-bit, Foxconn G9657MA-8EKRS2H, Core2Duo E6600, Zalman CNPS7500, 2GB Corsair, 320GB, HIS ATI 4650, Antec Fusion
Tuners: 2 x HD-PVR (HTTP tuning), 2 x HDHR, USB-UIRT
Software: SageTV 7
Reply With Quote
  #94  
Old 10-28-2018, 11:16 AM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by Skirge01 View Post
Sounds good. I'm finishing up some tests with 0.6 still.
Let me know if you find lines in the logfile that look like this:

Code:
AddHistory: Did not find any matches for
I've been working on enhancing the search capabilities to find as many shows as possible. (The names in the Sage database do not always match the names in the Trakt database.)

Version 0.07 will have the following changes:

// 0.07:
// - Fixed bug that caused upcoming recordings to not be marked as watched if they were watched on Trakt.
// - Fixed a bug that caused only one episode in total to be synced if the mode was One*.
// - Do not sync to Trakt if the user selects "Delete and Set Watched" or "Delete and Clear Watched".
// - Do not sync to Trakt if a ClearWatched event is received as a result of the user re-watching a watched show.
// - Check for the existence of the properties file in Timestamp before attempting to read it.
// - Improved error handling throughout code.
// - Improved fuzzy searching for shows with special characters in their names.
// - Improved episode matching bfor episodes that have no season and episode number information.
// - Moved scanning of upcoming recordings into it's own thread.
// - Changed order of configuration options to more logical grouping.
__________________

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.
Reply With Quote
  #95  
Old 10-28-2018, 02:38 PM
dstanley's Avatar
dstanley dstanley is offline
Sage Aficionado
 
Join Date: Sep 2008
Location: LaHave, Nova Scotia, Canada
Posts: 291
I seem to have a ton of these in the log when trying to sync all:
Code:
TTV: AddHistory: Episode does not have a timestamp:
Next update I will clear all my Trakt history and re-sync from scratch.
What would be the proper steps to do this Tom?

Dwight
__________________
SERVER: Intel Core i7-3770 CPU @ 3.40GHz - UnRaid Server 6.8.0/DVB LibreELEC with Docker stuckless-sagetv-server-java9 MOTHERBOARD: ASRock-Z77 Extreme4 / 32GB RAM CACHE DRIVE: SSD 1TB ARRAY: 24TB/7 DRIVES PARITY: 8TB
EXTERNAL DEVICES: 4x HD-PVR's Firewire Channel Changing
TUNERS:NO LONGER RECORDING LIVETV
CLIENTS: 2xHD300 2xHD200 SONY ANDROIDTV MINI-CLIENT
Reply With Quote
  #96  
Old 10-28-2018, 02:50 PM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Version 0.07

Version 0.07 is ready. See previous post for the changes. To install Unzip the attachment into the Sage install directory then upgrade the plugin.

This version is much improved again. Here are the sync settings that I think make the most sense to use:
- Yes for sync TV and Movies.
- Limit the number to sync: It's now pretty safe to use "Everything".
- Only sync show with RralWatchedEndTime: Yes
- How many if multiple watches: Either "Only One" or "One*". I prefer One* because if it does not find any shows (or episodes of a show) with a RealWatchedEndTime it will pick the oldest one that was set watched.
- Use closest match: Yes. This will make the sync more accurate.
- Sync even if synced before: No.

I'm still working on some "edge cases" for shows that are hard to match. This happens fairly often because many show names in the Sage DB differ from the Trakt DB. (For example in my Sage DB there is a show "StarTalk". On Trakt this is listed as "StarTalk with Neil deGrasse Tyson".)
Attached Files
File Type: zip SageTVPluginsDev.zip (1.7 KB, 107 views)
__________________

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.

Last edited by tmiranda; 10-29-2018 at 06:05 AM.
Reply With Quote
  #97  
Old 10-29-2018, 03:46 PM
Skirge01's Avatar
Skirge01 Skirge01 is offline
SageTVaholic
 
Join Date: Jun 2007
Location: New Jersey
Posts: 2,599
Quote:
Originally Posted by tmiranda View Post
Let me know if you find lines in the logfile that look like this:

Code:
AddHistory: Did not find any matches for
So far, I have not seen any of that in 0.06, but still running through my battery of 12 test cases. Certainly not your fault in any way, but initially uploading to Trakt and then clearing Trakt takes a LOOOOONG time. LOL!
__________________
Server: XP, SuperMicro X9SAE-V, i7 3770T, Thermalright Archon SB-E, 32GB Corsair DDR3, 2 x IBM M1015, Corsair HX1000W PSU, CoolerMaster CM Storm Stryker case
Storage: 2 x Addonics 5-in-3 3.5" bays, 1 x Addonics 4-in-1 2.5" bay, 24TB
Client: Windows 7 64-bit, Foxconn G9657MA-8EKRS2H, Core2Duo E6600, Zalman CNPS7500, 2GB Corsair, 320GB, HIS ATI 4650, Antec Fusion
Tuners: 2 x HD-PVR (HTTP tuning), 2 x HDHR, USB-UIRT
Software: SageTV 7
Reply With Quote
  #98  
Old 10-29-2018, 05:42 PM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by Skirge01 View Post
So far, I have not seen any of that in 0.06, but still running through my battery of 12 test cases. Certainly not your fault in any way, but initially uploading to Trakt and then clearing Trakt takes a LOOOOONG time. LOL!
You have over 34,000 "plays". Yes, that will take a long time
__________________

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.
Reply With Quote
  #99  
Old 10-29-2018, 06:07 PM
Skirge01's Avatar
Skirge01 Skirge01 is offline
SageTVaholic
 
Join Date: Jun 2007
Location: New Jersey
Posts: 2,599
Quote:
Originally Posted by tmiranda View Post
You have over 34,000 "plays". Yes, that will take a long time
You know it! Hey, is there a way to see what was matched using fuzzy logic? Hopefully it isn't the majority and I could use that to know which items to validate are correctly matched on Trakt.
__________________
Server: XP, SuperMicro X9SAE-V, i7 3770T, Thermalright Archon SB-E, 32GB Corsair DDR3, 2 x IBM M1015, Corsair HX1000W PSU, CoolerMaster CM Storm Stryker case
Storage: 2 x Addonics 5-in-3 3.5" bays, 1 x Addonics 4-in-1 2.5" bay, 24TB
Client: Windows 7 64-bit, Foxconn G9657MA-8EKRS2H, Core2Duo E6600, Zalman CNPS7500, 2GB Corsair, 320GB, HIS ATI 4650, Antec Fusion
Tuners: 2 x HD-PVR (HTTP tuning), 2 x HDHR, USB-UIRT
Software: SageTV 7
Reply With Quote
  #100  
Old 10-30-2018, 04:49 AM
tmiranda's Avatar
tmiranda tmiranda is offline
SageTVaholic
 
Join Date: Jul 2005
Location: Central Florida, USA
Posts: 5,851
Quote:
Originally Posted by Skirge01 View Post
You know it! Hey, is there a way to see what was matched using fuzzy logic? Hopefully it isn't the majority and I could use that to know which items to validate are correctly matched on Trakt.
For movies, no. You just need to see if it got sent to Trakt or not. You can get a clue by looking for "Similarity.compareStrings: Similarity Score:".

For TV episodes, look for "Search.toTraktEpisode: Found a match"

For version 0.08 I'm adding the ability to replace phrases. For example "WWI" with "World War I". You will have the ability to add your own because I am sure I won't find all the possibilities on my test data.
__________________

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.
Reply With Quote
Reply


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

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
Any interest/plans for native trakt.tv support? (watched show/movie sync) TwistedMelon SageTV Github Development 3 08-06-2018 01:58 PM
Watched Status export/sync with Trakt? Jason SageTV v7 Customizations 0 06-08-2013 06:17 AM


All times are GMT -6. The time now is 07:05 AM.


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