blob: 339271233810747e150d5bab69d5836c84d8ac24 [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<Null> main() async {
var client = HttpClient();
List<String> json;
try {
var request = await client.getUrl(Uri.parse(_blnsJsonRawUrl));
var response = await request.close();
json = (jsonDecode(await response
.cast<List<int>>()
.transform(utf8.decoder)
.join('')) as List)
.cast<String>();
} finally {
client.close();
}
var 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.
''');
blnsContent.writeln('const blns = <String>[');
for (var str in json) {
var escaped = str
.replaceAll(r'\', r'\\')
.replaceAll("'", r"\'")
.replaceAll(r'$', r'\$');
blnsContent.writeln(" '$escaped',");
}
blnsContent.writeln('];');
File(_blnsFilePath)..writeAsStringSync(blnsContent.toString());
}