Warning: session_start(): open(/var/lib/php/sessions/sess_903g713n273d2gd8b30mh6js4m, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
static volatile BufferedImage img, recognizedImage;
static L texts;
static ImageSurface is, isWord;
static volatile int score;
static volatile L posTexts, negTexts;
p-subst-autorestart {
repeat with sleep 0 {
//print("Shooting");
//img = shootScreenHidingConsole();
img = shootScreen2();
//print("Recognizing");
time {
L texts = ocr_recognizeMultiLine_scored(img);
L lines = mapMethod('text, texts);
MultiSet multiSet = asCIMultiSet(onlyStringsLongerThan(1, words(lines(lines))));
//pnl(multiSetAsMap_popularFirst(multiSet));
Set positiveWords = mechSetCI("Positive words");
Set negativeWords = mechSetCI("Negative words");
Set set = asCISet(keys(multiSet));
final MultiSet plus = multiSetSetIntersection(multiSet, positiveWords);
final MultiSet minus = multiSetSetIntersection(multiSet, negativeWords);
score = l(plus)-l(minus);
posTexts = [RecognizedText r : texts | containsOneOfTheWords(r.text(), keys(plus))];
negTexts = [RecognizedText r : texts | containsOneOfTheWords(r.text(), keys(minus))];
L popPlus = mostPopularEntriesFromMultiMap(3, plus);
L popMinus = mostPopularEntriesFromMultiMap(3, minus);
S text = "Score: " + score;
if (score >= 0 && nempty(popPlus))
text += "\n" + joinWithComma(popPlus);
if (score <= 0 && nempty(popMinus))
text += "\n" + joinWithComma(popMinus);
//infoBox(text);
flatInfoBox(escapeNewLines(text));
S imageID = score == 0 ? #1101256
: score > 0 ? #1101255
: #1101254;
recognizedImage = img;
bool first = is == null;
ImageSurface is = showImage_centered(is, loadImage2(imageID));
if (first) {
alwaysOnTopFrame(is);
addToWindowWithMargin(is, jfullcenter(isWord = jImageSurface()));
enlargeFrameLeftAndBottom(is, 50);
isWord.setZoom(2);
awtEvery(isWord, 333, f cycleWord);
}
//packFrame/*InTopRightCorner*/(is);
}
}
}
svoid cycleWord {
if (recognizedImage == null) ret;
RecognizedText hilite = null;
if (score > 0) hilite = random(posTexts);
else if (score < 0) hilite = random(negTexts);
if (hilite != null)
isWord.setImage(clipBufferedImage(recognizedImage, hilite.r));
else
isWord.setImage(newBufferedImage(1, 1, Color.white));
}