initialized google translator only when relevant flag is given

This commit is contained in:
Vishal 2022-09-02 01:57:11 +05:30
parent 50aeab1259
commit 23aab9ce9e
4 changed files with 16 additions and 14 deletions

1
.gitignore vendored
View File

@ -22,3 +22,4 @@ doc/api/
del*.txt
all_nostr_events.txt
bin/nostr_console_win64.exe
*.exe

View File

@ -1,6 +1,6 @@
import 'dart:io';
import 'package:bip340/bip340.dart';
import 'package:translator/translator.dart';
import 'package:nostr_console/event_ds.dart';
import 'package:nostr_console/tree_ds.dart';
import 'package:nostr_console/relays.dart';
@ -54,6 +54,7 @@ Future<void> main(List<String> arguments) async {
if( argResults[translateArg]) {
gTranslate = true;
print("Going to translate comments in last $gNumTranslateDays days using Google translate service");
translator = GoogleTranslator();
}
if( argResults[pubkeyArg] != null) {

View File

@ -12,7 +12,8 @@ import 'package:kepler/kepler.dart';
int gDebug = 0;
// translate
final translator = GoogleTranslator();
GoogleTranslator? translator; // initialized in main when argument given
const int gNumTranslateDays = 1;// translate for this number of days
bool gTranslate = false; // translate flag
@ -176,21 +177,20 @@ class EventData {
switch(kind) {
case 1:
evaluatedContent = expandMentions(content);
if( gTranslate && !evaluatedContent.isEnglish()) {
if( translator != null && gTranslate && !evaluatedContent.isEnglish()) {
if( gDebug > 0) print("found that this comment is non-English: $evaluatedContent");
//final input = "Здравствуйте. Ты в порядке?";
// Using the Future API
// only translate for latest events
if( DateTime.fromMillisecondsSinceEpoch(createdAt *1000).compareTo( DateTime.now().subtract(Duration(days:gNumTranslateDays)) ) > 0 ) {
if( gDebug > 0) print("Sending google request: translating $content");
try {
translator
.translate(content, to: 'en')
//.catchError( (error, stackTrace) => null )
.then( (result) => { evaluatedContent = "$evaluatedContent\n\nTranslation: ${result.toString()}" , if( gDebug > 0) print("Google translate returned successfully for one call.")}
);
} on Exception catch(err) {
if( gDebug >= 0) print("Info: Error in trying to use google translate: $err");
if( translator != null) {
try {
translator?.translate(content, to: 'en')
.then( (result) => { evaluatedContent = "$evaluatedContent\n\nTranslation: ${result.toString()}" , if( gDebug > 0) print("Google translate returned successfully for one call.")}
);
} on Exception catch(err) {
if( gDebug >= 0) print("Info: Error in trying to use google translate: $err");
}
}
}
}

View File

@ -3,7 +3,7 @@ description: A multi-platform nostr client built for terminal/console.
version: 0.0.7-beta
homepage: https://github.com/vishalxl/nostr_console
# testing pubspec action based on path, test build
# testing pubspec action based on path, test build
environment:
sdk: '>=2.17.3 <3.0.0'