This commit is contained in:
Piyush मिश्रः 2021-02-21 00:13:11 +05:30
parent 8982409586
commit 7ddec9e47f
8 changed files with 59 additions and 58 deletions

4
.gitignore vendored
View File

@ -1,2 +1,4 @@
/target
/vecmap/target
/vecmap/target
# Local Netlify folder
.netlify

32
api.txt
View File

@ -1,32 +0,0 @@
Set Info:
{
cmd: "seinfo",
name: name,
kunjika: kunjika,
tags: tags
}
Join Grih:
{
cmd: "join",
kunjika: id,
length: number of members allowed (optional)
}
Leave:
{
cmd: "leave"
}
Send Message:
{
cmd: "text",
text: message
}
RandomUser:
{
cmd: "rnd"
}

2
functions Executable file
View File

@ -0,0 +1,2 @@
#!/usr/bin/bash
lupt/target/release/lupt -s ./static -a $URL

20
netlify.toml Normal file
View File

@ -0,0 +1,20 @@
# example netlify.toml
[build]
command = "cargo build --release"
functions = "functions"
## Uncomment to use this redirect for Single Page Applications like create-react-app.
## Not needed for static site generators.
#[[redirects]]
# from = "/*"
# to = "/index.html"
# status = 200
## (optional) Settings for Netlify Dev
## https://github.com/netlify/cli/blob/master/docs/netlify-dev.md#project-detection
#[dev]
# command = "yarn start" # Command to start your dev server
# port = 3000 # Port that the dev server will be listening on
# publish = "dist" # Folder with the static content for _redirect file
## more info on configuring this file: https://www.netlify.com/docs/netlify-toml-reference/

2
rust-toolchain Normal file
View File

@ -0,0 +1,2 @@
[toolchain]
channel = "stable"

View File

