Improved blacklisting/whitelisting code + MP3 in MP4 output blacklist for Trident browsers under Windows 7 and lower
This commit is contained in:
		
							parent
							
								
									5154f88de3
								
							
						
					
					
						commit
						4fcae749da
					
				
					 2 changed files with 13 additions and 2 deletions
				
			
		|  | @ -377,17 +377,27 @@ bool Util::checkException(const JSON::Value & ex, const std::string & useragent) | ||||||
|   bool ret = true; |   bool ret = true; | ||||||
|   jsonForEachConst(ex, e){ |   jsonForEachConst(ex, e){ | ||||||
|     if (!e->isArray() || !e->size()){continue;} |     if (!e->isArray() || !e->size()){continue;} | ||||||
|     bool setTo = ((*e)[0u].asStringRef() == "whitelist"); |     bool setTo = false; | ||||||
|  |     bool except = false; | ||||||
|  |     //whitelist makes the return value true if any value is contained in the UA, blacklist makes it false.
 | ||||||
|  |     //the '_except' variants do so only if none of the values are contained in the UA.
 | ||||||
|  |     if ((*e)[0u].asStringRef() == "whitelist"){setTo = true; except = false;} | ||||||
|  |     if ((*e)[0u].asStringRef() == "whitelist_except"){setTo = true; except = true;} | ||||||
|  |     if ((*e)[0u].asStringRef() == "blacklist"){setTo = false; except = false;} | ||||||
|  |     if ((*e)[0u].asStringRef() == "blacklist_except"){setTo = false; except = true;} | ||||||
|     if (e->size() == 1){ |     if (e->size() == 1){ | ||||||
|       ret = setTo; |       ret = setTo; | ||||||
|       continue; |       continue; | ||||||
|     } |     } | ||||||
|     if (!(*e)[1].isArray()){continue;} |     if (!(*e)[1].isArray()){continue;} | ||||||
|  |     bool match = false; | ||||||
|     jsonForEachConst((*e)[1u], i){ |     jsonForEachConst((*e)[1u], i){ | ||||||
|       if (useragent.find(i->asStringRef()) != std::string::npos){ |       if (useragent.find(i->asStringRef()) != std::string::npos){ | ||||||
|         ret = setTo; |         match = true; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |     //set the (temp) return value if this was either a match in regular mode, or a non-match in except-mode.
 | ||||||
|  |     if (except != match){ret = setTo;} | ||||||
|   } |   } | ||||||
|   return ret; |   return ret; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -26,6 +26,7 @@ namespace Mist { | ||||||
|     capa["methods"][0u]["type"] = "html5/video/mp4"; |     capa["methods"][0u]["type"] = "html5/video/mp4"; | ||||||
|     capa["methods"][0u]["priority"] = 10; |     capa["methods"][0u]["priority"] = 10; | ||||||
|     capa["methods"][0u]["nolive"] = 1; |     capa["methods"][0u]["nolive"] = 1; | ||||||
|  |     capa["exceptions"]["codec:MP3"] = JSON::fromString("[[\"blacklist\",[\"Windows NT 5\", \"Windows NT 6.0\", \"Windows NT 6.1\"]],[\"whitelist_except\",[\"Trident\"]]]"); | ||||||
|   } |   } | ||||||
|   uint64_t OutProgressiveMP4::estimateFileSize() { |   uint64_t OutProgressiveMP4::estimateFileSize() { | ||||||
|     uint64_t retVal = 0; |     uint64_t retVal = 0; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Thulinma
						Thulinma