ОсновноеRadiotalkПользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90   •   Посмотреть все темы

Вещание нику

 

2615
Сергей @Pegass
Dimitry пишет:

да думаю может твой скрипт загнать поумолчанию уже, так всем проще будет..
скажи только что именно чтоб косяков небыло непредвиденных)

тогда надо параметр pass в конец переставить и ещё одно условие добавить
**********

тогда

/* [НАСТРОЙКИ] */
добавить
var camkey="0"; /*передаваемый и меняющийся динамически пароль к приватному вещанию*/
var chatcamkey ="2147483647" /*передаваемый и меняющийся динамически пароль к публичному*/

/* [Функции - общие] */
Добавить
/* генератор camkey */
function mtRand(min, max)
{
var range = max - min + 1;
var n = Math.floor(Math.random() * range) + min;
return n;
}

function mkPass(len)
{
var len=len?len:14;
var pass = '';
var c = '';
for (i = 0; i < len; i++) {
c = String.fromCharCode(mtRand(48, 57));
pass += c;
}
return pass;
}

/* [Функции - нижнего фрейма] */ - /* Функция ручного изменения статуса */
красное заменить на синее
parent.hidden.location.href='index.php?inc=write&'+parent.yourkey+'&text=/status '+status+'&r='+Math.random();

if(status==99 || status==98)
{
if(status==98) {chatcamkey=mkPass(mtRand(3, 9)); parent.hidden.location.href='index.php?inc=write&'+parent.yourkey+'&text=/status '+status+' '+chatcamkey+'&r='+Math.random();}
if(status==99) {web_priv=1; web_priv_on=1; camkey=mkPass(mtRand(3, 9)); parent.hidden.location.href='index.php?inc=write&'+parent.yourkey+'&text=/status '+status+' '+camkey+'&r='+Math.random();}
}
else parent.hidden.location.href='index.php?inc=write&'+parent.yourkey+'&text=/status '+status+'&r='+Math.random();

Админка -=Модерация=- Скрипты в чате - /* [Функции - формирования никлиста] */ /* Добавление ника в таблицу участников */
красное заменить на синее
if(webcam) {
if(stat2==99||stat2==98)
{
if( admin=='1'||stat2==98)
icqst="<a href=# onclick='loadvideo(\"webcam"+nick+"\",\""+webcamhost+"\",\""+nick+"\",0);return false;'>"+icqst+"</a>";
else
icqst="<a href=# onclick='parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&text=/privat "+ nick +" webcam_access\";return false;'>"+icqst+"</a>";

if(nick==mynick && loaded)
loadvideo("mywebcam",webcamhost,nick,1);
}
else
if(nick==mynick && loaded)
loadvideo("mywebcam","");
}


if(webcam) {
if(stat2==99 || stat2==98)
{
if(stat2==98)
icqst="<a href='javascript:void(0);' onclick='parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&text=/privat "+ nick +": pubcam\";return false;'>"+icqst+"</a>";
else
icqst="<a href=# onclick='parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&text=/privat "+ nick +" webcam_access\";return false;'>"+icqst+"</a>";

if(nick==mynick && loaded)
{
if(stat2==99) loadvideo("mywebcam",webcamhost,nick,1,camkey);
if(stat2==98) loadvideo("mywebcam",webcamhost,nick,1,chatcamkey);
}

}
else if(nick==mynick && loaded) loadvideo("mywebcam","");

}

/* [Функция - вывода сообщений и команд] */
красное заменить на синее

if(tonick==mynick) {
text = text.replace("webcam_ok","<a href=# onclick='parent.loadvideo(\"webcam"+nick+"\",\""+webcamhost+"\",\""+nick+"\",0);return false;'>Нажмите для просмотра</a>");
text = text.replace("webcam_access","Разрешить просмотр <a href=# onclick='parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&text=/privat "+ nick +" webcam_ok\";return false;'>да</a>/<a href=# onclick='parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&text=/privat "+ nick +" webcam_no\";return false;'>нет</a>?")}
else {text = text.replace("webcam_access","Разрешите просмотр?");
text = text.replace("webcam_ok","Просмотр разрешаю");
};
text = text.replace("webcam_no","Просмотр отклонён");



if(tonick==mynick)
{

text = text.replace("webcam_ok_b","<a href=# onclick='parent.loadvideo(\"webcam"+nick+"\",\""+webcamhost+"\",\""+nick+"\",0,\"");
text = text.replace("webcam_ok_e","\");return false;'>Нажмите для просмотра</a>");
text = text.replace("webcam_access","Разрешить просмотр <a href=# onclick='parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&text=/privat "+ nick +" webcam_ok_b\"+camkey+\"webcam_ok_e \";return false;'>да</a>/<a href=# onclick='parent.hidden.location.href = \"index.php?inc=write&"+ parent.yourkey+"&text=/privat "+ nick +" webcam_no\";return false;'>нет</a>?");

if (text.indexOf("pubcam")!=-1)
{
if(loaded==1) parent.hidden.location.href = "index.php?inc=write&"+ parent.yourkey+"&text=/privat "+ nick +": subcam"+chatcamkey;
return false;
}
if (text.indexOf("subcam")!=-1)
{
text = text.replace(tonick+": subcam","");
if(loaded==1) parent.loadvideo("webcam"+nick,webcamhost,nick,0,text);
return false;
}
}
else
{
text = text.replace("webcam_access","Разрешите просмотр?");
if (text.indexOf("webcam_ok_b")!=-1) text=tonick+": Просмотр разрешаю";
if (text.indexOf("pubcam")!=-1) {return false;}
if (text.indexOf("subcam")!=-1) {return false;}
};
text = text.replace("webcam_no","Просмотр отклонён");

