CSL.TorrentBuilder.ProcessMusicTorrent C# (CSharp) Method

ProcessMusicTorrent() public method

public ProcessMusicTorrent ( FileInfo file, string birth ) : void
file System.IO.FileInfo
birth string
return void
        public void ProcessMusicTorrent(FileInfo file, string birth)
        {
            /*Directory Switches:
               ***********************************
               %a - Artist Name    %l = Live
               %s = Soundtrack     %c = Compilation
               %e = EP             %r = Remix
               %v = Interview      %n = Single
               %x = Bootleg        %u = Unknown
               %m = Mixtape
               %f = Album
               %y = Year
               %t = Album Name     %i = Artist's First Initial
               %b = Bitrate        %p = Physical Format (CD/Vinyl)
               %d = Bitrate Format (MP3/FLAC)
               %z = All release formats (live,EP,comp,etc)
               ***********************************/

            try
            {
                string directoryName = null;

                char[] directoryArray = SettingsHandler.GetCustomDirectory().ToCharArray();

                if (!SettingsHandler.GetDownloadDirectory().EndsWith("\\"))
                {
                    SettingsHandler.SetDownloadFolder(SettingsHandler.GetDownloadDirectory() + "\\");
                }
                if (!SettingsHandler.GetVariousArtistsDownloadDirectory().EndsWith("\\"))
                {
                    SettingsHandler.SetVariousArtistsDownloadDirectory(SettingsHandler.GetVariousArtistsDownloadDirectory() + "\\");
                }
                if (!SkipReleaseFormatCheck())
                {
                    if (SettingsHandler.GetHandleLoneTAsAlbum())
                    {
                        if (file.FullName.Contains("[CSL]--Temp"))
                            information[2] = ExtractAlbumFormat(birth, file, true);
                        else
                            information[2] = Album;
                    }
                    else
                        information[2] = ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp"));

                    if (information[14] == "true")
                        goto ReturnTorrent;
                    else if (!SettingsHandler.GetDownloadFormatExists(information[2]))
                        goto ReturnTorrent;
                }

                information[0] = ExtractArtist(birth, file);

                //Check if it's a various artists and if so get the various artists directory
                if (information[0].Contains("Various Artists"))
                {
                    directoryArray = SettingsHandler.GetVariousArtistsDownloadSwitches().ToCharArray();
                }

                for (int a = 0; a < directoryArray.Length; a++)
                {
                    if (directoryArray[a] == ('%'))
                    {
                        if (information[14] == "true")
                            goto ReturnTorrent;

                        switch (directoryArray[a + 1])
                        {

                            case ('a'):
                                {
                                    string artist = (information[0] == null) ? ExtractArtist(birth, file) : information[0]; //May get called from 'i'
                                    artist = DirectoryHandler.GetHTMLLookUp(artist);
                                    information[0] = artist;

                                    if (SettingsHandler.GetArtistFlip() && information != null)
                                    {
                                        if (information[0].StartsWith("The") || information[0].StartsWith("A "))
                                        {
                                            string[] modifiedArtist = information[0].Split(' ');
                                            artist = "";
                                            for (int b = 1; b < modifiedArtist.Length; b++)
                                            {
                                                artist += modifiedArtist[b];
                                                if (!((b + 1) == modifiedArtist.Length))
                                                {
                                                    artist += " ";
                                                }
                                            }
                                            artist += ", " + modifiedArtist[0];
                                            information[0] = artist;
                                        }
                                    }
                                    else if (SettingsHandler.GetDeleteThe())
                                    {
                                        if (information[0].StartsWith("The"))
                                        {
                                            string[] modifiedArtist = information[0].Split(' ');
                                            artist = "";
                                            for (int b = 1; b < modifiedArtist.Length; b++)
                                            {
                                                artist += modifiedArtist[b];
                                                if (!((b + 1) == modifiedArtist.Length))
                                                {
                                                    artist += " ";
                                                }
                                            }
                                            information[0] = artist;
                                        }
                                    }
                                    directoryName += information[0];
                                    a++;
                                } break;
                            case ('y'):
                                {
                                    string year = ExtractYear(birth, file);
                                    directoryName += year;
                                    information[4] = year;
                                    a++;
                                } break;
                            case ('b'):
                                {
                                    string bitrate = ExtractBitrate(birth, file);
                                    directoryName += bitrate;
                                    information[3] = bitrate;
                                    a++;
                                } break;
                            case ('d'):
                                {
                                    string bitformat = ExtractBitformat(birth, file);
                                    directoryName += bitformat;
                                    information[6] = bitformat;
                                    a++;
                                } break;
                            case ('p'):
                                {
                                    string pformat = ExtractPhysicalFormat(birth, file);
                                    directoryName += pformat;
                                    information[5] = pformat;
                                    a++;
                                } break;
                            case ('t'):
                                {
                                    string album = ExtractAlbum(birth, file);
                                    album = DirectoryHandler.GetHTMLLookUp(album);
                                    directoryName += album;
                                    information[1] = album;
                                    a++;
                                } break;
                            case ('z'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];
                                    directoryName += SettingsHandler.GetReleaseFormat(format);
                                    information[2] = format;
                                    a++;
                                } break;
                            case ('l'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Live)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Live);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('c'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Compilation)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Compilation);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('e'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == EP)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(EP);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('r'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Remix)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Remix);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('v'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Interview)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Interview);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('n'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Single)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Single);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('x'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Bootleg)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Bootleg);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('s'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Soundtrack)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Soundtrack);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('m'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Mixtape)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Mixtape);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('u'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Unknown)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Unknown);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('f'):
                                {
                                    string format = (information[2] == null) ? ExtractAlbumFormat(birth, file, file.FullName.Contains("[CSL]--Temp")) : information[2];

                                    if (format == Album)
                                    {
                                        directoryName += SettingsHandler.GetReleaseFormat(Album);
                                        information[2] = format;
                                    }
                                    a++;
                                } break;
                            case ('i'):
                                {
                                    if (information[0] == null)
                                        information[0] = ExtractArtist(birth, file);

                                    string artist;

                                    if (SettingsHandler.GetArtistFlip() && information != null)
                                    {
                                        if (information[0].StartsWith("The") || information[0].StartsWith("A "))
                                        {
                                            string[] modifiedArtist = information[0].Split(' ');
                                            artist = "";
                                            for (int b = 1; b < modifiedArtist.Length; b++)
                                            {
                                                artist += modifiedArtist[b];
                                                if (!((b + 1) == modifiedArtist.Length))
                                                {
                                                    artist += " ";
                                                }
                                            }
                                            artist += ", " + modifiedArtist[0];
                                            information[0] = artist;
                                        }
                                    }
                                    else if (SettingsHandler.GetDeleteThe())
                                    {
                                        if (information[0].StartsWith("The"))
                                        {
                                            string[] modifiedArtist = information[0].Split(' ');
                                            artist = "";
                                            for (int b = 1; b < modifiedArtist.Length; b++)
                                            {
                                                artist += modifiedArtist[b];
                                                if (!((b + 1) == modifiedArtist.Length))
                                                {
                                                    artist += " ";
                                                }
                                            }
                                            information[0] = artist;
                                        }
                                    }

                                    int counter = -1;
                                    Match match;

                                    do { match = Regex.Match(information[0][++counter].ToString(), "[a-z]|[A-Z]"); }
                                    while (!match.Success);

                                    directoryName += match.Value;

                                    a++;
                                } break;
                        }
                    }
                    else
                    {
                        if (information[14] == "true")
                            goto ReturnTorrent;

                        directoryName += directoryArray[a];
                    }
                }

                if (information[0].Contains("Various Artists"))
                    information[13] = SettingsHandler.GetVariousArtistsDownloadDirectory().Trim() + directoryName.Trim();
                else
                    information[13] = SettingsHandler.GetDownloadDirectory().Trim() + directoryName.Trim();

                if (SettingsHandler.GetUppercaseAllFolderNames())
                    information[13] = information[13].ToUpper();
                else if (SettingsHandler.GetLowercaseAllFolderNames())
                    information[13] = information[13].ToLower();

            ReturnTorrent:
                information[10] = file.FullName;
                information[11] = file.Name;
                information[12] = birth;
            }
            catch (Exception e)
            {
                ew.IssueGeneralWarning("Error processing torrent", "Please report", e.Message + "\n" + e.StackTrace);
                information[14] = "true";
            }
        }