public Torrent[] BuildFromArrayList(ArrayList files)
{
ArrayList torrents = new ArrayList();
Torrent torrent;
information[14] = null;
int filescount = files.Count;
double progress = 0;
double count = 0;
for (int a = 0; a < filescount; a++)
{
string birth = GetTorrentBirth((string)files[a]);
torrent = ProcessTorrent((string)files[a], birth);
if (information[14] != "true")
{
if (SkipReleaseFormatCheck())
{
torrent = VerifyTorrent(torrent);
torrents.Add(torrent);
}
else
{
if (information[2] == null)
{
string file = (string)files[a];
if (SettingsHandler.GetHandleLoneTAsAlbum())
{
if (file.Contains("[CSL]--Temp"))
information[2] = ExtractAlbumFormat(birth, file, file.Contains("[CSL]--Temp"));
else
information[2] = Album;
}
else
information[2] = ExtractAlbumFormat(birth, file, file.Contains("[CSL]--Temp"));
}
if (SettingsHandler.GetDownloadFormatExists(information[2]))
{
torrent = VerifyTorrent(torrent);
torrents.Add(torrent);
}
else
{
DirectoryHandler.MoveTorrentFile((string)files[a], "unhandled");
}
}
}
//Clear out information for this run to avoid misinformation on the next run
for (int b = 0; b < information.Length; b++)
information[b] = null;
progress = (++count / filescount) * 100;
if (progress <= 100 && progress >= 0)
this.ReportProgress((int)progress);
}
ew.ClearApplyToAll();
object[] raw = torrents.ToArray();
Torrent[] tarray = Array.ConvertAll(raw, new Converter<object, Torrent>(Converter));
return tarray;
}