"WHERE failed_rename = true");
}
+bool Database::clearFailedPendingRequests(int minutes)
+{
+ QSqlQuery &q = prepare(
+ "UPDATE pending_request "
+ " SET start = NULL, fail_count = fail_count + 1 "
+ " WHERE start IS NOT NULL "
+ " AND age(current_timestamp, start) > :interval ");
+ q.bindValue(":interval", QString::number(minutes) + " minutes");
+
+ return exec(q);
+}
+
+bool Database::clearFailedPendingMyListUpdateRequests(int minutes)
+{
+ QSqlQuery &q = prepare(
+ "UPDATE pending_mylist_update "
+ " SET started = NULL, fail_count = fail_count + 1 "
+ " WHERE started IS NOT NULL "
+ " AND finished IS NULL "
+ " AND age(current_timestamp, started) > :interval ");
+ q.bindValue(":interval", QString::number(minutes) + " minutes");
+
+ return exec(q);
+}
+
bool Database::truncateTitleData()
{
return exec("TRUNCATE TABLE anime_title");
bool clearFileRenames();
bool clearFailedFileRenames();
+ bool clearFailedPendingRequests(int minutes = 10);
+ bool clearFailedPendingMyListUpdateRequests(int minutes = 10);
+
bool truncateTitleData();
bool truncateMyListData();
bool truncateDatabase();
MyList::instance()->database()->truncateTitleData();
}
+void MainWindow::on_actionClearFailedRequests_triggered()
+{
+ LocalMyList::instance()->database()->clearFailedPendingRequests();
+ LocalMyList::instance()->database()->clearFailedPendingMyListUpdateRequests();
+}
+
void MainWindow::on_actionRemoveKnownUnknownFiles_triggered()
{
LocalMyList::instance()->executeTask(new UnknownFileLookupTask());
void on_actionClearDatabase_triggered();
void on_actionClearMyListData_triggered();
void on_actionClearAnimeTitleData_triggered();
+ void on_actionClearFailedRequests_triggered();
void on_actionRemoveKnownUnknownFiles_triggered();
<addaction name="actionRenameFiles"/>
<addaction name="actionRemoveKnownUnknownFiles"/>
<addaction name="separator"/>
+ <addaction name="actionClearFailedRequests"/>
<addaction name="actionClearFailedFileRenames"/>
<addaction name="separator"/>
<addaction name="actionClearStartedPendingRequests"/>
<string>Add Related Episode Info</string>
</property>
</action>
+ <action name="actionClearFailedRequests">
+ <property name="text">
+ <string>Clear Failed Requests</string>
+ </property>
+ </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>