emit disconnected();
}
+void Database::readAnimeData(SqlResultIteratorInterface &result, Anime &data, int offset)
+{
+ data.aid = result.value(offset++).toInt();
+ data.entryAdded = result.value(offset++).toDateTime();
+ data.anidbUpdate = result.value(offset++).toDateTime();
+ data.entryUpdate = result.value(offset++).toDateTime();
+ data.myUpdate = result.value(offset++).toDateTime();
+ data.titleEnglish = result.value(offset++).toString();
+ data.titleRomaji = result.value(offset++).toString();
+ data.titleKanji = result.value(offset++).toString();
+ data.description = result.value(offset++).toString();
+ data.year = result.value(offset++).toString();
+ data.startDate = result.value(offset++).toDateTime();
+ data.endDate = result.value(offset++).toDateTime();
+ data.type = result.value(offset++).toString();
+ data.totalEpisodeCount = result.value(offset++).toInt();
+ data.highestEpno = result.value(offset++).toInt();
+ data.rating = result.value(offset++).toDouble();
+ data.votes = result.value(offset++).toInt();
+ data.tempRating = result.value(offset++).toDouble();
+ data.tempVotes = result.value(offset++).toInt();
+ data.myVote = result.value(offset++).toDouble();
+ data.myVoteDate = result.value(offset++).toDateTime();
+ data.myTempVote = result.value(offset++).toDouble();
+ data.myTempVoteDate = result.value(offset++).toDateTime();
+}
+
+void Database::readEpisodeData(SqlResultIteratorInterface &result, Episode &data, int offset)
+{
+ data.eid = result.value(offset++).toInt();
+ data.aid = result.value(offset++).toInt();
+ data.entryAdded = result.value(offset++).toDateTime();
+ data.anidbUpdate = result.value(offset++).toDateTime();
+ data.entryUpdate = result.value(offset++).toDateTime();
+ data.myUpdate = result.value(offset++).toDateTime();
+ data.epno = result.value(offset++).toInt();
+ data.titleEnglish = result.value(offset++).toString();
+ data.titleRomaji = result.value(offset++).toString();
+ data.titleKanji = result.value(offset++).toString();
+ data.length = result.value(offset++).toInt();
+ data.airdate = result.value(offset++).toDateTime();
+ data.state = result.value(offset++).toInt();
+ data.type = result.value(offset++).toString();
+ data.recap = result.value(offset++).toBool();
+ data.rating = result.value(offset++).toDouble();
+ data.votes = result.value(offset++).toInt();
+ data.myVote = result.value(offset++).toDouble();
+ data.myVoteDate = result.value(offset++).toDateTime();
+}
+
+void Database::readFileData(SqlResultIteratorInterface &result, File &data, int offset)
+{
+ data.fid = result.value(offset++).toInt();
+ data.eid = result.value(offset++).toInt();
+ data.aid = result.value(offset++).toInt();
+ data.gid = result.value(offset++).toInt();
+ data.entryAdded = result.value(offset++).toDateTime();
+ data.anidbUpdate = result.value(offset++).toDateTime();
+ data.entryUpdate = result.value(offset++).toDateTime();
+ data.myUpdate = result.value(offset++).toDateTime();
+ data.ed2k = result.value(offset++).toByteArray();
+ data.size = result.value(offset++).toLongLong();
+ data.length = result.value(offset++).toInt();
+ data.extension = result.value(offset++).toString();
+ data.groupName = result.value(offset++).toString();
+ data.groupNameShort = result.value(offset++).toString();
+ data.crc = result.value(offset++).toString();
+ data.releaseDate = result.value(offset++).toDateTime();
+ data.version = result.value(offset++).toInt();
+ data.censored = result.value(offset++).toBool();
+ data.source = result.value(offset++).toString();
+ data.qualityId = result.value(offset++).toInt();
+ data.quality = result.value(offset++).toString();
+ data.resolution = result.value(offset++).toString();
+ data.videoCodec = result.value(offset++).toString();
+ data.audioCodec = result.value(offset++).toString();
+ data.audioLanguage = result.value(offset++).toString();
+ data.subtitleLanguage = result.value(offset++).toString();
+ data.aspectRatio = result.value(offset++).toString();
+ data.myWatched = result.value(offset++).toDateTime();
+ data.myState = result.value(offset++).toInt();
+ data.myFileState = result.value(offset++).toInt();
+ data.myStorage = result.value(offset++).toString();
+ data.mySource = result.value(offset++).toString();
+ data.myOther = result.value(offset++).toString();
+}
+
+void Database::readFileLocationData(SqlResultIteratorInterface &result, FileLocation &data, int offset)
+{
+ data.locationId = result.value(offset++).toInt();
+ data.fid = result.value(offset++).toInt();
+ data.hostId = result.value(offset++).toInt();
+ data.path = result.value(offset++).toString();
+ data.renamed = result.value(offset++).toDateTime();
+ data.failedRename = result.value(offset++).toBool();
+}
+
+void Database::readOpenFileData(SqlResultIteratorInterface &result, OpenFileData &data, int offset)
+{
+ data.fid = result.value(offset++).toInt();
+ data.animeTitle = result.value(offset++).toString();
+ data.episodeTitle = result.value(offset++).toString();
+ data.epno = result.value(offset++).toInt();
+ data.path = result.value(offset++).toString();
+}
+
+void Database::readUnknownFileData(SqlResultIteratorInterface &result, UnknownFile &data, int offset)
+{
+ data.ed2k = result.value(offset++).toByteArray();
+ data.size = result.value(offset++).toLongLong();
+ data.hostId = result.value(offset++).toInt();
+ data.path = result.value(offset++).toString();
+}
+
+QString Database::animeFields()
+{
+ return
+ "a.aid, a.entry_added, a.anidb_update, a.entry_update, a.my_update, a.title_english, "
+ "a.title_romaji, a.title_kanji, a.description, a.year, a.start_date, a.end_date, "
+ "a.type, a.total_episode_count, a.highest_epno, a.rating, a.votes, "
+ "a.temp_rating, a.temp_votes, a.my_vote, a.my_vote_date, "
+ "a.my_temp_vote, a.my_temp_vote_date ";
+}
+
+QString Database::episodeFields()
+{
+ return
+ "e.eid, e.aid, e.entry_added, e.anidb_update, e.entry_update, e.my_update, e.epno, "
+ "e.title_english, e.title_romaji, e.title_kanji, e.length, e.airdate, e.state, "
+ "e.type, e.recap, e.rating, e.votes, e.my_vote, e.my_vote_date ";
+}
+
+QString Database::fileFields()
+{
+ return
+ "f.fid, f.eid, f.aid, f.gid, f.entry_added, f.anidb_update, f.entry_update, f.my_update, "
+ "f.ed2k, f.size, f.length, f.extension, f.group_name, f.group_name_short, f.crc, "
+ "f.release_date, f.version, f.censored, f.source, f.quality_id, f.quality, f.resolution, "
+ "f.video_codec, f.audio_codec, f.audio_language, f.subtitle_language, f.aspect_ratio, "
+ "f.my_watched, f.my_state, f.my_file_state, f.my_storage, f.my_source, f.my_other ";
+}
+
+QString Database::fileLocationFields()
+{
+ return
+ "fl.location_id, fl.fid, fl.host_id, fl.path, fl.renamed, fl.failed_rename ";
+}
+
void Database::subscribeToNotifications()
{
d->db.driver()->subscribeToNotification("new_pending_request");