@ -56,12 +56,11 @@ impl Handler<ms::JoinGrih> for ChatPinnd {
fn handle(&mut self, msg: ms::JoinGrih, _: &mut Self::Context) -> Self::Result {
// check if user exist
if let Some(_) = self.vyaktigat_waitlist.iter().position(|vk| vk.kunjika == msg.kunjika) {
println!("got in watchlist");
return Resp::Err("Kunjika already exist".to_owned());
}
if let Some(_) = self.grih.iter().position(|(_,g)| {
match g.loog.iter().position(|a| {println!("Got in grih {:?} {:?}", a.kunjika, msg.kunjika); a.kunjika == msg.kunjika}) {
match g.loog.iter().position(|a| a.kunjika == msg.kunjika) {
Some(_) => true,
None => false
}
@ -297,6 +296,9 @@ impl Handler<ms::SendStatus> for ChatPinnd {
fn handle(&mut self, msg: ms::SendStatus, _: &mut Self::Context) -> Self::Result {
if let Some(grih) = self.grih.get(&msg.grih_kunjika) {
grih.loog.iter().for_each(|c| {
if c.kunjika == msg.kunjika {
return;
}
c.addr.do_send(ms::WsStatus {
sender_kunjika: msg.kunjika.to_owned(),
status: msg.status.to_owned(),

View File

@ -172,7 +172,6 @@ impl WsSansad {
// check client heartbeats
if Instant::now().duration_since(act.hb) > CLIENT_TIMEOUT {
// heartbeat timed out
println!("Websocket Client heartbeat failed, disconnecting!");
// stop actor
ctx.stop();
@ -258,8 +257,7 @@ impl WsSansad {
if let Some(val ) = validate(vec![vl::NonEmpty, vl::NoSpace, vl::NoHashtag], &kunjika, "Kunjika") {
self.send_err_response(&val);
return;
}
if let Some(val ) = validate(vec![vl::NonEmpty], &name, "Name") {
} else if let Some(val ) = validate(vec![vl::NonEmpty], &name, "Name") {
self.send_err_response(&val);
return;
}
@ -366,17 +364,15 @@ impl WsSansad {
// Validate
if let Some(val ) = validate(vec![vl::NonEmpty, vl::NoSpace, vl::NoHashtag], &kunjika, "Kunjika") {
self.send_err_response(&val);
return;
}
if let Some(val ) = validate(vec![vl::NonEmpty], &name, "Name") {
self.send_err_response(&val);
return;
}
if let Some(val ) = validate(vec![vl::NonEmpty, vl::NoGupt, vl::NoSpace], &grih_kunjika, "Grih Kunjika") {
self.send_err_response(&val);
return;
} else if let Some(val ) = validate(vec![vl::NonEmpty, vl::NoSpace, vl::NoHashtag], &kunjika, "Kunjika") {
self.send_err_response(&val);
return;
} else if let Some(val ) = validate(vec![vl::NonEmpty], &name, "Name") {
self.send_err_response(&val);
return;
}
// request

View File

@ -29,15 +29,7 @@ $(document).ready(() => {
var send_typing = false;
var timeout = null;
$('#send_box').keypress(function(e) {
if(e.originalEvent.charCode == 13 && !e.shiftKey) {
send();
e.preventDefault();
clearTimeout(timeout);
send_typing = false;
sendTypingEnd()
return
}
$('#send_box').keydown(function(e) {
if (!send_typing) {
sendTyping();
send_typing = true;
@ -49,6 +41,16 @@ $(document).ready(() => {
sendTypingEnd();
},3000);
});
$('#send_box').keypress(function(e) {
if(e.originalEvent.charCode == 13 && !e.shiftKey) {
send();
e.preventDefault();
clearTimeout(timeout);
send_typing = false;
sendTypingEnd()
return
}
});
$('#send_box').bind('input propertychange keyup', function() {
var height = ($(window).height()*0.0165).toFixed(0)*20;
@ -110,6 +112,7 @@ socket.addEventListener('message', function (event) {
$('[name="error_msg"]').text(j.message);
$('[name="error_msg"]').removeClass('hidden');
$('#progressbar').addClass('hidden');
joining = false;
callbacks = [];
} else {
pushStatus(j.message);
@ -144,11 +147,11 @@ socket.addEventListener('message', function (event) {
break;
case 'connected':
vayakti[j.kunjika] = j.name;
pushStatus('Vyakti '+j.name+' connected as '+j.kunjika);
pushStatus('Vyakti '+j.name+' connected as '+j.kunjika+' at '+currentTime());
break;
case 'disconnected':
delete vayakti[j.kunjika];
pushStatus('Vyakti '+j.name+' disconnected as '+j.kunjika);
pushStatus('Vyakti '+j.name+' disconnected as '+j.kunjika+' at '+currentTime());
break;
case 'list':
JSON.parse(j.vayakti).forEach(function(usr) {
@ -184,6 +187,7 @@ function connect(frm) {
myinfo.name = data.name;
no_name_message = false;
joining = false;
pushStatus('Connected at '+currentTime());
socket.send(JSON.stringify({cmd: 'list'}));
});
socket.send(JSON.stringify(Object.assign({cmd: frm.attr('cmd')}, data)));
@ -347,7 +351,7 @@ function cleanMessage() {
function vayaktiList() {
var v = $('#vayakti_list');
v.empty();
Object.keys(vayaktiList).forEach((key) => {
Object.keys(vayakti).forEach((key) => {
v.append($('<div>', {class: 'siimple-table-row'})
.append($('<div>', {class: 'siimple-table-cell'}).append(key))
.append($('<div>', {class: 'siimple-table-cell'}).append(vayakti[key])));
@ -355,3 +359,8 @@ function vayaktiList() {
$('#vayakti_model').removeClass('hidden');
$('#action_clip').addClass('hidden');
}
function currentTime() {
var today = new Date();
return today.getHours()+':'+today.getMinutes();
}