[mythtv] [PATCH] add 'category' column to 'record', 'recorded',
and 'oldrecorded' tables
Kirby Vandivort
kvandivo at ks.uiuc.edu
Fri Jun 27 10:59:49 EDT 2003
This patch adds the category column to the 'record', 'recorded' and
'oldrecorded' tables in the database. This will be handy in the future
for sorting lists, auto-recommendations, and other things that haven't
been thought about yet.
This should be extended to other fields also; I had started doing the
category_type column, but some of the low level data structures don't
have fields for category_type yet, and I didn't want to delve that deep
into the code on my first pass.
Enjoy.
--
Kirby Vandivort Theoretical and Computational Biophysics
Email: kvandivo at ks.uiuc.edu 3051 Beckman Institute
http://www.ks.uiuc.edu/~kvandivo/ University of Illinois
Phone: (217) 244-5711 405 N. Mathews Ave
Fax : (217) 244-6078 Urbana, IL 61801, USA
-------------- next part --------------
Index: database/cvs.sql
===================================================================
RCS file: /var/lib/mythcvs/mythtv/database/cvs.sql,v
retrieving revision 1.31
diff -b -u -2 -r1.31 cvs.sql
--- database/cvs.sql 19 Jun 2003 06:34:27 -0000 1.31
+++ database/cvs.sql 27 Jun 2003 14:54:22 -0000
@@ -8,5 +8,5 @@
DELETE FROM settings WHERE value='DBSchemaVer';
-INSERT INTO settings VALUES ('DBSchemaVer', 901, NULL);
+INSERT INTO settings VALUES ('DBSchemaVer', 902, NULL);
#
@@ -15,4 +15,8 @@
# when a previously executed command is encountered.
#
+
+ALTER TABLE record ADD COLUMN category VARCHAR(64) NULL;
+ALTER TABLE recorded ADD COLUMN category VARCHAR(64) NULL;
+ALTER TABLE oldrecorded ADD COLUMN category VARCHAR(64) NULL;
ALTER TABLE program ADD COLUMN category_type VARCHAR(64) NULL;
Index: libs/libmythtv/programinfo.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/programinfo.cpp,v
retrieving revision 1.57
diff -b -u -2 -r1.57 programinfo.cpp
--- libs/libmythtv/programinfo.cpp 24 Jun 2003 04:16:36 -0000 1.57
+++ libs/libmythtv/programinfo.cpp 27 Jun 2003 14:54:48 -0000
@@ -595,16 +595,19 @@
QString sqlsubtitle = subtitle;
QString sqldescription = description;
+ QString sqlcategory = category;
sqltitle.replace(QRegExp("\""), QString("\\\""));
sqlsubtitle.replace(QRegExp("\""), QString("\\\""));
sqldescription.replace(QRegExp("\""), QString("\\\""));
+ sqlcategory.replace(QRegExp("\""), QString("\\\""));
QString query;
query = QString("INSERT INTO recorded (chanid,starttime,endtime,title,"
- "subtitle,description,hostname) "
- "VALUES(%1,\"%2\",\"%3\",\"%4\",\"%5\",\"%6\",\"%7\");")
+ "subtitle,description,hostname,category) "
+ "VALUES(%1,\"%2\",\"%3\",\"%4\",\"%5\",\"%6\",\"%7\",\"%8\");")
.arg(chanid).arg(starts).arg(ends).arg(sqltitle.utf8())
.arg(sqlsubtitle.utf8()).arg(sqldescription.utf8())
- .arg(gContext->GetHostName());
+ .arg(gContext->GetHostName())
+ .arg(sqlcategory.utf8());
QSqlQuery qquery = db->exec(query);
Index: libs/libmythtv/scheduledrecording.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/scheduledrecording.cpp,v
retrieving revision 1.28
diff -b -u -2 -r1.28 scheduledrecording.cpp
--- libs/libmythtv/scheduledrecording.cpp 19 Jun 2003 02:20:42 -0000 1.28
+++ libs/libmythtv/scheduledrecording.cpp 27 Jun 2003 14:54:49 -0000
@@ -135,4 +135,12 @@
};
+class SRCategory: public LineEditSetting, public SRSetting {
+public:
+ SRCategory(const ScheduledRecording& parent):
+ SRSetting(parent, "category") {
+ setVisible(false);
+ };
+};
+
ScheduledRecording::ScheduledRecording() {
addChild(id = new ID());
@@ -147,4 +155,5 @@
addChild(startDate = new SRStartDate(*this));
addChild(endDate = new SREndDate(*this));
+ addChild(category = new SRCategory(*this));
m_pginfo = NULL;
@@ -161,4 +170,5 @@
endTime->setValue(proginfo->endts.time());
endDate->setValue(proginfo->endts.date());
+ category->setValue(proginfo->category);
}
@@ -170,5 +180,5 @@
"program.title, program.subtitle, program.description, "
"channel.channum, channel.callsign, channel.name, "
-"oldrecorded.starttime IS NOT NULL AS duplicate "
+"oldrecorded.starttime IS NOT NULL AS duplicate, program.category "
"FROM record "
" INNER JOIN channel ON (channel.chanid = program.chanid) "
@@ -233,4 +243,5 @@
proginfo->channame = result.value(9).toString();
proginfo->duplicate = result.value(10).toInt();
+ proginfo->category = QString::fromUtf8(result.value(11).toString());
// would save many queries to create and populate a
@@ -245,4 +256,6 @@
if (proginfo->description == QString::null)
proginfo->description = "";
+ if (proginfo->category == QString::null)
+ proginfo->category = "";
if (proginfo->endts < now)
@@ -416,12 +429,14 @@
QString sqlsubtitle = proginfo.subtitle;
QString sqldescription = proginfo.description;
+ QString sqlcategory = proginfo.category;
sqltitle.replace(QRegExp("\""), QString("\\\""));
sqlsubtitle.replace(QRegExp("\""), QString("\\\""));
sqldescription.replace(QRegExp("\""), QString("\\\""));
+ sqlcategory.replace(QRegExp("\""), QString("\\\""));
QString query = QString("INSERT INTO oldrecorded (chanid,starttime,endtime,title,"
- "subtitle,description) "
- "VALUES(%1,\"%2\",\"%3\",\"%4\",\"%5\",\"%6\");")
+ "subtitle,description,category) "
+ "VALUES(%1,\"%2\",\"%3\",\"%4\",\"%5\",\"%6\",\"%7\");")
.arg(proginfo.chanid)
.arg(proginfo.startts.toString(Qt::ISODate))
@@ -429,5 +444,6 @@
.arg(sqltitle.utf8())
.arg(sqlsubtitle.utf8())
- .arg(sqldescription.utf8());
+ .arg(sqldescription.utf8())
+ .arg(sqlcategory.utf8());
QSqlQuery result = db->exec(query);
Index: libs/libmythtv/scheduledrecording.h
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/scheduledrecording.h,v
retrieving revision 1.8
diff -b -u -2 -r1.8 scheduledrecording.h
--- libs/libmythtv/scheduledrecording.h 18 Jun 2003 23:43:41 -0000 1.8
+++ libs/libmythtv/scheduledrecording.h 27 Jun 2003 14:54:50 -0000
@@ -83,4 +83,5 @@
class SREndTime* endTime;
class SREndDate* endDate;
+ class SRCategory* category;
ProgramInfo* m_pginfo;
More information about the mythtv-dev
mailing list