diff --git a/src/sbbs3/js_bbs.cpp b/src/sbbs3/js_bbs.cpp index 5b52d8298da2a7371e0bfa679594a022f2851d92..a0a1148697e18594f1a3af66248513994f4120fd 100644 --- a/src/sbbs3/js_bbs.cpp +++ b/src/sbbs3/js_bbs.cpp @@ -840,6 +840,153 @@ js_telnet_gate(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva return(JS_TRUE); } +js_pagesysop(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + sbbs_t* sbbs; + + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) + return(JS_FALSE); + + *rval = BOOLEAN_TO_JSVAL(sbbs->sysop_page()); + return(JS_TRUE); +} + +js_pageguru(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + sbbs_t* sbbs; + + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) + return(JS_FALSE); + + *rval = BOOLEAN_TO_JSVAL(sbbs->guru_page()); + return(JS_TRUE); +} + +js_multinode_chat(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + sbbs_t* sbbs; + int channel=1; + + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) + return(JS_FALSE); + + if(argc>1) + channel=JSVAL_TO_INT(argv[1]); + + sbbs->multinodechat(channel); + + *rval = JSVAL_VOID; + return(JS_TRUE); +} + +js_private_message(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + sbbs_t* sbbs; + + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) + return(JS_FALSE); + + sbbs->nodemsg(); + + *rval = JSVAL_VOID; + return(JS_TRUE); +} + +js_private_chat(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + sbbs_t* sbbs; + + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) + return(JS_FALSE); + + sbbs->privchat(); + + *rval = JSVAL_VOID; + return(JS_TRUE); +} + +js_get_node_message(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + sbbs_t* sbbs; + + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) + return(JS_FALSE); + + sbbs->getnmsg(); + + *rval = JSVAL_VOID; + return(JS_TRUE); +} + +js_put_node_message(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + sbbs_t* sbbs; + int node; + JSString* js_msg; + char* msg; + + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) + return(JS_FALSE); + + if((node=JSVAL_TO_INT(argv[0]))<1) + node=1; + + if((js_msg=JS_ValueToString(cx, argv[1]))==NULL) + return(JS_FALSE); + + if((msg=JS_GetStringBytes(js_msg))==NULL) + return(JS_FALSE); + + sbbs->putnmsg(node,msg); + + *rval = JSVAL_VOID; + return(JS_TRUE); +} + +js_get_telegram(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + sbbs_t* sbbs; + int usernumber; + + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) + return(JS_FALSE); + + usernumber=sbbs->useron.number; + if(argc>1) + usernumber=JSVAL_TO_INT(argv[0]); + + sbbs->getsmsg(usernumber); + + *rval = JSVAL_VOID; + return(JS_TRUE); +} + +js_put_telegram(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) +{ + sbbs_t* sbbs; + int usernumber; + JSString* js_msg; + char* msg; + + if((sbbs=(sbbs_t*)JS_GetContextPrivate(cx))==NULL) + return(JS_FALSE); + + if((usernumber=JSVAL_TO_INT(argv[0]))<1) + usernumber=1; + + if((js_msg=JS_ValueToString(cx, argv[1]))==NULL) + return(JS_FALSE); + + if((msg=JS_GetStringBytes(js_msg))==NULL) + return(JS_FALSE); + + putsmsg(&sbbs->cfg,usernumber,msg); + + *rval = JSVAL_VOID; + return(JS_TRUE); +} + + static JSFunctionSpec js_bbs_functions[] = { /* text.dat */ {"text", js_text, 1}, // return text string from text.dat @@ -868,6 +1015,16 @@ static JSFunctionSpec js_bbs_functions[] = { {"telnet_gate", js_telnet_gate, 1}, // external telnet gateway (w/opt mode) /* security */ {"check_syspass", js_chksyspass, 0}, // verify system password + /* chat */ + {"page_sysop", js_pagesysop, 0}, // page sysop for chat + {"page_guru", js_pageguru, 0}, // page guru for chat + {"multinode_chat", js_multinode_chat, 0}, // multi-node chat + {"private_message", js_private_message, 0}, // private inter-node message + {"private_chat", js_private_chat, 0}, // private inter-node chat + {"get_node_message",js_get_node_message,0}, // getnmsg() + {"put_node_message",js_put_node_message,2}, // putnmsg(nodenum,str) + {"get_telegram", js_get_telegram, 1}, // getsmsg(usernum) + {"put_telegram", js_put_telegram, 2}, // putsmsg(usernum,str) {0} };