Skip to content

Commit

Permalink
Merge pull request #19 from badrazizi/master
Browse files Browse the repository at this point in the history
fix loading movies with search and genre
  • Loading branch information
NV committed Nov 10, 2017
2 parents 7ccd1fd + 4cc06ee commit 544c339
Showing 1 changed file with 33 additions and 35 deletions.
68 changes: 33 additions & 35 deletions openplex/frmOpenPlex.cs
Original file line number Diff line number Diff line change
Expand Up @@ -233,14 +233,16 @@ void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
int countedMovies = 0;
string selectedGenre = "";

private object MovieLock = new object();
private object[] FetchMovieData()
List<ctrlMoviesPoster> MoviesPosters = new List<ctrlMoviesPoster>();
public List<ctrlMoviesPoster> LoadMovies(int loadCount)
{
lock (MovieLock)
int loadedCount = 0;

foreach (string movie in dataMoviesJson.Reverse().Skip(countedMovies))
{
foreach (string movie in dataMoviesJson.Reverse().Skip(countedMovies))
if (loadedCount < loadCount)
{
if (!string.IsNullOrEmpty(movie))
if (string.IsNullOrEmpty(movie) == false)
{
var data = OMDbEntity.FromJson(movie);

Expand All @@ -262,52 +264,48 @@ private object[] FetchMovieData()

ctrlPoster.infoPoster.BackgroundImage = LoadPicture(data.Poster);
ctrlPoster.infoImagePoster = data.Poster;

ctrlPoster.Name = data.ImdbID;
ctrlPoster.infoMovieLinks = data.Sources;

try
{
string jsonData = client.DownloadString("https://tv-v2.api-fetch.website/movie/" + data.ImdbID);
var jsonDataPT = PopcornTimeEntity.FromJson(jsonData);
ctrlPoster.infoImageFanart = jsonDataPT.Images.Fanart;
ctrlPoster.infoTrailer = jsonDataPT.Trailer;
}
catch { }

countedMovies += 1;

return new object[] { ctrlPoster, data.ImdbID, };
ctrlPoster.Show();
MoviesPosters.Add(ctrlPoster);
loadedCount += 1;
}
return new object[0];
countedMovies += 1;
}
return new object[0];
}
return new object[0];
}
return MoviesPosters;
}

public void loadMovies(int loadCount)
delegate void loadMoviesCallBack(int count);
public void loadMovies(int count)
{
for (int i = 0; i < loadCount; i++)
{
BackGroundWorker.RunWorkAsync<object[]>(() => FetchMovieData(), (movie) =>
{
if (movie.Length <= 0)
return;
else if ((ctrlMoviesPoster)movie[0] == null)
return;
ctrlMoviesPoster ctrlPoster = (ctrlMoviesPoster)movie[0];
string ImdbID = (string)movie[1];
ctrlPoster.Show();
ctrlPoster.Name = ImdbID;
panelMovies.Controls.Add(ctrlPoster);
});
}

tab.SelectedTab = tabMovies;
MoviesPosters = new List<ctrlMoviesPoster>();
BackGroundWorker.RunWorkAsync<List<ctrlMoviesPoster>>(() => LoadMovies(count), (data) =>
{
if (panelMovies.InvokeRequired)
{
loadMoviesCallBack b = new loadMoviesCallBack(loadMovies);
Invoke(b, new object[] { count });
}
else
{
foreach (ctrlMoviesPoster item in data)
{
panelMovies.Controls.Add(item);
}
tab.SelectedTab = tabMovies;
}
});
}


Expand Down Expand Up @@ -655,4 +653,4 @@ private void panelDownloadItems_ControlRemoved(object sender, ControlEventArgs e
if (panelDownloads.Controls.Count == 0) { lblNoDownloads.Visible = true; } else { lblNoDownloads.Visible = false; }
}
}
}
}

0 comments on commit 544c339

Please sign in to comment.