private void ParseFileData(object item, string data)
{
string[] info = Regex.Split(data, "\n")[1].Split('|');
AnimeEntry anime = new AnimeEntry();
EpisodeEntry episode = new EpisodeEntry();
FileEntry file = (item is HashItem) ?
new FileEntry((HashItem)item) : (FileEntry)item;
file.fid = int.Parse(info[0]);
anime.aid = episode.aid = int.Parse(info[1]);
episode.eid = file.eid = int.Parse(info[2]);
file.lid = int.Parse(info[4]);
file.source = info[5].FormatNullable();
file.acodec = info[6].Contains("'") ? info[6].Split('\'')[0] : info[6].FormatNullable();
file.acodec = ExtensionMethods.FormatAudioCodec(file.acodec);
file.vcodec = ExtensionMethods.FormatVideoCodec(info[7].FormatNullable());
file.vres = info[8].FormatNullable();
file.length = double.Parse(info[9]);
if (!string.IsNullOrEmpty(info[10]) && int.Parse(info[10]) != 0) episode.airdate = double.Parse(info[10]);
file.state = int.Parse(info[11]);
episode.watched = file.watched = Convert.ToBoolean(int.Parse(info[12]));
if (!string.IsNullOrEmpty(info[13]) && int.Parse(info[13]) != 0) file.watcheddate = double.Parse(info[13]);
anime.eps_total = !string.IsNullOrEmpty(info[14]) ?
(int.Parse(info[14]) > int.Parse(info[15]) ? int.Parse(info[14]) : int.Parse(info[15])) : int.Parse(info[15]);
anime.year = info[16].Contains('-') ?
(info[16].Split('-')[0] != info[16].Split('-')[1] ? info[16] : info[16].Split('-')[0]) : info[16];
anime.type = info[17];
anime.romaji = info[18];
anime.nihongo = info[19].FormatNullable();
anime.english = info[20].FormatNullable();
if (Regex.IsMatch(info[21].Substring(0, 1), @"\D"))
episode.spl_epno = info[21];
else
episode.epno = info[21].Contains('-') ? int.Parse(info[21].Split('-')[0]) : int.Parse(info[21]);
episode.english = info[22];
episode.romaji = info[23].FormatNullable();
episode.nihongo = info[24].FormatNullable();
if (int.Parse(info[3]) != 0)
file.Group = new GroupEntry
{
gid = int.Parse(info[3]),
group_name = info[25],
group_abbr = info[26]
};
OnFileInfoFetched(new FileInfoFetchedArgs(anime, episode, file));
}