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 {
  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.

// ignore_for_file: text_direction_code_point_in_literal

''');
  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());
}
