You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							128 lines
						
					
					
						
							2.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							128 lines
						
					
					
						
							2.7 KiB
						
					
					
				
								<?php
							 | 
						|
								/*
							 | 
						|
									Example:
							 | 
						|
									http://www.neutrino-images.de/neutrino-images/get-image.php?boxtype=armbox&boxmodel=hd51(&debug)(&mmc)(&recovery)
							 | 
						|
								*/
							 | 
						|
								
							 | 
						|
								$boxtype = trim($_GET["boxtype"]);
							 | 
						|
								$boxtype_sc = ""; # autofilled
							 | 
						|
								$boxseries = trim($_GET["boxseries"]);
							 | 
						|
								$boxmodel = trim($_GET["boxmodel"]);
							 | 
						|
								
							 | 
						|
								$debug = false;
							 | 
						|
								$mmc = false;
							 | 
						|
								$recovery = false;
							 | 
						|
								
							 | 
						|
								if ($boxmodel == "hd60-mmc" || $boxmodel == "hd61-mmc")
							 | 
						|
								{
							 | 
						|
									$boxtype = "armbox";
							 | 
						|
								
							 | 
						|
									if ($boxmodel == "hd60-mmc")
							 | 
						|
										$boxmodel = "hd60";
							 | 
						|
									elseif ($boxmodel == "hd61-mmc")
							 | 
						|
										$boxmodel = "hd61";
							 | 
						|
								
							 | 
						|
									$mmc = true;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								$image_version = "???"; # wildcard for version (e.g. 320)
							 | 
						|
								$image_date = "????????????"; # wildcard for date (e.g. 201601012359)
							 | 
						|
								$image_type = "nightly";
							 | 
						|
								
							 | 
						|
								$add_str = "";
							 | 
						|
								
							 | 
						|
								# convert strings to lower case
							 | 
						|
								$boxtype = strtolower($boxtype);
							 | 
						|
								$boxtype_sc = strtolower($boxtype_sc);
							 | 
						|
								$boxseries = strtolower($boxseries);
							 | 
						|
								$boxmodel = strtolower($boxmodel);
							 | 
						|
								$image_type = strtolower($image_type);
							 | 
						|
								
							 | 
						|
								if (isset($_GET["debug"]))
							 | 
						|
								{
							 | 
						|
									$_debug = trim($_GET["debug"]);
							 | 
						|
									$_debug = strtolower($_debug);
							 | 
						|
									if ($_debug != "false" && $_debug != "no")
							 | 
						|
										$debug = true;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								if (isset($_GET["mmc"]))
							 | 
						|
								{
							 | 
						|
									$_mmc = trim($_GET["mmc"]);
							 | 
						|
									$_mmc = strtolower($_mmc);
							 | 
						|
									if ($_mmc != "false" && $_mmc != "no")
							 | 
						|
										$mmc = true;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								if (isset($_GET["recovery"]))
							 | 
						|
								{
							 | 
						|
									$_recovery = trim($_GET["recovery"]);
							 | 
						|
									$_recovery = strtolower($_recovery);
							 | 
						|
									if ($_recovery != "false" && $_recovery != "no")
							 | 
						|
										$recovery = true;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								if ($boxtype == "coolstream" || $boxtype == "cst")
							 | 
						|
								{
							 | 
						|
									$boxtype_sc = "cst";
							 | 
						|
									$image_ext = "img";
							 | 
						|
								}
							 | 
						|
								elseif ($boxtype == "armbox" || $boxtype == "arm")
							 | 
						|
								{
							 | 
						|
									$boxtype_sc = "arm";
							 | 
						|
									if ($mmc || $recovery)
							 | 
						|
									{
							 | 
						|
										if ($boxmodel == "hd60" || $boxmodel == "hd61")
							 | 
						|
										{
							 | 
						|
											if ($mmc)
							 | 
						|
												$add_str = "_single_mmc";
							 | 
						|
											else
							 | 
						|
												$add_str = "_multi_recovery";
							 | 
						|
										}
							 | 
						|
										else
							 | 
						|
										{
							 | 
						|
											$add_str = "_multi_usb";
							 | 
						|
										}
							 | 
						|
										$image_ext = "zip";
							 | 
						|
									}
							 | 
						|
									else
							 | 
						|
										$image_ext = "tgz";
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								# release/ni320-YYYYMMDDHHMM-cst-kronos.img
							 | 
						|
								$directory = $image_type;
							 | 
						|
								if ($debug)
							 | 
						|
									$directory .= "/debug";
							 | 
						|
								$pattern = $directory . "/ni" . $image_version . "-" . $image_date . "-" . $boxtype_sc . "-" . $boxmodel . $add_str . "." . $image_ext;
							 | 
						|
								
							 | 
						|
								# find last (newest) image
							 | 
						|
								$last_mod = 0;
							 | 
						|
								$last_image = "";
							 | 
						|
								foreach (glob($pattern) as $image)
							 | 
						|
								{
							 | 
						|
									if (is_file($image) && filectime($image) > $last_mod)
							 | 
						|
									{
							 | 
						|
										$last_mod = filectime($image);
							 | 
						|
										$last_image = $image;
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								if (empty($last_image))
							 | 
						|
								{
							 | 
						|
									# send error
							 | 
						|
									header('HTTP/1.0 404 Not Found');
							 | 
						|
									die("<h1>404</h1>\nImage not found.");
							 | 
						|
								}
							 | 
						|
								else
							 | 
						|
								{
							 | 
						|
									# send image
							 | 
						|
									header('Content-Description: File Transfer');
							 | 
						|
									header('Content-Type: application/octet-stream');
							 | 
						|
									header('Content-Disposition: attachment; filename="' . basename($last_image) . '"');
							 | 
						|
									header('Expires: 0');
							 | 
						|
									header('Cache-Control: must-revalidate');
							 | 
						|
									header('Pragma: public');
							 | 
						|
									header('Content-Length: ' . filesize($last_image));
							 | 
						|
									readfile($last_image);
							 | 
						|
								}
							 | 
						|
								?>
							 |