Отредактировано Pegass - 14.06.2012
297
Александр @SmoL
Поставил последнее обновление (выше пост), все работает как нужно. Но если закрыть вещание, выйти с чата и опять войти, окно автоматически открывается опять, но уже с нерабочим вещанием.

2615
Сергей @Pegass
Если закрыть вещание, то такого быть не должно, а вот если закрыть просмотр, то такое может быть, особенно если при входе в чат отображается последние миллион сообщений))

20090
Dimitry @Dimitry
можно же делать проверку переменной loaded

297
Александр @SmoL
Pegass, 10 сообщений отображаются, и окно все равно после закрытия просмотра вещания (чужого), открывается после нового входа в чат.

2615
Сергей @Pegass
Ну давайте попробуем добавить зелёное как https://vmeste.eu/forum?pid=296088#p296088

297
Александр @SmoL
Ну вроде бы теперь работает нормально)

20090
Dimitry @Dimitry
Решил я переписать всё это по своему, ждите обновления)

1007
BETEPAH @BETEPAH
Dimitry пишет:

Решил я переписать всё это по своему, ждите обновления)

Раз уж так, то если не сложно, можно выделить еще один статус вещания, для того, о чем говорилось в топике? Чтоб без костылей обойтись.
Если кратко, то при выборе статуса 97 чтоб человеку, указанному в fmsg.tonick, отправлялось в приват приглашение подключиться к вещанию, а для остальных было незаметно, что статус вещающего изменился.

P.S.
Или попробовать вообще без привязки к статусу запускать камеру, если это возможно.

Отредактировано BETEPAH - 14.06.2012
20090
Dimitry @Dimitry
зачем людям навязывать вещание? не согласен с решением... хотя может если народ не знает как начать вещание, то пригласить проще...
И делать это нужно вовсе не так, нужно делать кнопку типо как отправить в приват, только пригласить к просмотру.

20090
Dimitry @Dimitry
if (text.indexOf("pubcam")!=-1)
{
if(loaded==1) parent.hidden.location.href = "index.php?inc=write&"+ parent.yourkey+"&text=/privat "+ nick +": subcam"+chatcamkey;
return false;
}

Этого нельзя делать, во первых часто будут антифлуды, во вторых можно заспамить ник и он не сможет писать.

1007
BETEPAH @BETEPAH
Dimitry пишет:

нужно делать кнопку типо как отправить в приват, только пригласить к просмотру.

Именно об этом и была просьба.
Если человек хочет включить вещание для кого-то, но незаметно для других, ссылка на подключение отправится в приват. Разве я не так же написал? 😉
Просто это востребованная функция. Люди хотят вдвоем пообщаться, но чтоб другие не приставали с намерениями подключиться к вещанию.

20090
Dimitry @Dimitry
т.е. нужно тогда статус такой и чтоб никто не мог подключиться, толькоп по приглашению?

типо статус вещаю по приглашению

2615
Сергей @Pegass
ога, у меня сейчас так сделано)))

1007
BETEPAH @BETEPAH
Dimitry пишет:

т.е. нужно тогда статус такой и чтоб никто не мог подключиться, толькоп по приглашению?

типо статус вещаю по приглашению

Не только не могли подключиться, а вообще смену статуса и ссылку для подключения мог видеть только один человек, чтоб для остальных статус включившего вещание оставался неизменным.
У меня тоже реализовано через дополнительный промт-запрос (решение приведено в третьем комментарии этой ветки), но я это называю костылем, потому как смотреть на такой код без слез тяжело. Вот и подумал, раз грядёт передел, может и эту возможность сделать аккуратнее...

2615
Сергей @Pegass
Как я себе представляю переделанное вещание)))
1) отвязаться от статуса вообще
2) по аналогии со статусом(вывод в информер и возможность использовать в скриптах) обзавестись 2-мя параметрами
а) Тип вещания(хоть 500 штук)
б) ключ сессии
3) оба параметра передавать сообщением вида "/<Сменить тип вещания> <номер типа> <ключ сессии>"
4)ключ менять при каждой смене типа вещания

Ну это конечно по хорошему

2615
Сергей @Pegass
Dimitry пишет:

Публичное вещание будет как ранее, а приватное с секретным ключом.

Так уже было, просто хотелось паблик прикрыть от просмотра извне))))

20090
Dimitry @Dimitry
ну так оно на то и публичное, чтобы все могли видеть, а на счёт того что извне, так это ещё и не каждый ХАКЕР допрёт как сделать можно, главное приватное теперь скрыто полностью, так что думаю сейчас правильное решение, выложил в обновлениях также поправил всю обработку разрешения, думаю стало лучше чем был вариант)

2615
Сергей @Pegass
Дак я вообще к хаку отношения не имею, я только по ЭЦП, но как то справился же))))

20090
Dimitry @Dimitry
ну флешку тоже как то напрогил а никто не мог до тебя это сделать, кстати где 6ю версию флеша взял?)