private void StartImport()
{
if (!CheckAccountDetails() || importRunning)
return;
// update file log with new name
FileLog.LogFileName = DateTime.Now.ToString("yyyyMMdd_hhmmss") + ".log";
sites.Clear();
// add import sites for processing
if (AppSettings.EnableTMDb) sites.Add(new TMDb(AppSettings.TMDbRequestToken, AppSettings.TMDbSessionId));
if (AppSettings.EnableTVDb) sites.Add(new TVDb(AppSettings.TVDbAccountIdentifier));
if (AppSettings.EnableIMDb) sites.Add(new IMDb(AppSettings.IMDbRatingsFilename, AppSettings.IMDbWatchlistFilename, AppSettings.IMDbCustomLists, rdnImdbCSV.Checked));
if (AppSettings.EnableIMDb) sites.Add(new IMDbWeb(AppSettings.IMDbUsername, rdnImdbUsername.Checked));
if (AppSettings.EnableListal) sites.Add(new Listal(AppSettings.ListalMovieFilename, AppSettings.ListalShowFilename, AppSettings.ListalSyncWatchlist));
if (AppSettings.EnableCriticker) sites.Add(new Criticker(AppSettings.CritickerMovieFilename));
if (AppSettings.EnableLetterboxd) sites.Add(new Letterboxd(AppSettings.LetterboxdRatingsFilename, AppSettings.LetterboxdWatchedFilename, AppSettings.LetterboxdDiaryFilename));
if (AppSettings.EnableFlixster) sites.Add(new Flixster(AppSettings.FlixsterUserId, AppSettings.FlixsterSyncWantToSee));
if (!sites.Any(s => s.Enabled))
{
UIUtils.UpdateStatus("No sites enabled or incorrect site information supplied!", true);
return;
}
#region Import
var importThread = new Thread(o =>
{
importRunning = true;
// only one import at a time
SetControlState(false);
// Clear Progress
ClearProgress();
// Login to trakt.tv
if (!Login())
return;
// import ratings
foreach (var site in sites.Where(s => s.Enabled))
{
UIUtils.UpdateStatus(string.Format("Starting import from {0}", site.Name));
try
{
if (!importCancelled)
site.ImportRatings();
}
catch (Exception e)
{
UIUtils.UpdateStatus(string.Format("{0}:{1}", site.Name, e.Message), true);
Thread.Sleep(5000);
}
UIUtils.UpdateStatus("Finished import from {0}", site.Name);
}
// finished
SetControlState(true);
UIUtils.UpdateStatus("Import Complete!");
importRunning = false;
importCancelled = false;
});
importThread.Start();
#endregion
}