Skip to content

Commit b3dd47b

Browse files
committed
Multi layer generation
1 parent f85cddd commit b3dd47b

2 files changed

Lines changed: 34 additions & 28 deletions

File tree

tools/gen_filerefmap.php

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -34,42 +34,48 @@
3434
$list = json_decode($list, true);
3535
$last = end($list);
3636

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+
);
4344

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+
);
4849

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));
5152

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+
}
6062

6163
$res = [];
6264
foreach (glob(getcwd().'/schemas/TL_telegram_*_file_ref_map.json') as $file) {
6365
preg_match("/telegram_v(\d+)/", $file, $matches);
64-
$res[$matches[1]] = $file;
66+
$res[$matches[1]] = true;
6567
}
6668
ksort($res);
67-
file_put_contents(getcwd().'/schemas/list_file_ref_map.json', json_encode(array_keys($res)));
6869

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;
7377
}
74-
$start++;
7578
}
79+
ksort($res);
80+
81+
file_put_contents(getcwd().'/schemas/list_file_ref_map.json', json_encode(array_keys($res)));

0 commit comments

Comments
 (0)