Warning: session_start(): open(/var/lib/php/sessions/sess_b8qil2mkufbjlnalb2nlk4oqnf, 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
sclass PrivateChat extends DynPrintLog {
S receiver, msg;
bool sign;
transient StefansOS_ConnectToServer connector;
visualize {
ret centerAndSouthWithMargins(
super.visualize(),
centerAndEastWithMargin(
jLine(
jLabel("Send to"),
jMinWidth(100, jLiveValueTextField_bothWays(dm_fieldLiveValue('receiver))),
jLabel(":")),
onEnterAndCtrlEnter(jLiveValueTextField_bothWays(dm_fieldLiveValue('msg)), rThread sendMsg)),
centerAndEastWithMargin(jLiveValueCheckBox("Sign", dm_fieldLiveValue('sign)), jbutton("Send", rThread sendMsg)));
}
void sendMsg {
postMsg(trim(msg), sign);
setField(msg := "");
}
void postSigned(S receiver, S msg) { postMsg(receiver, msg, true); }
void postMsg(S receiver, S msg, bool sign) {
if (empty(receiver = trim(receiver))) ret;
if (!possibleComputerID(receiver)) ret with infoBox("Not a computer ID: " + receiver);
if (empty(msg = trim(msg))) ret;
if (sign) msg = signWithComputerIDAndDate(msg);
vmBus_send('sendingToPrivateChat, receiver, msg);
//logQuotedWithDate(javaxDataDir("OS Chat/sent.log"), msg);
print("Sending to " + receiver + ": " + msg);
connector.sendLine(receiver + " " + quote(msg));
}
void cleanMeUp { cleanUp(connector); }
start {
thread { exportComputerPublicKeyToServerMechList(); }
connector = new StefansOS_ConnectToServer;
connector.onLine = voidfunc(S line) {
new Matches m;
if (startsWith(line, "privately from ", m)) {
S s = m.rest();
int i = indexOf(s, ':');
S sender = takeFirst(s, i):
S msg = unquote(substring(s, i+2));
printWithIndent(sender + " >> ", msg);
vmBus_send('gotFromPrivateChat, sender, msg);
//logQuotedWithDate(stefansOS_chat_receivedLogFile(), msg);
}
};
connector.startWithSubs("privateChat");
}
}