blob: b48b8a7cb01f96de61275410bf54db7068482ff0 [file] [log] [blame]
import 'dart:async';
import 'dart:convert';
import 'dart:io';
final _blnsJsonRawUrl =
'https://github.com/minimaxir/big-list-of-naughty-strings/raw/master/blns.json';
final _blnsFilePath = 'test/blns.dart';
Future<void> main() async {
final client = HttpClient();
List<String> json;
try {
final request = await client.getUrl(Uri.parse(_blnsJsonRawUrl));
final response = await request.close();
final source =
await response.cast<List<int>>().transform(utf8.decoder).join('');
json = (jsonDecode(source) as List).cast<String>();
} finally {
client.close();
}
final blnsContent = StringBuffer('''
// GENERATED FILE. DO NOT EDIT.
//
// This file was generated from big-list-of-naughty-strings's JSON file:
// $_blnsJsonRawUrl
// at ${DateTime.now()} by the script, tool/update_blns.dart.
// ignore_for_file: text_direction_code_point_in_literal, use_raw_strings
''');
blnsContent.writeln('const blns = <String>[');
for (final str in json) {
final escaped = str
.replaceAll(r'\', r'\\')
.replaceAll("'", r"\'")
.replaceAll(r'$', r'\$');
blnsContent.writeln(" '$escaped',");
}
blnsContent.writeln('];');
File(_blnsFilePath).writeAsStringSync(blnsContent.toString());
}