Example #1
0
 public static void FindSubtitlesForFolder(OpenSubtitlesClient client,string folder, string langCode)
 {
     var fileTypes = Properties.Settings.Default.FileTypesToScan.Split(';');
     var files = Directory.GetFiles(folder, "*.*", SearchOption.AllDirectories).Where(inS => fileTypes.Contains(System.IO.Path.GetExtension(inS),StringComparer.OrdinalIgnoreCase));
     foreach (var file in files)
     {
         FindSubtitlesForFile(client,file, langCode);
     }
 }
Example #2
0
        public static void FindSubtitlesForFile(OpenSubtitlesClient client, string fileName, string langCode)
        {
            var subTitle = client.GetSubtitleByHash(fileName, langCode);
            if (subTitle.SubtitleStream != null)
            {
                SaveSubtitles(subTitle, fileName);
                _logger.Info("Subtitle for movie {0} found", fileName);
            }
            else
            {
                _logger.Info("Subtitle for movie {0} NOT FOUND", fileName);
            }

        }
Example #3
0
 private static OpenSubtitlesClient LogIn(string langCode)
 {
     var userName = Properties.Settings.Default.OpenSubtitlesUserName;
     var password = Properties.Settings.Default.OpenSubtitlesPassword;
     var passwordHash = "";
     using (MD5 md5Hash = MD5.Create())
     {
         passwordHash = GetMd5Hash(md5Hash, password);
     }
     var userAgent = Properties.Settings.Default.OpenSubtitlesUserAgent;
     var client = new OpenSubtitlesClient(Properties.Settings.Default.OpenSubtitleApiURL);
     _logger.Trace("Trying to login... ");
     var loginOK = client.Login(userName, passwordHash, langCode, userAgent);
     if (!loginOK)
     {
         _logger.Error("Login failed!");
     }
     return client;
 }
Example #4
0
 private static void SaveSubtitles(OpenSubtitlesClient.Subtitle subTitle, string movieFileName)
 {
     FileInfo fi = new FileInfo(movieFileName);
     var subTitlePath = fi.FullName.Replace(fi.Extension, "." + subTitle.SubFormat);
     SaveFileStream(subTitlePath, subTitle.SubtitleStream);
 }