File f;
QSqlQuery &q = prepare(
- "SELECT fid, eid, aid, gid, entry_added, anidb_update, entry_update, my_update, "
+ "SELECT fid, eid, aid, gid, lid, entry_added, anidb_update, entry_update, my_update, "
" ed2k, size, length, extension, group_name, group_name_short, crc, "
- " release_date, version, censored, source, quality_id, quality, resolution, "
+ " release_date, version, censored, deprecated, source, quality_id, quality, resolution, "
" video_codec, audio_codec, audio_language, subtitle_language, aspect_ratio, "
" my_watched, my_state, my_file_state, my_storage, my_source, my_other "
" FROM file "
return f;
if (q.next())
- f = readFile(q);
+ {
+ QSqlResultIterator it(q);
+ readFileData(it, f);
+ }
q.finish();
{
QSqlQuery &q = prepare(
"UPDATE file SET "
- " eid = :eid, aid = :aid, gid = :gid, anidb_update = :anidbUpdate, "
+ " eid = :eid, aid = :aid, gid = :gid, lid = :lid, anidb_update = :anidbUpdate, "
" entry_update = :entryUpdate, my_update = :myUpdate, "
" ed2k = :ed2k, size = :size, length = :length, extension = :extension, "
" group_name = :groupName, group_name_short = :groupNameShort, crc = :crc, "
" release_date = :releaseDate, version = :version, censored = :censored, "
- " source = :source, quality_id = :qualityId, quality = :quality, "
+ " deprecated = :deprecated, source = :source, quality_id = :qualityId, quality = :quality, "
" resolution = :resolution, video_codec = :videoCodec, "
" audio_codec = :audioCodec, audio_language = :audioLanguage, "
" subtitle_language = :subtitleLanguage, aspect_ratio = :aspectRatio, "
q.bindValue(":eid", file.eid);
q.bindValue(":aid", file.aid);
q.bindValue(":gid", file.gid);
+ q.bindValue(":lid", file.lid);
q.bindValue(":anidbUpdate", file.anidbUpdate);
q.bindValue(":entryUpdate", file.entryUpdate);
q.bindValue(":myUpdate", file.myUpdate);
q.bindValue(":releaseDate", file.releaseDate);
q.bindValue(":version", file.version);
q.bindValue(":censored", file.censored);
+ q.bindValue(":deprecated", file.deprecated);
q.bindValue(":source", file.source);
q.bindValue(":qualityId", file.qualityId);
q.bindValue(":quality", file.quality);
q.bindValue(":eid", file.eid);
q.bindValue(":aid", file.aid);
q.bindValue(":gid", file.gid);
- q.bindValue(":lid", 0);
+ q.bindValue(":lid", file.lid);
q.bindValue(":anidbUpdate", file.anidbUpdate);
q.bindValue(":entryUpdate", file.entryUpdate);
q.bindValue(":myUpdate", file.myUpdate);
q.bindValue(":releaseDate", file.releaseDate);
q.bindValue(":version", file.version);
q.bindValue(":censored", file.censored);
- q.bindValue(":deprecated", false);
+ q.bindValue(":deprecated", file.deprecated);
q.bindValue(":source", file.source);
q.bindValue(":qualityId", file.qualityId);
q.bindValue(":quality", file.quality);
" DEFAULT, DEFAULT, DEFAULT, DEFAULT) ");
q.bindValue(":fid", request.fid);
- q.bindValue(":aid", 0);
- q.bindValue(":epno", 0);
- q.bindValue(":epmin", 0);
- q.bindValue(":eptype", "");
+ q.bindValue(":aid", request.aid);
+ q.bindValue(":epno", request.epno);
+ q.bindValue(":epmin", request.epmin);
+ q.bindValue(":eptype", request.eptype.isNull() ? "" : request.eptype);
q.bindValue(":setMyWatched", request.setMyWatched);
q.bindValue(":myWatched", request.myWatched);
q.bindValue(":setMyState", request.setMyState);
q.bindValue(":mySource", request.mySource);
q.bindValue(":setMyOther", request.setMyOther);
q.bindValue(":myOther", request.myOther);
- q.bindValue(":setVote", false);
- q.bindValue(":vote", 0);
+ q.bindValue(":setVote", request.setVote);
+ q.bindValue(":vote", request.vote);
return exec(q);
}
PendingMyListUpdate Database::getPendingMyListUpdate(qint64 updateId)
{
QSqlQuery &q = prepare(
- "SELECT update_id, fid, set_my_watched, my_watched, set_my_state, my_state, "
+ "SELECT update_id, fid, aid, epno, epmin, eptype, set_my_watched, my_watched, set_my_state, my_state, "
" set_my_file_state, my_file_state, set_my_storage, my_storage, set_my_source, "
- " my_source, set_my_other, my_other, added, started, finished "
+ " my_source, set_my_other, my_other, set_vote, vote, added, started, finished "
" FROM pending_mylist_update "
" WHERE update_id = :updateId ");
if (q.next())
{
- request.updateId = q.value(0).toLongLong();
- request.fid = q.value(1).toInt();
- request.setMyWatched = q.value(2).toBool();
- request.myWatched = q.value(3).toDateTime();
- request.setMyState = q.value(4).toBool();
- request.myState = q.value(5).toInt();
- request.setMyFileState = q.value(6).toBool();
- request.myFileState = q.value(7).toInt();
- request.setMyStorage = q.value(8).toBool();
- request.myStorage = q.value(9).toString();
- request.setMySource = q.value(10).toBool();
- request.mySource = q.value(11).toString();
- request.setMyOther = q.value(12).toBool();
- request.myOther = q.value(13).toString();
- request.added = q.value(14).toDateTime();
- request.started = q.value(15).toDateTime();
+ QSqlResultIterator it(q);
+ readPendingMyListUpdateData(it, request);
}
q.finish();
" WHERE started IS NULL "
" ORDER BY added ASC "
" LIMIT :limit) "
- " RETURNING update_id, fid, set_my_watched, my_watched, set_my_state, "
+ " RETURNING update_id, fid, aid, epno, epmin, eptype, set_my_watched, my_watched, set_my_state, "
" my_state, set_my_file_state, my_file_state, set_my_storage, my_storage, "
- " set_my_source, my_source, set_my_other, my_other, added, started ");
+ " set_my_source, my_source, set_my_other, my_other, set_vote, vote, added, started, finished ");
q.bindValue(":limit", limit);
while (q.next())
{
PendingMyListUpdate request;
- request.updateId = q.value(0).toLongLong();
- request.fid = q.value(1).toInt();
- request.setMyWatched = q.value(2).toBool();
- request.myWatched = q.value(3).toDateTime();
- request.setMyState = q.value(4).toBool();
- request.myState = q.value(5).toInt();
- request.setMyFileState = q.value(6).toBool();
- request.myFileState = q.value(7).toInt();
- request.setMyStorage = q.value(8).toBool();
- request.myStorage = q.value(9).toString();
- request.setMySource = q.value(10).toBool();
- request.mySource = q.value(11).toString();
- request.setMyOther = q.value(12).toBool();
- request.myOther = q.value(13).toString();
- request.added = q.value(14).toDateTime();
- request.started = q.value(15).toDateTime();
+ QSqlResultIterator it(q);
+ readPendingMyListUpdateData(it, request);
ret << request;
}
data.eid = result.value(offset++).toInt();
data.aid = result.value(offset++).toInt();
data.gid = result.value(offset++).toInt();
+ data.lid = result.value(offset++).toInt();
data.entryAdded = result.value(offset++).toDateTime();
data.anidbUpdate = result.value(offset++).toDateTime();
data.entryUpdate = result.value(offset++).toDateTime();
data.releaseDate = result.value(offset++).toDateTime();
data.version = result.value(offset++).toInt();
data.censored = result.value(offset++).toBool();
+ data.deprecated = result.value(offset++).toBool();
data.source = result.value(offset++).toString();
data.qualityId = result.value(offset++).toInt();
data.quality = result.value(offset++).toString();
data.path = result.value(offset++).toString();
}
+void Database::readPendingMyListUpdateData(SqlResultIteratorInterface &query, PendingMyListUpdate &data, int offset)
+{
+ data.updateId = query.value(offset++).toLongLong();
+ data.fid = query.value(offset++).toInt();
+ data.aid = query.value(offset++).toInt();
+ data.epno = query.value(offset++).toInt();
+ data.epmin = query.value(offset++).toInt();
+ data.eptype = query.value(offset++).toString();
+ data.setMyWatched = query.value(offset++).toBool();
+ data.myWatched = query.value(offset++).toDateTime();
+ data.setMyState = query.value(offset++).toBool();
+ data.myState = query.value(offset++).toInt();
+ data.setMyFileState = query.value(offset++).toBool();
+ data.myFileState = query.value(offset++).toInt();
+ data.setMyStorage = query.value(offset++).toBool();
+ data.myStorage = query.value(offset++).toString();
+ data.setMySource = query.value(offset++).toBool();
+ data.mySource = query.value(offset++).toString();
+ data.setMyOther = query.value(offset++).toBool();
+ data.myOther = query.value(offset++).toString();
+ data.setVote = query.value(offset++).toBool();
+ data.vote = query.value(offset++).toDouble();
+ data.added = query.value(offset++).toDateTime();
+ data.started = query.value(offset++).toDateTime();
+}
+
QString Database::animeFields()
{
return
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.fid, f.eid, f.aid, f.gid, f.lid, 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.release_date, f.version, f.censored, f.deprecated, 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 ";
}
"fl.location_id, fl.fid, fl.host_id, fl.path, fl.renamed, fl.failed_rename ";
}
+QString Database::pendingMyListUpdateFields()
+{
+ return "";
+}
+
void Database::subscribeToNotifications()
{
d->db.driver()->subscribeToNotification("new_pending_request");