MythTV  master
dbcheck.cpp
Go to the documentation of this file.
1 #include <cstdio>
2 #include <iostream>
3 
4 #include <QString>
5 #include <QSqlError>
6 
8 #include "libmythbase/compat.h"
9 #include "libmythbase/dbutil.h"
10 #include "libmythbase/mythconfig.h"
12 #include "libmythbase/mythdb.h"
15 #include "libmythbase/mythversion.h"
16 
17 #include "cardutil.h"
18 #include "dbcheck.h"
19 #include "mythvideoprofile.h"
20 #include "recordinginfo.h"
21 #include "recordingprofile.h"
22 #include "recordingrule.h"
23 #include "videodbcheck.h" // for 1267
24 
25 // TODO convert all dates to UTC
26 
27 #define MINIMUM_DBMS_VERSION 5,0,15
28 
29 const QString currentDatabaseVersion = MYTH_DATABASE_VERSION;
30 
31 static bool doUpgradeTVDatabaseSchema(void);
32 static bool tryUpgradeTVDatabaseSchema(bool upgradeAllowed, bool upgradeIfNoUI, bool informSystemd);
33 
34 #if CONFIG_SYSTEMD_NOTIFY
35 #include <systemd/sd-daemon.h>
36 static inline void db_sd_notify(const char *str)
37 {
38  sd_notifyf(0, "STATUS=Database update: %s", str);
39 }
40 #else
41 static inline void db_sd_notify(const char */*str*/) {};
42 #endif
43 
362 bool UpgradeTVDatabaseSchema(const bool upgradeAllowed,
363  const bool upgradeIfNoUI,
364  [[maybe_unused]] const bool informSystemd)
365 {
366 #ifdef IGNORE_SCHEMA_VER_MISMATCH
367  return true;
368 #endif
369  // Suppress DB messages and turn of the settings cache,
370  // These are likely to confuse the users and the code, respectively.
371  GetMythDB()->SetSuppressDBMessages(true);
373 
374  // Get the schema upgrade lock
375  MSqlQuery query(MSqlQuery::InitCon());
376  bool locked = DBUtil::TryLockSchema(query, 1);
377  for (uint i = 0; i < 2*60 && !locked; i++)
378  {
379  if (informSystemd)
380  db_sd_notify("waiting for lock");
381  LOG(VB_GENERAL, LOG_INFO, "Waiting for database schema upgrade lock");
382  locked = DBUtil::TryLockSchema(query, 1);
383  if (locked)
384  LOG(VB_GENERAL, LOG_INFO, "Got schema upgrade lock");
385  }
386  if (!locked)
387  {
388  LOG(VB_GENERAL, LOG_INFO, "Failed to get schema upgrade lock");
389  if (informSystemd)
390  db_sd_notify("failed to get schema upgrade lock");
391  GetMythDB()->SetSuppressDBMessages(false);
393  return false;
394  }
395 
396  bool success = tryUpgradeTVDatabaseSchema(upgradeAllowed, upgradeIfNoUI, informSystemd);
397 
398  // On any exit we want to re-enable the DB messages so errors
399  // are reported and we want to make sure the setting cache is
400  // enabled for good performance and we must unlock the schema
401  // lock.
402  if (informSystemd)
403  db_sd_notify(success ? "success" : "failed");
404  GetMythDB()->SetSuppressDBMessages(false);
406  DBUtil::UnlockSchema(query);
407  return success;
408 }
409 
410 static bool tryUpgradeTVDatabaseSchema(bool upgradeAllowed, bool upgradeIfNoUI, bool informSystemd)
411 {
412  // Determine if an upgrade is needed
414  "DBSchemaVer", "MythTV", currentDatabaseVersion);
415  if (schema_wizard->Compare() == 0) // DB schema is what we need it to be..
416  return true;
417 
418  if (!upgradeAllowed)
419  LOG(VB_GENERAL, LOG_WARNING, "Not allowed to upgrade the database.");
420 
421  if (informSystemd)
422  db_sd_notify("waiting for user input");
423  // Pop up messages, questions, warnings, etc.
424  switch (schema_wizard->PromptForUpgrade(
425  "TV", upgradeAllowed, upgradeIfNoUI, MINIMUM_DBMS_VERSION))
426  {
428  return true;
429  case MYTH_SCHEMA_ERROR:
430  case MYTH_SCHEMA_EXIT:
431  return false;
432  case MYTH_SCHEMA_UPGRADE:
433  break;
434  }
435 
436  LOG(VB_GENERAL, LOG_DEBUG, QString("Newest MythTV Schema Version : %1")
437  .arg(currentDatabaseVersion));
438 
439  // Upgrade the schema
440  if (informSystemd)
441  db_sd_notify("upgrading database");
443  {
444  LOG(VB_GENERAL, LOG_ERR, "Database schema upgrade failed.");
445  return false;
446  }
447 
448  LOG(VB_GENERAL, LOG_INFO, "Database schema upgrade complete.");
449 
450  return true;
451 }
452 
466 static bool doUpgradeTVDatabaseSchema(void)
467 {
468  QString dbver = gCoreContext->GetSetting("DBSchemaVer");
469  if (dbver == currentDatabaseVersion)
470  {
471  return true;
472  }
473 
474  // Don't rely on this, please specify these when creating the database.
475  {
476  MSqlQuery query(MSqlQuery::InitCon());
477  if (!query.exec(QString("ALTER DATABASE %1 DEFAULT "
478  "CHARACTER SET utf8 COLLATE utf8_general_ci;")
479  .arg(GetMythDB()->GetDatabaseName())))
480  {
481  MythDB::DBError("UpgradeTVDatabaseSchema -- alter charset", query);
482  }
483  }
484 
485  if (DBUtil::IsNewDatabase())
486  {
487  if (!InitializeMythSchema())
488  return false;
489  dbver = gCoreContext->GetSetting("DBSchemaVer");
490  }
491 
492  if (dbver.isEmpty() || dbver.toInt() < 1027)
493  {
494  LOG(VB_GENERAL, LOG_ERR, "Unrecognized database schema version. "
495  "Unable to upgrade database.");
496  return false;
497  }
498  if (dbver.toInt() < 1348)
499  {
500  LOG(VB_GENERAL, LOG_ERR, "Your database version is too old to upgrade "
501  "with this version of MythTV. You will need "
502  "to use mythtv-setup from MythTV 29 to 34 "
503  "to upgrade your database before "
504  "upgrading to this version of MythTV.");
505  return false;
506  }
507 
508  if (dbver == "1348")
509  {
510  DBUpdates updates {
511  "update capturecard "
512  " set videodevice=left(videodevice, "
513  " locate('-', videodevice)-1) "
514  " where cardtype='HDHOMERUN' "
515  " and videodevice like '%-%'"
516  };
517  if (!performActualUpdate("MythTV", "DBSchemaVer",
518  updates, "1349", dbver))
519  return false;
520  }
521 
522  if (dbver == "1349")
523  {
524  DBUpdates updates {
525  // Incorrect DB update removed
526  };
527  if (!performActualUpdate("MythTV", "DBSchemaVer",
528  updates, "1350", dbver))
529  return false;
530  }
531 
532  if (dbver == "1350")
533  {
534  DBUpdates updates {
535  "ALTER TABLE videosource ADD COLUMN bouquet_id INT DEFAULT 0;",
536  "ALTER TABLE videosource ADD COLUMN region_id INT DEFAULT 0;"
537  };
538  if (!performActualUpdate("MythTV", "DBSchemaVer",
539  updates, "1351", dbver))
540  return false;
541  }
542 
543  if (dbver == "1351")
544  {
545  DBUpdates updates {
546  "ALTER TABLE videosource MODIFY bouquet_id INT UNSIGNED;",
547  "ALTER TABLE videosource MODIFY region_id INT UNSIGNED;",
548  "ALTER TABLE channel ADD COLUMN service_type INT UNSIGNED DEFAULT 0 AFTER serviceid;"
549  };
550  if (!performActualUpdate("MythTV", "DBSchemaVer",
551  updates, "1352", dbver))
552  return false;
553  }
554 
555  if (dbver == "1352")
556  {
557  DBUpdates updates {
558  "ALTER TABLE capturecard MODIFY schedgroup TINYINT(1) DEFAULT 1 NOT NULL"
559  };
560  if (!performActualUpdate("MythTV", "DBSchemaVer",
561  updates, "1353", dbver))
562  return false;
563  }
564 
565  if (dbver == "1353")
566  {
567  DBUpdates updates {
568  "ALTER TABLE channel ADD COLUMN deleted TIMESTAMP NULL"
569  };
570  if (!performActualUpdate("MythTV", "DBSchemaVer",
571  updates, "1354", dbver))
572  return false;
573  }
574 
575  if (dbver == "1354")
576  {
577  DBUpdates updates {
578  "ALTER TABLE videosource ADD COLUMN scanfrequency INT UNSIGNED DEFAULT 0;"
579  };
580  if (!performActualUpdate("MythTV", "DBSchemaVer",
581  updates, "1355", dbver))
582  return false;
583  }
584 
585  if (dbver == "1355")
586  {
587  DBUpdates updates {
588  "UPDATE capturecard "
589  "SET displayname = CONCAT('Input ', cardid) "
590  "WHERE displayname = ''"
591  };
592  if (!performActualUpdate("MythTV", "DBSchemaVer",
593  updates, "1356", dbver))
594  return false;
595  }
596 
597  if (dbver == "1356")
598  {
599  DBUpdates updates {
600  "REPLACE INTO recordfilter (filterid, description, clause, "
601  " newruledefault) "
602  " VALUES (12, 'Priority channel', 'channel.recpriority > 0', 0)"
603  };
604  if (!performActualUpdate("MythTV", "DBSchemaVer",
605  updates, "1357", dbver))
606  return false;
607  }
608 
609  if (dbver == "1357")
610  {
611  // convert old VideoDisplayProfile settings to new format
613  std::vector<MythVideoProfileItem> profiles;
614 
615  MSqlQuery query(MSqlQuery::InitCon());
616  query.prepare("SELECT profileid, value, data FROM displayprofiles "
617  "ORDER BY profileid");
618 
619  for (;;)
620  {
621  if (!query.exec())
622  break;
623 
624  uint currentprofile = 0;
625  while (query.next())
626  {
627  if (query.value(0).toUInt() != currentprofile)
628  {
629  if (currentprofile)
630  {
631  temp.SetProfileID(currentprofile);
632  profiles.push_back(temp);
633  }
634  temp.Clear();
635  currentprofile = query.value(0).toUInt();
636  }
637  temp.Set(query.value(1).toString(), query.value(2).toString());
638  }
639 
640  if (currentprofile)
641  {
642  temp.SetProfileID(currentprofile);
643  profiles.push_back(temp);
644  }
645 
646  for (const MythVideoProfileItem& profile : std::as_const(profiles))
647  {
648  QString newdecoder;
649  QString newrender;
650  QString newdeint0;
651  QString newdeint1;
652 
653  QString olddecoder = profile.Get("pref_decoder");
654  QString oldrender = profile.Get("pref_videorenderer");
655  QString olddeint0 = profile.Get("pref_deint0");
656  QString olddeint1 = profile.Get("pref_deint1");
657 
658  if (oldrender == "xv-blit")
659  {
660  newdecoder = "ffmpeg";
661  newrender = "opengl-yv12";
662  }
663  if (olddecoder == "openmax" || oldrender == "openmax")
664  {
665  newdecoder = "mmal-dec";
666  newrender = "opengl-yv12";
667  }
668  if ((olddecoder == "mediacodec") || (olddecoder == "nvdec") ||
669  (olddecoder == "vda") || (olddecoder == "vaapi2") ||
670  (olddecoder == "vaapi" && oldrender == "openglvaapi") ||
671  (olddecoder == "vdpau" && oldrender == "vdpau"))
672  {
673  if (oldrender != "opengl-hw")
674  newrender = "opengl-hw";
675  }
676  if (olddecoder == "vda")
677  newdecoder = "vtb";
678  if (olddecoder == "vaapi2")
679  newdecoder = "vaapi";
680 
681  auto UpdateDeinterlacer = [](const QString &Olddeint, QString &Newdeint, const QString &Decoder)
682  {
683  if (Olddeint.isEmpty())
684  {
685  Newdeint = "none";
686  }
687  else if (Olddeint == "none" ||
688  Olddeint.contains(DEINT_QUALITY_SHADER) ||
689  Olddeint.contains(DEINT_QUALITY_DRIVER) ||
690  Olddeint.contains(DEINT_QUALITY_LOW) ||
691  Olddeint.contains(DEINT_QUALITY_MEDIUM) ||
692  Olddeint.contains(DEINT_QUALITY_HIGH))
693  {
694  return;
695  }
696 
697  QStringList newsettings;
698  bool driver = (Decoder != "ffmpeg") &&
699  (Olddeint.contains("vaapi") || Olddeint.contains("vdpau") ||
700  Olddeint.contains("nvdec"));
701  if (driver)
702  newsettings << DEINT_QUALITY_DRIVER;
703  if (Olddeint.contains("opengl") || driver)
704  newsettings << DEINT_QUALITY_SHADER;
705 
706  if (Olddeint.contains("greedy") || Olddeint.contains("yadif") ||
707  Olddeint.contains("kernel") || Olddeint.contains("advanced") ||
708  Olddeint.contains("compensated") || Olddeint.contains("adaptive"))
709  {
710  newsettings << DEINT_QUALITY_HIGH;
711  }
712  else if (Olddeint.contains("bob") || Olddeint.contains("onefield") ||
713  Olddeint.contains("linedouble"))
714  {
715  newsettings << DEINT_QUALITY_LOW;
716  }
717  else
718  {
719  newsettings << DEINT_QUALITY_MEDIUM;
720  }
721  Newdeint = newsettings.join(":");
722  };
723 
724  QString decoder = newdecoder.isEmpty() ? olddecoder : newdecoder;
725  UpdateDeinterlacer(olddeint0, newdeint0, decoder);
726  UpdateDeinterlacer(olddeint1, newdeint1, decoder);
727 
728  auto UpdateData = [](uint ProfileID, const QString &Value, const QString &Data)
729  {
730  MSqlQuery update(MSqlQuery::InitCon());
731  update.prepare(
732  "UPDATE displayprofiles SET data = :DATA "
733  "WHERE profileid = :PROFILEID AND value = :VALUE");
734  update.bindValue(":PROFILEID", ProfileID);
735  update.bindValue(":VALUE", Value);
736  update.bindValue(":DATA", Data);
737  if (!update.exec())
738  LOG(VB_GENERAL, LOG_ERR,
739  QString("Error updating display profile id %1").arg(ProfileID));
740  };
741 
742  uint id = profile.GetProfileID();
743  if (!newdecoder.isEmpty())
744  UpdateData(id, "pref_decoder", newdecoder);
745  if (!newrender.isEmpty())
746  UpdateData(id, "pref_videorenderer", newrender);
747  if (!newdeint0.isEmpty())
748  UpdateData(id, "pref_deint0", newdeint0);
749  if (!newdeint1.isEmpty())
750  UpdateData(id, "pref_deint1", newdeint1);
751  }
752  break;
753  }
754 
755  // remove old studio levels keybinding
756  DBUpdates updates {
757  "DELETE FROM keybindings WHERE action='TOGGLESTUDIOLEVELS'"
758  };
759 
760  if (!performActualUpdate("MythTV", "DBSchemaVer",
761  updates, "1358", dbver))
762  return false;
763  }
764 
765  if (dbver == "1358")
766  {
767  DBUpdates updates {
768  // Allow videosouce.userid to be NULL as originally intended.
769  "ALTER TABLE videosource "
770  " CHANGE COLUMN userid userid VARCHAR(128) NULL DEFAULT NULL",
771  // And fix any leftover, empty values.
772  "UPDATE videosource "
773  " SET userid = NULL "
774  " WHERE userid = ''",
775  // Remove potential clear text credentials no longer usable
776  "UPDATE videosource "
777  " SET userid = NULL, password = NULL "
778  " WHERE xmltvgrabber IN ('schedulesdirect1', 'datadirect')"
779  };
780  if (!performActualUpdate("MythTV", "DBSchemaVer",
781  updates, "1359", dbver))
782  return false;
783  }
784 
785  if (dbver == "1359")
786  {
787  // XineramaMonitorAspectRatio was previously ignored for single screen
788  // setups but now acts as an override for the display aspect ratio.
789  // 0.0 indicates 'Auto' - which should be the default.
790  DBUpdates updates {
791  "UPDATE settings SET data='0.0' WHERE value='XineramaMonitorAspectRatio'"
792  };
793  if (!performActualUpdate("MythTV", "DBSchemaVer",
794  updates, "1360", dbver))
795  return false;
796  }
797 
798  if (dbver == "1360")
799  {
800  // missed in 1357 - convert old vdpau and openglvaapi renderers to opengl
801  // convert ancient quartz-blit to opengl as well
803  std::vector<MythVideoProfileItem> profiles;
804 
805  MSqlQuery query(MSqlQuery::InitCon());
806  query.prepare("SELECT profileid, value, data FROM displayprofiles "
807  "ORDER BY profileid");
808 
809  // coverity[unreachable] False positive.
810  for (;;)
811  {
812  if (!query.exec())
813  break;
814 
815  uint currentprofile = 0;
816  while (query.next())
817  {
818  if (query.value(0).toUInt() != currentprofile)
819  {
820  if (currentprofile)
821  {
822  temp.SetProfileID(currentprofile);
823  profiles.push_back(temp);
824  }
825  temp.Clear();
826  currentprofile = query.value(0).toUInt();
827  }
828  temp.Set(query.value(1).toString(), query.value(2).toString());
829  }
830 
831  if (currentprofile)
832  {
833  temp.SetProfileID(currentprofile);
834  profiles.push_back(temp);
835  }
836 
837  for (const MythVideoProfileItem& profile : std::as_const(profiles))
838  {
839  // the old deinterlacers will have been converted already
840  QString oldrender = profile.Get("pref_videorenderer");
841  if (oldrender == "quartz-blit" || oldrender == "openglvaapi" ||
842  oldrender == "vdpau")
843  {
844  auto UpdateData = [](uint ProfileID, const QString &Value, const QString &Data)
845  {
846  MSqlQuery update(MSqlQuery::InitCon());
847  update.prepare(
848  "UPDATE displayprofiles SET data = :DATA "
849  "WHERE profileid = :PROFILEID AND value = :VALUE");
850  update.bindValue(":PROFILEID", ProfileID);
851  update.bindValue(":VALUE", Value);
852  update.bindValue(":DATA", Data);
853  if (!update.exec())
854  LOG(VB_GENERAL, LOG_ERR,
855  QString("Error updating display profile id %1").arg(ProfileID));
856  };
857 
858  uint id = profile.GetProfileID();
859  UpdateData(id, "pref_decoder", "ffmpeg");
860  UpdateData(id, "pref_videorenderer", "opengl-yv12");
861  }
862  }
863  break;
864  }
865 
866  if (!UpdateDBVersionNumber("MythTV", "DBSchemaVer", "1361", dbver))
867  return false;
868  }
869  if (dbver == "1361")
870  {
871  DBUpdates updates {
872  "ALTER TABLE program CHANGE COLUMN videoprop videoprop "
873  " SET('WIDESCREEN', 'HDTV', 'MPEG2', 'AVC', 'HEVC') NOT NULL; ",
874  "ALTER TABLE recordedprogram CHANGE COLUMN videoprop videoprop "
875  " SET('WIDESCREEN', 'HDTV', 'MPEG2', 'AVC', 'HEVC', "
876  " '720', '1080', '4K', '3DTV', 'PROGRESSIVE', "
877  " 'DAMAGED') NOT NULL; ",
878  };
879  if (!performActualUpdate("MythTV", "DBSchemaVer",
880  updates, "1362", dbver))
881  return false;
882  }
883 
884  if (dbver == "1362")
885  {
886  MSqlQuery select(MSqlQuery::InitCon());
887  select.prepare(
888  QString("select index_name from information_schema.statistics "
889  "where table_schema = '%1' "
890  "and table_name = 'recordedartwork' "
891  "and seq_in_index = 1 "
892  "and column_name = 'inetref'")
893  .arg(GetMythDB()->GetDatabaseName()));
894 
895  if (!select.exec())
896  {
897  MythDB::DBError("Unable to retrieve index values.", select);
898  return false;
899  }
900 
901  DBUpdates updates {
902  "CREATE INDEX recordedartwork_ix1 ON recordedartwork (inetref); "
903  };
904 
905  // do not create index if already done.
906  if (select.size() > 0) {
907  updates.clear();
908  }
909 
910  if (!performActualUpdate("MythTV", "DBSchemaVer",
911  updates, "1363", dbver))
912  return false;
913  }
914 
915  if (dbver == "1363")
916  {
917  MSqlQuery query(MSqlQuery::InitCon());
918 
919  // insert a new profile group for Sat>IP
920  query.prepare("INSERT INTO profilegroups SET name = 'Sat>IP Recorder', "
921  "cardtype = 'SATIP', is_default = 1;");
922  if (!query.exec())
923  {
924  MythDB::DBError("Unable to insert Sat>IP profilegroup.", query);
925  return false;
926  }
927 
928  // get the id of the new profile group
929  int groupid = query.lastInsertId().toInt();
930 
931  // insert the recording profiles
932  query.prepare("INSERT INTO recordingprofiles SET name = \"Default\", profilegroup = :GROUPID;");
933  query.bindValue(":GROUPID", groupid);
934  if (!query.exec())
935  {
936  MythDB::DBError("Unable to insert 'Default' recordingprofile.", query);
937  return false;
938  }
939 
940  query.prepare("INSERT INTO recordingprofiles SET name = \"Live TV\", profilegroup = :GROUPID;");
941  query.bindValue(":GROUPID", groupid);
942  if (!query.exec())
943  {
944  MythDB::DBError("Unable to insert 'Live TV' recordingprofile.", query);
945  return false;
946  }
947 
948  query.prepare("INSERT INTO recordingprofiles SET name = \"High Quality\", profilegroup = :GROUPID;");
949  query.bindValue(":GROUPID", groupid);
950  if (!query.exec())
951  {
952  MythDB::DBError("Unable to insert 'High Quality' recordingprofile.", query);
953  return false;
954  }
955 
956  query.prepare("INSERT INTO recordingprofiles SET name = \"Low Quality\", profilegroup = :GROUPID;");
957  query.bindValue(":GROUPID", groupid);
958  if (!query.exec())
959  {
960  MythDB::DBError("Unable to insert 'Low Quality' recordingprofile.", query);
961  return false;
962  }
963 
964  if (!UpdateDBVersionNumber("MythTV", "DBSchemaVer", "1364", dbver))
965  return false;
966  }
967 
968  if (dbver == "1364")
969  {
970  // Set depmethod to none for all manual, recording rules.
971  DBUpdates updates {
972  "UPDATE record SET dupmethod = 1 WHERE search = 5"
973  };
974  if (!performActualUpdate("MythTV", "DBSchemaVer",
975  updates, "1365", dbver))
976  return false;
977  }
978 
979  if (dbver == "1365")
980  {
981  DBUpdates updates {
982  "ALTER TABLE channelscan_channel ADD COLUMN service_type INT UNSIGNED NOT NULL DEFAULT 0;"
983  };
984  if (!performActualUpdate("MythTV", "DBSchemaVer",
985  updates, "1366", dbver))
986  return false;
987  }
988 
989  if (dbver == "1366")
990  {
991  DBUpdates updates {
992  "ALTER TABLE channelscan_dtv_multiplex ADD COLUMN signal_strength INT NOT NULL DEFAULT 0;"
993  };
994  if (!performActualUpdate("MythTV", "DBSchemaVer",
995  updates, "1367", dbver))
996  return false;
997  }
998 
999  if (dbver == "1367")
1000  {
1001  DBUpdates updates {
1002  "ALTER TABLE videosource ADD COLUMN lcnoffset INT UNSIGNED DEFAULT 0;"
1003  };
1004  if (!performActualUpdate("MythTV", "DBSchemaVer",
1005  updates, "1368", dbver))
1006  return false;
1007  }
1008  if (dbver == "1368")
1009  {
1010  DBUpdates updates {
1011  // NOLINTNEXTLINE(bugprone-suspicious-missing-comma)
1012  "ALTER TABLE credits ADD COLUMN priority "
1013  " TINYINT UNSIGNED DEFAULT 0;",
1014  "ALTER TABLE credits ADD COLUMN roleid "
1015  " MEDIUMINT UNSIGNED DEFAULT 0;",
1016  "ALTER TABLE credits drop key chanid, "
1017  " add unique key `chanid` "
1018  " (chanid, starttime, person, role, roleid);"
1019  "ALTER TABLE recordedcredits ADD COLUMN priority "
1020  " TINYINT UNSIGNED DEFAULT 0;",
1021  "ALTER TABLE recordedcredits ADD COLUMN roleid "
1022  " MEDIUMINT UNSIGNED DEFAULT 0;",
1023  "ALTER TABLE recordedcredits drop key chanid, "
1024  " add unique key `chanid` "
1025  " (chanid, starttime, person, role, roleid);"
1026  "CREATE TABLE roles (roleid MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT,"
1027  " `name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin"
1028  " NOT NULL DEFAULT '',"
1029  " PRIMARY KEY (roleid),"
1030  " UNIQUE KEY `name` (`name`)"
1031  ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1032  };
1033  if (!performActualUpdate("MythTV", "DBSchemaVer",
1034  updates, "1369", dbver))
1035  return false;
1036  }
1037  if (dbver == "1369")
1038  {
1039  DBUpdates updates {
1040  "ALTER TABLE programrating MODIFY COLUMN `system` "
1041  " varchar(128);",
1042  "ALTER TABLE programrating MODIFY COLUMN rating "
1043  " varchar(128);",
1044  "ALTER TABLE recordedrating MODIFY COLUMN `system` "
1045  " varchar(128);",
1046  "ALTER TABLE recordedrating MODIFY COLUMN rating "
1047  " varchar(128);",
1048  };
1049  if (!performActualUpdate("MythTV", "DBSchemaVer",
1050  updates, "1370", dbver))
1051  return false;
1052  }
1053 
1054  if (dbver == "1370")
1055  {
1056  // Migrate users from ttvdb.py to ttvdb4.py
1057  DBUpdates updates {
1058  "UPDATE settings SET data=REPLACE(data, 'ttvdb.py', 'ttvdb4.py') "
1059  "WHERE value='TelevisionGrabber'"
1060  };
1061  if (!performActualUpdate("MythTV", "DBSchemaVer",
1062  updates, "1371", dbver))
1063  return false;
1064  }
1065 
1066  if (dbver == "1371")
1067  {
1068  // Recording extender tables are now created later.
1069 
1070  if (!DBUtil::CheckTableColumnExists(QString("record"), QString("autoextend")))
1071  {
1072  // If that worked, modify existing tables.
1074  if (!performActualUpdate("MythTV", "DBSchemaVer",
1075  updates, "1372", dbver))
1076  return false;
1077  }
1078  else
1079  {
1080  if (!UpdateDBVersionNumber("MythTV", "DBSchemaVer", "1372", dbver))
1081  return false;
1082  }
1083  }
1084 
1085  if (dbver == "1372")
1086  {
1087  if (!DBUtil::CheckTableColumnExists(QString("recorded"), QString("lastplay")))
1088  {
1089  DBUpdates updates {
1090  "ALTER TABLE recorded ADD COLUMN lastplay "
1091  " TINYINT UNSIGNED DEFAULT 0 AFTER bookmark;",
1092  };
1093  if (!performActualUpdate("MythTV", "DBSchemaVer",
1094  updates, "1373", dbver))
1095  return false;
1096  }
1097  else
1098  {
1099  if (!UpdateDBVersionNumber("MythTV", "DBSchemaVer", "1373", dbver))
1100  return false;
1101  }
1102  }
1103 
1104  if (dbver == "1373")
1105  {
1106  DBUpdates updates {
1107  // adjust inetref prefixes to new grabber script
1108  "UPDATE record SET inetref=REPLACE(inetref, 'ttvdb.py', 'ttvdb4.py');",
1109  "UPDATE recorded SET inetref=REPLACE(inetref, 'ttvdb.py', 'ttvdb4.py');",
1110  "UPDATE oldrecorded SET inetref=REPLACE(inetref, 'ttvdb.py', 'ttvdb4.py');",
1111  "UPDATE videometadata SET inetref=REPLACE(inetref, 'ttvdb.py', 'ttvdb4.py');",
1112  "UPDATE program SET inetref=REPLACE(inetref, 'ttvdb.py', 'ttvdb4.py');",
1113  "UPDATE recordedprogram SET inetref=REPLACE(inetref, 'ttvdb.py', 'ttvdb4.py');",
1114  "UPDATE recordedartwork SET inetref=REPLACE(inetref, 'ttvdb.py', 'ttvdb4.py');"
1115  };
1116  if (!performActualUpdate("MythTV", "DBSchemaVer",
1117  updates, "1374", dbver))
1118  return false;
1119  }
1120 
1121  if (dbver == "1374")
1122  {
1123  // Recording extender tables are now created later.
1124  DBUpdates updates {};
1125  if (!performActualUpdate("MythTV", "DBSchemaVer",
1126  updates, "1375", dbver))
1127  return false;
1128  }
1129 
1130  if (dbver == "1375")
1131  {
1132  // Delete any existing recording extender tables.
1133  DBUpdates updates = getRecordingExtenderDbInfo(-1);
1134  if (!performUpdateSeries("MythTV", updates))
1135  return false;
1136 
1137  // Now (re)create them.
1138  updates = getRecordingExtenderDbInfo(1);
1139  if (!performUpdateSeries("MythTV", updates))
1140  return false;
1141 
1142  // Add new tv listing name ->api name mappings for college
1143  // basketball.
1144  updates = getRecordingExtenderDbInfo(2);
1145  if (!performActualUpdate("MythTV", "DBSchemaVer",
1146  updates, "1376", dbver))
1147  return false;
1148  }
1149 
1150  if (dbver == "1376")
1151  {
1152  DBUpdates updates {
1153  "DROP TABLE IF EXISTS `logging`;",
1154  "UPDATE settings SET data='0' WHERE value='LogEnabled'; ", // Keeps MythWeb happy
1155  };
1156  if (!performActualUpdate("MythTV", "DBSchemaVer",
1157  updates, "1377", dbver))
1158  return false;
1159  }
1160 
1161  if (dbver == "1377")
1162  {
1163  // Change reverted, but the version number can't be reused.
1164  DBUpdates updates {};
1165  if (!performActualUpdate("MythTV", "DBSchemaVer",
1166  updates, "1378", dbver))
1167  return false;
1168  }
1169 
1170  if (dbver == "1378")
1171  {
1172  DBUpdates updates {
1173  "CREATE INDEX dir_id ON gallery_files (dir_id);"
1174  };
1175  if (!performActualUpdate("MythTV", "DBSchemaVer",
1176  updates, "1379", dbver))
1177  return false;
1178  }
1179 
1180  if (dbver == "1379")
1181  {
1182  DBUpdates updates {
1183  "ALTER TABLE channelscan_channel ADD COLUMN logical_channel INT UNSIGNED NOT NULL DEFAULT 0 AFTER service_type;"
1184  "ALTER TABLE channelscan_channel ADD COLUMN simulcast_channel INT UNSIGNED NOT NULL DEFAULT 0 AFTER logical_channel;"
1185  };
1186  if (!performActualUpdate("MythTV", "DBSchemaVer",
1187  updates, "1380", dbver))
1188  return false;
1189  }
1190 
1191  if (dbver == "1380")
1192  {
1193  DBUpdates updates {
1194  "ALTER TABLE filemarkup ADD INDEX (type);"
1195  } ;
1196  if (!performActualUpdate("MythTV", "DBSchemaVer",
1197  updates, "1381", dbver))
1198  return false;
1199  }
1200 
1201  if (dbver == "1381")
1202  {
1203  DBUpdates updates {
1204  "ALTER TABLE iptv_channel ADD INDEX (chanid);"
1205  "ALTER TABLE channelgroup ADD INDEX (chanid);"
1206  } ;
1207  if (!performActualUpdate("MythTV", "DBSchemaVer",
1208  updates, "1382", dbver))
1209  return false;
1210  }
1211 
1212  if (dbver == "1382")
1213  {
1214  DBUpdates updates {
1215  "ALTER TABLE iptv_channel MODIFY iptvid INT UNSIGNED;"
1216  } ;
1217  if (!performActualUpdate("MythTV", "DBSchemaVer",
1218  updates, "1383", dbver))
1219  return false;
1220  }
1221 
1222  if (dbver == "1383")
1223  {
1224  DBUpdates updates {
1225  "ALTER TABLE iptv_channel MODIFY iptvid INT UNSIGNED AUTO_INCREMENT;"
1226  } ;
1227  if (!performActualUpdate("MythTV", "DBSchemaVer",
1228  updates, "1384", dbver))
1229  return false;
1230  }
1231 
1232  return true;
1233 }
1234 
1255 {
1256  MSqlQuery query(MSqlQuery::InitCon());
1257  query.prepare("SHOW TABLES;");
1258 
1259  // check for > 1 table here since the schemalock table should exist
1260  if (query.exec() && query.isActive() && query.size() > 1)
1261  {
1262  QString msg = QString(
1263  "Told to create a NEW database schema, but the database\n"
1264  "already has %1 tables.\n"
1265  "If you are sure this is a good MythTV database, verify\n"
1266  "that the settings table has the DBSchemaVer variable.\n")
1267  .arg(query.size() - 1);
1268  LOG(VB_GENERAL, LOG_ERR, msg);
1269  return false;
1270  }
1271 
1272  LOG(VB_GENERAL, LOG_NOTICE,
1273  "Inserting MythTV initial database information.");
1274 
1275 // Don't try to moderinze string literals in this section. This lets
1276 // us cut-n-paste the output of mysqldump into the code without
1277 // generating any warning messages.
1278 // NOLINTBEGIN(modernize-raw-string-literal)
1279 
1280  DBUpdates updates {
1281 "CREATE TABLE `bdbookmark` ("
1282 " `serialid` varchar(40) NOT NULL DEFAULT '',"
1283 " `name` varchar(128) DEFAULT NULL,"
1284 " `bdstate` varchar(4096) NOT NULL DEFAULT '',"
1285 " `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
1286 " PRIMARY KEY (`serialid`)"
1287 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1288 "CREATE TABLE `capturecard` ("
1289 " `cardid` int unsigned NOT NULL AUTO_INCREMENT,"
1290 " `parentid` int unsigned NOT NULL DEFAULT '0',"
1291 " `videodevice` varchar(128) DEFAULT NULL,"
1292 " `audiodevice` varchar(128) DEFAULT NULL,"
1293 " `vbidevice` varchar(128) DEFAULT NULL,"
1294 " `cardtype` varchar(32) DEFAULT 'V4L',"
1295 " `defaultinput` varchar(32) DEFAULT 'Television',"
1296 " `audioratelimit` int DEFAULT NULL,"
1297 " `hostname` varchar(64) DEFAULT NULL,"
1298 " `dvb_swfilter` int DEFAULT '0',"
1299 " `dvb_sat_type` int NOT NULL DEFAULT '0',"
1300 " `dvb_wait_for_seqstart` int NOT NULL DEFAULT '1',"
1301 " `skipbtaudio` tinyint(1) DEFAULT '0',"
1302 " `dvb_on_demand` tinyint NOT NULL DEFAULT '0',"
1303 " `dvb_diseqc_type` smallint DEFAULT NULL,"
1304 " `firewire_speed` int unsigned NOT NULL DEFAULT '0',"
1305 " `firewire_model` varchar(32) DEFAULT NULL,"
1306 " `firewire_connection` int unsigned NOT NULL DEFAULT '0',"
1307 " `signal_timeout` int NOT NULL DEFAULT '1000',"
1308 " `channel_timeout` int NOT NULL DEFAULT '3000',"
1309 " `dvb_tuning_delay` int unsigned NOT NULL DEFAULT '0',"
1310 " `contrast` int NOT NULL DEFAULT '0',"
1311 " `brightness` int NOT NULL DEFAULT '0',"
1312 " `colour` int NOT NULL DEFAULT '0',"
1313 " `hue` int NOT NULL DEFAULT '0',"
1314 " `diseqcid` int unsigned DEFAULT NULL,"
1315 " `dvb_eitscan` tinyint(1) NOT NULL DEFAULT '1',"
1316 " `inputname` varchar(32) NOT NULL DEFAULT 'None',"
1317 " `sourceid` int unsigned NOT NULL DEFAULT '0',"
1318 " `externalcommand` varchar(128) DEFAULT NULL,"
1319 " `changer_device` varchar(128) DEFAULT NULL,"
1320 " `changer_model` varchar(128) DEFAULT NULL,"
1321 " `tunechan` varchar(10) DEFAULT NULL,"
1322 " `startchan` varchar(10) DEFAULT NULL,"
1323 " `displayname` varchar(64) NOT NULL DEFAULT '',"
1324 " `dishnet_eit` tinyint(1) NOT NULL DEFAULT '0',"
1325 " `recpriority` int NOT NULL DEFAULT '0',"
1326 " `quicktune` tinyint NOT NULL DEFAULT '0',"
1327 " `schedorder` int unsigned NOT NULL DEFAULT '1',"
1328 " `livetvorder` int unsigned NOT NULL DEFAULT '1',"
1329 " `reclimit` int unsigned NOT NULL DEFAULT '1',"
1330 " `schedgroup` tinyint(1) NOT NULL DEFAULT '1',"
1331 " PRIMARY KEY (`cardid`)"
1332 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1333 "CREATE TABLE `cardinput` ("
1334 " `cardinputid` int unsigned NOT NULL AUTO_INCREMENT,"
1335 " `cardid` int unsigned NOT NULL DEFAULT '0',"
1336 " `sourceid` int unsigned NOT NULL DEFAULT '0',"
1337 " `inputname` varchar(32) NOT NULL DEFAULT '',"
1338 " `externalcommand` varchar(128) DEFAULT NULL,"
1339 " `changer_device` varchar(128) DEFAULT NULL,"
1340 " `changer_model` varchar(128) DEFAULT NULL,"
1341 " `tunechan` varchar(10) DEFAULT NULL,"
1342 " `startchan` varchar(10) DEFAULT NULL,"
1343 " `displayname` varchar(64) NOT NULL DEFAULT '',"
1344 " `dishnet_eit` tinyint(1) NOT NULL DEFAULT '0',"
1345 " `recpriority` int NOT NULL DEFAULT '0',"
1346 " `quicktune` tinyint NOT NULL DEFAULT '0',"
1347 " `schedorder` int unsigned NOT NULL DEFAULT '0',"
1348 " `livetvorder` int unsigned NOT NULL DEFAULT '0',"
1349 " PRIMARY KEY (`cardinputid`)"
1350 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1351 "CREATE TABLE `channel` ("
1352 " `chanid` int unsigned NOT NULL DEFAULT '0',"
1353 " `channum` varchar(10) NOT NULL DEFAULT '',"
1354 " `freqid` varchar(10) DEFAULT NULL,"
1355 " `sourceid` int unsigned DEFAULT NULL,"
1356 " `callsign` varchar(20) NOT NULL DEFAULT '',"
1357 " `name` varchar(64) NOT NULL DEFAULT '',"
1358 " `icon` varchar(255) NOT NULL DEFAULT '',"
1359 " `finetune` int DEFAULT NULL,"
1360 " `videofilters` varchar(255) NOT NULL DEFAULT '',"
1361 " `xmltvid` varchar(255) NOT NULL DEFAULT '',"
1362 " `recpriority` int NOT NULL DEFAULT '0',"
1363 " `contrast` int DEFAULT '32768',"
1364 " `brightness` int DEFAULT '32768',"
1365 " `colour` int DEFAULT '32768',"
1366 " `hue` int DEFAULT '32768',"
1367 " `tvformat` varchar(10) NOT NULL DEFAULT 'Default',"
1368 " `visible` tinyint(1) NOT NULL DEFAULT '1',"
1369 " `outputfilters` varchar(255) NOT NULL DEFAULT '',"
1370 " `useonairguide` tinyint(1) DEFAULT '0',"
1371 " `mplexid` smallint DEFAULT NULL,"
1372 " `serviceid` mediumint unsigned DEFAULT NULL,"
1373 " `service_type` int unsigned DEFAULT '0',"
1374 " `tmoffset` int NOT NULL DEFAULT '0',"
1375 " `atsc_major_chan` int unsigned NOT NULL DEFAULT '0',"
1376 " `atsc_minor_chan` int unsigned NOT NULL DEFAULT '0',"
1377 " `last_record` datetime NOT NULL,"
1378 " `default_authority` varchar(32) NOT NULL DEFAULT '',"
1379 " `commmethod` int NOT NULL DEFAULT '-1',"
1380 " `iptvid` smallint unsigned DEFAULT NULL,"
1381 " `deleted` timestamp NULL DEFAULT NULL,"
1382 " PRIMARY KEY (`chanid`),"
1383 " KEY `channel_src` (`channum`,`sourceid`),"
1384 " KEY `sourceid` (`sourceid`,`xmltvid`,`chanid`),"
1385 " KEY `visible` (`visible`)"
1386 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1387 "CREATE TABLE `channelgroup` ("
1388 " `id` int unsigned NOT NULL AUTO_INCREMENT,"
1389 " `chanid` int unsigned NOT NULL DEFAULT '0',"
1390 " `grpid` int NOT NULL DEFAULT '1',"
1391 " PRIMARY KEY (`id`),"
1392 " KEY `chanid` (`chanid`)"
1393 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1394 "CREATE TABLE `channelgroupnames` ("
1395 " `grpid` int unsigned NOT NULL AUTO_INCREMENT,"
1396 " `name` varchar(64) NOT NULL DEFAULT '0',"
1397 " PRIMARY KEY (`grpid`)"
1398 ") ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;",
1399 "CREATE TABLE `channelscan` ("
1400 " `scanid` int unsigned NOT NULL AUTO_INCREMENT,"
1401 " `cardid` int unsigned NOT NULL,"
1402 " `sourceid` int unsigned NOT NULL,"
1403 " `processed` tinyint unsigned NOT NULL,"
1404 " `scandate` datetime NOT NULL,"
1405 " PRIMARY KEY (`scanid`)"
1406 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1407 "CREATE TABLE `channelscan_channel` ("
1408 " `transportid` int unsigned NOT NULL,"
1409 " `scanid` int unsigned NOT NULL,"
1410 " `mplex_id` smallint NOT NULL,"
1411 " `source_id` int unsigned NOT NULL,"
1412 " `channel_id` int unsigned NOT NULL DEFAULT '0',"
1413 " `callsign` varchar(20) NOT NULL DEFAULT '',"
1414 " `service_name` varchar(64) NOT NULL DEFAULT '',"
1415 " `chan_num` varchar(10) NOT NULL DEFAULT '',"
1416 " `service_id` mediumint unsigned NOT NULL DEFAULT '0',"
1417 " `atsc_major_channel` int unsigned NOT NULL DEFAULT '0',"
1418 " `atsc_minor_channel` int unsigned NOT NULL DEFAULT '0',"
1419 " `use_on_air_guide` tinyint(1) NOT NULL DEFAULT '0',"
1420 " `hidden` tinyint(1) NOT NULL DEFAULT '0',"
1421 " `hidden_in_guide` tinyint(1) NOT NULL DEFAULT '0',"
1422 " `freqid` varchar(10) NOT NULL DEFAULT '',"
1423 " `icon` varchar(255) NOT NULL DEFAULT '',"
1424 " `tvformat` varchar(10) NOT NULL DEFAULT 'Default',"
1425 " `xmltvid` varchar(64) NOT NULL DEFAULT '',"
1426 " `pat_tsid` int unsigned NOT NULL DEFAULT '0',"
1427 " `vct_tsid` int unsigned NOT NULL DEFAULT '0',"
1428 " `vct_chan_tsid` int unsigned NOT NULL DEFAULT '0',"
1429 " `sdt_tsid` int unsigned NOT NULL DEFAULT '0',"
1430 " `orig_netid` int unsigned NOT NULL DEFAULT '0',"
1431 " `netid` int unsigned NOT NULL DEFAULT '0',"
1432 " `si_standard` varchar(10) NOT NULL,"
1433 " `in_channels_conf` tinyint unsigned NOT NULL DEFAULT '0',"
1434 " `in_pat` tinyint unsigned NOT NULL DEFAULT '0',"
1435 " `in_pmt` tinyint unsigned NOT NULL DEFAULT '0',"
1436 " `in_vct` tinyint unsigned NOT NULL DEFAULT '0',"
1437 " `in_nit` tinyint unsigned NOT NULL DEFAULT '0',"
1438 " `in_sdt` tinyint unsigned NOT NULL DEFAULT '0',"
1439 " `is_encrypted` tinyint unsigned NOT NULL DEFAULT '0',"
1440 " `is_data_service` tinyint unsigned NOT NULL DEFAULT '0',"
1441 " `is_audio_service` tinyint unsigned NOT NULL DEFAULT '0',"
1442 " `is_opencable` tinyint unsigned NOT NULL DEFAULT '0',"
1443 " `could_be_opencable` tinyint unsigned NOT NULL DEFAULT '0',"
1444 " `decryption_status` smallint unsigned NOT NULL DEFAULT '0',"
1445 " `default_authority` varchar(32) NOT NULL DEFAULT '',"
1446 " `service_type` int unsigned NOT NULL DEFAULT '0',"
1447 " `logical_channel` int unsigned NOT NULL DEFAULT '0',"
1448 " `simulcast_channel` int unsigned NOT NULL DEFAULT '0'"
1449 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1450 "CREATE TABLE `channelscan_dtv_multiplex` ("
1451 " `transportid` int unsigned NOT NULL AUTO_INCREMENT,"
1452 " `scanid` int unsigned NOT NULL,"
1453 " `mplexid` smallint unsigned NOT NULL,"
1454 " `frequency` bigint unsigned NOT NULL,"
1455 " `inversion` char(1) NOT NULL DEFAULT 'a',"
1456 " `symbolrate` bigint unsigned NOT NULL DEFAULT '0',"
1457 " `fec` varchar(10) NOT NULL DEFAULT 'auto',"
1458 " `polarity` char(1) NOT NULL DEFAULT '',"
1459 " `hp_code_rate` varchar(10) NOT NULL DEFAULT 'auto',"
1460 " `mod_sys` varchar(10) DEFAULT NULL,"
1461 " `rolloff` varchar(4) DEFAULT NULL,"
1462 " `lp_code_rate` varchar(10) NOT NULL DEFAULT 'auto',"
1463 " `modulation` varchar(10) NOT NULL DEFAULT 'auto',"
1464 " `transmission_mode` char(1) NOT NULL DEFAULT 'a',"
1465 " `guard_interval` varchar(10) NOT NULL DEFAULT 'auto',"
1466 " `hierarchy` varchar(10) NOT NULL DEFAULT 'auto',"
1467 " `bandwidth` char(1) NOT NULL DEFAULT 'a',"
1468 " `sistandard` varchar(10) NOT NULL,"
1469 " `tuner_type` smallint unsigned NOT NULL,"
1470 " `default_authority` varchar(32) NOT NULL DEFAULT '',"
1471 " `signal_strength` int NOT NULL DEFAULT '0',"
1472 " PRIMARY KEY (`transportid`)"
1473 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1474 "CREATE TABLE `codecparams` ("
1475 " `profile` int unsigned NOT NULL DEFAULT '0',"
1476 " `name` varchar(128) NOT NULL DEFAULT '',"
1477 " `value` varchar(128) DEFAULT NULL,"
1478 " PRIMARY KEY (`profile`,`name`)"
1479 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1480 "CREATE TABLE `credits` ("
1481 " `person` mediumint unsigned NOT NULL DEFAULT '0',"
1482 " `chanid` int unsigned NOT NULL DEFAULT '0',"
1483 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1484 " `role` set('actor','director','producer','executive_producer','writer','guest_star','host','adapter','presenter','commentator','guest') NOT NULL DEFAULT '',"
1485 " `priority` tinyint unsigned DEFAULT '0',"
1486 " `roleid` mediumint unsigned DEFAULT '0',"
1487 " UNIQUE KEY `chanid` (`chanid`,`starttime`,`person`,`role`,`roleid`),"
1488 " KEY `person` (`person`,`role`)"
1489 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1490 "CREATE TABLE `customexample` ("
1491 " `rulename` varchar(64) NOT NULL,"
1492 " `fromclause` varchar(10000) NOT NULL DEFAULT '',"
1493 " `whereclause` varchar(10000) NOT NULL DEFAULT '',"
1494 " `search` tinyint NOT NULL DEFAULT '0',"
1495 " PRIMARY KEY (`rulename`)"
1496 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1497 "CREATE TABLE `diseqc_config` ("
1498 " `cardinputid` int unsigned NOT NULL,"
1499 " `diseqcid` int unsigned NOT NULL,"
1500 " `value` varchar(16) NOT NULL DEFAULT '',"
1501 " KEY `id` (`cardinputid`)"
1502 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1503 "CREATE TABLE `diseqc_tree` ("
1504 " `diseqcid` int unsigned NOT NULL AUTO_INCREMENT,"
1505 " `parentid` int unsigned DEFAULT NULL,"
1506 " `ordinal` tinyint unsigned NOT NULL,"
1507 " `type` varchar(16) NOT NULL DEFAULT '',"
1508 " `subtype` varchar(16) NOT NULL DEFAULT '',"
1509 " `description` varchar(32) NOT NULL DEFAULT '',"
1510 " `switch_ports` tinyint unsigned NOT NULL DEFAULT '0',"
1511 " `rotor_hi_speed` float NOT NULL DEFAULT '0',"
1512 " `rotor_lo_speed` float NOT NULL DEFAULT '0',"
1513 " `rotor_positions` varchar(255) NOT NULL DEFAULT '',"
1514 " `lnb_lof_switch` int NOT NULL DEFAULT '0',"
1515 " `lnb_lof_hi` int NOT NULL DEFAULT '0',"
1516 " `lnb_lof_lo` int NOT NULL DEFAULT '0',"
1517 " `cmd_repeat` int NOT NULL DEFAULT '1',"
1518 " `lnb_pol_inv` tinyint NOT NULL DEFAULT '0',"
1519 " `address` tinyint unsigned NOT NULL DEFAULT '0',"
1520 " `scr_userband` int unsigned NOT NULL DEFAULT '0',"
1521 " `scr_frequency` int unsigned NOT NULL DEFAULT '1400',"
1522 " `scr_pin` int NOT NULL DEFAULT '-1',"
1523 " PRIMARY KEY (`diseqcid`),"
1524 " KEY `parentid` (`parentid`)"
1525 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1526 "CREATE TABLE `displayprofilegroups` ("
1527 " `name` varchar(128) NOT NULL,"
1528 " `hostname` varchar(64) NOT NULL,"
1529 " `profilegroupid` int unsigned NOT NULL AUTO_INCREMENT,"
1530 " PRIMARY KEY (`name`,`hostname`),"
1531 " UNIQUE KEY `profilegroupid` (`profilegroupid`)"
1532 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1533 "CREATE TABLE `displayprofiles` ("
1534 " `profilegroupid` int unsigned NOT NULL,"
1535 " `profileid` int unsigned NOT NULL AUTO_INCREMENT,"
1536 " `value` varchar(128) NOT NULL,"
1537 " `data` varchar(255) NOT NULL DEFAULT '',"
1538 " KEY `profilegroupid` (`profilegroupid`),"
1539 " KEY `profileid` (`profileid`,`value`),"
1540 " KEY `profileid_2` (`profileid`)"
1541 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1542 "CREATE TABLE `dtv_multiplex` ("
1543 " `mplexid` smallint NOT NULL AUTO_INCREMENT,"
1544 " `sourceid` smallint DEFAULT NULL,"
1545 " `transportid` int DEFAULT NULL,"
1546 " `networkid` int DEFAULT NULL,"
1547 " `frequency` int DEFAULT NULL,"
1548 " `inversion` char(1) DEFAULT 'a',"
1549 " `symbolrate` int DEFAULT NULL,"
1550 " `fec` varchar(10) DEFAULT 'auto',"
1551 " `polarity` char(1) DEFAULT NULL,"
1552 " `modulation` varchar(10) DEFAULT 'auto',"
1553 " `bandwidth` char(1) DEFAULT 'a',"
1554 " `lp_code_rate` varchar(10) DEFAULT 'auto',"
1555 " `transmission_mode` char(1) DEFAULT 'a',"
1556 " `guard_interval` varchar(10) DEFAULT 'auto',"
1557 " `visible` smallint NOT NULL DEFAULT '0',"
1558 " `constellation` varchar(10) DEFAULT 'auto',"
1559 " `hierarchy` varchar(10) DEFAULT 'auto',"
1560 " `hp_code_rate` varchar(10) DEFAULT 'auto',"
1561 " `mod_sys` varchar(10) DEFAULT NULL,"
1562 " `rolloff` varchar(4) DEFAULT NULL,"
1563 " `sistandard` varchar(10) DEFAULT 'dvb',"
1564 " `serviceversion` smallint DEFAULT '33',"
1565 " `updatetimestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
1566 " `default_authority` varchar(32) NOT NULL DEFAULT '',"
1567 " PRIMARY KEY (`mplexid`)"
1568 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1569 "CREATE TABLE `dtv_privatetypes` ("
1570 " `sitype` varchar(4) NOT NULL DEFAULT '',"
1571 " `networkid` int NOT NULL DEFAULT '0',"
1572 " `private_type` varchar(20) NOT NULL DEFAULT '',"
1573 " `private_value` varchar(100) NOT NULL DEFAULT ''"
1574 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1575 "CREATE TABLE `dvdbookmark` ("
1576 " `serialid` varchar(16) NOT NULL DEFAULT '',"
1577 " `name` varchar(32) DEFAULT NULL,"
1578 " `title` smallint NOT NULL DEFAULT '0',"
1579 " `audionum` tinyint NOT NULL DEFAULT '-1',"
1580 " `subtitlenum` tinyint NOT NULL DEFAULT '-1',"
1581 " `framenum` bigint NOT NULL DEFAULT '0',"
1582 " `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
1583 " `dvdstate` varchar(1024) NOT NULL DEFAULT '',"
1584 " PRIMARY KEY (`serialid`)"
1585 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1586 "CREATE TABLE `dvdinput` ("
1587 " `intid` int unsigned NOT NULL,"
1588 " `hsize` int unsigned DEFAULT NULL,"
1589 " `vsize` int unsigned DEFAULT NULL,"
1590 " `ar_num` int unsigned DEFAULT NULL,"
1591 " `ar_denom` int unsigned DEFAULT NULL,"
1592 " `fr_code` int unsigned DEFAULT NULL,"
1593 " `letterbox` tinyint(1) DEFAULT NULL,"
1594 " `v_format` varchar(16) DEFAULT NULL,"
1595 " PRIMARY KEY (`intid`)"
1596 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1597 "CREATE TABLE `dvdtranscode` ("
1598 " `intid` int NOT NULL AUTO_INCREMENT,"
1599 " `input` int unsigned DEFAULT NULL,"
1600 " `name` varchar(128) NOT NULL,"
1601 " `sync_mode` int unsigned DEFAULT NULL,"
1602 " `use_yv12` tinyint(1) DEFAULT NULL,"
1603 " `cliptop` int DEFAULT NULL,"
1604 " `clipbottom` int DEFAULT NULL,"
1605 " `clipleft` int DEFAULT NULL,"
1606 " `clipright` int DEFAULT NULL,"
1607 " `f_resize_h` int DEFAULT NULL,"
1608 " `f_resize_w` int DEFAULT NULL,"
1609 " `hq_resize_h` int DEFAULT NULL,"
1610 " `hq_resize_w` int DEFAULT NULL,"
1611 " `grow_h` int DEFAULT NULL,"
1612 " `grow_w` int DEFAULT NULL,"
1613 " `clip2top` int DEFAULT NULL,"
1614 " `clip2bottom` int DEFAULT NULL,"
1615 " `clip2left` int DEFAULT NULL,"
1616 " `clip2right` int DEFAULT NULL,"
1617 " `codec` varchar(128) NOT NULL,"
1618 " `codec_param` varchar(128) DEFAULT NULL,"
1619 " `bitrate` int DEFAULT NULL,"
1620 " `a_sample_r` int DEFAULT NULL,"
1621 " `a_bitrate` int DEFAULT NULL,"
1622 " `two_pass` tinyint(1) DEFAULT NULL,"
1623 " `tc_param` varchar(128) DEFAULT NULL,"
1624 " PRIMARY KEY (`intid`)"
1625 ") ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;",
1626 "CREATE TABLE `eit_cache` ("
1627 " `chanid` int NOT NULL,"
1628 " `eventid` int unsigned NOT NULL DEFAULT '0',"
1629 " `tableid` tinyint unsigned NOT NULL,"
1630 " `version` tinyint unsigned NOT NULL,"
1631 " `endtime` int unsigned NOT NULL,"
1632 " `status` tinyint NOT NULL DEFAULT '0',"
1633 " PRIMARY KEY (`chanid`,`eventid`,`status`)"
1634 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1635 "CREATE TABLE `filemarkup` ("
1636 " `filename` text NOT NULL,"
1637 " `mark` mediumint unsigned NOT NULL DEFAULT '0',"
1638 " `offset` bigint unsigned DEFAULT NULL,"
1639 " `type` tinyint NOT NULL DEFAULT '0',"
1640 " KEY `filename` (`filename`(255)),"
1641 " KEY `type` (`type`)"
1642 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1643 "CREATE TABLE `gallery_directories` ("
1644 " `dir_id` int NOT NULL AUTO_INCREMENT,"
1645 " `filename` varchar(255) NOT NULL,"
1646 " `name` varchar(255) NOT NULL,"
1647 " `path` varchar(255) NOT NULL,"
1648 " `parent_id` int NOT NULL,"
1649 " `dir_count` int NOT NULL DEFAULT '0',"
1650 " `file_count` int NOT NULL DEFAULT '0',"
1651 " `hidden` tinyint(1) NOT NULL DEFAULT '0',"
1652 " PRIMARY KEY (`dir_id`)"
1653 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1654 "CREATE TABLE `gallery_files` ("
1655 " `file_id` int NOT NULL AUTO_INCREMENT,"
1656 " `filename` varchar(255) NOT NULL,"
1657 " `name` varchar(255) NOT NULL,"
1658 " `path` varchar(255) NOT NULL,"
1659 " `dir_id` int NOT NULL DEFAULT '0',"
1660 " `type` int NOT NULL DEFAULT '0',"
1661 " `modtime` int NOT NULL DEFAULT '0',"
1662 " `size` int NOT NULL DEFAULT '0',"
1663 " `extension` varchar(255) NOT NULL,"
1664 " `angle` int NOT NULL DEFAULT '0',"
1665 " `date` int NOT NULL DEFAULT '0',"
1666 " `zoom` int NOT NULL DEFAULT '0',"
1667 " `hidden` tinyint(1) NOT NULL DEFAULT '0',"
1668 " `orientation` int NOT NULL DEFAULT '0',"
1669 " PRIMARY KEY (`file_id`),"
1670 " KEY `dir_id` (`dir_id`)"
1671 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1672 "CREATE TABLE `housekeeping` ("
1673 " `tag` varchar(64) NOT NULL,"
1674 " `hostname` varchar(64) DEFAULT NULL,"
1675 " `lastrun` datetime DEFAULT NULL,"
1676 " `lastsuccess` datetime DEFAULT NULL,"
1677 " UNIQUE KEY `task` (`tag`,`hostname`)"
1678 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1679 "CREATE TABLE `inputgroup` ("
1680 " `cardinputid` int unsigned NOT NULL,"
1681 " `inputgroupid` int unsigned NOT NULL,"
1682 " `inputgroupname` varchar(128) DEFAULT NULL"
1683 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1684 "CREATE TABLE `internetcontent` ("
1685 " `name` varchar(255) NOT NULL,"
1686 " `thumbnail` varchar(255) DEFAULT NULL,"
1687 " `type` smallint NOT NULL,"
1688 " `author` varchar(128) NOT NULL,"
1689 " `description` text NOT NULL,"
1690 " `commandline` text NOT NULL,"
1691 " `version` double NOT NULL,"
1692 " `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1693 " `search` tinyint(1) NOT NULL,"
1694 " `tree` tinyint(1) NOT NULL,"
1695 " `podcast` tinyint(1) NOT NULL,"
1696 " `download` tinyint(1) NOT NULL,"
1697 " `host` varchar(128) DEFAULT NULL"
1698 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1699 "CREATE TABLE `internetcontentarticles` ("
1700 " `feedtitle` varchar(255) NOT NULL,"
1701 " `path` text NOT NULL,"
1702 " `paththumb` text NOT NULL,"
1703 " `title` varchar(255) NOT NULL,"
1704 " `subtitle` varchar(255) NOT NULL,"
1705 " `season` smallint NOT NULL DEFAULT '0',"
1706 " `episode` smallint NOT NULL DEFAULT '0',"
1707 " `description` text NOT NULL,"
1708 " `url` text NOT NULL,"
1709 " `type` smallint NOT NULL,"
1710 " `thumbnail` text NOT NULL,"
1711 " `mediaURL` text NOT NULL,"
1712 " `author` varchar(255) NOT NULL,"
1713 " `date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1714 " `time` int NOT NULL,"
1715 " `rating` varchar(255) NOT NULL,"
1716 " `filesize` bigint NOT NULL,"
1717 " `player` varchar(255) NOT NULL,"
1718 " `playerargs` text NOT NULL,"
1719 " `download` varchar(255) NOT NULL,"
1720 " `downloadargs` text NOT NULL,"
1721 " `width` smallint NOT NULL,"
1722 " `height` smallint NOT NULL,"
1723 " `language` varchar(128) NOT NULL,"
1724 " `podcast` tinyint(1) NOT NULL,"
1725 " `downloadable` tinyint(1) NOT NULL,"
1726 " `customhtml` tinyint(1) NOT NULL,"
1727 " `countries` varchar(255) NOT NULL"
1728 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1729 "CREATE TABLE `inuseprograms` ("
1730 " `chanid` int unsigned NOT NULL DEFAULT '0',"
1731 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1732 " `recusage` varchar(128) NOT NULL DEFAULT '',"
1733 " `lastupdatetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1734 " `hostname` varchar(64) NOT NULL DEFAULT '',"
1735 " `rechost` varchar(64) NOT NULL,"
1736 " `recdir` varchar(255) NOT NULL DEFAULT '',"
1737 " KEY `chanid` (`chanid`,`starttime`),"
1738 " KEY `recusage` (`recusage`,`lastupdatetime`)"
1739 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1740 "CREATE TABLE `iptv_channel` ("
1741 " `iptvid` smallint unsigned NOT NULL AUTO_INCREMENT,"
1742 " `chanid` int unsigned NOT NULL,"
1743 " `url` text NOT NULL,"
1744 " `type` set('data','rfc2733-1','rfc2733-2','rfc5109-1','rfc5109-2','smpte2022-1','smpte2022-2') DEFAULT NULL,"
1745 " `bitrate` int unsigned NOT NULL,"
1746 " PRIMARY KEY (`iptvid`),"
1747 " KEY `chanid` (`chanid`)"
1748 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1749 "CREATE TABLE `jobqueue` ("
1750 " `id` int NOT NULL AUTO_INCREMENT,"
1751 " `chanid` int NOT NULL DEFAULT '0',"
1752 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1753 " `inserttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1754 " `type` int NOT NULL DEFAULT '0',"
1755 " `cmds` int NOT NULL DEFAULT '0',"
1756 " `flags` int NOT NULL DEFAULT '0',"
1757 " `status` int NOT NULL DEFAULT '0',"
1758 " `statustime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
1759 " `hostname` varchar(64) NOT NULL DEFAULT '',"
1760 " `args` blob NOT NULL,"
1761 " `comment` varchar(128) NOT NULL DEFAULT '',"
1762 " `schedruntime` datetime NOT NULL DEFAULT '2007-01-01 00:00:00',"
1763 " PRIMARY KEY (`id`),"
1764 " UNIQUE KEY `chanid` (`chanid`,`starttime`,`type`,`inserttime`)"
1765 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1766 "CREATE TABLE `jumppoints` ("
1767 " `destination` varchar(128) NOT NULL DEFAULT '',"
1768 " `description` varchar(255) DEFAULT NULL,"
1769 " `keylist` varchar(128) DEFAULT NULL,"
1770 " `hostname` varchar(64) NOT NULL DEFAULT '',"
1771 " PRIMARY KEY (`destination`,`hostname`)"
1772 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1773 "CREATE TABLE `keybindings` ("
1774 " `context` varchar(32) NOT NULL DEFAULT '',"
1775 " `action` varchar(32) NOT NULL DEFAULT '',"
1776 " `description` varchar(255) DEFAULT NULL,"
1777 " `keylist` varchar(128) DEFAULT NULL,"
1778 " `hostname` varchar(64) NOT NULL DEFAULT '',"
1779 " PRIMARY KEY (`context`,`action`,`hostname`)"
1780 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1781 "CREATE TABLE `keyword` ("
1782 " `phrase` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
1783 " `searchtype` int unsigned NOT NULL DEFAULT '3',"
1784 " UNIQUE KEY `phrase` (`phrase`,`searchtype`)"
1785 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1786 "CREATE TABLE `livestream` ("
1787 " `id` int unsigned NOT NULL AUTO_INCREMENT,"
1788 " `width` int unsigned NOT NULL,"
1789 " `height` int unsigned NOT NULL,"
1790 " `bitrate` int unsigned NOT NULL,"
1791 " `audiobitrate` int unsigned NOT NULL,"
1792 " `samplerate` int unsigned NOT NULL,"
1793 " `audioonlybitrate` int unsigned NOT NULL,"
1794 " `segmentsize` int unsigned NOT NULL DEFAULT '10',"
1795 " `maxsegments` int unsigned NOT NULL DEFAULT '0',"
1796 " `startsegment` int unsigned NOT NULL DEFAULT '0',"
1797 " `currentsegment` int unsigned NOT NULL DEFAULT '0',"
1798 " `segmentcount` int unsigned NOT NULL DEFAULT '0',"
1799 " `percentcomplete` int unsigned NOT NULL DEFAULT '0',"
1800 " `created` datetime NOT NULL,"
1801 " `lastmodified` datetime NOT NULL,"
1802 " `relativeurl` varchar(512) NOT NULL,"
1803 " `fullurl` varchar(1024) NOT NULL,"
1804 " `status` int unsigned NOT NULL DEFAULT '0',"
1805 " `statusmessage` varchar(256) NOT NULL,"
1806 " `sourcefile` varchar(512) NOT NULL,"
1807 " `sourcehost` varchar(64) NOT NULL,"
1808 " `sourcewidth` int unsigned NOT NULL DEFAULT '0',"
1809 " `sourceheight` int unsigned NOT NULL DEFAULT '0',"
1810 " `outdir` varchar(256) NOT NULL,"
1811 " `outbase` varchar(128) NOT NULL,"
1812 " PRIMARY KEY (`id`)"
1813 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1814 "CREATE TABLE `mythlog` ("
1815 " `logid` int unsigned NOT NULL AUTO_INCREMENT,"
1816 " `module` varchar(32) NOT NULL DEFAULT '',"
1817 " `priority` int NOT NULL DEFAULT '0',"
1818 " `acknowledged` tinyint(1) DEFAULT '0',"
1819 " `logdate` datetime DEFAULT NULL,"
1820 " `host` varchar(128) DEFAULT NULL,"
1821 " `message` varchar(255) NOT NULL DEFAULT '',"
1822 " `details` varchar(16000) NOT NULL DEFAULT '',"
1823 " PRIMARY KEY (`logid`),"
1824 " KEY `module` (`module`)"
1825 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1826 "CREATE TABLE `oldfind` ("
1827 " `recordid` int NOT NULL DEFAULT '0',"
1828 " `findid` int NOT NULL DEFAULT '0',"
1829 " PRIMARY KEY (`recordid`,`findid`)"
1830 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1831 "CREATE TABLE `oldprogram` ("
1832 " `oldtitle` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
1833 " `airdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1834 " PRIMARY KEY (`oldtitle`)"
1835 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1836 "CREATE TABLE `oldrecorded` ("
1837 " `chanid` int unsigned NOT NULL DEFAULT '0',"
1838 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1839 " `endtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1840 " `title` varchar(128) NOT NULL DEFAULT '',"
1841 " `subtitle` varchar(128) NOT NULL DEFAULT '',"
1842 " `description` varchar(16000) NOT NULL DEFAULT '',"
1843 " `season` smallint NOT NULL,"
1844 " `episode` smallint NOT NULL,"
1845 " `category` varchar(64) NOT NULL DEFAULT '',"
1846 " `seriesid` varchar(64) DEFAULT NULL,"
1847 " `programid` varchar(64) DEFAULT NULL,"
1848 " `inetref` varchar(40) NOT NULL,"
1849 " `findid` int NOT NULL DEFAULT '0',"
1850 " `recordid` int NOT NULL DEFAULT '0',"
1851 " `station` varchar(20) NOT NULL DEFAULT '',"
1852 " `rectype` int unsigned NOT NULL DEFAULT '0',"
1853 " `duplicate` tinyint(1) NOT NULL DEFAULT '0',"
1854 " `recstatus` int NOT NULL DEFAULT '0',"
1855 " `reactivate` smallint NOT NULL DEFAULT '0',"
1856 " `generic` tinyint(1) NOT NULL,"
1857 " `future` tinyint(1) NOT NULL DEFAULT '0',"
1858 " PRIMARY KEY (`station`,`starttime`,`title`),"
1859 " KEY `endtime` (`endtime`),"
1860 " KEY `title` (`title`),"
1861 " KEY `seriesid` (`seriesid`),"
1862 " KEY `programid` (`programid`),"
1863 " KEY `recordid` (`recordid`),"
1864 " KEY `recstatus` (`recstatus`,`programid`,`seriesid`),"
1865 " KEY `recstatus_2` (`recstatus`,`title`,`subtitle`),"
1866 " KEY `future` (`future`),"
1867 " KEY `chanid` (`chanid`,`starttime`),"
1868 " KEY `subtitle` (`subtitle`),"
1869 " KEY `description` (`description`(255))"
1870 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1871 "CREATE TABLE `people` ("
1872 " `person` mediumint unsigned NOT NULL AUTO_INCREMENT,"
1873 " `name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
1874 " PRIMARY KEY (`person`),"
1875 " UNIQUE KEY `name` (`name`(41))"
1876 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1877 "CREATE TABLE `pidcache` ("
1878 " `chanid` smallint NOT NULL DEFAULT '0',"
1879 " `pid` int NOT NULL DEFAULT '-1',"
1880 " `tableid` int NOT NULL DEFAULT '-1',"
1881 " KEY `chanid` (`chanid`)"
1882 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1883 "CREATE TABLE `playgroup` ("
1884 " `name` varchar(32) NOT NULL DEFAULT '',"
1885 " `titlematch` varchar(255) NOT NULL DEFAULT '',"
1886 " `skipahead` int NOT NULL DEFAULT '0',"
1887 " `skipback` int NOT NULL DEFAULT '0',"
1888 " `timestretch` int NOT NULL DEFAULT '0',"
1889 " `jump` int NOT NULL DEFAULT '0',"
1890 " PRIMARY KEY (`name`)"
1891 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1892 "CREATE TABLE `powerpriority` ("
1893 " `priorityname` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,"
1894 " `recpriority` int NOT NULL DEFAULT '0',"
1895 " `selectclause` varchar(16000) NOT NULL DEFAULT '',"
1896 " PRIMARY KEY (`priorityname`)"
1897 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1898 "CREATE TABLE `profilegroups` ("
1899 " `id` int unsigned NOT NULL AUTO_INCREMENT,"
1900 " `name` varchar(128) DEFAULT NULL,"
1901 " `cardtype` varchar(32) NOT NULL DEFAULT 'V4L',"
1902 " `is_default` int DEFAULT '0',"
1903 " `hostname` varchar(64) DEFAULT NULL,"
1904 " PRIMARY KEY (`id`),"
1905 " UNIQUE KEY `name` (`name`,`hostname`),"
1906 " KEY `cardtype` (`cardtype`)"
1907 ") ENGINE=MyISAM AUTO_INCREMENT=20 DEFAULT CHARSET=utf8;",
1908 "CREATE TABLE `program` ("
1909 " `chanid` int unsigned NOT NULL DEFAULT '0',"
1910 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1911 " `endtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1912 " `title` varchar(128) NOT NULL DEFAULT '',"
1913 " `subtitle` varchar(128) NOT NULL DEFAULT '',"
1914 " `description` varchar(16000) NOT NULL DEFAULT '',"
1915 " `category` varchar(64) NOT NULL DEFAULT '',"
1916 " `category_type` varchar(64) NOT NULL DEFAULT '',"
1917 " `airdate` year NOT NULL DEFAULT '0000',"
1918 " `stars` float NOT NULL DEFAULT '0',"
1919 " `previouslyshown` tinyint NOT NULL DEFAULT '0',"
1920 " `title_pronounce` varchar(128) NOT NULL DEFAULT '',"
1921 " `stereo` tinyint(1) NOT NULL DEFAULT '0',"
1922 " `subtitled` tinyint(1) NOT NULL DEFAULT '0',"
1923 " `hdtv` tinyint(1) NOT NULL DEFAULT '0',"
1924 " `closecaptioned` tinyint(1) NOT NULL DEFAULT '0',"
1925 " `partnumber` int NOT NULL DEFAULT '0',"
1926 " `parttotal` int NOT NULL DEFAULT '0',"
1927 " `seriesid` varchar(64) NOT NULL DEFAULT '',"
1928 " `originalairdate` date DEFAULT NULL,"
1929 " `showtype` varchar(30) NOT NULL DEFAULT '',"
1930 " `colorcode` varchar(20) NOT NULL DEFAULT '',"
1931 " `syndicatedepisodenumber` varchar(20) NOT NULL DEFAULT '',"
1932 " `programid` varchar(64) NOT NULL DEFAULT '',"
1933 " `manualid` int unsigned NOT NULL DEFAULT '0',"
1934 " `generic` tinyint(1) DEFAULT '0',"
1935 " `listingsource` int NOT NULL DEFAULT '0',"
1936 " `first` tinyint(1) NOT NULL DEFAULT '0',"
1937 " `last` tinyint(1) NOT NULL DEFAULT '0',"
1938 " `audioprop` set('STEREO','MONO','SURROUND','DOLBY','HARDHEAR','VISUALIMPAIR') NOT NULL,"
1939 " `subtitletypes` set('HARDHEAR','NORMAL','ONSCREEN','SIGNED') NOT NULL,"
1940 " `videoprop` set('WIDESCREEN','HDTV','MPEG2','AVC','HEVC') NOT NULL,"
1941 " `inetref` varchar(40) DEFAULT '',"
1942 " `season` int NOT NULL DEFAULT '0',"
1943 " `episode` int NOT NULL DEFAULT '0',"
1944 " `totalepisodes` int NOT NULL DEFAULT '0',"
1945 " PRIMARY KEY (`chanid`,`starttime`,`manualid`),"
1946 " KEY `endtime` (`endtime`),"
1947 " KEY `title_pronounce` (`title_pronounce`),"
1948 " KEY `seriesid` (`seriesid`),"
1949 " KEY `id_start_end` (`chanid`,`starttime`,`endtime`),"
1950 " KEY `program_manualid` (`manualid`),"
1951 " KEY `previouslyshown` (`previouslyshown`),"
1952 " KEY `programid` (`programid`,`starttime`),"
1953 " KEY `starttime` (`starttime`),"
1954 " KEY `subtitle` (`subtitle`),"
1955 " KEY `description` (`description`(255)),"
1956 " KEY `title_subtitle_start` (`title`,`subtitle`,`starttime`)"
1957 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1958 "CREATE TABLE `programgenres` ("
1959 " `chanid` int unsigned NOT NULL DEFAULT '0',"
1960 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1961 " `relevance` char(1) NOT NULL DEFAULT '',"
1962 " `genre` varchar(30) DEFAULT NULL,"
1963 " PRIMARY KEY (`chanid`,`starttime`,`relevance`),"
1964 " KEY `genre` (`genre`)"
1965 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1966 "CREATE TABLE `programrating` ("
1967 " `chanid` int unsigned NOT NULL DEFAULT '0',"
1968 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
1969 " `system` varchar(128) DEFAULT NULL,"
1970 " `rating` varchar(128) DEFAULT NULL,"
1971 " UNIQUE KEY `chanid` (`chanid`,`starttime`,`system`,`rating`),"
1972 " KEY `starttime` (`starttime`,`system`)"
1973 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1974 "CREATE TABLE `recgrouppassword` ("
1975 " `recgroup` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
1976 " `password` varchar(10) NOT NULL DEFAULT '',"
1977 " PRIMARY KEY (`recgroup`)"
1978 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
1979 "CREATE TABLE `recgroups` ("
1980 " `recgroupid` smallint NOT NULL AUTO_INCREMENT,"
1981 " `recgroup` varchar(64) NOT NULL DEFAULT '',"
1982 " `displayname` varchar(64) NOT NULL DEFAULT '',"
1983 " `password` varchar(40) NOT NULL DEFAULT '',"
1984 " `special` tinyint(1) NOT NULL DEFAULT '0',"
1985 " PRIMARY KEY (`recgroupid`),"
1986 " UNIQUE KEY `recgroup` (`recgroup`)"
1987 ") ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;",
1988 "CREATE TABLE `record` ("
1989 " `recordid` int unsigned NOT NULL AUTO_INCREMENT,"
1990 " `type` int unsigned NOT NULL DEFAULT '0',"
1991 " `chanid` int unsigned DEFAULT NULL,"
1992 " `starttime` time DEFAULT NULL,"
1993 " `startdate` date DEFAULT NULL,"
1994 " `endtime` time DEFAULT NULL,"
1995 " `enddate` date DEFAULT NULL,"
1996 " `title` varchar(128) NOT NULL DEFAULT '',"
1997 " `subtitle` varchar(128) NOT NULL DEFAULT '',"
1998 " `description` varchar(16000) NOT NULL DEFAULT '',"
1999 " `season` smallint NOT NULL,"
2000 " `episode` smallint NOT NULL,"
2001 " `category` varchar(64) NOT NULL DEFAULT '',"
2002 " `profile` varchar(128) NOT NULL DEFAULT 'Default',"
2003 " `recpriority` int NOT NULL DEFAULT '0',"
2004 " `autoexpire` int NOT NULL DEFAULT '0',"
2005 " `maxepisodes` int NOT NULL DEFAULT '0',"
2006 " `maxnewest` int NOT NULL DEFAULT '0',"
2007 " `startoffset` int NOT NULL DEFAULT '0',"
2008 " `endoffset` int NOT NULL DEFAULT '0',"
2009 " `recgroup` varchar(32) NOT NULL DEFAULT 'Default',"
2010 " `dupmethod` int NOT NULL DEFAULT '6',"
2011 " `dupin` int NOT NULL DEFAULT '15',"
2012 " `station` varchar(20) NOT NULL DEFAULT '',"
2013 " `seriesid` varchar(64) DEFAULT NULL,"
2014 " `programid` varchar(64) DEFAULT NULL,"
2015 " `inetref` varchar(40) NOT NULL,"
2016 " `search` int unsigned NOT NULL DEFAULT '0',"
2017 " `autotranscode` tinyint(1) NOT NULL DEFAULT '0',"
2018 " `autocommflag` tinyint(1) NOT NULL DEFAULT '0',"
2019 " `autouserjob1` tinyint(1) NOT NULL DEFAULT '0',"
2020 " `autouserjob2` tinyint(1) NOT NULL DEFAULT '0',"
2021 " `autouserjob3` tinyint(1) NOT NULL DEFAULT '0',"
2022 " `autouserjob4` tinyint(1) NOT NULL DEFAULT '0',"
2023 " `autometadata` tinyint(1) NOT NULL DEFAULT '0',"
2024 " `findday` tinyint NOT NULL DEFAULT '0',"
2025 " `findtime` time NOT NULL DEFAULT '00:00:00',"
2026 " `findid` int NOT NULL DEFAULT '0',"
2027 " `inactive` tinyint(1) NOT NULL DEFAULT '0',"
2028 " `parentid` int NOT NULL DEFAULT '0',"
2029 " `transcoder` int NOT NULL DEFAULT '0',"
2030 " `playgroup` varchar(32) NOT NULL DEFAULT 'Default',"
2031 " `prefinput` int NOT NULL DEFAULT '0',"
2032 " `next_record` datetime DEFAULT NULL,"
2033 " `last_record` datetime DEFAULT NULL,"
2034 " `last_delete` datetime DEFAULT NULL,"
2035 " `storagegroup` varchar(32) NOT NULL DEFAULT 'Default',"
2036 " `avg_delay` int NOT NULL DEFAULT '100',"
2037 " `filter` int unsigned NOT NULL DEFAULT '0',"
2038 " `recgroupid` smallint NOT NULL DEFAULT '1',"
2039 " `autoextend` tinyint unsigned DEFAULT '0',"
2040 " PRIMARY KEY (`recordid`),"
2041 " UNIQUE KEY `chanid` (`chanid`,`starttime`,`startdate`,`title`,`type`),"
2042 " KEY `title` (`title`),"
2043 " KEY `seriesid` (`seriesid`),"
2044 " KEY `programid` (`programid`),"
2045 " KEY `maxepisodes` (`maxepisodes`),"
2046 " KEY `search` (`search`),"
2047 " KEY `type` (`type`),"
2048 " KEY `recgroupid` (`recgroupid`)"
2049 ") ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;",
2050 "CREATE TABLE `recorded` ("
2051 " `chanid` int unsigned NOT NULL DEFAULT '0',"
2052 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2053 " `endtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2054 " `title` varchar(128) NOT NULL DEFAULT '',"
2055 " `subtitle` varchar(128) NOT NULL DEFAULT '',"
2056 " `description` varchar(16000) NOT NULL DEFAULT '',"
2057 " `season` smallint NOT NULL,"
2058 " `episode` smallint NOT NULL,"
2059 " `category` varchar(64) NOT NULL DEFAULT '',"
2060 " `hostname` varchar(64) NOT NULL DEFAULT '',"
2061 " `bookmark` tinyint(1) NOT NULL DEFAULT '0',"
2062 " `lastplay` tinyint unsigned DEFAULT '0',"
2063 " `editing` int unsigned NOT NULL DEFAULT '0',"
2064 " `cutlist` tinyint(1) NOT NULL DEFAULT '0',"
2065 " `autoexpire` int NOT NULL DEFAULT '0',"
2066 " `commflagged` int unsigned NOT NULL DEFAULT '0',"
2067 " `recgroup` varchar(32) NOT NULL DEFAULT 'Default',"
2068 " `recordid` int DEFAULT NULL,"
2069 " `seriesid` varchar(64) DEFAULT NULL,"
2070 " `programid` varchar(64) DEFAULT NULL,"
2071 " `inetref` varchar(40) NOT NULL,"
2072 " `lastmodified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,"
2073 " `filesize` bigint NOT NULL DEFAULT '0',"
2074 " `stars` float NOT NULL DEFAULT '0',"
2075 " `previouslyshown` tinyint(1) DEFAULT '0',"
2076 " `originalairdate` date DEFAULT NULL,"
2077 " `preserve` tinyint(1) NOT NULL DEFAULT '0',"
2078 " `findid` int NOT NULL DEFAULT '0',"
2079 " `deletepending` tinyint(1) NOT NULL DEFAULT '0',"
2080 " `transcoder` int NOT NULL DEFAULT '0',"
2081 " `timestretch` float NOT NULL DEFAULT '1',"
2082 " `recpriority` int NOT NULL DEFAULT '0',"
2083 " `basename` varchar(255) NOT NULL,"
2084 " `progstart` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2085 " `progend` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2086 " `playgroup` varchar(32) NOT NULL DEFAULT 'Default',"
2087 " `profile` varchar(32) NOT NULL DEFAULT '',"
2088 " `duplicate` tinyint(1) NOT NULL DEFAULT '0',"
2089 " `transcoded` tinyint(1) NOT NULL DEFAULT '0',"
2090 " `watched` tinyint NOT NULL DEFAULT '0',"
2091 " `storagegroup` varchar(32) NOT NULL DEFAULT 'Default',"
2092 " `bookmarkupdate` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',"
2093 " `recgroupid` smallint NOT NULL DEFAULT '1',"
2094 " `recordedid` int unsigned NOT NULL AUTO_INCREMENT,"
2095 " `inputname` varchar(32) DEFAULT NULL,"
2096 " PRIMARY KEY (`recordedid`),"
2097 " UNIQUE KEY `chanid` (`chanid`,`starttime`),"
2098 " KEY `endtime` (`endtime`),"
2099 " KEY `seriesid` (`seriesid`),"
2100 " KEY `programid` (`programid`),"
2101 " KEY `title` (`title`),"
2102 " KEY `recordid` (`recordid`),"
2103 " KEY `deletepending` (`deletepending`,`lastmodified`),"
2104 " KEY `recgroup` (`recgroup`,`endtime`),"
2105 " KEY `recgroupid` (`recgroupid`)"
2106 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2107 "CREATE TABLE `recordedartwork` ("
2108 " `inetref` varchar(255) NOT NULL,"
2109 " `season` smallint NOT NULL,"
2110 " `host` text NOT NULL,"
2111 " `coverart` text NOT NULL,"
2112 " `fanart` text NOT NULL,"
2113 " `banner` text NOT NULL,"
2114 " KEY `recordedartwork_ix1` (`inetref`)"
2115 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2116 "CREATE TABLE `recordedcredits` ("
2117 " `person` mediumint unsigned NOT NULL DEFAULT '0',"
2118 " `chanid` int unsigned NOT NULL DEFAULT '0',"
2119 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2120 " `role` set('actor','director','producer','executive_producer','writer','guest_star','host','adapter','presenter','commentator','guest') NOT NULL DEFAULT '',"
2121 " `priority` tinyint unsigned DEFAULT '0',"
2122 " `roleid` mediumint unsigned DEFAULT '0',"
2123 " UNIQUE KEY `chanid` (`chanid`,`starttime`,`person`,`role`,`roleid`),"
2124 " KEY `person` (`person`,`role`)"
2125 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2126 "CREATE TABLE `recordedfile` ("
2127 " `basename` varchar(128) NOT NULL DEFAULT '',"
2128 " `filesize` bigint NOT NULL DEFAULT '0',"
2129 " `width` smallint unsigned NOT NULL DEFAULT '0',"
2130 " `height` smallint unsigned NOT NULL DEFAULT '0',"
2131 " `fps` float(6,3) NOT NULL DEFAULT '0.000',"
2132 " `aspect` float(8,6) NOT NULL DEFAULT '0.000000',"
2133 " `audio_sample_rate` smallint unsigned NOT NULL DEFAULT '0',"
2134 " `audio_channels` tinyint unsigned NOT NULL DEFAULT '0',"
2135 " `audio_codec` varchar(255) NOT NULL DEFAULT '',"
2136 " `video_codec` varchar(255) NOT NULL DEFAULT '',"
2137 " `comment` varchar(255) NOT NULL DEFAULT '',"
2138 " `hostname` varchar(64) NOT NULL,"
2139 " `storagegroup` varchar(32) NOT NULL,"
2140 " `id` int NOT NULL AUTO_INCREMENT,"
2141 " `recordedid` int unsigned NOT NULL,"
2142 " `container` varchar(255) NOT NULL DEFAULT '',"
2143 " `total_bitrate` mediumint unsigned NOT NULL DEFAULT '0',"
2144 " `video_avg_bitrate` mediumint unsigned NOT NULL DEFAULT '0',"
2145 " `video_max_bitrate` mediumint unsigned NOT NULL DEFAULT '0',"
2146 " `audio_avg_bitrate` mediumint unsigned NOT NULL DEFAULT '0',"
2147 " `audio_max_bitrate` mediumint unsigned NOT NULL DEFAULT '0',"
2148 " PRIMARY KEY (`id`),"
2149 " UNIQUE KEY `recordedid` (`recordedid`),"
2150 " KEY `basename` (`basename`)"
2151 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2152 "CREATE TABLE `recordedmarkup` ("
2153 " `chanid` int unsigned NOT NULL DEFAULT '0',"
2154 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2155 " `mark` mediumint unsigned NOT NULL DEFAULT '0',"
2156 " `type` tinyint NOT NULL DEFAULT '0',"
2157 " `data` int unsigned DEFAULT NULL,"
2158 " PRIMARY KEY (`chanid`,`starttime`,`type`,`mark`)"
2159 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2160 "CREATE TABLE `recordedprogram` ("
2161 " `chanid` int unsigned NOT NULL DEFAULT '0',"
2162 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2163 " `endtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2164 " `title` varchar(128) NOT NULL DEFAULT '',"
2165 " `subtitle` varchar(128) NOT NULL DEFAULT '',"
2166 " `description` varchar(16000) NOT NULL DEFAULT '',"
2167 " `category` varchar(64) NOT NULL DEFAULT '',"
2168 " `category_type` varchar(64) NOT NULL DEFAULT '',"
2169 " `airdate` year NOT NULL DEFAULT '0000',"
2170 " `stars` float unsigned NOT NULL DEFAULT '0',"
2171 " `previouslyshown` tinyint NOT NULL DEFAULT '0',"
2172 " `title_pronounce` varchar(128) NOT NULL DEFAULT '',"
2173 " `stereo` tinyint(1) NOT NULL DEFAULT '0',"
2174 " `subtitled` tinyint(1) NOT NULL DEFAULT '0',"
2175 " `hdtv` tinyint(1) NOT NULL DEFAULT '0',"
2176 " `closecaptioned` tinyint(1) NOT NULL DEFAULT '0',"
2177 " `partnumber` int NOT NULL DEFAULT '0',"
2178 " `parttotal` int NOT NULL DEFAULT '0',"
2179 " `seriesid` varchar(64) DEFAULT NULL,"
2180 " `originalairdate` date DEFAULT NULL,"
2181 " `showtype` varchar(30) NOT NULL DEFAULT '',"
2182 " `colorcode` varchar(20) NOT NULL DEFAULT '',"
2183 " `syndicatedepisodenumber` varchar(20) NOT NULL DEFAULT '',"
2184 " `programid` varchar(64) DEFAULT NULL,"
2185 " `manualid` int unsigned NOT NULL DEFAULT '0',"
2186 " `generic` tinyint(1) DEFAULT '0',"
2187 " `listingsource` int NOT NULL DEFAULT '0',"
2188 " `first` tinyint(1) NOT NULL DEFAULT '0',"
2189 " `last` tinyint(1) NOT NULL DEFAULT '0',"
2190 " `audioprop` set('STEREO','MONO','SURROUND','DOLBY','HARDHEAR','VISUALIMPAIR') NOT NULL,"
2191 " `subtitletypes` set('HARDHEAR','NORMAL','ONSCREEN','SIGNED') NOT NULL,"
2192 " `videoprop` set('WIDESCREEN','HDTV','MPEG2','AVC','HEVC','720','1080','4K','3DTV','PROGRESSIVE','DAMAGED') NOT NULL,"
2193 " `inetref` varchar(40) DEFAULT '',"
2194 " `season` int NOT NULL DEFAULT '0',"
2195 " `episode` int NOT NULL DEFAULT '0',"
2196 " `totalepisodes` int NOT NULL DEFAULT '0',"
2197 " PRIMARY KEY (`chanid`,`starttime`,`manualid`),"
2198 " KEY `endtime` (`endtime`),"
2199 " KEY `title` (`title`),"
2200 " KEY `title_pronounce` (`title_pronounce`),"
2201 " KEY `seriesid` (`seriesid`),"
2202 " KEY `programid` (`programid`),"
2203 " KEY `id_start_end` (`chanid`,`starttime`,`endtime`)"
2204 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2205 "CREATE TABLE `recordedrating` ("
2206 " `chanid` int unsigned NOT NULL DEFAULT '0',"
2207 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2208 " `system` varchar(128) DEFAULT NULL,"
2209 " `rating` varchar(128) DEFAULT NULL,"
2210 " UNIQUE KEY `chanid` (`chanid`,`starttime`,`system`,`rating`),"
2211 " KEY `starttime` (`starttime`,`system`)"
2212 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2213 "CREATE TABLE `recordedseek` ("
2214 " `chanid` int unsigned NOT NULL DEFAULT '0',"
2215 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2216 " `mark` mediumint unsigned NOT NULL DEFAULT '0',"
2217 " `offset` bigint unsigned NOT NULL,"
2218 " `type` tinyint NOT NULL DEFAULT '0',"
2219 " PRIMARY KEY (`chanid`,`starttime`,`type`,`mark`)"
2220 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2221 "CREATE TABLE `recordfilter` ("
2222 " `filterid` int unsigned NOT NULL,"
2223 " `description` varchar(64) DEFAULT NULL,"
2224 " `clause` varchar(256) DEFAULT NULL,"
2225 " `newruledefault` tinyint(1) DEFAULT '0',"
2226 " PRIMARY KEY (`filterid`)"
2227 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2228 "CREATE TABLE `recordingprofiles` ("
2229 " `id` int unsigned NOT NULL AUTO_INCREMENT,"
2230 " `name` varchar(128) DEFAULT NULL,"
2231 " `videocodec` varchar(128) DEFAULT NULL,"
2232 " `audiocodec` varchar(128) DEFAULT NULL,"
2233 " `profilegroup` int unsigned NOT NULL DEFAULT '0',"
2234 " PRIMARY KEY (`id`),"
2235 " KEY `profilegroup` (`profilegroup`)"
2236 ") ENGINE=MyISAM AUTO_INCREMENT=78 DEFAULT CHARSET=utf8;",
2237 "CREATE TABLE `recordmatch` ("
2238 " `recordid` int unsigned NOT NULL,"
2239 " `chanid` int unsigned NOT NULL,"
2240 " `starttime` datetime NOT NULL,"
2241 " `manualid` int unsigned NOT NULL,"
2242 " `oldrecduplicate` tinyint(1) DEFAULT NULL,"
2243 " `recduplicate` tinyint(1) DEFAULT NULL,"
2244 " `findduplicate` tinyint(1) DEFAULT NULL,"
2245 " `oldrecstatus` int DEFAULT NULL,"
2246 " `findid` int NOT NULL DEFAULT '0',"
2247 " UNIQUE KEY `recordid` (`recordid`,`chanid`,`starttime`),"
2248 " KEY `chanid` (`chanid`,`starttime`,`manualid`),"
2249 " KEY `recordid_2` (`recordid`,`findid`)"
2250 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2251 "CREATE TABLE `roles` ("
2252 " `roleid` mediumint unsigned NOT NULL AUTO_INCREMENT,"
2253 " `name` varchar(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
2254 " PRIMARY KEY (`roleid`),"
2255 " UNIQUE KEY `name` (`name`)"
2256 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2257 "CREATE TABLE `scannerfile` ("
2258 " `fileid` bigint unsigned NOT NULL AUTO_INCREMENT,"
2259 " `filesize` bigint unsigned NOT NULL DEFAULT '0',"
2260 " `filehash` varchar(64) NOT NULL DEFAULT '',"
2261 " `added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,"
2262 " PRIMARY KEY (`fileid`),"
2263 " UNIQUE KEY `filehash` (`filehash`)"
2264 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2265 "CREATE TABLE `scannerpath` ("
2266 " `fileid` bigint unsigned NOT NULL,"
2267 " `hostname` varchar(64) NOT NULL DEFAULT 'localhost',"
2268 " `storagegroup` varchar(32) NOT NULL DEFAULT 'Default',"
2269 " `filename` varchar(255) NOT NULL DEFAULT '',"
2270 " PRIMARY KEY (`fileid`)"
2271 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2272 "CREATE TABLE `settings` ("
2273 " `value` varchar(128) NOT NULL DEFAULT '',"
2274 " `data` varchar(16000) NOT NULL DEFAULT '',"
2275 " `hostname` varchar(64) DEFAULT NULL,"
2276 " KEY `value` (`value`,`hostname`)"
2277 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2278 "CREATE TABLE `sportsapi` ("
2279 " `id` int unsigned NOT NULL,"
2280 " `provider` tinyint unsigned DEFAULT '0',"
2281 " `name` varchar(128) NOT NULL,"
2282 " `key1` varchar(64) NOT NULL,"
2283 " `key2` varchar(64) NOT NULL,"
2284 " PRIMARY KEY (`id`),"
2285 " UNIQUE KEY `provider` (`provider`,`key1`(25),`key2`(50))"
2286 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2287 "CREATE TABLE `sportscleanup` ("
2288 " `id` int unsigned NOT NULL AUTO_INCREMENT,"
2289 " `provider` tinyint unsigned DEFAULT '0',"
2290 " `weight` int unsigned NOT NULL,"
2291 " `key1` varchar(256) NOT NULL,"
2292 " `name` varchar(256) NOT NULL,"
2293 " `pattern` varchar(256) NOT NULL,"
2294 " `nth` tinyint unsigned NOT NULL,"
2295 " `replacement` varchar(128) NOT NULL,"
2296 " PRIMARY KEY (`id`)"
2297 ") ENGINE=MyISAM AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;",
2298 "CREATE TABLE `sportslisting` ("
2299 " `id` int unsigned NOT NULL AUTO_INCREMENT,"
2300 " `api` int unsigned NOT NULL,"
2301 " `title` varchar(128) NOT NULL,"
2302 " PRIMARY KEY (`id`)"
2303 ") ENGINE=MyISAM AUTO_INCREMENT=96 DEFAULT CHARSET=utf8;",
2304 "CREATE TABLE `storagegroup` ("
2305 " `id` int NOT NULL AUTO_INCREMENT,"
2306 " `groupname` varchar(32) NOT NULL,"
2307 " `hostname` varchar(64) NOT NULL DEFAULT '',"
2308 " `dirname` varchar(235) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',"
2309 " PRIMARY KEY (`id`),"
2310 " UNIQUE KEY `grouphostdir` (`groupname`,`hostname`,`dirname`),"
2311 " KEY `hostname` (`hostname`)"
2312 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2313 "CREATE TABLE `tvchain` ("
2314 " `chanid` int unsigned NOT NULL DEFAULT '0',"
2315 " `starttime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2316 " `chainid` varchar(128) NOT NULL DEFAULT '',"
2317 " `chainpos` int NOT NULL DEFAULT '0',"
2318 " `discontinuity` tinyint(1) NOT NULL DEFAULT '0',"
2319 " `watching` int NOT NULL DEFAULT '0',"
2320 " `hostprefix` varchar(128) NOT NULL DEFAULT '',"
2321 " `cardtype` varchar(32) NOT NULL DEFAULT 'V4L',"
2322 " `input` varchar(32) NOT NULL DEFAULT '',"
2323 " `channame` varchar(32) NOT NULL DEFAULT '',"
2324 " `endtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2325 " PRIMARY KEY (`chanid`,`starttime`)"
2326 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2327 "CREATE TABLE `tvosdmenu` ("
2328 " `osdcategory` varchar(32) NOT NULL,"
2329 " `livetv` tinyint NOT NULL DEFAULT '0',"
2330 " `recorded` tinyint NOT NULL DEFAULT '0',"
2331 " `video` tinyint NOT NULL DEFAULT '0',"
2332 " `dvd` tinyint NOT NULL DEFAULT '0',"
2333 " `description` varchar(32) NOT NULL,"
2334 " PRIMARY KEY (`osdcategory`)"
2335 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2336 "CREATE TABLE `upnpmedia` ("
2337 " `intid` int unsigned NOT NULL DEFAULT '0',"
2338 " `class` varchar(64) NOT NULL DEFAULT '',"
2339 " `itemtype` varchar(128) NOT NULL DEFAULT '',"
2340 " `parentid` int unsigned NOT NULL DEFAULT '0',"
2341 " `itemproperties` varchar(255) NOT NULL DEFAULT '',"
2342 " `filepath` varchar(512) NOT NULL DEFAULT '',"
2343 " `title` varchar(255) NOT NULL DEFAULT '',"
2344 " `filename` varchar(512) NOT NULL DEFAULT '',"
2345 " `coverart` varchar(512) NOT NULL DEFAULT '',"
2346 " PRIMARY KEY (`intid`),"
2347 " KEY `class` (`class`),"
2348 " KEY `filepath` (`filepath`(333)),"
2349 " KEY `parentid` (`parentid`)"
2350 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2351 "CREATE TABLE `user_permissions` ("
2352 " `userid` int unsigned NOT NULL,"
2353 " `permission` varchar(128) NOT NULL DEFAULT '',"
2354 " PRIMARY KEY (`userid`)"
2355 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2356 "CREATE TABLE `user_sessions` ("
2357 " `sessiontoken` varchar(40) NOT NULL DEFAULT '',"
2358 " `userid` int unsigned NOT NULL,"
2359 " `client` varchar(128) NOT NULL,"
2360 " `created` datetime NOT NULL,"
2361 " `lastactive` datetime NOT NULL,"
2362 " `expires` datetime NOT NULL,"
2363 " PRIMARY KEY (`sessiontoken`),"
2364 " UNIQUE KEY `userid_client` (`userid`,`client`)"
2365 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2366 "CREATE TABLE `users` ("
2367 " `userid` int unsigned NOT NULL AUTO_INCREMENT,"
2368 " `username` varchar(128) NOT NULL DEFAULT '',"
2369 " `password_digest` varchar(32) NOT NULL DEFAULT '',"
2370 " `lastlogin` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',"
2371 " PRIMARY KEY (`userid`),"
2372 " KEY `username` (`username`)"
2373 ") ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;",
2374 "CREATE TABLE `videocast` ("
2375 " `intid` int unsigned NOT NULL AUTO_INCREMENT,"
2376 " `cast` varchar(128) NOT NULL,"
2377 " PRIMARY KEY (`intid`)"
2378 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2379 "CREATE TABLE `videocategory` ("
2380 " `intid` int unsigned NOT NULL AUTO_INCREMENT,"
2381 " `category` varchar(128) NOT NULL,"
2382 " PRIMARY KEY (`intid`)"
2383 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2384 "CREATE TABLE `videocollection` ("
2385 " `intid` int unsigned NOT NULL AUTO_INCREMENT,"
2386 " `title` varchar(256) NOT NULL,"
2387 " `contenttype` set('MOVIE','TELEVISION','ADULT','MUSICVIDEO','HOMEVIDEO') NOT NULL DEFAULT '',"
2388 " `plot` text,"
2389 " `network` varchar(128) DEFAULT NULL,"
2390 " `collectionref` varchar(128) NOT NULL,"
2391 " `certification` varchar(128) DEFAULT NULL,"
2392 " `genre` varchar(128) DEFAULT '',"
2393 " `releasedate` date DEFAULT NULL,"
2394 " `language` varchar(10) DEFAULT NULL,"
2395 " `status` varchar(64) DEFAULT NULL,"
2396 " `rating` float DEFAULT '0',"
2397 " `ratingcount` int DEFAULT '0',"
2398 " `runtime` smallint unsigned DEFAULT '0',"
2399 " `banner` text,"
2400 " `fanart` text,"
2401 " `coverart` text,"
2402 " PRIMARY KEY (`intid`),"
2403 " KEY `title` (`title`)"
2404 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2405 "CREATE TABLE `videocountry` ("
2406 " `intid` int unsigned NOT NULL AUTO_INCREMENT,"
2407 " `country` varchar(128) NOT NULL,"
2408 " PRIMARY KEY (`intid`)"
2409 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2410 "CREATE TABLE `videogenre` ("
2411 " `intid` int unsigned NOT NULL AUTO_INCREMENT,"
2412 " `genre` varchar(128) NOT NULL,"
2413 " PRIMARY KEY (`intid`)"
2414 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2415 "CREATE TABLE `videometadata` ("
2416 " `intid` int unsigned NOT NULL AUTO_INCREMENT,"
2417 " `title` varchar(128) NOT NULL,"
2418 " `subtitle` text NOT NULL,"
2419 " `tagline` varchar(255) DEFAULT NULL,"
2420 " `director` varchar(128) NOT NULL,"
2421 " `studio` varchar(128) DEFAULT NULL,"
2422 " `plot` text,"
2423 " `rating` varchar(128) NOT NULL,"
2424 " `inetref` varchar(255) NOT NULL,"
2425 " `collectionref` int NOT NULL DEFAULT '-1',"
2426 " `homepage` text NOT NULL,"
2427 " `year` int unsigned NOT NULL,"
2428 " `releasedate` date NOT NULL,"
2429 " `userrating` float NOT NULL,"
2430 " `length` int unsigned NOT NULL,"
2431 " `playcount` int NOT NULL DEFAULT '0',"
2432 " `season` smallint unsigned NOT NULL DEFAULT '0',"
2433 " `episode` smallint unsigned NOT NULL DEFAULT '0',"
2434 " `showlevel` int unsigned NOT NULL,"
2435 " `filename` text NOT NULL,"
2436 " `hash` varchar(128) NOT NULL,"
2437 " `coverfile` text NOT NULL,"
2438 " `childid` int NOT NULL DEFAULT '-1',"
2439 " `browse` tinyint(1) NOT NULL DEFAULT '1',"
2440 " `watched` tinyint(1) NOT NULL DEFAULT '0',"
2441 " `processed` tinyint(1) NOT NULL DEFAULT '0',"
2442 " `playcommand` varchar(255) DEFAULT NULL,"
2443 " `category` int unsigned NOT NULL DEFAULT '0',"
2444 " `trailer` text,"
2445 " `host` text NOT NULL,"
2446 " `screenshot` text,"
2447 " `banner` text,"
2448 " `fanart` text,"
2449 " `insertdate` timestamp NULL DEFAULT CURRENT_TIMESTAMP,"
2450 " `contenttype` set('MOVIE','TELEVISION','ADULT','MUSICVIDEO','HOMEVIDEO') NOT NULL DEFAULT '',"
2451 " PRIMARY KEY (`intid`),"
2452 " KEY `director` (`director`),"
2453 " KEY `title` (`title`)"
2454 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2455 "CREATE TABLE `videometadatacast` ("
2456 " `idvideo` int unsigned NOT NULL,"
2457 " `idcast` int unsigned NOT NULL,"
2458 " UNIQUE KEY `idvideo` (`idvideo`,`idcast`)"
2459 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2460 "CREATE TABLE `videometadatacountry` ("
2461 " `idvideo` int unsigned NOT NULL,"
2462 " `idcountry` int unsigned NOT NULL,"
2463 " UNIQUE KEY `idvideo_2` (`idvideo`,`idcountry`),"
2464 " KEY `idvideo` (`idvideo`),"
2465 " KEY `idcountry` (`idcountry`)"
2466 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2467 "CREATE TABLE `videometadatagenre` ("
2468 " `idvideo` int unsigned NOT NULL,"
2469 " `idgenre` int unsigned NOT NULL,"
2470 " UNIQUE KEY `idvideo_2` (`idvideo`,`idgenre`),"
2471 " KEY `idvideo` (`idvideo`),"
2472 " KEY `idgenre` (`idgenre`)"
2473 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2474 "CREATE TABLE `videopart` ("
2475 " `fileid` bigint unsigned NOT NULL,"
2476 " `videoid` int unsigned NOT NULL,"
2477 " `order` smallint unsigned NOT NULL DEFAULT '1',"
2478 " PRIMARY KEY (`videoid`,`order`)"
2479 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2480 "CREATE TABLE `videopathinfo` ("
2481 " `intid` int unsigned NOT NULL AUTO_INCREMENT,"
2482 " `path` text,"
2483 " `contenttype` set('MOVIE','TELEVISION','ADULT','MUSICVIDEO','HOMEVIDEO') NOT NULL DEFAULT '',"
2484 " `collectionref` int DEFAULT '0',"
2485 " `recurse` tinyint(1) DEFAULT '0',"
2486 " PRIMARY KEY (`intid`)"
2487 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2488 "CREATE TABLE `videosource` ("
2489 " `sourceid` int unsigned NOT NULL AUTO_INCREMENT,"
2490 " `name` varchar(128) NOT NULL DEFAULT '',"
2491 " `xmltvgrabber` varchar(128) DEFAULT NULL,"
2492 " `userid` varchar(128) DEFAULT NULL,"
2493 " `freqtable` varchar(16) NOT NULL DEFAULT 'default',"
2494 " `lineupid` varchar(64) DEFAULT NULL,"
2495 " `password` varchar(64) DEFAULT NULL,"
2496 " `useeit` smallint NOT NULL DEFAULT '0',"
2497 " `configpath` varchar(4096) DEFAULT NULL,"
2498 " `dvb_nit_id` int DEFAULT '-1',"
2499 " `bouquet_id` int unsigned DEFAULT NULL,"
2500 " `region_id` int unsigned DEFAULT NULL,"
2501 " `scanfrequency` int unsigned DEFAULT '0',"
2502 " `lcnoffset` int unsigned DEFAULT '0',"
2503 " PRIMARY KEY (`sourceid`),"
2504 " UNIQUE KEY `name` (`name`)"
2505 ") ENGINE=MyISAM DEFAULT CHARSET=utf8;",
2506 "CREATE TABLE `videotypes` ("
2507 " `intid` int unsigned NOT NULL AUTO_INCREMENT,"
2508 " `extension` varchar(128) NOT NULL,"
2509 " `playcommand` varchar(255) NOT NULL,"
2510 " `f_ignore` tinyint(1) DEFAULT NULL,"
2511 " `use_default` tinyint(1) DEFAULT NULL,"
2512 " PRIMARY KEY (`intid`)"
2513 ") ENGINE=MyISAM AUTO_INCREMENT=33 DEFAULT CHARSET=utf8;",
2514 
2515 "INSERT INTO `channelgroupnames` VALUES (1,'Favorites');",
2516 "INSERT INTO `customexample` VALUES ('New Flix','','program.category_type = \\'movie\\' AND program.airdate >= \\n YEAR(DATE_SUB(NOW(), INTERVAL 1 YEAR)) \\nAND program.stars > 0.5 ',1);",
2517 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',9018,'channel_numbers','131');",
2518 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',9018,'guide_fixup','2');",
2519 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',256,'guide_fixup','1');",
2520 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',257,'guide_fixup','1');",
2521 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',256,'tv_types','1,150,134,133');",
2522 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',257,'tv_types','1,150,134,133');",
2523 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4100,'sdt_mapping','1');",
2524 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4101,'sdt_mapping','1');",
2525 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4102,'sdt_mapping','1');",
2526 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4103,'sdt_mapping','1');",
2527 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4104,'sdt_mapping','1');",
2528 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4105,'sdt_mapping','1');",
2529 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4106,'sdt_mapping','1');",
2530 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4107,'sdt_mapping','1');",
2531 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4097,'sdt_mapping','1');",
2532 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4098,'sdt_mapping','1');",
2533 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4100,'tv_types','1,145,154');",
2534 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4101,'tv_types','1,145,154');",
2535 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4102,'tv_types','1,145,154');",
2536 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4103,'tv_types','1,145,154');",
2537 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4104,'tv_types','1,145,154');",
2538 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4105,'tv_types','1,145,154');",
2539 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4106,'tv_types','1,145,154');",
2540 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4107,'tv_types','1,145,154');",
2541 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4097,'tv_types','1,145,154');",
2542 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4098,'tv_types','1,145,154');",
2543 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4100,'guide_fixup','1');",
2544 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4101,'guide_fixup','1');",
2545 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4102,'guide_fixup','1');",
2546 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4103,'guide_fixup','1');",
2547 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4104,'guide_fixup','1');",
2548 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4105,'guide_fixup','1');",
2549 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4106,'guide_fixup','1');",
2550 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4107,'guide_fixup','1');",
2551 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4096,'guide_fixup','5');",
2552 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4097,'guide_fixup','1');",
2553 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4098,'guide_fixup','1');",
2554 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',94,'tv_types','1,128');",
2555 "INSERT INTO `dtv_privatetypes` VALUES ('atsc',1793,'guide_fixup','3');",
2556 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',40999,'guide_fixup','4');",
2557 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',70,'force_guide_present','yes');",
2558 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',70,'guide_ranges','80,80,96,96');",
2559 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4112,'channel_numbers','131');",
2560 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4115,'channel_numbers','131');",
2561 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4116,'channel_numbers','131');",
2562 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',12802,'channel_numbers','131');",
2563 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',12803,'channel_numbers','131');",
2564 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',12829,'channel_numbers','131');",
2565 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',40999,'parse_subtitle_list','1070,1308,1041,1306,1307,1030,1016,1131,1068,1069');",
2566 "INSERT INTO `dtv_privatetypes` VALUES ('dvb',4096,'guide_fixup','5');",
2567 "INSERT INTO `dvdinput` VALUES (1,720,480,16,9,1,1,'ntsc');",
2568 "INSERT INTO `dvdinput` VALUES (2,720,480,16,9,1,0,'ntsc');",
2569 "INSERT INTO `dvdinput` VALUES (3,720,480,4,3,1,1,'ntsc');",
2570 "INSERT INTO `dvdinput` VALUES (4,720,480,4,3,1,0,'ntsc');",
2571 "INSERT INTO `dvdinput` VALUES (5,720,576,16,9,3,1,'pal');",
2572 "INSERT INTO `dvdinput` VALUES (6,720,576,16,9,3,0,'pal');",
2573 "INSERT INTO `dvdinput` VALUES (7,720,576,4,3,3,1,'pal');",
2574 "INSERT INTO `dvdinput` VALUES (8,720,576,4,3,3,0,'pal');",
2575 "INSERT INTO `dvdtranscode` VALUES (1,1,'Good',2,1,16,16,0,0,2,0,0,0,0,0,32,32,8,8,'divx5',NULL,1618,NULL,NULL,0,NULL);",
2576 "INSERT INTO `dvdtranscode` VALUES (2,2,'Excellent',2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'divx5',NULL,0,NULL,NULL,1,NULL);",
2577 "INSERT INTO `dvdtranscode` VALUES (3,2,'Good',2,1,0,0,8,8,0,0,0,0,0,0,0,0,0,0,'divx5',NULL,1618,NULL,NULL,0,NULL);",
2578 "INSERT INTO `dvdtranscode` VALUES (4,2,'Medium',2,1,0,0,8,8,5,5,0,0,0,0,0,0,0,0,'divx5',NULL,1200,NULL,NULL,0,NULL);",
2579 "INSERT INTO `dvdtranscode` VALUES (5,3,'Good',2,1,0,0,0,0,0,0,0,0,2,0,80,80,8,8,'divx5',NULL,0,NULL,NULL,0,NULL);",
2580 "INSERT INTO `dvdtranscode` VALUES (6,4,'Excellent',2,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,'divx5',NULL,0,NULL,NULL,1,NULL);",
2581 "INSERT INTO `dvdtranscode` VALUES (7,4,'Good',2,1,0,0,8,8,0,2,0,0,0,0,0,0,0,0,'divx5',NULL,1618,NULL,NULL,0,NULL);",
2582 "INSERT INTO `dvdtranscode` VALUES (8,5,'Good',1,1,16,16,0,0,5,0,0,0,0,0,40,40,8,8,'divx5',NULL,1618,NULL,NULL,0,NULL);",
2583 "INSERT INTO `dvdtranscode` VALUES (9,6,'Good',1,1,0,0,16,16,5,0,0,0,0,0,0,0,0,0,'divx5',NULL,1618,NULL,NULL,0,NULL);",
2584 "INSERT INTO `dvdtranscode` VALUES (10,7,'Good',1,1,0,0,0,0,1,0,0,0,0,0,76,76,8,8,'divx5',NULL,1618,NULL,NULL,0,NULL);",
2585 "INSERT INTO `dvdtranscode` VALUES (11,8,'Good',1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,'divx5',NULL,1618,NULL,NULL,0,NULL);",
2586 "INSERT INTO `playgroup` VALUES ('Default','',30,5,100,0);",
2587 "INSERT INTO `profilegroups` VALUES (1,'Software Encoders (v4l based)','V4L',1,NULL);",
2588 "INSERT INTO `profilegroups` VALUES (2,'IVTV MPEG-2 Encoders','MPEG',1,NULL);",
2589 "INSERT INTO `profilegroups` VALUES (3,'Hardware MJPEG Encoders (Matrox G200-TV, Miro DC10, etc)','MJPEG',1,NULL);",
2590 "INSERT INTO `profilegroups` VALUES (4,'Hardware HDTV','HDTV',1,NULL);",
2591 "INSERT INTO `profilegroups` VALUES (5,'Hardware DVB Encoders','DVB',1,NULL);",
2592 "INSERT INTO `profilegroups` VALUES (6,'Transcoders','TRANSCODE',1,NULL);",
2593 "INSERT INTO `profilegroups` VALUES (7,'FireWire Input','FIREWIRE',1,NULL);",
2594 "INSERT INTO `profilegroups` VALUES (8,'USB Mpeg-4 Encoder (Plextor ConvertX, etc)','GO7007',1,NULL);",
2595 "INSERT INTO `profilegroups` VALUES (14,'Import Recorder','IMPORT',1,NULL);",
2596 "INSERT INTO `profilegroups` VALUES (10,'Freebox Input','FREEBOX',1,NULL);",
2597 "INSERT INTO `profilegroups` VALUES (11,'HDHomeRun Recorders','HDHOMERUN',1,NULL);",
2598 "INSERT INTO `profilegroups` VALUES (12,'CRC IP Recorders','CRC_IP',1,NULL);",
2599 "INSERT INTO `profilegroups` VALUES (13,'HD-PVR Recorders','HDPVR',1,NULL);",
2600 "INSERT INTO `profilegroups` VALUES (15,'ASI Recorder (DVEO)','ASI',1,NULL);",
2601 "INSERT INTO `profilegroups` VALUES (16,'OCUR Recorder (CableLabs)','OCUR',1,NULL);",
2602 "INSERT INTO `profilegroups` VALUES (17,'Ceton Recorder','CETON',1,NULL);",
2603 "INSERT INTO `profilegroups` VALUES (18,'VBox Recorder','VBOX',1,NULL);",
2604 "INSERT INTO `profilegroups` VALUES (19,'Sat>IP Recorder','SATIP',1,NULL);",
2605 "INSERT INTO `recgroups` VALUES (1,'Default','','',1);",
2606 "INSERT INTO `recgroups` VALUES (2,'LiveTV','','',1);",
2607 "INSERT INTO `recgroups` VALUES (3,'Deleted','','',1);",
2608 "INSERT INTO `record` VALUES (1,11,0,'21:57:44','2012-08-11','21:57:44','2012-08-11','Default (Template)','','',0,0,'Default','Default',0,0,0,0,0,0,'Default',6,15,'','','','',0,0,1,0,0,0,0,1,-1,'00:00:00',735091,0,0,0,'Default',0,NULL,NULL,NULL,'Default',100,0,1,0);",
2609 "INSERT INTO `recordfilter` VALUES (0,'New episode','program.previouslyshown = 0',0);",
2610 "INSERT INTO `recordfilter` VALUES (1,'Identifiable episode','program.generic = 0',0);",
2611 "INSERT INTO `recordfilter` VALUES (2,'First showing','program.first > 0',0);",
2612 "INSERT INTO `recordfilter` VALUES (3,'Prime time','HOUR(CONVERT_TZ(program.starttime, \\'Etc/UTC\\', \\'SYSTEM\\')) >= 19 AND HOUR(CONVERT_TZ(program.starttime, \\'Etc/UTC\\', \\'SYSTEM\\')) < 22',0);",
2613 "INSERT INTO `recordfilter` VALUES (4,'Commercial free','channel.commmethod = -2',0);",
2614 "INSERT INTO `recordfilter` VALUES (5,'High definition','program.hdtv > 0',0);",
2615 "INSERT INTO `recordfilter` VALUES (6,'This episode','(RECTABLE.programid <> \\'\\' AND program.programid = RECTABLE.programid) OR (RECTABLE.programid = \\'\\' AND program.subtitle = RECTABLE.subtitle AND program.description = RECTABLE.description)',0);",
2616 "INSERT INTO `recordfilter` VALUES (7,'This series','(RECTABLE.seriesid <> \\'\\' AND program.seriesid = RECTABLE.seriesid)',0);",
2617 "INSERT INTO `recordfilter` VALUES (8,'This time','ABS(TIMESTAMPDIFF(MINUTE, CONVERT_TZ( ADDTIME(RECTABLE.startdate, RECTABLE.starttime), \\'Etc/UTC\\', \\'SYSTEM\\'), CONVERT_TZ(program.starttime, \\'Etc/UTC\\', \\'SYSTEM\\'))) MOD 1440 NOT BETWEEN 11 AND 1429',0);",
2618 "INSERT INTO `recordfilter` VALUES (9,'This day and time','ABS(TIMESTAMPDIFF(MINUTE, CONVERT_TZ( ADDTIME(RECTABLE.startdate, RECTABLE.starttime), \\'Etc/UTC\\', \\'SYSTEM\\'), CONVERT_TZ(program.starttime, \\'Etc/UTC\\', \\'SYSTEM\\'))) MOD 10080 NOT BETWEEN 11 AND 10069',0);",
2619 "INSERT INTO `recordfilter` VALUES (10,'This channel','channel.callsign = RECTABLE.station',0);",
2620 "INSERT INTO `recordfilter` VALUES (11,'No episodes','program.category_type <> \\'series\\'',0);",
2621 "INSERT INTO `recordfilter` VALUES (12,'Priority channel','channel.recpriority > 0',0);",
2622 "INSERT INTO `recordingprofiles` VALUES (1,'Default',NULL,NULL,1);",
2623 "INSERT INTO `recordingprofiles` VALUES (2,'Live TV',NULL,NULL,1);",
2624 "INSERT INTO `recordingprofiles` VALUES (3,'High Quality',NULL,NULL,1);",
2625 "INSERT INTO `recordingprofiles` VALUES (4,'Low Quality',NULL,NULL,1);",
2626 "INSERT INTO `recordingprofiles` VALUES (5,'Default',NULL,NULL,2);",
2627 "INSERT INTO `recordingprofiles` VALUES (6,'Live TV',NULL,NULL,2);",
2628 "INSERT INTO `recordingprofiles` VALUES (7,'High Quality',NULL,NULL,2);",
2629 "INSERT INTO `recordingprofiles` VALUES (8,'Low Quality',NULL,NULL,2);",
2630 "INSERT INTO `recordingprofiles` VALUES (9,'Default',NULL,NULL,3);",
2631 "INSERT INTO `recordingprofiles` VALUES (10,'Live TV',NULL,NULL,3);",
2632 "INSERT INTO `recordingprofiles` VALUES (11,'High Quality',NULL,NULL,3);",
2633 "INSERT INTO `recordingprofiles` VALUES (12,'Low Quality',NULL,NULL,3);",
2634 "INSERT INTO `recordingprofiles` VALUES (13,'Default',NULL,NULL,4);",
2635 "INSERT INTO `recordingprofiles` VALUES (14,'Live TV',NULL,NULL,4);",
2636 "INSERT INTO `recordingprofiles` VALUES (15,'High Quality',NULL,NULL,4);",
2637 "INSERT INTO `recordingprofiles` VALUES (16,'Low Quality',NULL,NULL,4);",
2638 "INSERT INTO `recordingprofiles` VALUES (17,'Default',NULL,NULL,5);",
2639 "INSERT INTO `recordingprofiles` VALUES (18,'Live TV',NULL,NULL,5);",
2640 "INSERT INTO `recordingprofiles` VALUES (19,'High Quality',NULL,NULL,5);",
2641 "INSERT INTO `recordingprofiles` VALUES (20,'Low Quality',NULL,NULL,5);",
2642 "INSERT INTO `recordingprofiles` VALUES (21,'RTjpeg/MPEG4',NULL,NULL,6);",
2643 "INSERT INTO `recordingprofiles` VALUES (22,'MPEG2',NULL,NULL,6);",
2644 "INSERT INTO `recordingprofiles` VALUES (23,'Default',NULL,NULL,8);",
2645 "INSERT INTO `recordingprofiles` VALUES (24,'Live TV',NULL,NULL,8);",
2646 "INSERT INTO `recordingprofiles` VALUES (25,'High Quality',NULL,NULL,8);",
2647 "INSERT INTO `recordingprofiles` VALUES (26,'Low Quality',NULL,NULL,8);",
2648 "INSERT INTO `recordingprofiles` VALUES (27,'High Quality',NULL,NULL,6);",
2649 "INSERT INTO `recordingprofiles` VALUES (28,'Medium Quality',NULL,NULL,6);",
2650 "INSERT INTO `recordingprofiles` VALUES (29,'Low Quality',NULL,NULL,6);",
2651 "INSERT INTO `recordingprofiles` VALUES (30,'Default',NULL,NULL,10);",
2652 "INSERT INTO `recordingprofiles` VALUES (31,'Live TV',NULL,NULL,10);",
2653 "INSERT INTO `recordingprofiles` VALUES (32,'High Quality',NULL,NULL,10);",
2654 "INSERT INTO `recordingprofiles` VALUES (33,'Low Quality',NULL,NULL,10);",
2655 "INSERT INTO `recordingprofiles` VALUES (34,'Default',NULL,NULL,11);",
2656 "INSERT INTO `recordingprofiles` VALUES (35,'Live TV',NULL,NULL,11);",
2657 "INSERT INTO `recordingprofiles` VALUES (36,'High Quality',NULL,NULL,11);",
2658 "INSERT INTO `recordingprofiles` VALUES (37,'Low Quality',NULL,NULL,11);",
2659 "INSERT INTO `recordingprofiles` VALUES (38,'Default',NULL,NULL,12);",
2660 "INSERT INTO `recordingprofiles` VALUES (39,'Live TV',NULL,NULL,12);",
2661 "INSERT INTO `recordingprofiles` VALUES (40,'High Quality',NULL,NULL,12);",
2662 "INSERT INTO `recordingprofiles` VALUES (41,'Low Quality',NULL,NULL,12);",
2663 "INSERT INTO `recordingprofiles` VALUES (42,'Default',NULL,NULL,7);",
2664 "INSERT INTO `recordingprofiles` VALUES (43,'Live TV',NULL,NULL,7);",
2665 "INSERT INTO `recordingprofiles` VALUES (44,'High Quality',NULL,NULL,7);",
2666 "INSERT INTO `recordingprofiles` VALUES (45,'Low Quality',NULL,NULL,7);",
2667 "INSERT INTO `recordingprofiles` VALUES (46,'Default',NULL,NULL,9);",
2668 "INSERT INTO `recordingprofiles` VALUES (47,'Live TV',NULL,NULL,9);",
2669 "INSERT INTO `recordingprofiles` VALUES (48,'High Quality',NULL,NULL,9);",
2670 "INSERT INTO `recordingprofiles` VALUES (49,'Low Quality',NULL,NULL,9);",
2671 "INSERT INTO `recordingprofiles` VALUES (50,'Default',NULL,NULL,13);",
2672 "INSERT INTO `recordingprofiles` VALUES (51,'Live TV',NULL,NULL,13);",
2673 "INSERT INTO `recordingprofiles` VALUES (52,'High Quality',NULL,NULL,13);",
2674 "INSERT INTO `recordingprofiles` VALUES (53,'Low Quality',NULL,NULL,13);",
2675 "INSERT INTO `recordingprofiles` VALUES (54,'Default',NULL,NULL,14);",
2676 "INSERT INTO `recordingprofiles` VALUES (55,'Live TV',NULL,NULL,14);",
2677 "INSERT INTO `recordingprofiles` VALUES (56,'High Quality',NULL,NULL,14);",
2678 "INSERT INTO `recordingprofiles` VALUES (57,'Low Quality',NULL,NULL,14);",
2679 "INSERT INTO `recordingprofiles` VALUES (58,'Default',NULL,NULL,15);",
2680 "INSERT INTO `recordingprofiles` VALUES (59,'Live TV',NULL,NULL,15);",
2681 "INSERT INTO `recordingprofiles` VALUES (60,'High Quality',NULL,NULL,15);",
2682 "INSERT INTO `recordingprofiles` VALUES (61,'Low Quality',NULL,NULL,15);",
2683 "INSERT INTO `recordingprofiles` VALUES (62,'Default',NULL,NULL,16);",
2684 "INSERT INTO `recordingprofiles` VALUES (63,'Live TV',NULL,NULL,16);",
2685 "INSERT INTO `recordingprofiles` VALUES (64,'High Quality',NULL,NULL,16);",
2686 "INSERT INTO `recordingprofiles` VALUES (65,'Low Quality',NULL,NULL,16);",
2687 "INSERT INTO `recordingprofiles` VALUES (66,'Default',NULL,NULL,17);",
2688 "INSERT INTO `recordingprofiles` VALUES (67,'Live TV',NULL,NULL,17);",
2689 "INSERT INTO `recordingprofiles` VALUES (68,'High Quality',NULL,NULL,17);",
2690 "INSERT INTO `recordingprofiles` VALUES (69,'Low Quality',NULL,NULL,17);",
2691 "INSERT INTO `recordingprofiles` VALUES (70,'Default',NULL,NULL,18);",
2692 "INSERT INTO `recordingprofiles` VALUES (71,'Live TV',NULL,NULL,18);",
2693 "INSERT INTO `recordingprofiles` VALUES (72,'High Quality',NULL,NULL,18);",
2694 "INSERT INTO `recordingprofiles` VALUES (73,'Low Quality',NULL,NULL,18);",
2695 "INSERT INTO `recordingprofiles` VALUES (74,'Default',NULL,NULL,19);",
2696 "INSERT INTO `recordingprofiles` VALUES (75,'Live TV',NULL,NULL,19);",
2697 "INSERT INTO `recordingprofiles` VALUES (76,'High Quality',NULL,NULL,19);",
2698 "INSERT INTO `recordingprofiles` VALUES (77,'Low Quality',NULL,NULL,19);",
2699 "INSERT INTO `settings` VALUES ('mythfilldatabaseLastRunStart','',NULL);",
2700 "INSERT INTO `settings` VALUES ('mythfilldatabaseLastRunEnd','',NULL);",
2701 "INSERT INTO `settings` VALUES ('mythfilldatabaseLastRunStatus','',NULL);",
2702 "INSERT INTO `settings` VALUES ('DataDirectMessage','',NULL);",
2703 "INSERT INTO `settings` VALUES ('HaveRepeats','0',NULL);",
2704 "INSERT INTO `settings` VALUES ('DBSchemaVer','1382',NULL);",
2705 "INSERT INTO `settings` VALUES ('HardwareProfileEnabled','0',NULL);",
2706 "INSERT INTO `settings` VALUES ('ImageStorageGroupName','Images',NULL);",
2707 "INSERT INTO `settings` VALUES ('ImageSortOrder','0',NULL);",
2708 "INSERT INTO `settings` VALUES ('ImageShowHiddenFiles','0',NULL);",
2709 "INSERT INTO `settings` VALUES ('ImageSlideShowTime','3500',NULL);",
2710 "INSERT INTO `settings` VALUES ('ImageTransitionType','1',NULL);",
2711 "INSERT INTO `settings` VALUES ('ImageTransitionTime','1000',NULL);",
2712 "INSERT INTO `sportsapi` VALUES (1,1,'Major League Baseball','baseball','mlb');",
2713 "INSERT INTO `sportsapi` VALUES (2,1,'NCAA Men\\'s Baseball','baseball','college-baseball');",
2714 "INSERT INTO `sportsapi` VALUES (3,1,'NCAA Women\\'s Softball','baseball','college-softball');",
2715 "INSERT INTO `sportsapi` VALUES (4,1,'Olympic Men\\'s Baseball','baseball','olympics-baseball');",
2716 "INSERT INTO `sportsapi` VALUES (5,1,'World Baseball Classic','baseball','world-baseball-classic');",
2717 "INSERT INTO `sportsapi` VALUES (6,1,'Little League Baseball','baseball','llb');",
2718 "INSERT INTO `sportsapi` VALUES (7,1,'Caribbean Series','baseball','caribbean-series');",
2719 "INSERT INTO `sportsapi` VALUES (8,1,'Dominican Winter League','baseball','dominican-winter-league');",
2720 "INSERT INTO `sportsapi` VALUES (9,1,'Venezuelan Winter League','baseball','venezuelan-winter-league');",
2721 "INSERT INTO `sportsapi` VALUES (10,1,'Mexican League','baseball','mexican-winter-league');",
2722 "INSERT INTO `sportsapi` VALUES (11,1,'Puerto Rican Winter League','baseball','puerto-rican-winter-league');",
2723 "INSERT INTO `sportsapi` VALUES (20,1,'National Football League','football','nfl');",
2724 "INSERT INTO `sportsapi` VALUES (21,1,'NCAA - Football','football','college-football');",
2725 "INSERT INTO `sportsapi` VALUES (22,1,'XFL','football','xfl');",
2726 "INSERT INTO `sportsapi` VALUES (23,1,'Canadian Football League','football','cfl');",
2727 "INSERT INTO `sportsapi` VALUES (40,1,'National Basketball Association','basketball','nba');",
2728 "INSERT INTO `sportsapi` VALUES (41,1,'Women\\'s National Basketball Association','basketball','wnba');",
2729 "INSERT INTO `sportsapi` VALUES (42,1,'NCAA Men\\'s Basketball','basketball','mens-college-basketball');",
2730 "INSERT INTO `sportsapi` VALUES (43,1,'NCAA Women\\'s Basketball','basketball','womens-college-basketball');",
2731 "INSERT INTO `sportsapi` VALUES (44,1,'Olympics Men\\'s Basketball','basketball','mens-olympic-basketball');",
2732 "INSERT INTO `sportsapi` VALUES (45,1,'Olympics Women\\'s Basketball','basketball','womens-olympic-basketball');",
2733 "INSERT INTO `sportsapi` VALUES (46,1,'National Basketball Association Summer League Las Vegas','basketball','nba-summer-las-vegas');",
2734 "INSERT INTO `sportsapi` VALUES (47,1,'National Basketball Association Summer League Utah','basketball','nba-summer-utah');",
2735 "INSERT INTO `sportsapi` VALUES (48,1,'National Basketball Association Summer League Orlando','basketball','nba-summer-orlando');",
2736 "INSERT INTO `sportsapi` VALUES (49,1,'National Basketball Association Summer League Sacramento','basketball','nba-summer-sacramento');",
2737 "INSERT INTO `sportsapi` VALUES (50,1,'NBA G League','basketball','nba-development');",
2738 "INSERT INTO `sportsapi` VALUES (51,1,'International Basketball Federation','basketball','fiba');",
2739 "INSERT INTO `sportsapi` VALUES (60,1,'National Hockey League','hockey','nfl');",
2740 "INSERT INTO `sportsapi` VALUES (61,1,'NCAA Men\\'s Ice Hockey','hockey','mens-college-hockey');",
2741 "INSERT INTO `sportsapi` VALUES (62,1,'NCAA Women\\'s Hockey','hockey','womens-college-hockey');",
2742 "INSERT INTO `sportsapi` VALUES (63,1,'World Cup of Hockey','hockey','hockey-world-cup');",
2743 "INSERT INTO `sportsapi` VALUES (64,1,'Men\\'s Olympic Ice Hockey','hockey','mens-olympic-hockey');",
2744 "INSERT INTO `sportsapi` VALUES (65,1,'Women\\'s Olympic Ice Hockey','hockey','womens-olympic-hockey');",
2745 "INSERT INTO `sportsapi` VALUES (66,1,'NCAA Women\\'s Field Hockey','field-hockey','womens-college-field-hockey');",
2746 "INSERT INTO `sportsapi` VALUES (80,1,'NCAA Men\\'s Volleyball','volleyball','mens-college-volleyball');",
2747 "INSERT INTO `sportsapi` VALUES (81,1,'NCAA Women\\'s Volleyball','volleyball','womens-college-volleyball');",
2748 "INSERT INTO `sportsapi` VALUES (100,1,'NCAA Men\\'s Lacrosse','lacrosse','mens-college-lacrosse');",
2749 "INSERT INTO `sportsapi` VALUES (101,1,'NCAA Women\\'s Lacrosse','lacrosse','womens-college-lacrosse');",
2750 "INSERT INTO `sportsapi` VALUES (120,1,'NCAA Men\\'s Water Polo','water-polo','mens-college-water-polo');",
2751 "INSERT INTO `sportsapi` VALUES (121,1,'NCAA Women\\'s Water Polo','water-polo','womens-college-water-polo');",
2752 "INSERT INTO `sportsapi` VALUES (200,1,'NCAA Men\\'s Soccer','soccer','usa.ncaa.m.1');",
2753 "INSERT INTO `sportsapi` VALUES (201,1,'NCAA Women\\'s Soccer','soccer','usa.ncaa.w.1');",
2754 "INSERT INTO `sportsapi` VALUES (202,1,'Major League Soccer','soccer','usa.1');",
2755 "INSERT INTO `sportsapi` VALUES (203,1,'English Premier League','soccer','eng.1');",
2756 "INSERT INTO `sportsapi` VALUES (204,1,'English League Championship','soccer','eng.2');",
2757 "INSERT INTO `sportsapi` VALUES (205,1,'Italian Serie A','soccer','ita.1');",
2758 "INSERT INTO `sportsapi` VALUES (206,1,'French Ligue 1','soccer','fra.1');",
2759 "INSERT INTO `sportsapi` VALUES (207,1,'French Ligue 2','soccer','fra.2');",
2760 "INSERT INTO `sportsapi` VALUES (208,1,'Spanish LaLiga','soccer','esp.1');",
2761 "INSERT INTO `sportsapi` VALUES (209,1,'German Bundesliga','soccer','ger.1');",
2762 "INSERT INTO `sportsapi` VALUES (210,1,'German 2. Bundesliga','soccer','ger.2');",
2763 "INSERT INTO `sportsapi` VALUES (211,1,'Mexican Liga BBVA MX','soccer','mex.1');",
2764 "INSERT INTO `sportsapi` VALUES (212,1,'Copa Do Brasil','soccer','bra.copa_do_brazil');",
2765 "INSERT INTO `sportsapi` VALUES (213,1,'CONCACAF Leagues Cup','soccer','concacaf.leagues.cup');",
2766 "INSERT INTO `sportsapi` VALUES (214,1,'CONCACAF League','soccer','concacaf.league');",
2767 "INSERT INTO `sportsapi` VALUES (215,1,'CONCACAF Champions League','soccer','concacaf.champions');",
2768 "INSERT INTO `sportsapi` VALUES (216,1,'CONCACAF Nations League','soccer','concacaf.nations.league');",
2769 "INSERT INTO `sportsapi` VALUES (217,1,'CONCACAF Gold Cup','soccer','concacaf.gold');",
2770 "INSERT INTO `sportsapi` VALUES (218,1,'FIFA World Cup','soccer','fifa.world');",
2771 "INSERT INTO `sportsapi` VALUES (219,1,'FIFA World Cup Qualifying - UEFA','soccer','fifa.worldq.uefa');",
2772 "INSERT INTO `sportsapi` VALUES (220,1,'FIFA World Cup Qualifying - CONCACAF','soccer','fifa.worldq.concacaf');",
2773 "INSERT INTO `sportsapi` VALUES (221,1,'FIFA World Cup Qualifying - CONMEBOL','soccer','fifa.worldq.conmebol');",
2774 "INSERT INTO `sportsapi` VALUES (222,1,'FIFA World Cup Qualifying - AFC','soccer','fifa.worldq.afc');",
2775 "INSERT INTO `sportsapi` VALUES (223,1,'FIFA World Cup Qualifying - CAF','soccer','fifa.worldq.caf');",
2776 "INSERT INTO `sportsapi` VALUES (224,1,'FIFA World Cup Qualifying - OFC','soccer','fifa.worldq.ofc');",
2777 "INSERT INTO `sportsapi` VALUES (225,1,'UEFA Champions League','soccer','uefa.champions');",
2778 "INSERT INTO `sportsapi` VALUES (226,1,'UEFA Europa League','soccer','uefa.europa');",
2779 "INSERT INTO `sportsapi` VALUES (227,1,'UEFA Europa Conference League','soccer','uefa.europa.conf');",
2780 "INSERT INTO `sportsapi` VALUES (228,1,'English Carabao Cup','soccer','eng.league_cup');",
2781 "INSERT INTO `sportsapi` VALUES (229,1,'USL Championship','soccer','usa.usl.1');",
2782 "INSERT INTO `sportsapi` VALUES (230,1,'United States NWSL','soccer','usa.nwsl');",
2783 "INSERT INTO `sportsapi` VALUES (231,1,'FA Women\\'s Super League','soccer','eng.w.1');",
2784 "INSERT INTO `sportsapi` VALUES (232,1,'English FA Cup','soccer','eng.fa');",
2785 "INSERT INTO `sportsapi` VALUES (233,1,'Spanish Copa del Rey','soccer','esp.copa_del_rey');",
2786 "INSERT INTO `sportsapi` VALUES (234,1,'German DFB Pokal','soccer','ger.dfb_pokal');",
2787 "INSERT INTO `sportsapi` VALUES (235,1,'Italian Coppa Italia','soccer','ita.coppa_italia');",
2788 "INSERT INTO `sportsapi` VALUES (236,1,'French Coupe de France','soccer','fra.coupe_de_france');",
2789 "INSERT INTO `sportsapi` VALUES (237,1,'AFC Champions League','soccer','afc.champions');",
2790 "INSERT INTO `sportsapi` VALUES (238,1,'Dutch KNVB Beker','soccer','ned.cup');",
2791 "INSERT INTO `sportsapi` VALUES (239,1,'Dutch Eredivisie','soccer','ned.1');",
2792 "INSERT INTO `sportsapi` VALUES (240,1,'Portuguese Liga','soccer','por.1');",
2793 "INSERT INTO `sportsapi` VALUES (241,1,'Russian Premier League','soccer','rus.1');",
2794 "INSERT INTO `sportsapi` VALUES (242,1,'Mexican Liga de Expansión MX','soccer','mex.2');",
2795 "INSERT INTO `sportsapi` VALUES (243,1,'Mexican Copa MX','soccer','mex.copa_mx');",
2796 "INSERT INTO `sportsapi` VALUES (244,1,'Campeones Cup','soccer','campeones.cup');",
2797 "INSERT INTO `sportsapi` VALUES (245,1,'United States Open Cup','soccer','usa.open');",
2798 "INSERT INTO `sportsapi` VALUES (246,1,'USL League One','soccer','usa.usl.l1');",
2799 "INSERT INTO `sportsapi` VALUES (247,1,'Scottish Premiership','soccer','sco.1');",
2800 "INSERT INTO `sportsapi` VALUES (248,1,'Chinese Super League','soccer','chn.1');",
2801 "INSERT INTO `sportsapi` VALUES (249,1,'Australian A-League','soccer','aus.1');",
2802 "INSERT INTO `sportsapi` VALUES (250,1,'International Friendly','soccer','fifa.friendly');",
2803 "INSERT INTO `sportsapi` VALUES (251,1,'Women\\'s International Friendly','soccer','fifa.friendly.w');",
2804 "INSERT INTO `sportsapi` VALUES (252,1,'UEFA European Under-21 Championship Qualifying','soccer','uefa.euro_u21_qual');",
2805 "INSERT INTO `sportsapi` VALUES (253,1,'FIFA Women\\'s World Cup','soccer','fifa.wwc');",
2806 "INSERT INTO `sportsapi` VALUES (254,1,'FIFA Club World Cup','soccer','fifa.cwc');",
2807 "INSERT INTO `sportsapi` VALUES (255,1,'CONCACAF Gold Cup Qualifying','soccer','concacaf.gold_qual');",
2808 "INSERT INTO `sportsapi` VALUES (256,1,'CONCACAF Nations League Qualifying','soccer','concacaf.nations.league_qual');",
2809 "INSERT INTO `sportsapi` VALUES (257,1,'CONCACAF Cup','soccer','concacaf.confederations_playoff');",
2810 "INSERT INTO `sportsapi` VALUES (258,1,'UEFA Nations League','soccer','uefa.nations');",
2811 "INSERT INTO `sportsapi` VALUES (259,1,'UEFA European Championship','soccer','uefa.euro');",
2812 "INSERT INTO `sportsapi` VALUES (260,1,'UEFA European Championship Qualifying','soccer','uefa.euroq');",
2813 "INSERT INTO `sportsapi` VALUES (261,1,'Copa America','soccer','conmebol.america');",
2814 "INSERT INTO `sportsapi` VALUES (262,1,'AFC Asian Cup','soccer','afc.asian.cup');",
2815 "INSERT INTO `sportsapi` VALUES (263,1,'AFC Asian Cup Qualifiers','soccer','afc.cupq');",
2816 "INSERT INTO `sportsapi` VALUES (264,1,'Africa Cup of Nations qualifying','soccer','caf.nations_qual');",
2817 "INSERT INTO `sportsapi` VALUES (265,1,'Africa Cup of Nations','soccer','caf.nations');",
2818 "INSERT INTO `sportsapi` VALUES (266,1,'Africa Nations Championship','soccer','caf.championship');",
2819 "INSERT INTO `sportsapi` VALUES (267,1,'WAFU Cup of Nations','soccer','wafu.nations');",
2820 "INSERT INTO `sportsapi` VALUES (268,1,'SheBelieves Cup','soccer','fifa.shebelieves');",
2821 "INSERT INTO `sportsapi` VALUES (269,1,'FIFA Confederations Cup','soccer','fifa.confederations');",
2822 "INSERT INTO `sportsapi` VALUES (270,1,'Non-FIFA Friendly','soccer','nonfifa');",
2823 "INSERT INTO `sportsapi` VALUES (271,1,'Spanish LaLiga 2','soccer','esp.2');",
2824 "INSERT INTO `sportsapi` VALUES (272,1,'Spanish Supercopa','soccer','esp.super_cup');",
2825 "INSERT INTO `sportsapi` VALUES (273,1,'Portuguese Liga Promotion/Relegation Playoffs','soccer','por.1.promotion.relegation');",
2826 "INSERT INTO `sportsapi` VALUES (274,1,'Belgian First Division A - Promotion/Relegation Playoffs','soccer','bel.promotion.relegation');",
2827 "INSERT INTO `sportsapi` VALUES (275,1,'Belgian First Division A','soccer','bel.1');",
2828 "INSERT INTO `sportsapi` VALUES (276,1,'Austrian Bundesliga','soccer','aut.1');",
2829 "INSERT INTO `sportsapi` VALUES (277,1,'Turkish Super Lig','soccer','tur.1');",
2830 "INSERT INTO `sportsapi` VALUES (278,1,'Austrian Bundesliga Promotion/Relegation Playoffs','soccer','aut.promotion.relegation');",
2831 "INSERT INTO `sportsapi` VALUES (279,1,'Greek Super League','soccer','gre.1');",
2832 "INSERT INTO `sportsapi` VALUES (280,1,'Greek Super League Promotion/Relegation Playoffs','soccer','gre.1.promotion.relegation');",
2833 "INSERT INTO `sportsapi` VALUES (281,1,'Swiss Super League','soccer','sui.1');",
2834 "INSERT INTO `sportsapi` VALUES (282,1,'Swiss Super League Promotion/Relegation Playoffs','soccer','sui.1.promotion.relegation');",
2835 "INSERT INTO `sportsapi` VALUES (283,1,'UEFA Women\\'s Champions League','soccer','uefa.wchampions');",
2836 "INSERT INTO `sportsapi` VALUES (284,1,'International Champions Cup','soccer','global.champs_cup');",
2837 "INSERT INTO `sportsapi` VALUES (285,1,'Women\\'s International Champions Cup','soccer','global.wchamps_cup');",
2838 "INSERT INTO `sportsapi` VALUES (286,1,'Club Friendly','soccer','club.friendly');",
2839 "INSERT INTO `sportsapi` VALUES (287,1,'UEFA Champions League Qualifying','soccer','uefa.champions_qual');",
2840 "INSERT INTO `sportsapi` VALUES (288,1,'UEFA Europa Conference League Qualifying','soccer','uefa.europa.conf_qual');",
2841 "INSERT INTO `sportsapi` VALUES (289,1,'UEFA Europa League Qualifying','soccer','uefa.europa_qual');",
2842 "INSERT INTO `sportsapi` VALUES (290,1,'UEFA Super Cup','soccer','uefa.super_cup');",
2843 "INSERT INTO `sportsapi` VALUES (291,1,'English FA Community Shield','soccer','eng.charity');",
2844 "INSERT INTO `sportsapi` VALUES (292,1,'Supercoppa Italiana','soccer','ita.super_cup');",
2845 "INSERT INTO `sportsapi` VALUES (293,1,'French Trophee des Champions','soccer','fra.super_cup');",
2846 "INSERT INTO `sportsapi` VALUES (294,1,'Dutch Johan Cruyff Shield','soccer','ned.supercup');",
2847 "INSERT INTO `sportsapi` VALUES (295,1,'Trofeo Joan Gamper','soccer','esp.joan_gamper');",
2848 "INSERT INTO `sportsapi` VALUES (296,1,'German DFL-Supercup','soccer','ger.super_cup');",
2849 "INSERT INTO `sportsapi` VALUES (297,1,'Audi Cup','soccer','ger.audi_cup');",
2850 "INSERT INTO `sportsapi` VALUES (298,1,'Premier League Asia Trophy','soccer','eng.asia_trophy');",
2851 "INSERT INTO `sportsapi` VALUES (299,1,'Emirates Cup','soccer','friendly.emirates_cup');",
2852 "INSERT INTO `sportsapi` VALUES (300,1,'Japanese J League World Challenge','soccer','jpn.world_challenge');",
2853 "INSERT INTO `sportsapi` VALUES (301,1,'SuperCopa Euroamericana','soccer','euroamericana.supercopa');",
2854 "INSERT INTO `sportsapi` VALUES (302,1,'Men\\'s Olympic Tournament','soccer','fifa.olympics');",
2855 "INSERT INTO `sportsapi` VALUES (303,1,'Women\\'s Olympic Tournament','soccer','fifa.w.olympics');",
2856 "INSERT INTO `sportsapi` VALUES (304,1,'CONMEBOL Pre-Olympic Tournament','soccer','fifa.conmebol.olympicsq');",
2857 "INSERT INTO `sportsapi` VALUES (305,1,'CONCACAF Men\\'s Olympic Qualifying','soccer','fifa.concacaf.olympicsq');",
2858 "INSERT INTO `sportsapi` VALUES (306,1,'CONCACAF Women\\'s Olympic Qualifying Tournament','soccer','fifa.w.concacaf.olympicsq');",
2859 "INSERT INTO `sportsapi` VALUES (307,1,'CONCACAF Women\\'s Championship','soccer','concacaf.womens.championship');",
2860 "INSERT INTO `sportsapi` VALUES (308,1,'FIFA Under-20 World Cup','soccer','fifa.world.u20');",
2861 "INSERT INTO `sportsapi` VALUES (309,1,'FIFA Under-17 World Cup','soccer','fifa.world.u17');",
2862 "INSERT INTO `sportsapi` VALUES (310,1,'Toulon Tournament','soccer','global.toulon');",
2863 "INSERT INTO `sportsapi` VALUES (311,1,'UEFA European Under-21 Championship','soccer','uefa.euro_u21');",
2864 "INSERT INTO `sportsapi` VALUES (312,1,'UEFA European Under-19 Championship','soccer','uefa.euro.u19');",
2865 "INSERT INTO `sportsapi` VALUES (313,1,'Under-21 International Friendly','soccer','fifa.friendly_u21');",
2866 "INSERT INTO `sportsapi` VALUES (314,1,'UEFA Women\\'s European Championship','soccer','uefa.weuro');",
2867 "INSERT INTO `sportsapi` VALUES (315,1,'German Bundesliga Promotion/Relegation Playoff','soccer','ger.playoff.relegation');",
2868 "INSERT INTO `sportsapi` VALUES (316,1,'German 2. Bundesliga Promotion/Relegation Playoffs','soccer','ger.2.promotion.relegation');",
2869 "INSERT INTO `sportsapi` VALUES (317,1,'English Women\\'s FA Cup','soccer','eng.w.fa');",
2870 "INSERT INTO `sportsapi` VALUES (318,1,'English Women\\'s FA Community Shield','soccer','eng.w.charity');",
2871 "INSERT INTO `sportsapi` VALUES (319,1,'English EFL Trophy','soccer','eng.trophy');",
2872 "INSERT INTO `sportsapi` VALUES (320,1,'English National League','soccer','eng.5');",
2873 "INSERT INTO `sportsapi` VALUES (321,1,'English League One','soccer','eng.3');",
2874 "INSERT INTO `sportsapi` VALUES (322,1,'English League Two','soccer','eng.4');",
2875 "INSERT INTO `sportsapi` VALUES (323,1,'Scottish Cup','soccer','sco.tennents');",
2876 "INSERT INTO `sportsapi` VALUES (324,1,'Scottish League Cup','soccer','sco.cis');",
2877 "INSERT INTO `sportsapi` VALUES (325,1,'Scottish Premiership Promotion/Relegation Playoffs','soccer','sco.1.promotion.relegation');",
2878 "INSERT INTO `sportsapi` VALUES (326,1,'Scottish League One','soccer','sco.3');",
2879 "INSERT INTO `sportsapi` VALUES (327,1,'Scottish Championship','soccer','sco.2');",
2880 "INSERT INTO `sportsapi` VALUES (328,1,'Scottish Championship Promotion/Relegation Playoffs','soccer','sco.2.promotion.relegation');",
2881 "INSERT INTO `sportsapi` VALUES (329,1,'Scottish League One Promotion/Relegation Playoffs','soccer','sco.3.promotion.relegation');",
2882 "INSERT INTO `sportsapi` VALUES (330,1,'Scottish League Two Promotion/Relegation Playoffs','soccer','sco.4.promotion.relegation');",
2883 "INSERT INTO `sportsapi` VALUES (331,1,'Scottish League Two','soccer','sco.4');",
2884 "INSERT INTO `sportsapi` VALUES (332,1,'Scottish League Challenge Cup','soccer','sco.challenge');",
2885 "INSERT INTO `sportsapi` VALUES (333,1,'Dutch Eredivisie Promotion/Relegation Playoffs','soccer','ned.playoff.relegation');",
2886 "INSERT INTO `sportsapi` VALUES (334,1,'Dutch Eredivisie Cup','soccer','ned.w.eredivisie_cup');",
2887 "INSERT INTO `sportsapi` VALUES (335,1,'Dutch Keuken Kampioen Divisie','soccer','ned.2');",
2888 "INSERT INTO `sportsapi` VALUES (336,1,'Dutch Tweede Divisie','soccer','ned.3');",
2889 "INSERT INTO `sportsapi` VALUES (337,1,'Dutch KNVB Beker Vrouwen','soccer','ned.w.knvb_cup');",
2890 "INSERT INTO `sportsapi` VALUES (338,1,'Dutch Vrouwen Eredivisie','soccer','ned.w.1');",
2891 "INSERT INTO `sportsapi` VALUES (339,1,'Italian Serie B','soccer','ita.2');",
2892 "INSERT INTO `sportsapi` VALUES (340,1,'French Ligue 1 Promotion/Relegation Playoffs','soccer','fra.1.promotion.relegation');",
2893 "INSERT INTO `sportsapi` VALUES (341,1,'French Ligue 2 Promotion/Relegation Playoffs','soccer','fra.2.promotion.relegation');",
2894 "INSERT INTO `sportsapi` VALUES (342,1,'Swedish Allsvenskan','soccer','swe.1');",
2895 "INSERT INTO `sportsapi` VALUES (343,1,'Swedish Allsvenskanliga Promotion/Relegation Playoffs','soccer','swe.1.promotion.relegation');",
2896 "INSERT INTO `sportsapi` VALUES (344,1,'Danish Superliga','soccer','den.1');",
2897 "INSERT INTO `sportsapi` VALUES (345,1,'Danish SAS-Ligaen Promotion/Relegation Playoffs','soccer','den.promotion.relegation');",
2898 "INSERT INTO `sportsapi` VALUES (346,1,'Romanian Liga 1 Promotion/Relegation Playoffs','soccer','rou.1.promotion.relegation');",
2899 "INSERT INTO `sportsapi` VALUES (347,1,'Romanian Liga 1','soccer','rou.1');",
2900 "INSERT INTO `sportsapi` VALUES (348,1,'Norwegian Eliteserien Promotion/Relegation Playoffs','soccer','nor.1.promotion.relegation');",
2901 "INSERT INTO `sportsapi` VALUES (349,1,'Norwegian Eliteserien','soccer','nor.1');",
2902 "INSERT INTO `sportsapi` VALUES (350,1,'Maltese Premier League','soccer','mlt.1');",
2903 "INSERT INTO `sportsapi` VALUES (351,1,'Israeli Premier League','soccer','isr.1');",
2904 "INSERT INTO `sportsapi` VALUES (352,1,'Irish Premier Division Promotion/Relegation Playoffs','soccer','ir1.1.promotion.relegation');",
2905 "INSERT INTO `sportsapi` VALUES (353,1,'Irish Premier Division','soccer','irl.1');",
2906 "INSERT INTO `sportsapi` VALUES (354,1,'Welsh Premier League','soccer','wal.1');",
2907 "INSERT INTO `sportsapi` VALUES (355,1,'Northern Irish Premiership','soccer','nir.1');",
2908 "INSERT INTO `sportsapi` VALUES (356,1,'CONMEBOL Copa Libertadores','soccer','conmebol.libertadores');",
2909 "INSERT INTO `sportsapi` VALUES (357,1,'CONMEBOL Copa Sudamericana','soccer','conmebol.sudamericana');",
2910 "INSERT INTO `sportsapi` VALUES (358,1,'CONMEBOL Recopa Sudamericana','soccer','conmebol.recopa');",
2911 "INSERT INTO `sportsapi` VALUES (359,1,'Argentine Liga Profesional de Fútbol','soccer','arg.1');",
2912 "INSERT INTO `sportsapi` VALUES (360,1,'Copa Argentina','soccer','arg.copa');",
2913 "INSERT INTO `sportsapi` VALUES (361,1,'Argentine Copa de la Liga Profesional','soccer','arg.copa_lpf');",
2914 "INSERT INTO `sportsapi` VALUES (362,1,'Argentine Copa de la Superliga','soccer','arg.copa_de_la_superliga');",
2915 "INSERT INTO `sportsapi` VALUES (363,1,'Argentine Trofeo de Campeones de la Superliga','soccer','arg.trofeo_de_la_campeones');",
2916 "INSERT INTO `sportsapi` VALUES (364,1,'Argentine Supercopa','soccer','arg.supercopa');",
2917 "INSERT INTO `sportsapi` VALUES (365,1,'Argentine Nacional B','soccer','arg.2');",
2918 "INSERT INTO `sportsapi` VALUES (366,1,'Argentine Primera B','soccer','arg.3');",
2919 "INSERT INTO `sportsapi` VALUES (367,1,'Argentine Primera C','soccer','arg.4');",
2920 "INSERT INTO `sportsapi` VALUES (368,1,'Argentine Primera D','soccer','arg.5');",
2921 "INSERT INTO `sportsapi` VALUES (369,1,'Supercopa Do Brazil','soccer','bra.supercopa_do_brazil');",
2922 "INSERT INTO `sportsapi` VALUES (370,1,'Brazilian Serie A','soccer','bra.1');",
2923 "INSERT INTO `sportsapi` VALUES (371,1,'Brazilian Serie B','soccer','bra.2');",
2924 "INSERT INTO `sportsapi` VALUES (372,1,'Brazilian Serie C','soccer','bra.3');",
2925 "INSERT INTO `sportsapi` VALUES (373,1,'Copa Do Nordeste','soccer','bra.copa_do_nordeste');",
2926 "INSERT INTO `sportsapi` VALUES (374,1,'Brazilian Campeonato Carioca','soccer','bra.camp.carioca');",
2927 "INSERT INTO `sportsapi` VALUES (375,1,'Brazilian Campeonato Paulista','soccer','bra.camp.paulista');",
2928 "INSERT INTO `sportsapi` VALUES (376,1,'Brazilian Campeonato Gaucho','soccer','bra.camp.gaucho');",
2929 "INSERT INTO `sportsapi` VALUES (377,1,'Brazilian Campeonato Mineiro','soccer','bra.camp.mineiro');",
2930 "INSERT INTO `sportsapi` VALUES (378,1,'Chilean Primera División','soccer','chi.1');",
2931 "INSERT INTO `sportsapi` VALUES (379,1,'Copa Chile','soccer','chi.copa_chi');",
2932 "INSERT INTO `sportsapi` VALUES (380,1,'International U20 Friendly','soccer','fifa.u20.friendly');",
2933 "INSERT INTO `sportsapi` VALUES (381,1,'Segunda División de Chile','soccer','chi.2');",
2934 "INSERT INTO `sportsapi` VALUES (382,1,'Chilean Supercopa','soccer','chi.super_cup');",
2935 "INSERT INTO `sportsapi` VALUES (383,1,'Uruguayan Primera Division','soccer','uru.1');",
2936 "INSERT INTO `sportsapi` VALUES (384,1,'Segunda División de Uruguay','soccer','uru.2');",
2937 "INSERT INTO `sportsapi` VALUES (385,1,'Colombian SuperLiga','soccer','col.superliga');",
2938 "INSERT INTO `sportsapi` VALUES (386,1,'Colombian Primera A','soccer','col.1');",
2939 "INSERT INTO `sportsapi` VALUES (387,1,'Colombian Primera B','soccer','col.2');",
2940 "INSERT INTO `sportsapi` VALUES (388,1,'Peruvian Supercopa','soccer','per.supercopa');",
2941 "INSERT INTO `sportsapi` VALUES (389,1,'Copa Colombia','soccer','col.copa');",
2942 "INSERT INTO `sportsapi` VALUES (390,1,'Peruvian Primera Profesional','soccer','per.1');",
2943 "INSERT INTO `sportsapi` VALUES (391,1,'Paraguayan Primera Division','soccer','par.1');",
2944 "INSERT INTO `sportsapi` VALUES (392,1,'Ecuadoran Primera A','soccer','ecu.1');",
2945 "INSERT INTO `sportsapi` VALUES (393,1,'Ecuadoran Supercopa','soccer','ecu.supercopa');",
2946 "INSERT INTO `sportsapi` VALUES (394,1,'Ecuador Serie B','soccer','ecu.2');",
2947 "INSERT INTO `sportsapi` VALUES (395,1,'Venezuelan Primera Profesional','soccer','ven.1');",
2948 "INSERT INTO `sportsapi` VALUES (396,1,'United States NWSL Challenge Cup','soccer','usa.nwsl.cup');",
2949 "INSERT INTO `sportsapi` VALUES (397,1,'Segunda División de Venezuela','soccer','ven.2');",
2950 "INSERT INTO `sportsapi` VALUES (398,1,'Bolivian Liga Profesional','soccer','bol.1');",
2951 "INSERT INTO `sportsapi` VALUES (399,1,'Mexican Supercopa MX','soccer','mex.supercopa');",
2952 "INSERT INTO `sportsapi` VALUES (400,1,'Mexican Campeon de Campeones','soccer','mex.campeon');",
2953 "INSERT INTO `sportsapi` VALUES (401,1,'CONCACAF Champions Cup','soccer','concacaf.champions_cup');",
2954 "INSERT INTO `sportsapi` VALUES (402,1,'CONCACAF U23 Tournament','soccer','concacaf.u23');",
2955 "INSERT INTO `sportsapi` VALUES (403,1,'Honduran Primera Division','soccer','hon.1');",
2956 "INSERT INTO `sportsapi` VALUES (404,1,'Costa Rican Primera Division','soccer','crc.1');",
2957 "INSERT INTO `sportsapi` VALUES (405,1,'Jamaican Premier League','soccer','jam.1');",
2958 "INSERT INTO `sportsapi` VALUES (406,1,'Guatemalan Liga Nacional','soccer','gua.1');",
2959 "INSERT INTO `sportsapi` VALUES (407,1,'Australian W-League','soccer','aus.w.1');",
2960 "INSERT INTO `sportsapi` VALUES (408,1,'Salvadoran Primera Division','soccer','slv.1');",
2961 "INSERT INTO `sportsapi` VALUES (409,1,'AFF Cup','soccer','aff.championship');",
2962 "INSERT INTO `sportsapi` VALUES (410,1,'AFC Cup','soccer','afc.cup');",
2963 "INSERT INTO `sportsapi` VALUES (411,1,'SAFF Championship','soccer','afc.saff.championship');",
2964 "INSERT INTO `sportsapi` VALUES (412,1,'Chinese Super League Promotion/Relegation Playoffs','soccer','chn.1.promotion.relegation');",
2965 "INSERT INTO `sportsapi` VALUES (413,1,'Japanese J League','soccer','jpn.1');",
2966 "INSERT INTO `sportsapi` VALUES (414,1,'Indonesian Liga 1','soccer','idn.1');",
2967 "INSERT INTO `sportsapi` VALUES (415,1,'Indian Super League','soccer','ind.1');",
2968 "INSERT INTO `sportsapi` VALUES (416,1,'Indian I-League','soccer','ind.2');",
2969 "INSERT INTO `sportsapi` VALUES (417,1,'Malaysian Super League','soccer','mys.1');",
2970 "INSERT INTO `sportsapi` VALUES (418,1,'Singaporean Premier League','soccer','sgp.1');",
2971 "INSERT INTO `sportsapi` VALUES (419,1,'Thai League 1','soccer','tha.1');",
2972 "INSERT INTO `sportsapi` VALUES (420,1,'Bangabandhu Cup','soccer','bangabandhu.cup');",
2973 "INSERT INTO `sportsapi` VALUES (421,1,'COSAFA Cup','soccer','caf.cosafa');",
2974 "INSERT INTO `sportsapi` VALUES (422,1,'CAF Champions League','soccer','caf.champions');",
2975 "INSERT INTO `sportsapi` VALUES (423,1,'South African Premiership Promotion/Relegation Playoffs','soccer','rsa.1.promotion.relegation');",
2976 "INSERT INTO `sportsapi` VALUES (424,1,'CAF Confederations Cup','soccer','caf.confed');",
2977 "INSERT INTO `sportsapi` VALUES (425,1,'South African Premiership','soccer','rsa.1');",
2978 "INSERT INTO `sportsapi` VALUES (426,1,'South African First Division','soccer','rsa.2');",
2979 "INSERT INTO `sportsapi` VALUES (427,1,'South African Telkom Knockout','soccer','rsa.telkom_knockout');",
2980 "INSERT INTO `sportsapi` VALUES (428,1,'South African Nedbank Cup','soccer','rsa.nedbank');",
2981 "INSERT INTO `sportsapi` VALUES (429,1,'MTN 8 Cup','soccer','rsa.mtn8');",
2982 "INSERT INTO `sportsapi` VALUES (430,1,'Nigerian Professional League','soccer','nga.1');",
2983 "INSERT INTO `sportsapi` VALUES (431,1,'Ghanaian Premier League','soccer','gha.1');",
2984 "INSERT INTO `sportsapi` VALUES (432,1,'Zambian Super League','soccer','zam.1');",
2985 "INSERT INTO `sportsapi` VALUES (433,1,'Kenyan Premier League','soccer','ken.1');",
2986 "INSERT INTO `sportsapi` VALUES (434,1,'Zimbabwean Premier Soccer League','soccer','zim.1');",
2987 "INSERT INTO `sportsapi` VALUES (435,1,'Ugandan Premier League','soccer','uga.1');",
2988 "INSERT INTO `sportsapi` VALUES (436,1,'Misc. U.S. Soccer Games','soccer','generic.ussf');",
2989 "INSERT INTO `sportsapi` VALUES (1000,2,'Major League Baseball','baseball','mlb');",
2990 "INSERT INTO `sportscleanup` VALUES (1,1,1000,'soccer','(SE)','\\\\(\\\\w+\\\\)',0,'');",
2991 "INSERT INTO `sportscleanup` VALUES (2,1,1000,'soccer','AFC','\\\\AA\\\\.?F\\\\.?C\\\\.?|\\\\bA\\\\.?F\\\\.?C\\\\.?\\\\Z',0,'');",
2992 "INSERT INTO `sportscleanup` VALUES (3,1,1000,'soccer','AC etc.','\\\\AA\\\\.?[AC]\\\\.?|\\\\bA\\\\.?[AC]\\\\.?\\\\Z',0,'');",
2993 "INSERT INTO `sportscleanup` VALUES (4,1,1000,'soccer','BK','\\\\AB\\\\.?K\\\\.?|\\\\bB\\\\.?K\\\\.?\\\\Z',0,'');",
2994 "INSERT INTO `sportscleanup` VALUES (5,1,1000,'soccer','BSC','\\\\AB\\\\.?S\\\\.?C\\\\.?|\\\\bB\\\\.?S\\\\.?C\\\\.?\\\\Z',0,'');",
2995 "INSERT INTO `sportscleanup` VALUES (6,1,1000,'soccer','CSyD','\\\\AC\\\\.?S\\\\.?( y )?D\\\\.?|\\\\bC\\\\.?S\\\\.?( y )?D\\\\.?\\\\Z',0,'');",
2996 "INSERT INTO `sportscleanup` VALUES (7,1,1000,'soccer','CD etc.','\\\\AC\\\\.?[ADFRS]\\\\.?|\\\\bC\\\\.?[ADFRS]\\\\.?\\\\Z',0,'');",
2997 "INSERT INTO `sportscleanup` VALUES (8,1,1000,'soccer','FC','\\\\AF\\\\.?C\\\\.?|\\\\bF\\\\.?C\\\\.?\\\\Z',0,'');",
2998 "INSERT INTO `sportscleanup` VALUES (9,1,1000,'soccer','HSC','\\\\AH\\\\.?S\\\\.?C\\\\.?|\\\\bH\\\\.?S\\\\.?C\\\\.?\\\\Z',0,'');",
2999 "INSERT INTO `sportscleanup` VALUES (10,1,1000,'soccer','RC etc.','\\\\AR\\\\.?[BC]\\\\.?|\\\\bR\\\\.?[BC]\\\\.?\\\\Z',0,'');",
3000 "INSERT INTO `sportscleanup` VALUES (11,1,1000,'soccer','SC etc.','\\\\AS\\\\.?[ACV]\\\\.?|\\\\bS\\\\.?[ACV]\\\\.?\\\\Z',0,'');",
3001 "INSERT INTO `sportscleanup` VALUES (12,1,1000,'soccer','TSG','\\\\AT\\\\.?S\\\\.?G\\\\.?|\\\\bT\\\\.?S\\\\.?G\\\\.?\\\\Z',0,'');",
3002 "INSERT INTO `sportscleanup` VALUES (13,1,1000,'soccer','VFB etc.','\\\\AV\\\\.?F\\\\.?[BL]\\\\.?|\\\\bV\\\\.?F\\\\.?[BL]\\\\.?\\\\Z',0,'');",
3003 "INSERT INTO `sportscleanup` VALUES (14,1,2000,'all','','Inglaterra',0,'England');",
3004 "INSERT INTO `sportscleanup` VALUES (15,1,2000,'all','','Munchen',0,'Munich');",
3005 "INSERT INTO `sportscleanup` VALUES (16,1,1100,'basketball','Cal State','Cal State',0,'CSU');",
3006 "INSERT INTO `sportscleanup` VALUES (17,1,1000,'basketball','Grambling','Grambling State',0,'Grambling');",
3007 "INSERT INTO `sportscleanup` VALUES (18,1,1000,'basketball','Hawaii','Hawaii',0,'Hawai\\'i');",
3008 "INSERT INTO `sportscleanup` VALUES (19,1,1000,'basketball','LIU','LIU',0,'Long Island University');",
3009 "INSERT INTO `sportscleanup` VALUES (20,1,1100,'basketball','Loyola','Loyola-',0,'Loyola ');",
3010 "INSERT INTO `sportscleanup` VALUES (21,1,1000,'basketball','Loyola (Md.)','Loyola (Md.)',0,'Loyola (MD)');",
3011 "INSERT INTO `sportscleanup` VALUES (22,1,1000,'basketball','McNeese','McNeese State',0,'McNeese');",
3012 "INSERT INTO `sportscleanup` VALUES (23,1,1000,'basketball','Miami (OH)','Miami (Ohio)',0,'Miami (OH)');",
3013 "INSERT INTO `sportscleanup` VALUES (24,1,1000,'basketball','UAB','Alabama-Birmingham',0,'UAB');",
3014 "INSERT INTO `sportscleanup` VALUES (25,1,1000,'basketball','UConn','Connecticut',0,'UConn');",
3015 "INSERT INTO `sportscleanup` VALUES (26,1,1000,'basketball','UMass','Massachusetts',0,'UMass');",
3016 "INSERT INTO `sportscleanup` VALUES (27,1,1100,'basketball','UNC','UNC-',0,'UNC ');",
3017 "INSERT INTO `sportscleanup` VALUES (28,1,1000,'basketball','UTEP','Texas-El Paso',0,'UTEP');",
3018 "INSERT INTO `sportscleanup` VALUES (29,1,1100,'basketball','Texas','Texas-',0,'UT ');",
3019 "INSERT INTO `sportscleanup` VALUES (30,1,1000,'basketball','Chattanooga','UT-Chattanooga',0,'Chattanooga');",
3020 "INSERT INTO `sportscleanup` VALUES (31,1,1100,'basketball','UT','UT-',0,'UT ');",
3021 "INSERT INTO `sportslisting` VALUES (1,1,'\\\\A(?:MLB Baseball)\\\\z');",
3022 "INSERT INTO `sportslisting` VALUES (2,1,'\\\\A(?:Béisbol MLB)\\\\z');",
3023 "INSERT INTO `sportslisting` VALUES (3,1,'\\\\A(?:MLB All-Star Game)\\\\z');",
3024 "INSERT INTO `sportslisting` VALUES (4,1,'\\\\A(?:World Series)\\\\z');",
3025 "INSERT INTO `sportslisting` VALUES (5,2,'\\\\A(?:College Baseball)\\\\z');",
3026 "INSERT INTO `sportslisting` VALUES (6,2,'\\\\A(?:College World Series)\\\\z');",
3027 "INSERT INTO `sportslisting` VALUES (7,3,'\\\\A(?:College Softball)\\\\z');",
3028 "INSERT INTO `sportslisting` VALUES (8,4,'\\\\A(?:Women\\'s College World Series)\\\\z');",
3029 "INSERT INTO `sportslisting` VALUES (9,10,'\\\\A(?:Béisbol Liga Mexicana)\\\\z');",
3030 "INSERT INTO `sportslisting` VALUES (10,20,'\\\\A(?:N\\\\w+ Football)\\\\z');",
3031 "INSERT INTO `sportslisting` VALUES (11,20,'\\\\A(?:Super Bowl( [CLXVI]+)?)\\\\z');",
3032 "INSERT INTO `sportslisting` VALUES (12,20,'\\\\A(?:Fútbol Americano NFL)\\\\z');",
3033 "INSERT INTO `sportslisting` VALUES (13,21,'\\\\A(?:College Football)\\\\z');",
3034 "INSERT INTO `sportslisting` VALUES (14,21,'\\\\A(?:\\\\w+ Bowl)\\\\z');",
3035 "INSERT INTO `sportslisting` VALUES (15,21,'\\\\A(?:Fútbol Americano de Universitario)\\\\z');",
3036 "INSERT INTO `sportslisting` VALUES (16,40,'\\\\A(?:NBA Basketball)\\\\z');",
3037 "INSERT INTO `sportslisting` VALUES (17,40,'\\\\A(?:NBA Finals)\\\\z');",
3038 "INSERT INTO `sportslisting` VALUES (18,41,'\\\\A(?:WNBA Basketball)\\\\z');",
3039 "INSERT INTO `sportslisting` VALUES (19,41,'\\\\A(?:WNBA Finals)\\\\z');",
3040 "INSERT INTO `sportslisting` VALUES (20,42,'\\\\A(?:College Basketball)\\\\z');",
3041 "INSERT INTO `sportslisting` VALUES (21,42,'\\\\A(?:NCAA Basketball Tournament)\\\\z');",
3042 "INSERT INTO `sportslisting` VALUES (22,43,'\\\\A(?:Women\\'s College Basketball)\\\\z');",
3043 "INSERT INTO `sportslisting` VALUES (23,43,'\\\\A(?:NCAA Women\\'s Basketball Tournament)\\\\z');",
3044 "INSERT INTO `sportslisting` VALUES (24,60,'\\\\A(?:NHL Hockey)\\\\z');",
3045 "INSERT INTO `sportslisting` VALUES (25,60,'\\\\A(?:NHL Winter Classic)\\\\z');",
3046 "INSERT INTO `sportslisting` VALUES (26,60,'\\\\A(?:NHL \\\\w+ Conference Final)\\\\z');",
3047 "INSERT INTO `sportslisting` VALUES (27,60,'\\\\A(?:Stanley Cup Finals)\\\\z');",
3048 "INSERT INTO `sportslisting` VALUES (28,61,'\\\\A(?:College Hockey)\\\\z');",
3049 "INSERT INTO `sportslisting` VALUES (29,61,'\\\\A(?:Frozen Four)\\\\z');",
3050 "INSERT INTO `sportslisting` VALUES (30,62,'\\\\A(?:Women\\'s College Hockey)\\\\z');",
3051 "INSERT INTO `sportslisting` VALUES (31,66,'\\\\A(?:College Field Hockey)\\\\z');",
3052 "INSERT INTO `sportslisting` VALUES (32,80,'\\\\A(?:College Volleyball)\\\\z');",
3053 "INSERT INTO `sportslisting` VALUES (33,81,'\\\\A(?:Women\\'s College Volleyball)\\\\z');",
3054 "INSERT INTO `sportslisting` VALUES (34,100,'\\\\A(?:College Lacrosse)\\\\z');",
3055 "INSERT INTO `sportslisting` VALUES (35,101,'\\\\A(?:Women\\'s College Lacrosse)\\\\z');",
3056 "INSERT INTO `sportslisting` VALUES (36,120,'\\\\A(?:College Water Polo)\\\\z');",
3057 "INSERT INTO `sportslisting` VALUES (37,121,'\\\\A(?:Women\\'s College Water Polo)\\\\z');",
3058 "INSERT INTO `sportslisting` VALUES (38,200,'\\\\A(?:College Soccer)\\\\z');",
3059 "INSERT INTO `sportslisting` VALUES (39,201,'\\\\A(?:Women\\'s College Soccer)\\\\z');",
3060 "INSERT INTO `sportslisting` VALUES (40,202,'\\\\A(?:MLS Soccer|Fútbol MLS)\\\\z');",
3061 "INSERT INTO `sportslisting` VALUES (41,203,'\\\\A(?:(Premier League|EPL) Soccer)\\\\z');",
3062 "INSERT INTO `sportslisting` VALUES (42,203,'\\\\A(?:English Premier League)\\\\z');",
3063 "INSERT INTO `sportslisting` VALUES (43,203,'\\\\A(?:Fútbol Premier League)\\\\z');",
3064 "INSERT INTO `sportslisting` VALUES (44,205,'\\\\A(?:Italian Serie A Soccer)\\\\z');",
3065 "INSERT INTO `sportslisting` VALUES (45,339,'\\\\A(?:Italian Serie B Soccer)\\\\z');",
3066 "INSERT INTO `sportslisting` VALUES (46,206,'\\\\A(?:French Ligue 1 Soccer|Fútbol Ligue 1|Fútbol Liga 1)\\\\z');",
3067 "INSERT INTO `sportslisting` VALUES (47,207,'\\\\A(?:French Ligue 2 Soccer|Fútbol Ligue 2|Fútbol Liga 2)\\\\z');",
3068 "INSERT INTO `sportslisting` VALUES (48,208,'\\\\A(?:Fútbol LaLiga)\\\\z');",
3069 "INSERT INTO `sportslisting` VALUES (49,208,'\\\\A(?:Fútbol Español Primera Division)\\\\z');",
3070 "INSERT INTO `sportslisting` VALUES (50,208,'\\\\A(?:Spanish Primera Division Soccer)\\\\z');",
3071 "INSERT INTO `sportslisting` VALUES (51,209,'\\\\A(?:(German )?Bundesliga Soccer)\\\\z');",
3072 "INSERT INTO `sportslisting` VALUES (52,209,'\\\\A(?:Fútbol Bundesliga)\\\\z');",
3073 "INSERT INTO `sportslisting` VALUES (53,209,'\\\\A(?:Fútbol Copa de Alemania)\\\\z');",
3074 "INSERT INTO `sportslisting` VALUES (54,210,'\\\\A(?:German 2. Bundesliga Soccer)\\\\z');",
3075 "INSERT INTO `sportslisting` VALUES (55,211,'\\\\A(?:Fútbol Mexicano Primera División|Fútbol Mexicano Liga Premier|Fútbol Mexicano)\\\\z');",
3076 "INSERT INTO `sportslisting` VALUES (56,211,'\\\\A(?:Mexico Primera Division Soccer)\\\\z');",
3077 "INSERT INTO `sportslisting` VALUES (57,212,'\\\\A(?:Copa do Brazil Soccer)\\\\z');",
3078 "INSERT INTO `sportslisting` VALUES (58,214,'\\\\A(?:CONCACAF League Soccer)\\\\z');",
3079 "INSERT INTO `sportslisting` VALUES (59,215,'\\\\A(?:CONCACAF Champions League Soccer)\\\\z');",
3080 "INSERT INTO `sportslisting` VALUES (60,216,'\\\\A(?:CONCACAF Nations League Soccer)\\\\z');",
3081 "INSERT INTO `sportslisting` VALUES (61,217,'\\\\A(?:CONCACAF Gold Cup Soccer)\\\\z');",
3082 "INSERT INTO `sportslisting` VALUES (62,218,'\\\\A(?:FIFA World Cup Soccer)\\\\z');",
3083 "INSERT INTO `sportslisting` VALUES (63,219,'\\\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\\\z');",
3084 "INSERT INTO `sportslisting` VALUES (64,220,'\\\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\\\z');",
3085 "INSERT INTO `sportslisting` VALUES (65,221,'\\\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\\\z');",
3086 "INSERT INTO `sportslisting` VALUES (66,222,'\\\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\\\z');",
3087 "INSERT INTO `sportslisting` VALUES (67,223,'\\\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\\\z');",
3088 "INSERT INTO `sportslisting` VALUES (68,224,'\\\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\\\z');",
3089 "INSERT INTO `sportslisting` VALUES (69,225,'\\\\A(?:Fútbol UEFA Champions League)\\\\z');",
3090 "INSERT INTO `sportslisting` VALUES (70,225,'\\\\A(?:UEFA Champions League Soccer)\\\\z');",
3091 "INSERT INTO `sportslisting` VALUES (71,226,'\\\\A(?:Fútbol UEFA Europa League)\\\\z');",
3092 "INSERT INTO `sportslisting` VALUES (72,229,'\\\\A(?:Fútbol USL Championship)\\\\z');",
3093 "INSERT INTO `sportslisting` VALUES (73,229,'\\\\A(?:USL Championship Soccer)\\\\z');",
3094 "INSERT INTO `sportslisting` VALUES (74,230,'\\\\A(?:NWSL Soccer)\\\\z');",
3095 "INSERT INTO `sportslisting` VALUES (75,231,'\\\\A(?:FA Women\\'s Super League)\\\\z');",
3096 "INSERT INTO `sportslisting` VALUES (76,242,'\\\\A(?:Fútbol Mexicano Liga Expansión)\\\\z');",
3097 "INSERT INTO `sportslisting` VALUES (77,258,'\\\\A(?:UEFA Nations League Soccer)\\\\z');",
3098 "INSERT INTO `sportslisting` VALUES (78,258,'\\\\A(?:Fútbol UEFA Nations League)\\\\z');",
3099 "INSERT INTO `sportslisting` VALUES (79,271,'\\\\A(?:Fútbol Español Segunda Division)\\\\z');",
3100 "INSERT INTO `sportslisting` VALUES (80,277,'\\\\A(?:Fútbol Turco Superliga)\\\\z');",
3101 "INSERT INTO `sportslisting` VALUES (81,277,'\\\\A(?:Turkish Super Lig Soccer)\\\\z');",
3102 "INSERT INTO `sportslisting` VALUES (82,279,'\\\\A(?:Superleague Greek Soccer)\\\\z');",
3103 "INSERT INTO `sportslisting` VALUES (83,356,'\\\\A(?:Fútbol CONMEBOL Libertadores)\\\\z');",
3104 "INSERT INTO `sportslisting` VALUES (84,357,'\\\\A(?:Fútbol CONMEBOL Sudamericana)\\\\z');",
3105 "INSERT INTO `sportslisting` VALUES (85,359,'\\\\A(?:Fútbol Argentino Primera División)\\\\z');",
3106 "INSERT INTO `sportslisting` VALUES (86,360,'\\\\A(?:Fútbol Copa Argentina)\\\\z');",
3107 "INSERT INTO `sportslisting` VALUES (87,365,'\\\\A(?:Fútbol Argentino Primera Nacional( B)?)\\\\z');",
3108 "INSERT INTO `sportslisting` VALUES (88,366,'\\\\A(?:Fútbol Argentino Primera B)\\\\z');",
3109 "INSERT INTO `sportslisting` VALUES (89,367,'\\\\A(?:Fútbol Argentino Primera C)\\\\z');",
3110 "INSERT INTO `sportslisting` VALUES (90,368,'\\\\A(?:Fútbol Argentino Primera D)\\\\z');",
3111 "INSERT INTO `sportslisting` VALUES (91,386,'\\\\A(?:Fútbol Columbiano Primera División)\\\\z');",
3112 "INSERT INTO `sportslisting` VALUES (92,403,'\\\\A(?:Fútbol Hondureño Primera División)\\\\z');",
3113 "INSERT INTO `sportslisting` VALUES (93,404,'\\\\A(?:Fútbol Costarricense Primera División)\\\\z');",
3114 "INSERT INTO `sportslisting` VALUES (94,1000,'\\\\A(?:MLB Baseball)\\\\z');",
3115 "INSERT INTO `sportslisting` VALUES (95,1000,'\\\\A(?:Béisbol MLB)\\\\z');",
3116 "INSERT INTO `users` VALUES (1,'admin','bcd911b2ecb15ffbd6d8e6e744d60cf6','0000-00-00 00:00:00');",
3117 "INSERT INTO `videotypes` VALUES (1,'txt','',1,0);",
3118 "INSERT INTO `videotypes` VALUES (2,'log','',1,0);",
3119 "INSERT INTO `videotypes` VALUES (3,'mpg','Internal',0,0);",
3120 "INSERT INTO `videotypes` VALUES (4,'avi','',0,1);",
3121 "INSERT INTO `videotypes` VALUES (5,'vob','Internal',0,0);",
3122 "INSERT INTO `videotypes` VALUES (6,'mpeg','Internal',0,0);",
3123 "INSERT INTO `videotypes` VALUES (8,'iso','Internal',0,0);",
3124 "INSERT INTO `videotypes` VALUES (9,'img','Internal',0,0);",
3125 "INSERT INTO `videotypes` VALUES (10,'mkv','Internal',0,0);",
3126 "INSERT INTO `videotypes` VALUES (11,'mp4','Internal',0,0);",
3127 "INSERT INTO `videotypes` VALUES (12,'m2ts','Internal',0,0);",
3128 "INSERT INTO `videotypes` VALUES (13,'evo','Internal',0,0);",
3129 "INSERT INTO `videotypes` VALUES (14,'divx','Internal',0,0);",
3130 "INSERT INTO `videotypes` VALUES (15,'mov','Internal',0,0);",
3131 "INSERT INTO `videotypes` VALUES (16,'qt','Internal',0,0);",
3132 "INSERT INTO `videotypes` VALUES (17,'wmv','Internal',0,0);",
3133 "INSERT INTO `videotypes` VALUES (18,'3gp','Internal',0,0);",
3134 "INSERT INTO `videotypes` VALUES (19,'asf','Internal',0,0);",
3135 "INSERT INTO `videotypes` VALUES (20,'ogg','Internal',0,0);",
3136 "INSERT INTO `videotypes` VALUES (21,'ogm','Internal',0,0);",
3137 "INSERT INTO `videotypes` VALUES (22,'flv','Internal',0,0);",
3138 "INSERT INTO `videotypes` VALUES (23,'ogv','Internal',0,0);",
3139 "INSERT INTO `videotypes` VALUES (25,'nut','Internal',0,0);",
3140 "INSERT INTO `videotypes` VALUES (26,'mxf','Internal',0,0);",
3141 "INSERT INTO `videotypes` VALUES (27,'m4v','Internal',0,0);",
3142 "INSERT INTO `videotypes` VALUES (28,'rm','Internal',0,0);",
3143 "INSERT INTO `videotypes` VALUES (29,'ts','Internal',0,0);",
3144 "INSERT INTO `videotypes` VALUES (30,'swf','Internal',0,0);",
3145 "INSERT INTO `videotypes` VALUES (31,'f4v','Internal',0,0);",
3146 "INSERT INTO `videotypes` VALUES (32,'nuv','Internal',0,0);"
3147 
3148 // NOLINTEND(modernize-raw-string-literal)
3149 
3150 };
3151 
3152  QString dbver = "";
3153  if (!performActualUpdate("MythTV", "DBSchemaVer",
3154  updates, "1382", dbver))
3155  return false;
3156 
3157  GetMythDB()->SetHaveSchema(true);
3158 
3159  return true;
3160 }
3161 
3163 {
3164  switch (version)
3165  {
3166  case -1:
3167  return {
3168  R"(DROP TABLE IF EXISTS sportscleanup;)",
3169  R"(DROP TABLE IF EXISTS sportslisting;)",
3170  R"(DROP TABLE IF EXISTS sportsapi;)",
3171  };
3172 
3173  case 0:
3174  return {
3175  R"(ALTER TABLE record ADD COLUMN autoextend
3176  TINYINT UNSIGNED DEFAULT 0;)",
3177  };
3178 
3179  case 1:
3180  return {
3181  R"(CREATE TABLE sportsapi (
3182  id INT UNSIGNED PRIMARY KEY,
3183  provider TINYINT UNSIGNED DEFAULT 0,
3184  name VARCHAR(128) NOT NULL,
3185  key1 VARCHAR(64) NOT NULL,
3186  key2 VARCHAR(64) NOT NULL,
3187  UNIQUE(provider,key1(25),key2(50))
3188  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;)",
3189  R"(INSERT INTO sportsapi
3190  VALUES
3191  ( 1,1,'Major League Baseball','baseball','mlb'),
3192  ( 2,1,'NCAA Men''s Baseball','baseball','college-baseball'),
3193  ( 3,1,'NCAA Women''s Softball','baseball','college-softball'),
3194  ( 4,1,'Olympic Men''s Baseball','baseball','olympics-baseball'),
3195  ( 5,1,'World Baseball Classic','baseball','world-baseball-classic'),
3196  ( 6,1,'Little League Baseball','baseball','llb'),
3197  ( 7,1,'Caribbean Series','baseball','caribbean-series'),
3198  ( 8,1,'Dominican Winter League','baseball','dominican-winter-league'),
3199  ( 9,1,'Venezuelan Winter League','baseball','venezuelan-winter-league'),
3200  ( 10,1,'Mexican League','baseball','mexican-winter-league'),
3201  ( 11,1,'Puerto Rican Winter League','baseball','puerto-rican-winter-league');)",
3202 
3203  R"(INSERT INTO sportsapi
3204  VALUES
3205  ( 20,1,'National Football League','football','nfl'),
3206  ( 21,1,'NCAA - Football','football','college-football'),
3207  ( 22,1,'XFL','football','xfl'),
3208  ( 23,1,'Canadian Football League','football','cfl');)",
3209 
3210  R"(INSERT INTO sportsapi
3211  VALUES
3212  ( 40,1,'National Basketball Association','basketball','nba'),
3213  ( 41,1,'Women''s National Basketball Association','basketball','wnba'),
3214  ( 42,1,'NCAA Men''s Basketball','basketball','mens-college-basketball'),
3215  ( 43,1,'NCAA Women''s Basketball','basketball','womens-college-basketball'),
3216  ( 44,1,'Olympics Men''s Basketball','basketball','mens-olympic-basketball'),
3217  ( 45,1,'Olympics Women''s Basketball','basketball','womens-olympic-basketball'),
3218  ( 46,1,'National Basketball Association Summer League Las Vegas','basketball','nba-summer-las-vegas'),
3219  ( 47,1,'National Basketball Association Summer League Utah','basketball','nba-summer-utah'),
3220  ( 48,1,'National Basketball Association Summer League Orlando','basketball','nba-summer-orlando'),
3221  ( 49,1,'National Basketball Association Summer League Sacramento','basketball','nba-summer-sacramento'),
3222  ( 50,1,'NBA G League','basketball','nba-development'),
3223  ( 51,1,'International Basketball Federation','basketball','fiba');)",
3224 
3225  R"(INSERT INTO sportsapi
3226  VALUES
3227  ( 60,1,'National Hockey League','hockey','nfl'),
3228  ( 61,1,'NCAA Men''s Ice Hockey','hockey','mens-college-hockey'),
3229  ( 62,1,'NCAA Women''s Hockey','hockey','womens-college-hockey'),
3230  ( 63,1,'World Cup of Hockey','hockey','hockey-world-cup'),
3231  ( 64,1,'Men''s Olympic Ice Hockey','hockey','mens-olympic-hockey'),
3232  ( 65,1,'Women''s Olympic Ice Hockey','hockey','womens-olympic-hockey'),
3233  ( 66,1,'NCAA Women''s Field Hockey','field-hockey','womens-college-field-hockey');)",
3234 
3235  R"(INSERT INTO sportsapi
3236  VALUES
3237  ( 80,1,'NCAA Men''s Volleyball','volleyball','mens-college-volleyball'),
3238  ( 81,1,'NCAA Women''s Volleyball','volleyball','womens-college-volleyball');)",
3239 
3240  R"(INSERT INTO sportsapi
3241  VALUES
3242  ( 100,1,'NCAA Men''s Lacrosse','lacrosse','mens-college-lacrosse'),
3243  ( 101,1,'NCAA Women''s Lacrosse','lacrosse','womens-college-lacrosse');)",
3244 
3245  R"(INSERT INTO sportsapi
3246  VALUES
3247  ( 120,1,'NCAA Men''s Water Polo','water-polo','mens-college-water-polo'),
3248  ( 121,1,'NCAA Women''s Water Polo','water-polo','womens-college-water-polo');)",
3249 
3250  R"(INSERT INTO sportsapi
3251  VALUES
3252  ( 200,1,'NCAA Men''s Soccer','soccer','usa.ncaa.m.1'),
3253  ( 201,1,'NCAA Women''s Soccer','soccer','usa.ncaa.w.1'),
3254  ( 202,1,'Major League Soccer','soccer','usa.1'),
3255  ( 203,1,'English Premier League','soccer','eng.1'),
3256  ( 204,1,'English League Championship','soccer','eng.2'),
3257  ( 205,1,'Italian Serie A','soccer','ita.1'),
3258  ( 206,1,'French Ligue 1','soccer','fra.1'),
3259  ( 207,1,'French Ligue 2','soccer','fra.2'),
3260  ( 208,1,'Spanish LaLiga','soccer','esp.1'),
3261  ( 209,1,'German Bundesliga','soccer','ger.1'),
3262  ( 210,1,'German 2. Bundesliga','soccer','ger.2'),
3263  ( 211,1,'Mexican Liga BBVA MX','soccer','mex.1'),
3264  ( 212,1,'Copa Do Brasil','soccer','bra.copa_do_brazil'),
3265  ( 213,1,'CONCACAF Leagues Cup','soccer','concacaf.leagues.cup'),
3266  ( 214,1,'CONCACAF League','soccer','concacaf.league'),
3267  ( 215,1,'CONCACAF Champions League','soccer','concacaf.champions'),
3268  ( 216,1,'CONCACAF Nations League','soccer','concacaf.nations.league'),
3269  ( 217,1,'CONCACAF Gold Cup','soccer','concacaf.gold'),
3270  ( 218,1,'FIFA World Cup','soccer','fifa.world'),
3271  ( 219,1,'FIFA World Cup Qualifying - UEFA','soccer','fifa.worldq.uefa'),
3272  ( 220,1,'FIFA World Cup Qualifying - CONCACAF','soccer','fifa.worldq.concacaf'),
3273  ( 221,1,'FIFA World Cup Qualifying - CONMEBOL','soccer','fifa.worldq.conmebol'),
3274  ( 222,1,'FIFA World Cup Qualifying - AFC','soccer','fifa.worldq.afc'),
3275  ( 223,1,'FIFA World Cup Qualifying - CAF','soccer','fifa.worldq.caf'),
3276  ( 224,1,'FIFA World Cup Qualifying - OFC','soccer','fifa.worldq.ofc'),
3277  ( 225,1,'UEFA Champions League','soccer','uefa.champions'),
3278  ( 226,1,'UEFA Europa League','soccer','uefa.europa'),
3279  ( 227,1,'UEFA Europa Conference League','soccer','uefa.europa.conf'),
3280  ( 228,1,'English Carabao Cup','soccer','eng.league_cup'),
3281  ( 229,1,'USL Championship','soccer','usa.usl.1'),
3282  ( 230,1,'United States NWSL','soccer','usa.nwsl'),
3283  ( 231,1,'FA Women''s Super League','soccer','eng.w.1'),
3284  ( 232,1,'English FA Cup','soccer','eng.fa'),
3285  ( 233,1,'Spanish Copa del Rey','soccer','esp.copa_del_rey'),
3286  ( 234,1,'German DFB Pokal','soccer','ger.dfb_pokal'),
3287  ( 235,1,'Italian Coppa Italia','soccer','ita.coppa_italia'),
3288  ( 236,1,'French Coupe de France','soccer','fra.coupe_de_france'),
3289  ( 237,1,'AFC Champions League','soccer','afc.champions'),
3290  ( 238,1,'Dutch KNVB Beker','soccer','ned.cup'),
3291  ( 239,1,'Dutch Eredivisie','soccer','ned.1'),
3292  ( 240,1,'Portuguese Liga','soccer','por.1'),
3293  ( 241,1,'Russian Premier League','soccer','rus.1'),
3294  ( 242,1,'Mexican Liga de Expansión MX','soccer','mex.2'),
3295  ( 243,1,'Mexican Copa MX','soccer','mex.copa_mx'),
3296  ( 244,1,'Campeones Cup','soccer','campeones.cup'),
3297  ( 245,1,'United States Open Cup','soccer','usa.open'),
3298  ( 246,1,'USL League One','soccer','usa.usl.l1'),
3299  ( 247,1,'Scottish Premiership','soccer','sco.1'),
3300  ( 248,1,'Chinese Super League','soccer','chn.1'),
3301  ( 249,1,'Australian A-League','soccer','aus.1'),
3302  ( 250,1,'International Friendly','soccer','fifa.friendly'),
3303  ( 251,1,'Women''s International Friendly','soccer','fifa.friendly.w'),
3304  ( 252,1,'UEFA European Under-21 Championship Qualifying','soccer','uefa.euro_u21_qual'),
3305  ( 253,1,'FIFA Women''s World Cup','soccer','fifa.wwc'),
3306  ( 254,1,'FIFA Club World Cup','soccer','fifa.cwc'),
3307  ( 255,1,'CONCACAF Gold Cup Qualifying','soccer','concacaf.gold_qual'),
3308  ( 256,1,'CONCACAF Nations League Qualifying','soccer','concacaf.nations.league_qual'),
3309  ( 257,1,'CONCACAF Cup','soccer','concacaf.confederations_playoff'),
3310  ( 258,1,'UEFA Nations League','soccer','uefa.nations'),
3311  ( 259,1,'UEFA European Championship','soccer','uefa.euro'),
3312  ( 260,1,'UEFA European Championship Qualifying','soccer','uefa.euroq'),
3313  ( 261,1,'Copa America','soccer','conmebol.america'),
3314  ( 262,1,'AFC Asian Cup','soccer','afc.asian.cup'),
3315  ( 263,1,'AFC Asian Cup Qualifiers','soccer','afc.cupq'),
3316  ( 264,1,'Africa Cup of Nations qualifying','soccer','caf.nations_qual'),
3317  ( 265,1,'Africa Cup of Nations','soccer','caf.nations'),
3318  ( 266,1,'Africa Nations Championship','soccer','caf.championship'),
3319  ( 267,1,'WAFU Cup of Nations','soccer','wafu.nations'),
3320  ( 268,1,'SheBelieves Cup','soccer','fifa.shebelieves'),
3321  ( 269,1,'FIFA Confederations Cup','soccer','fifa.confederations'),
3322  ( 270,1,'Non-FIFA Friendly','soccer','nonfifa'),
3323  ( 271,1,'Spanish LaLiga 2','soccer','esp.2'),
3324  ( 272,1,'Spanish Supercopa','soccer','esp.super_cup'),
3325  ( 273,1,'Portuguese Liga Promotion/Relegation Playoffs','soccer','por.1.promotion.relegation'),
3326  ( 274,1,'Belgian First Division A - Promotion/Relegation Playoffs','soccer','bel.promotion.relegation'),
3327  ( 275,1,'Belgian First Division A','soccer','bel.1'),
3328  ( 276,1,'Austrian Bundesliga','soccer','aut.1'),
3329  ( 277,1,'Turkish Super Lig','soccer','tur.1'),
3330  ( 278,1,'Austrian Bundesliga Promotion/Relegation Playoffs','soccer','aut.promotion.relegation'),
3331  ( 279,1,'Greek Super League','soccer','gre.1'),
3332  ( 280,1,'Greek Super League Promotion/Relegation Playoffs','soccer','gre.1.promotion.relegation'),
3333  ( 281,1,'Swiss Super League','soccer','sui.1'),
3334  ( 282,1,'Swiss Super League Promotion/Relegation Playoffs','soccer','sui.1.promotion.relegation'),
3335  ( 283,1,'UEFA Women''s Champions League','soccer','uefa.wchampions'),
3336  ( 284,1,'International Champions Cup','soccer','global.champs_cup'),
3337  ( 285,1,'Women''s International Champions Cup','soccer','global.wchamps_cup'),
3338  ( 286,1,'Club Friendly','soccer','club.friendly'),
3339  ( 287,1,'UEFA Champions League Qualifying','soccer','uefa.champions_qual'),
3340  ( 288,1,'UEFA Europa Conference League Qualifying','soccer','uefa.europa.conf_qual'),
3341  ( 289,1,'UEFA Europa League Qualifying','soccer','uefa.europa_qual'),
3342  ( 290,1,'UEFA Super Cup','soccer','uefa.super_cup'),
3343  ( 291,1,'English FA Community Shield','soccer','eng.charity'),
3344  ( 292,1,'Supercoppa Italiana','soccer','ita.super_cup'),
3345  ( 293,1,'French Trophee des Champions','soccer','fra.super_cup'),
3346  ( 294,1,'Dutch Johan Cruyff Shield','soccer','ned.supercup'),
3347  ( 295,1,'Trofeo Joan Gamper','soccer','esp.joan_gamper'),
3348  ( 296,1,'German DFL-Supercup','soccer','ger.super_cup'),
3349  ( 297,1,'Audi Cup','soccer','ger.audi_cup'),
3350  ( 298,1,'Premier League Asia Trophy','soccer','eng.asia_trophy'),
3351  ( 299,1,'Emirates Cup','soccer','friendly.emirates_cup'),
3352  ( 300,1,'Japanese J League World Challenge','soccer','jpn.world_challenge'),
3353  ( 301,1,'SuperCopa Euroamericana','soccer','euroamericana.supercopa'),
3354  ( 302,1,'Men''s Olympic Tournament','soccer','fifa.olympics'),
3355  ( 303,1,'Women''s Olympic Tournament','soccer','fifa.w.olympics'),
3356  ( 304,1,'CONMEBOL Pre-Olympic Tournament','soccer','fifa.conmebol.olympicsq'),
3357  ( 305,1,'CONCACAF Men''s Olympic Qualifying','soccer','fifa.concacaf.olympicsq'),
3358  ( 306,1,'CONCACAF Women''s Olympic Qualifying Tournament','soccer','fifa.w.concacaf.olympicsq'),
3359  ( 307,1,'CONCACAF Women''s Championship','soccer','concacaf.womens.championship'),
3360  ( 308,1,'FIFA Under-20 World Cup','soccer','fifa.world.u20'),
3361  ( 309,1,'FIFA Under-17 World Cup','soccer','fifa.world.u17'),
3362  ( 310,1,'Toulon Tournament','soccer','global.toulon'),
3363  ( 311,1,'UEFA European Under-21 Championship','soccer','uefa.euro_u21'),
3364  ( 312,1,'UEFA European Under-19 Championship','soccer','uefa.euro.u19'),
3365  ( 313,1,'Under-21 International Friendly','soccer','fifa.friendly_u21'),
3366  ( 314,1,'UEFA Women''s European Championship','soccer','uefa.weuro'),
3367  ( 315,1,'German Bundesliga Promotion/Relegation Playoff','soccer','ger.playoff.relegation'),
3368  ( 316,1,'German 2. Bundesliga Promotion/Relegation Playoffs','soccer','ger.2.promotion.relegation'),
3369  ( 317,1,'English Women''s FA Cup','soccer','eng.w.fa'),
3370  ( 318,1,'English Women''s FA Community Shield','soccer','eng.w.charity'),
3371  ( 319,1,'English EFL Trophy','soccer','eng.trophy'),
3372  ( 320,1,'English National League','soccer','eng.5'),
3373  ( 321,1,'English League One','soccer','eng.3'),
3374  ( 322,1,'English League Two','soccer','eng.4'),
3375  ( 323,1,'Scottish Cup','soccer','sco.tennents'),
3376  ( 324,1,'Scottish League Cup','soccer','sco.cis'),
3377  ( 325,1,'Scottish Premiership Promotion/Relegation Playoffs','soccer','sco.1.promotion.relegation'),
3378  ( 326,1,'Scottish League One','soccer','sco.3'),
3379  ( 327,1,'Scottish Championship','soccer','sco.2'),
3380  ( 328,1,'Scottish Championship Promotion/Relegation Playoffs','soccer','sco.2.promotion.relegation'),
3381  ( 329,1,'Scottish League One Promotion/Relegation Playoffs','soccer','sco.3.promotion.relegation'),
3382  ( 330,1,'Scottish League Two Promotion/Relegation Playoffs','soccer','sco.4.promotion.relegation'),
3383  ( 331,1,'Scottish League Two','soccer','sco.4'),
3384  ( 332,1,'Scottish League Challenge Cup','soccer','sco.challenge'),
3385  ( 333,1,'Dutch Eredivisie Promotion/Relegation Playoffs','soccer','ned.playoff.relegation'),
3386  ( 334,1,'Dutch Eredivisie Cup','soccer','ned.w.eredivisie_cup'),
3387  ( 335,1,'Dutch Keuken Kampioen Divisie','soccer','ned.2'),
3388  ( 336,1,'Dutch Tweede Divisie','soccer','ned.3'),
3389  ( 337,1,'Dutch KNVB Beker Vrouwen','soccer','ned.w.knvb_cup'),
3390  ( 338,1,'Dutch Vrouwen Eredivisie','soccer','ned.w.1'),
3391  ( 339,1,'Italian Serie B','soccer','ita.2'),
3392  ( 340,1,'French Ligue 1 Promotion/Relegation Playoffs','soccer','fra.1.promotion.relegation'),
3393  ( 341,1,'French Ligue 2 Promotion/Relegation Playoffs','soccer','fra.2.promotion.relegation'),
3394  ( 342,1,'Swedish Allsvenskan','soccer','swe.1'),
3395  ( 343,1,'Swedish Allsvenskanliga Promotion/Relegation Playoffs','soccer','swe.1.promotion.relegation'),
3396  ( 344,1,'Danish Superliga','soccer','den.1'),
3397  ( 345,1,'Danish SAS-Ligaen Promotion/Relegation Playoffs','soccer','den.promotion.relegation'),
3398  ( 346,1,'Romanian Liga 1 Promotion/Relegation Playoffs','soccer','rou.1.promotion.relegation'),
3399  ( 347,1,'Romanian Liga 1','soccer','rou.1'),
3400  ( 348,1,'Norwegian Eliteserien Promotion/Relegation Playoffs','soccer','nor.1.promotion.relegation'),
3401  ( 349,1,'Norwegian Eliteserien','soccer','nor.1'),
3402  ( 350,1,'Maltese Premier League','soccer','mlt.1'),
3403  ( 351,1,'Israeli Premier League','soccer','isr.1'),
3404  ( 352,1,'Irish Premier Division Promotion/Relegation Playoffs','soccer','ir1.1.promotion.relegation'),
3405  ( 353,1,'Irish Premier Division','soccer','irl.1'),
3406  ( 354,1,'Welsh Premier League','soccer','wal.1'),
3407  ( 355,1,'Northern Irish Premiership','soccer','nir.1'),
3408  ( 356,1,'CONMEBOL Copa Libertadores','soccer','conmebol.libertadores'),
3409  ( 357,1,'CONMEBOL Copa Sudamericana','soccer','conmebol.sudamericana'),
3410  ( 358,1,'CONMEBOL Recopa Sudamericana','soccer','conmebol.recopa'),
3411  ( 359,1,'Argentine Liga Profesional de Fútbol','soccer','arg.1'),
3412  ( 360,1,'Copa Argentina','soccer','arg.copa'),
3413  ( 361,1,'Argentine Copa de la Liga Profesional','soccer','arg.copa_lpf'),
3414  ( 362,1,'Argentine Copa de la Superliga','soccer','arg.copa_de_la_superliga'),
3415  ( 363,1,'Argentine Trofeo de Campeones de la Superliga','soccer','arg.trofeo_de_la_campeones'),
3416  ( 364,1,'Argentine Supercopa','soccer','arg.supercopa'),
3417  ( 365,1,'Argentine Nacional B','soccer','arg.2'),
3418  ( 366,1,'Argentine Primera B','soccer','arg.3'),
3419  ( 367,1,'Argentine Primera C','soccer','arg.4'),
3420  ( 368,1,'Argentine Primera D','soccer','arg.5'),
3421  ( 369,1,'Supercopa Do Brazil','soccer','bra.supercopa_do_brazil'),
3422  ( 370,1,'Brazilian Serie A','soccer','bra.1'),
3423  ( 371,1,'Brazilian Serie B','soccer','bra.2'),
3424  ( 372,1,'Brazilian Serie C','soccer','bra.3'),
3425  ( 373,1,'Copa Do Nordeste','soccer','bra.copa_do_nordeste'),
3426  ( 374,1,'Brazilian Campeonato Carioca','soccer','bra.camp.carioca'),
3427  ( 375,1,'Brazilian Campeonato Paulista','soccer','bra.camp.paulista'),
3428  ( 376,1,'Brazilian Campeonato Gaucho','soccer','bra.camp.gaucho'),
3429  ( 377,1,'Brazilian Campeonato Mineiro','soccer','bra.camp.mineiro'),
3430  ( 378,1,'Chilean Primera División','soccer','chi.1'),
3431  ( 379,1,'Copa Chile','soccer','chi.copa_chi'),
3432  ( 380,1,'International U20 Friendly','soccer','fifa.u20.friendly'),
3433  ( 381,1,'Segunda División de Chile','soccer','chi.2'),
3434  ( 382,1,'Chilean Supercopa','soccer','chi.super_cup'),
3435  ( 383,1,'Uruguayan Primera Division','soccer','uru.1'),
3436  ( 384,1,'Segunda División de Uruguay','soccer','uru.2'),
3437  ( 385,1,'Colombian SuperLiga','soccer','col.superliga'),
3438  ( 386,1,'Colombian Primera A','soccer','col.1'),
3439  ( 387,1,'Colombian Primera B','soccer','col.2'),
3440  ( 388,1,'Peruvian Supercopa','soccer','per.supercopa'),
3441  ( 389,1,'Copa Colombia','soccer','col.copa'),
3442  ( 390,1,'Peruvian Primera Profesional','soccer','per.1'),
3443  ( 391,1,'Paraguayan Primera Division','soccer','par.1'),
3444  ( 392,1,'Ecuadoran Primera A','soccer','ecu.1'),
3445  ( 393,1,'Ecuadoran Supercopa','soccer','ecu.supercopa'),
3446  ( 394,1,'Ecuador Serie B','soccer','ecu.2'),
3447  ( 395,1,'Venezuelan Primera Profesional','soccer','ven.1'),
3448  ( 396,1,'United States NWSL Challenge Cup','soccer','usa.nwsl.cup'),
3449  ( 397,1,'Segunda División de Venezuela','soccer','ven.2'),
3450  ( 398,1,'Bolivian Liga Profesional','soccer','bol.1'),
3451  ( 399,1,'Mexican Supercopa MX','soccer','mex.supercopa'),
3452  ( 400,1,'Mexican Campeon de Campeones','soccer','mex.campeon'),
3453  ( 401,1,'CONCACAF Champions Cup','soccer','concacaf.champions_cup'),
3454  ( 402,1,'CONCACAF U23 Tournament','soccer','concacaf.u23'),
3455  ( 403,1,'Honduran Primera Division','soccer','hon.1'),
3456  ( 404,1,'Costa Rican Primera Division','soccer','crc.1'),
3457  ( 405,1,'Jamaican Premier League','soccer','jam.1'),
3458  ( 406,1,'Guatemalan Liga Nacional','soccer','gua.1'),
3459  ( 407,1,'Australian W-League','soccer','aus.w.1'),
3460  ( 408,1,'Salvadoran Primera Division','soccer','slv.1'),
3461  ( 409,1,'AFF Cup','soccer','aff.championship'),
3462  ( 410,1,'AFC Cup','soccer','afc.cup'),
3463  ( 411,1,'SAFF Championship','soccer','afc.saff.championship'),
3464  ( 412,1,'Chinese Super League Promotion/Relegation Playoffs','soccer','chn.1.promotion.relegation'),
3465  ( 413,1,'Japanese J League','soccer','jpn.1'),
3466  ( 414,1,'Indonesian Liga 1','soccer','idn.1'),
3467  ( 415,1,'Indian Super League','soccer','ind.1'),
3468  ( 416,1,'Indian I-League','soccer','ind.2'),
3469  ( 417,1,'Malaysian Super League','soccer','mys.1'),
3470  ( 418,1,'Singaporean Premier League','soccer','sgp.1'),
3471  ( 419,1,'Thai League 1','soccer','tha.1'),
3472  ( 420,1,'Bangabandhu Cup','soccer','bangabandhu.cup'),
3473  ( 421,1,'COSAFA Cup','soccer','caf.cosafa'),
3474  ( 422,1,'CAF Champions League','soccer','caf.champions'),
3475  ( 423,1,'South African Premiership Promotion/Relegation Playoffs','soccer','rsa.1.promotion.relegation'),
3476  ( 424,1,'CAF Confederations Cup','soccer','caf.confed'),
3477  ( 425,1,'South African Premiership','soccer','rsa.1'),
3478  ( 426,1,'South African First Division','soccer','rsa.2'),
3479  ( 427,1,'South African Telkom Knockout','soccer','rsa.telkom_knockout'),
3480  ( 428,1,'South African Nedbank Cup','soccer','rsa.nedbank'),
3481  ( 429,1,'MTN 8 Cup','soccer','rsa.mtn8'),
3482  ( 430,1,'Nigerian Professional League','soccer','nga.1'),
3483  ( 431,1,'Ghanaian Premier League','soccer','gha.1'),
3484  ( 432,1,'Zambian Super League','soccer','zam.1'),
3485  ( 433,1,'Kenyan Premier League','soccer','ken.1'),
3486  ( 434,1,'Zimbabwean Premier Soccer League','soccer','zim.1'),
3487  ( 435,1,'Ugandan Premier League','soccer','uga.1'),
3488  ( 436,1,'Misc. U.S. Soccer Games','soccer','generic.ussf');)",
3489 
3490  R"(INSERT INTO sportsapi
3491  VALUES
3492  (1000,2,'Major League Baseball','baseball','mlb');)",
3493 
3494  R"(CREATE TABLE sportslisting (
3495  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
3496  api INT UNSIGNED NOT NULL,
3497  title VARCHAR(128) NOT NULL
3498  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;)",
3499 
3500  R"(INSERT INTO sportslisting (api,title)
3501  VALUES
3502  ( 1, '\\A(?:MLB Baseball)\\z'),
3503  ( 1, '\\A(?:Béisbol MLB)\\z'),
3504  ( 1, '\\A(?:MLB All-Star Game)\\z'),
3505  ( 1, '\\A(?:World Series)\\z'),
3506  ( 2, '\\A(?:College Baseball)\\z'),
3507  ( 2, '\\A(?:College World Series)\\z'),
3508  ( 3, '\\A(?:College Softball)\\z'),
3509  ( 4, '\\A(?:Women''s College World Series)\\z'),
3510  ( 10, '\\A(?:Béisbol Liga Mexicana)\\z'),
3511 
3512  ( 20, '\\A(?:N\\w+ Football)\\z'),
3513  ( 20, '\\A(?:Super Bowl( [CLXVI]+)?)\\z'),
3514  ( 20, '\\A(?:Fútbol Americano NFL)\\z'),
3515  ( 21, '\\A(?:College Football)\\z'),
3516  ( 21, '\\A(?:\\w+ Bowl)\\z'),
3517  ( 21, '\\A(?:Fútbol Americano de Universitario)\\z'),
3518 
3519  ( 40, '\\A(?:NBA Basketball)\\z'),
3520  ( 40, '\\A(?:NBA Finals)\\z'),
3521  ( 41, '\\A(?:WNBA Basketball)\\z'),
3522  ( 41, '\\A(?:WNBA Finals)\\z'),
3523  ( 42, '\\A(?:College Basketball)\\z'),
3524  ( 42, '\\A(?:NCAA Basketball Tournament)\\z'),
3525  ( 43, '\\A(?:Women''s College Basketball)\\z'),
3526  ( 43, '\\A(?:NCAA Women''s Basketball Tournament)\\z'),
3527 
3528  ( 60, '\\A(?:NHL Hockey)\\z'),
3529  ( 60, '\\A(?:NHL Winter Classic)\\z'),
3530  ( 60, '\\A(?:NHL \\w+ Conference Final)\\z'),
3531  ( 60, '\\A(?:Stanley Cup Finals)\\z'),
3532  ( 61, '\\A(?:College Hockey)\\z'),
3533  ( 61, '\\A(?:Frozen Four)\\z'),
3534  ( 62, '\\A(?:Women''s College Hockey)\\z'),
3535  ( 66, '\\A(?:College Field Hockey)\\z'),
3536 
3537  ( 80, '\\A(?:College Volleyball)\\z'),
3538  ( 81, '\\A(?:Women''s College Volleyball)\\z'),
3539 
3540  ( 100, '\\A(?:College Lacrosse)\\z'),
3541  ( 101, '\\A(?:Women''s College Lacrosse)\\z'),
3542 
3543  ( 120, '\\A(?:College Water Polo)\\z'),
3544  ( 121, '\\A(?:Women''s College Water Polo)\\z'),
3545 
3546  ( 200, '\\A(?:College Soccer)\\z'),
3547  ( 201, '\\A(?:Women''s College Soccer)\\z'),
3548  ( 202, '\\A(?:MLS Soccer|Fútbol MLS)\\z'),
3549  ( 203, '\\A(?:(Premier League|EPL) Soccer)\\z'),
3550  ( 203, '\\A(?:English Premier League)\\z'),
3551  ( 203, '\\A(?:Fútbol Premier League)\\z'),
3552  ( 205, '\\A(?:Italian Serie A Soccer)\\z'),
3553  ( 339, '\\A(?:Italian Serie B Soccer)\\z'),
3554  ( 206, '\\A(?:French Ligue 1 Soccer|Fútbol Ligue 1|Fútbol Liga 1)\\z'),
3555  ( 207, '\\A(?:French Ligue 2 Soccer|Fútbol Ligue 2|Fútbol Liga 2)\\z'),
3556  ( 208, '\\A(?:Fútbol LaLiga)\\z'),
3557  ( 208, '\\A(?:Fútbol Español Primera Division)\\z'),
3558  ( 208, '\\A(?:Spanish Primera Division Soccer)\\z'),
3559  ( 209, '\\A(?:(German )?Bundesliga Soccer)\\z'),
3560  ( 209, '\\A(?:Fútbol Bundesliga)\\z'),
3561  ( 209, '\\A(?:Fútbol Copa de Alemania)\\z'),
3562  ( 210, '\\A(?:German 2. Bundesliga Soccer)\\z'),
3563  ( 211, '\\A(?:Fútbol Mexicano Primera División|Fútbol Mexicano Liga Premier|Fútbol Mexicano)\\z'),
3564  ( 211, '\\A(?:Mexico Primera Division Soccer)\\z'),
3565  ( 212, '\\A(?:Copa do Brazil Soccer)\\z'),
3566  ( 214, '\\A(?:CONCACAF League Soccer)\\z'),
3567  ( 215, '\\A(?:CONCACAF Champions League Soccer)\\z'),
3568  ( 216, '\\A(?:CONCACAF Nations League Soccer)\\z'),
3569  ( 217, '\\A(?:CONCACAF Gold Cup Soccer)\\z'),
3570  ( 218, '\\A(?:FIFA World Cup Soccer)\\z'),
3571  ( 219, '\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\z'),
3572  ( 220, '\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\z'),
3573  ( 221, '\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\z'),
3574  ( 222, '\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\z'),
3575  ( 223, '\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\z'),
3576  ( 224, '\\A(?:FIFA World Cup Qualifying( Soccer)?|FIFA Eliminatorias Copa Mundial)\\z'),
3577  ( 225, '\\A(?:Fútbol UEFA Champions League)\\z'),
3578  ( 225, '\\A(?:UEFA Champions League Soccer)\\z'),
3579  ( 226, '\\A(?:Fútbol UEFA Europa League)\\z'),
3580  ( 229, '\\A(?:Fútbol USL Championship)\\z'),
3581  ( 229, '\\A(?:USL Championship Soccer)\\z'),
3582  ( 230, '\\A(?:NWSL Soccer)\\z'),
3583  ( 231, '\\A(?:FA Women''s Super League)\\z'),
3584  ( 242, '\\A(?:Fútbol Mexicano Liga Expansión)\\z'),
3585  ( 258, '\\A(?:UEFA Nations League Soccer)\\z'),
3586  ( 258, '\\A(?:Fútbol UEFA Nations League)\\z'),
3587  ( 271, '\\A(?:Fútbol Español Segunda Division)\\z'),
3588  ( 277, '\\A(?:Fútbol Turco Superliga)\\z'),
3589  ( 277, '\\A(?:Turkish Super Lig Soccer)\\z'),
3590  ( 279, '\\A(?:Superleague Greek Soccer)\\z'),
3591  ( 356, '\\A(?:Fútbol CONMEBOL Libertadores)\\z'),
3592  ( 357, '\\A(?:Fútbol CONMEBOL Sudamericana)\\z'),
3593  ( 359, '\\A(?:Fútbol Argentino Primera División)\\z'),
3594  ( 360, '\\A(?:Fútbol Copa Argentina)\\z'),
3595  ( 365, '\\A(?:Fútbol Argentino Primera Nacional( B)?)\\z'),
3596  ( 366, '\\A(?:Fútbol Argentino Primera B)\\z'),
3597  ( 367, '\\A(?:Fútbol Argentino Primera C)\\z'),
3598  ( 368, '\\A(?:Fútbol Argentino Primera D)\\z'),
3599  ( 386, '\\A(?:Fútbol Columbiano Primera División)\\z'),
3600  ( 403, '\\A(?:Fútbol Hondureño Primera División)\\z'),
3601  ( 404, '\\A(?:Fútbol Costarricense Primera División)\\z'),
3602 
3603  (1000, '\\A(?:MLB Baseball)\\z'),
3604  (1000, '\\A(?:Béisbol MLB)\\z');
3605  )",
3606 
3607  R"(CREATE TABLE sportscleanup (
3608  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
3609  provider TINYINT UNSIGNED DEFAULT 0,
3610  weight INT UNSIGNED NOT NULL,
3611  key1 VARCHAR(256) NOT NULL,
3612  name VARCHAR(256) NOT NULL,
3613  pattern VARCHAR(256) NOT NULL,
3614  nth TINYINT UNSIGNED NOT NULL,
3615  replacement VARCHAR(128) NOT NULL
3616  ) ENGINE=MyISAM DEFAULT CHARSET=utf8;)",
3617 
3618  // Sigh. It would be nice if these patterns could use the
3619  // '\b' boundary matching sequence in the first part of
3620  // the match, but the period is not part of the set of
3621  // characters that make up a word, so trying to optionally
3622  // match the final period in the string 'F.C. Foo' with
3623  // the pattern '\.?\b' always fails because period and
3624  // space are both non-word characters and therefore there
3625  // is no word boundary between them. This will always
3626  // match on 'F.C' and never on 'F.C.'.
3627  //
3628  // I have also seen a TV listing where the team name was
3629  // 'F.C.Something' without a space, so the first part of
3630  // these patterns doesn't require a following space in
3631  // order to match. These patterns are case sensitive, so
3632  // the first part shouldn't match part of an ordinary team
3633  // name unless the team name is in all caps.
3634  R"A(INSERT INTO sportscleanup (provider,weight,key1,name,pattern,nth,replacement)
3635  VALUES
3636  (1,1000,'soccer', '(SE)', '\\(\\w+\\)', 0, ''),
3637  (1,1000,'soccer', 'AFC', '\\AA\\.?F\\.?C\\.?|\\bA\\.?F\\.?C\\.?\\Z', 0, ''),
3638  (1,1000,'soccer', 'AC etc.', '\\AA\\.?[AC]\\.?|\\bA\\.?[AC]\\.?\\Z', 0, ''),
3639  (1,1000,'soccer', 'BK', '\\AB\\.?K\\.?|\\bB\\.?K\\.?\\Z', 0, ''),
3640  (1,1000,'soccer', 'BSC', '\\AB\\.?S\\.?C\\.?|\\bB\\.?S\\.?C\\.?\\Z', 0, ''),
3641  (1,1000,'soccer', 'CSyD', '\\AC\\.?S\\.?( y )?D\\.?|\\bC\\.?S\\.?( y )?D\\.?\\Z', 0, ''),
3642  (1,1000,'soccer', 'CD etc.', '\\AC\\.?[ADFRS]\\.?|\\bC\\.?[ADFRS]\\.?\\Z', 0, ''),
3643  (1,1000,'soccer', 'FC', '\\AF\\.?C\\.?|\\bF\\.?C\\.?\\Z', 0, ''),
3644  (1,1000,'soccer', 'HSC', '\\AH\\.?S\\.?C\\.?|\\bH\\.?S\\.?C\\.?\\Z', 0, ''),
3645  (1,1000,'soccer', 'RC etc.', '\\AR\\.?[BC]\\.?|\\bR\\.?[BC]\\.?\\Z', 0, ''),
3646  (1,1000,'soccer', 'SC etc.', '\\AS\\.?[ACV]\\.?|\\bS\\.?[ACV]\\.?\\Z', 0, ''),
3647  (1,1000,'soccer', 'TSG', '\\AT\\.?S\\.?G\\.?|\\bT\\.?S\\.?G\\.?\\Z', 0, ''),
3648  (1,1000,'soccer', 'VFB etc.', '\\AV\\.?F\\.?[BL]\\.?|\\bV\\.?F\\.?[BL]\\.?\\Z', 0, ''),
3649  (1,2000,'all', '', 'Inglaterra', 0, 'England'),
3650  (1,2000,'all', '', 'Munchen', 0, 'Munich');
3651  )A",
3652  };
3653  case 2:
3654  return {
3655  // More TV listing name to API name mappings for college
3656  // basketball. Using a weight of 1000 for specific
3657  // changes and 1100 for general changes.
3658  R"A(INSERT INTO sportscleanup (provider,weight,key1,name,pattern,nth,replacement)
3659  VALUES
3660  (1,1100,'basketball', 'Cal State', 'Cal State', 0, 'CSU'),
3661  (1,1000,'basketball', 'Grambling', 'Grambling State', 0, 'Grambling'),
3662  (1,1000,'basketball', 'Hawaii', 'Hawaii', 0, 'Hawai''i'),
3663  (1,1000,'basketball', 'LIU', 'LIU', 0, 'Long Island University'),
3664  (1,1100,'basketball', 'Loyola', 'Loyola-', 0, 'Loyola '),
3665  (1,1000,'basketball', 'Loyola (Md.)', 'Loyola \(Md.\)', 0, 'Loyola (MD)'),
3666  (1,1000,'basketball', 'McNeese', 'McNeese State', 0, 'McNeese'),
3667  (1,1000,'basketball', 'Miami (OH)', 'Miami \(Ohio\)', 0, 'Miami (OH)'),
3668  (1,1000,'basketball', 'UAB', 'Alabama-Birmingham', 0, 'UAB'),
3669  (1,1000,'basketball', 'UConn', 'Connecticut', 0, 'UConn'),
3670  (1,1000,'basketball', 'UMass', 'Massachusetts', 0, 'UMass'),
3671  (1,1100,'basketball', 'UNC', 'UNC-', 0, 'UNC '),
3672  (1,1000,'basketball', 'UTEP', 'Texas-El Paso', 0, 'UTEP'),
3673  (1,1100,'basketball', 'Texas', 'Texas-', 0, 'UT '),
3674  (1,1000,'basketball', 'Chattanooga', 'UT-Chattanooga', 0, 'Chattanooga'),
3675  (1,1100,'basketball', 'UT', 'UT-', 0, 'UT ');
3676  )A",
3677  };
3678 
3679  default:
3680  return {};
3681  }
3682 }
3683 
3684 /* vim: set expandtab tabstop=4 shiftwidth=4: */
MSqlQuery::isActive
bool isActive(void) const
Definition: mythdbcon.h:215
MSqlQuery::next
bool next(void)
Wrap QSqlQuery::next() so we can display the query results.
Definition: mythdbcon.cpp:812
MSqlQuery
QSqlQuery wrapper that fetches a DB connection from the connection pool.
Definition: mythdbcon.h:127
MSqlQuery::size
int size(void) const
Definition: mythdbcon.h:214
DBUtil::CheckTableColumnExists
static bool CheckTableColumnExists(const QString &tableName, const QString &columnName)
Checks for the presence of a column in a table in the current database.
Definition: dbutil.cpp:889
dbutil.h
SchemaUpgradeWizard::Get
static SchemaUpgradeWizard * Get(const QString &DBSchemaSetting, const QString &appName, const QString &upgradeSchemaVal)
Instead of creating a new wizard, use the existing one for its DB backup file & results and expert se...
Definition: schemawizard.cpp:54
mythdb.h
MythVideoProfileItem
Definition: mythvideoprofile.h:51
DEINT_QUALITY_MEDIUM
static constexpr const char * DEINT_QUALITY_MEDIUM
Definition: mythvideoprofile.h:19
SchemaUpgradeWizard::Compare
int Compare(void)
How many schema versions old is the DB?
Definition: schemawizard.cpp:100
MSqlQuery::lastInsertId
QVariant lastInsertId()
Return the id of the last inserted row.
Definition: mythdbcon.cpp:935
DEINT_QUALITY_HIGH
static constexpr const char * DEINT_QUALITY_HIGH
Definition: mythvideoprofile.h:20
MSqlQuery::value
QVariant value(int i) const
Definition: mythdbcon.h:204
MSqlQuery::exec
bool exec(void)
Wrap QSqlQuery::exec() so we can display SQL.
Definition: mythdbcon.cpp:618
SchemaUpgradeWizard::PromptForUpgrade
enum MythSchemaUpgrade PromptForUpgrade(const char *name, bool upgradeAllowed, bool upgradeIfNoUI, int minDBMSmajor=0, int minDBMSminor=0, int minDBMSpoint=0)
Query user, to prevent silent, automatic database upgrades.
Definition: schemawizard.cpp:224
videodbcheck.h
LOG
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Definition: mythlogging.h:39
GetMythDB
MythDB * GetMythDB(void)
Definition: mythdb.cpp:50
db_sd_notify
static void db_sd_notify(const char *)
Definition: dbcheck.cpp:41
MYTH_SCHEMA_EXIT
@ MYTH_SCHEMA_EXIT
Definition: schemawizard.h:16
MYTH_SCHEMA_USE_EXISTING
@ MYTH_SCHEMA_USE_EXISTING
Definition: schemawizard.h:19
InitializeMythSchema
bool InitializeMythSchema(void)
command to get the the initial database layout from an empty database:
Definition: dbcheck.cpp:1254
Decoder
Definition: decoder.h:70
MythVideoProfileItem::SetProfileID
void SetProfileID(uint Id)
Definition: mythvideoprofile.cpp:23
mythlogging.h
hardwareprofile.scan.profile
profile
Definition: scan.py:97
UpgradeTVDatabaseSchema
bool UpgradeTVDatabaseSchema(const bool upgradeAllowed, const bool upgradeIfNoUI, [[maybe_unused]] const bool informSystemd)
Called from outside dbcheck.cpp to update the schema.
Definition: dbcheck.cpp:362
dbcheck.h
getRecordingExtenderDbInfo
DBUpdates getRecordingExtenderDbInfo(int version)
Definition: dbcheck.cpp:3162
MSqlQuery::InitCon
static MSqlQueryInfo InitCon(ConnectionReuse _reuse=kNormalConnection)
Only use this in combination with MSqlQuery constructor.
Definition: mythdbcon.cpp:550
compat.h
MythDB::DBError
static void DBError(const QString &where, const MSqlQuery &query)
Definition: mythdb.cpp:225
DEINT_QUALITY_DRIVER
static constexpr const char * DEINT_QUALITY_DRIVER
Definition: mythvideoprofile.h:22
mythdbcheck.h
tryUpgradeTVDatabaseSchema
static bool tryUpgradeTVDatabaseSchema(bool upgradeAllowed, bool upgradeIfNoUI, bool informSystemd)
Definition: dbcheck.cpp:410
mythvideoprofile.h
gCoreContext
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
Definition: mythcorecontext.cpp:55
DBUtil::TryLockSchema
static bool TryLockSchema(MSqlQuery &query, uint timeout_secs)
Try to get a lock on the table schemalock.
Definition: dbutil.cpp:846
DEINT_QUALITY_LOW
static constexpr const char * DEINT_QUALITY_LOW
Definition: mythvideoprofile.h:18
MythVideoProfileItem::Set
void Set(const QString &Value, const QString &Data)
Definition: mythvideoprofile.cpp:28
performUpdateSeries
bool performUpdateSeries(const QString &component, const DBUpdates &updates)
Definition: dbcheckcommon.cpp:80
MYTH_SCHEMA_UPGRADE
@ MYTH_SCHEMA_UPGRADE
Definition: schemawizard.h:18
UpdateDBVersionNumber
bool UpdateDBVersionNumber(const QString &component, const QString &versionkey, const QString &newnumber, QString &dbver)
Updates the schema version stored in the database.
Definition: dbcheckcommon.cpp:28
MINIMUM_DBMS_VERSION
#define MINIMUM_DBMS_VERSION
Definition: dbcheck.cpp:27
MYTH_SCHEMA_ERROR
@ MYTH_SCHEMA_ERROR
Definition: schemawizard.h:17
MythVideoProfileItem::Clear
void Clear()
Definition: mythvideoprofile.cpp:18
recordinginfo.h
DEINT_QUALITY_SHADER
static constexpr const char * DEINT_QUALITY_SHADER
Definition: mythvideoprofile.h:21
performActualUpdate
bool performActualUpdate(const QString &component, const QString &versionkey, const DBUpdates &updates, const QString &version, QString &dbver)
Definition: dbcheckcommon.cpp:113
mythcorecontext.h
cardutil.h
schemawizard.h
SchemaUpgradeWizard
Provides UI and helper functions for DB Schema updates.
Definition: schemawizard.h:25
doUpgradeTVDatabaseSchema
static bool doUpgradeTVDatabaseSchema(void)
This is called by UpgradeTVDatabaseSchema() to actually upgrade the schema to what MythTV expects.
Definition: dbcheck.cpp:466
MSqlQuery::bindValue
void bindValue(const QString &placeholder, const QVariant &val)
Add a single binding.
Definition: mythdbcon.cpp:888
DBUtil::IsNewDatabase
static bool IsNewDatabase(void)
Returns true for a new (empty) database.
Definition: dbutil.cpp:74
MythCoreContext::ActivateSettingsCache
void ActivateSettingsCache(bool activate=true)
Definition: mythcorecontext.cpp:837
DBUtil::UnlockSchema
static void UnlockSchema(MSqlQuery &query)
Definition: dbutil.cpp:853
currentDatabaseVersion
const QString currentDatabaseVersion
Definition: dbcheck.cpp:29
recordingprofile.h
DBUpdates
std::vector< std::string > DBUpdates
Definition: mythdbcheck.h:9
recordingrule.h
nv_python_libs.bbciplayer.bbciplayer_api.version
string version
Definition: bbciplayer_api.py:77
uint
unsigned int uint
Definition: freesurround.h:24
MythCoreContext::GetSetting
QString GetSetting(const QString &key, const QString &defaultval="")
Definition: mythcorecontext.cpp:902
MSqlQuery::prepare
bool prepare(const QString &query)
QSqlQuery::prepare() is not thread safe in Qt <= 3.3.2.
Definition: mythdbcon.cpp:837