Warning: session_start(): open(/var/lib/php/sessions/sess_5ir15qnq8gghh0d1n4opol2o8d, 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
cmodule DiscordFan > DynPrintLogAndEnabled {
transient Map protos = syncCIMap();
ISegmenter segmenter;
transient autoDispose new ScreenShooter shooter;
transient ReliableSingleThread rstSegment = dm_rst(module(), r segment);
transient ReliableSingleThread rstAOA = dm_rst(module(), r aoa);
transient ImageInfo info, latestWithAOA;
transient ImageSurface isThings;
transient double minScore = 95;
transient new Thinker thinker;
switchable double waitBeforeClick = 1.0;
switchable double patience = 1.0;
sclass Segment extends BWImageAndRect { *() {} *(Rect r) { super(r); } }
sclass ImageInfo extends ImageWithProtos {}
visual jvsplit(
jCenteredSection("Things found on screen", jscroll_center(isThings = jDoubleBufferedImageSurface())),
super);
start-thread {
dm_watchFieldAndNow enabled(r { set(shooter, +enabled) });
if (empty(protos))
putAll(protos, mapValues loadBWImage(imageSnippetIDsForNames(llQuoted("Open", "Open discord"))));
print("Have " + n2(protos, "proto"));
if (segmenter == null)
setField(segmenter := segmenterFromAGIBlue("Find things on discordapp.com #1"));
print("Have segmenter: " + segmenter);
shooter.onNewImage.add(rstSegment);
shooter.start(enter := f enter);
doEvery(1.0, rEnter { thinker.think() });
}
void segment {
BufferedImage img = shooter.latestImage;
if (!enabled || img == null || segmenter == null) ret; // man weiß ja nie...
this.info = (ImageInfo) imageWithProtos_segment(segmenter, img,
iwpClass := ImageInfo.class, segmentClass := Segment.class);
rstAOA.trigger();
}
void aoa {
ImageInfo info = this.info;
if (info == null) ret;
imageWithProtos_doAllOnAll(info, protos, +minScore, +isThings);
latestWithAOA = info;
}
class Thinker {
WaitForStableValue wait = new(patience);
void think {
if (!enabled) ret;
ImageInfo info = latestWithAOA;
if (info == null) ret; // man weiß ja nie...
//print("Keys", sfu(keys(info.foundProtos)));
Segment s = mapGet(info.foundProtos, quote("Open discord"));
Rect r = s == null ? null : s.rect;
print(+r);
dm_moveMouseAndClick(wait.setAndClear(r), "Discord button");
}
}
}