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 BufferedImage img;
static L texts;
static ImageSurface is, isWord;
static ReliableSingleThread rst;
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));
MultiSet plus = multiSetSetIntersection(multiSet, positiveWords);
MultiSet minus = multiSetSetIntersection(multiSet, negativeWords);
int score = l(plus)-l(minus);
L posTexts = [RecognizedText r : texts | containsOneOfTheWords(r.text(), keys(plus))];
L 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;
RecognizedText hilite = null;
if (score > 0) hilite = random(posTexts);
else if (score < 0) hilite = random(negTexts);
if (hilite != null && isWord != null)
isWord.setImage(clipBufferedImage(img, hilite.r));
bool first = quickShowImage_isFirst();
ImageSurface is = quickShowImage(loadImage2(imageID));
if (first) {
alwaysOnTopFrame(is);
addToWindowWithMargin(is, isWord = jImageSurface());
}
packInTopRightCorner(is);
}
}
}