|
34 | 34 | $list = json_decode($list, true); |
35 | 35 | $last = end($list); |
36 | 36 |
|
37 | | -FileRefGenerator::generate( |
38 | | - $last, |
39 | | - __DIR__."/../src/TL_telegram_v$last.tl", |
40 | | - __DIR__.'/../src/file_ref_map.dat', |
41 | | - __DIR__.'/../src/file_ref_map.json', |
42 | | -); |
| 37 | +function generate(int $layer, string $schema) { |
| 38 | + FileRefGenerator::generate( |
| 39 | + $layer, |
| 40 | + __DIR__."/../schemas/TL_telegram_v$layer.tl", |
| 41 | + __DIR__.'/../src/file_ref_map.dat', |
| 42 | + __DIR__.'/../src/file_ref_map.json', |
| 43 | + ); |
43 | 44 |
|
44 | | -copy( |
45 | | - __DIR__."/../src/TL_file_ref_map_schema.tl", |
46 | | - __DIR__."/../schemas/TL_telegram_v{$last}_file_ref_map_schema.tl" |
47 | | -); |
| 45 | + copy( |
| 46 | + __DIR__."/../src/TL_file_ref_map_schema.tl", |
| 47 | + __DIR__."/../schemas/TL_telegram_v{$layer}_file_ref_map_schema.tl" |
| 48 | + ); |
48 | 49 |
|
49 | | -$TL = new TL(null); |
50 | | -file_put_contents(__DIR__."/../schemas/TL_telegram_v{$last}_file_ref_map_schema.json", json_encode($TL->toJson($schema), flags: JSON_THROW_ON_ERROR)); |
| 50 | + $TL = new TL(null); |
| 51 | + file_put_contents(__DIR__."/../schemas/TL_telegram_v{$layer}_file_ref_map_schema.json", json_encode($TL->toJson($schema), flags: JSON_THROW_ON_ERROR)); |
51 | 52 |
|
52 | | -copy( |
53 | | - __DIR__."/../src/file_ref_map.dat", |
54 | | - __DIR__."/../schemas/TL_telegram_v{$last}_file_ref_map.dat" |
55 | | -); |
56 | | -copy( |
57 | | - __DIR__."/../src/file_ref_map.json", |
58 | | - __DIR__."/../schemas/TL_telegram_v{$last}_file_ref_map.json" |
59 | | -); |
| 53 | + copy( |
| 54 | + __DIR__."/../src/file_ref_map.dat", |
| 55 | + __DIR__."/../schemas/TL_telegram_v{$layer}_file_ref_map.dat" |
| 56 | + ); |
| 57 | + copy( |
| 58 | + __DIR__."/../src/file_ref_map.json", |
| 59 | + __DIR__."/../schemas/TL_telegram_v{$layer}_file_ref_map.json" |
| 60 | + ); |
| 61 | +} |
60 | 62 |
|
61 | 63 | $res = []; |
62 | 64 | foreach (glob(getcwd().'/schemas/TL_telegram_*_file_ref_map.json') as $file) { |
63 | 65 | preg_match("/telegram_v(\d+)/", $file, $matches); |
64 | | - $res[$matches[1]] = $file; |
| 66 | + $res[$matches[1]] = true; |
65 | 67 | } |
66 | 68 | ksort($res); |
67 | | -file_put_contents(getcwd().'/schemas/list_file_ref_map.json', json_encode(array_keys($res))); |
68 | 69 |
|
69 | | -$start = array_key_first($res); |
70 | | -foreach ($res as $layer => $_) { |
71 | | - if ($layer !== $start) { |
72 | | - throw new AssertionError("Missing fileref file for layer $layer"); |
| 70 | +$start = min(213, array_key_first($res)); |
| 71 | +$end = max(array_key_last($res), $last); |
| 72 | + |
| 73 | +for ($layer = $start; $layer <= $end; $layer++) { |
| 74 | + if (!isset($res[$layer])) { |
| 75 | + generate($layer, $schema); |
| 76 | + $res[$layer] = true; |
73 | 77 | } |
74 | | - $start++; |
75 | 78 | } |
| 79 | +ksort($res); |
| 80 | + |
| 81 | +file_put_contents(getcwd().'/schemas/list_file_ref_map.json', json_encode(array_keys($res))); |
0 commit comments