tokenGen method

String tokenGen(
  1. dynamic a
)

Generates a valid Google Translate request token for the given input.

Implementation

String tokenGen(dynamic a) {
  final tkk = _tkk();
  final dynamic b = tkk[0];

  final d = <int>[];

  final text = a.toString();
  for (var f = 0; f < text.length; f++) {
    var g = text.codeUnitAt(f);
    if (128 > g) {
      d.add(g);
    } else {
      if (2048 > g) {
        d.add(g >> 6 | 192);
      } else {
        if (55296 == (g & 64512) &&
            f + 1 < text.length &&
            56320 == (text.codeUnitAt(f + 1) & 64512)) {
          g = 65536 + ((g & 1023) << 10) + (text.codeUnitAt(++f) & 1023);
          d.add(g >> 18 | 240);
          d.add(g >> 12 & 63 | 128);
        } else {
          d.add(g >> 12 | 224);
        }
        d.add(g >> 6 & 63 | 128);
      }
      d.add(g & 63 | 128);
    }
  }

  int current = int.parse(b.toString());
  for (var e = 0; e < d.length; e++) {
    current += d[e];
    current = wr(current, '+-a^+6');
  }
  current = wr(current, '+-3^+b+-f');
  final dynamic tkk1 = tkk[1];
  current ^= tkk1 is int ? tkk1 : 0;
  if (0 > current) {
    current = (current & 2147483647) + 2147483648;
  }
  final double currentDouble = current % 1E6;
  final int rounded = currentDouble.round();
  final int bInt = int.parse(b.toString());
  return '$rounded.${rounded ^ bInt}';
}