fixed: File sizes & file dates didn't work properly for lighttp HTTP servers
authorarnova <arnova@void.org>
Wed, 11 Apr 2012 13:49:46 +0000 (15:49 +0200)
committerarnova <arnova@void.org>
Wed, 11 Apr 2012 13:50:40 +0000 (15:50 +0200)
xbmc/filesystem/HTTPDirectory.cpp

index e66c56f..c2a0af4 100644 (file)
@@ -56,12 +56,15 @@ bool CHTTPDirectory::GetDirectory(const CStdString& strPath, CFileItemList &item
 
   CRegExp reDateTime(true);
   reDateTime.RegComp("<td align=\"right\">([0-9]{2})-([A-Z]{3})-([0-9]{4}) ([0-9]{2}):([0-9]{2}) +</td>");
+  
+  CRegExp reDateTimeLighttp(true);
+  reDateTimeLighttp.RegComp("<td class=\"m\">([0-9]{4})-([A-Z]{3})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})</td>");
 
   CRegExp reDateTimeNginx(true);
   reDateTimeNginx.RegComp("</a> +([0-9]{2})-([A-Z]{3})-([0-9]{4}) ([0-9]{2}):([0-9]{2}) ");
 
   CRegExp reSize(true);
-  reSize.RegComp(">*([0-9.]+)(B|K|M|G| )</td>");
+  reSize.RegComp("> *([0-9.]+)(B|K|M|G| )</td>");
 
   CRegExp reSizeNginx(true);
   reSizeNginx.RegComp("([0-9]+)(B|K|M|G)?$");
@@ -128,6 +131,14 @@ bool CHTTPDirectory::GetDirectory(const CStdString& strPath, CFileItemList &item
           hour = reDateTimeNginx.GetReplaceString("\\4");
           minute = reDateTimeNginx.GetReplaceString("\\5");
         }
+        else if (reDateTimeLighttp.RegFind(strBuffer.c_str()) >= 0)
+        {
+          day = reDateTimeLighttp.GetReplaceString("\\3");
+          month = reDateTimeLighttp.GetReplaceString("\\2");
+          year = reDateTimeLighttp.GetReplaceString("\\1");
+          hour = reDateTimeLighttp.GetReplaceString("\\4");
+          minute = reDateTimeLighttp.GetReplaceString("\\5");
+        }
 
         if (day.length() > 0 && month.length() > 0 && year.length() > 0)
         {