1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
<?php
/**
*/
$countries = array(
'AU' => 'Australia',
'BE' => 'Belgium',
'BR' => 'Brasil',
'CA' => 'Canada',
'CH' => 'Switzerland',
'CN' => 'China',
'CZ' => 'Czechia',
'DE' => 'Deutschland',
'FR' => 'France',
'GR' => 'Greece',
'GT' => 'Guatemala',
'JP' => 'Japan',
'NC' => 'Nouvelle-Calédonie',
'NL' => 'Nederlands',
'TW' => 'Taiwan',
'UK' => 'the UK',
'US' => 'the USA',
);
function get($s) {
return isset($_GET[$s]) ? trim($_GET[$s]) : null;
}
class NoProductFoundError extends Exception {}
class NoMirrorFoundError extends Exception {}
/**
*/
function get_info_for_product($product)
{
$defs = parse_ini_file('definitions.ini', true);
if (array_key_exists($product, $defs)) {
return $defs[$product];
}
throw new NoProductFoundError;
}
/**
* Return mirrors for $file.
* First mirror returned is the preferred one for auto redirection.
*
* @param string $file id of the file to download/find a mirror for
* @param string $locale hint for selecting a mirror
* @param string $country hint for selecting a mirror
*
* @return array
* mirror(product):
* name
* host
* country
* city
* speed
* link
*/
function get_mirrors_for($file,
$locale = null, $country = null)
{
include '../../../lib/Downloads.php';
$mirrors = Downloads::get_all_mirrors();
$wsd = new Downloads();
$one = $wsd->prepare_download(true, $country);
return array($one, $mirrors);
}
|