X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fbrisk.phh;h=9cfa723e228374b2ed47a5de1b842148b0013db8;hb=36d1e27085681388ea4989bdd62aad522ddf0dc6;hp=4c9c26e6834a7161064afc31fc840457341a0d4d;hpb=b65dddf6cb8fdc5a98719ed170ca38c2059b362c;p=brisk.git diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh index 4c9c26e..9cfa723 100644 --- a/web/Obj/brisk.phh +++ b/web/Obj/brisk.phh @@ -141,12 +141,12 @@ $mlang_brisk = array( 'btn_backstand'=> array( 'it' => 'torna in piedi', $G_lng = langtolng($G_lang); $G_all_points = array( 11,10,4,3,2, 0,0,0,0,0 ); -$G_brisk_version = "4.6.0"; +$G_brisk_version = "4.8.0"; /* MLANG: ALL THE INFO STRINGS IN brisk.phh */ -$root_wellarr = array( 'it' => array ( 'Brisk (Ver. '.$G_brisk_version.'), NOVITA\': aggiunti script di avvio automatico, gestione dei segnali e logging dell\' ultima connessione.', +$root_wellarr = array( 'it' => array ( 'Brisk (Ver. '.$G_brisk_version.'), NOVITA\': prova il nuovo azioni->preferenze.', 'Se vuoi iscriverti alla Mailing List, cliccala!' ), - 'en' => array ( 'Brisk (Ver. '.$G_brisk_version.'), NEWS: usage of reader/writer locking instead of generic exclusive locking.', + 'en' => array ( 'Brisk (Ver. '.$G_brisk_version.'), NEWS: server-side infrastructure to manage user preferences added and S customization added.', 'If you want to subscribe our Mailing List, click it!' ) ); $G_room_help = array( 'it' => ' @@ -601,11 +601,6 @@ class Table { } } - - - // $ret .= table_act_content(($user->subst == 'standup'), $this->table[$i]->player_n, $i, $user->table, - // ($this->table[$i]->auth_only == FALSE ? TRUE : $user->flags & USER_FLAG_AUTH)); - // function act_content($isstanding, $sitted, $table, $cur_table, $allowed) function act_content($user) { @@ -716,6 +711,7 @@ class Client_prefs { { $thiz = new Client_prefs(); if ($thiz->json_load($json) == FALSE) { + unset($thiz); return (FALSE); } @@ -726,40 +722,94 @@ class Client_prefs { { fprintf(STDERR, "QQ %s: %x\n", __FUNCTION__, $user->flags); $this->listen = ($user->flags & USER_FLAG_MAP_AUTH) >> 2; - $this->supp_comp = $user->rec->supp_comp; + if ($user->rec != FALSE) { + $this->supp_comp = $user->rec->supp_comp; + } + else { + $this->supp_comp = "000000000000"; + } fprintf(STDERR, "QQ %s: LISTEN: %d\n", __FUNCTION__, $this->listen); } function json_load($json_s) { - if (gettype($json_s) == "string") { - if (($json = json_decode($json_s)) == FALSE) - return FALSE; - } - else { - $json = $json_s; - } - $this->listen = $json->listen; - $this->supp_comp = $json->supp_comp; + $ret = FALSE; - return TRUE; + do { + if (gettype($json_s) == "string") { + if (($json = json_decode($json_s)) == FALSE) + break; + } + else { + $json = $json_s; + } + if ($this->listen < 0 || $this->listen > 2) + break; + $this->listen = $json->listen; + + if (mb_strlen($json->supp_comp, "ASCII") != 12) + break; + + for ($i = 0, $idx = 0 ; $i < 12 ; $i++) { + if (($json->supp_comp[$i] >= '0' && $json->supp_comp[$i] <= '9') || + ($json->supp_comp[$i] >= 'a' && $json->supp_comp[$i] <= 'f')) + continue; + break; + } + if ($i < 12) + break; + $this->supp_comp = $json->supp_comp; + $ret = TRUE; + } while (FALSE); + + return ($ret); } function store($user, $is_save) { // save into DB fprintf(STDERR, "QQ %s::%s PRE: %x\n", __CLASS__, __FUNCTION__, - $user->flags & (~USER_FLAG_S_ALL & ~USER_FLAG_AUTH)); + $user->flags & (~USER_FLAG_AUTH)); $user->flags_set(($this->listen << 2), USER_FLAG_MAP_AUTH); fprintf(STDERR, "QQ %s::%s %x\n", __CLASS__, __FUNCTION__, $user->flags); - $user->rec->supp_comp = $this->supp_comp; + if ($user->is_supp_custom()) { + $user->rec->supp_comp = $this->supp_comp; + } if ($is_save) $user->store_set(); } } +class ModerationItem +{ + var $table; + var $date; + var $content; + + function ModerationItem($where, $date, $content) + { + $this->where = $where; + $this->time = $time; + $this->content = $content; + } +} + +class Moderation +{ + var $row; + + function Moderation() + { + $this->item = Array(); + } + + function get_all() + { + return json_encode($this->item); + } +} class Room { @@ -936,7 +986,7 @@ class Room if ($user_cur->sess == "") continue; - + if ($user_cur->lacc + EXPIRE_TIME_RD < ($curtime - $delta)) { // Auto logout dell'utente log_rd2("AUTO LOGOUT.".($user_cur->lacc + EXPIRE_TIME_RD)." curtime - delta ".($curtime - $delta)); @@ -1016,8 +1066,6 @@ class Room for ($i = 0 ; $i < TABLES_N ; $i++) { $ret .= $this->table_content($user, $i); - // $ret .= table_act_content(($user->subst == 'standup'), $this->table[$i]->player_n, $i, $user->table, - // ($this->table[$i]->auth_only == FALSE ? TRUE : $user->flags & USER_FLAG_AUTH)); $ret .= $this->table[$i]->act_content($user); if ($this->table[$i]->wag_own != -1) $ret .= sprintf('tra.add(%d, "%s: %s"); ', $i, $this->user[$this->table[$i]->wag_own]->name, $this->table[$i]->wag_com); @@ -1081,7 +1129,7 @@ class Room $user_cur = $this->user[$i]; if ($user_cur->sess == '' || $user_cur->stat != 'room') continue; - + // log_main("VALORI: name: ".$user_cur->name."from_table: ".$from_table." tab: ".$user_cur->table." taix: ".$table_idx." ucur: ".$user_cur." us: ".$user); $ret = "gst.st = ".($user_cur->step+1)."; ".($remove_wagon ? sprintf("tra.rem(%d);",$table_idx) : ""); @@ -1105,15 +1153,11 @@ class Room // clean the action buttons in other tables for ($e = 0 ; $e < TABLES_N ; $e++) { if ($this->table[$e]->player_n < PLAYERS_N) { - // $ret .= table_act_content(TRUE, 0, $e, $user->table, - // ($this->table[$e]->auth_only == FALSE ? TRUE : $user->flags & USER_FLAG_AUTH)); $ret .= $this->table[$e]->act_content($user); } } } else { - // $ret .= table_act_content(($user_cur->subst == 'standup'), $table->player_n, $table_idx, $user_cur->table, - // ($table->auth_only == FALSE ? TRUE : $user_cur->flags & USER_FLAG_AUTH)); $ret .= $table->act_content($user_cur); } } @@ -1188,8 +1232,6 @@ class Room $ret .= $this->table_content($user_cur, $table_idx); $ret .= $this->standup_content($user_cur); - // $ret .= table_act_content(FALSE, 0, $table_idx, $user_cur->table, - // ($table->auth_only == FALSE ? TRUE : $user_cur->flags & USER_FLAG_AUTH)); $ret .= $table->act_content($user_cur); @@ -1217,8 +1259,6 @@ class Room log_main("JOIN_WAKEUP wup_idx ".$wup_idx." wup_n ".$user_wup_n); log_main("JOIN_WAKEUP more"); - // $ret .= table_act_content(($user_cur->subst == 'standup'), $table->player_n, $table_idx, $user_cur->table, - // ($table->auth_only == FALSE ? TRUE : $user_cur->flags & USER_FLAG_AUTH)); $ret .= $table->act_content($user_cur); log_main("JOIN_WAKEUP end more"); @@ -1248,7 +1288,7 @@ class Room $user_cur = $this->user[$i]; if ($user_cur->sess == '' || $user_cur->stat != 'room') continue; - + $ret = "gst.st = ".($user_cur->step+1)."; "; if ($table_idx > -1) $ret .= $this->table_content($user_cur, $table_idx); @@ -1305,8 +1345,6 @@ class Room } else if ($table_idx > -1) { if ($table->player_n == PLAYERS_N) { - // $ret .= table_act_content(($user_cur->subst == 'standup'), PLAYERS_N, $table_idx, $user_cur->table, - /// ($table->auth_only == FALSE ? TRUE : $user_cur->flags & USER_FLAG_AUTH)); $ret .= $table->act_content($user_cur); } } @@ -1400,8 +1438,7 @@ class Room /* MLANG: "Alarm %s inviato a %s." */ $prestr = sprintf($mlang_brisk['alarret'][$G_lang], xcape(substr($msg, strlen($alarm_check))), ($target == "" ? $mlang_brisk['tit_all'][$G_lang] : xcape($target)) ); - $to_user = sprintf('chatt_sub("%s", [2, "%s"],%s);', - $dt, NICKSERV, $prestr); + $to_user = sprintf('chatt_sub("%s", [2, 0, "%s"],%s);', $dt, NICKSERV, $prestr); $msg = sprintf("
%s

%s


", $dt.NICKSERV, xcape(substr($msg, strlen($alarm_check)))); @@ -1416,7 +1453,7 @@ class Room $flags_old = 0; if ($user->stat == 'room' && $user->subst == 'sitdown' && $user->table >= TABLES_AUTH_N) { - $to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['listmust'][$G_lang]); + $to_user = sprintf('chatt_sub("%s", [2, 0, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['listmust'][$G_lang]); } else { @@ -1449,7 +1486,7 @@ class Room } else { /* MLANG: "Per autenticare qualcuno devi a tua volta essere autenticato.", "Il nickname deve contenere almeno una lettera dell\'alfabeto o una cifra.", "Nickname %s già in uso." */ - $to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['authmust'][$G_lang]); + $to_user = sprintf('chatt_sub("%s", [2, 0, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['authmust'][$G_lang]); } } else if (strncmp($msg, "/mesgtoadm", 8) == 0) { @@ -1458,7 +1495,7 @@ class Room } else { /* MLANG: "Per inviare un messaggio devi essere autenticato." */ - $to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['mesgmust'][$G_lang]); + $to_user = sprintf('chatt_sub("%s", [2, 0, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['mesgmust'][$G_lang]); } } else if (strncmp($msg, "/nick ", 6) == 0) { @@ -1466,7 +1503,7 @@ class Room do { if (($name_new = validate_name(substr($msg, 6))) == FALSE) { - $to_user = sprintf('chatt_sub("%s", [2,"%s"],"%s");', $dt, NICKSERV, $mlang_brisk['nickmust'][$G_lang]); + $to_user = sprintf('chatt_sub("%s", [2, 0, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['nickmust'][$G_lang]); break; } @@ -1481,7 +1518,7 @@ class Room } if ($i < MAX_PLAYERS) { $prestr = sprintf($mlang_brisk['nickdupl'][$G_lang], xcape($name_new)); - $to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $prestr); + $to_user = sprintf('chatt_sub("%s", [2, 0, "%s"],"%s");', $dt, NICKSERV, $prestr); break; } @@ -1499,7 +1536,7 @@ class Room } } else { - $to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['authchan'][$G_lang]); + $to_user = sprintf('chatt_sub("%s", [2, 0, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['authchan'][$G_lang]); break; } } @@ -1512,7 +1549,7 @@ class Room /* MLANG: "Il nickname \'%s\' è già registrato, se il suo proprietario si autentificherà verrai rinominato d\'ufficio come ghostN." */ if ($bdb->login_exists($name_new)) { $prestr = sprintf($mlang_brisk['nickjust'][$G_lang], xcape($name_new)); - $to_user .= sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $prestr); + $to_user .= sprintf('chatt_sub("%s", [2, 0, "%s"],"%s");', $dt, NICKSERV, $prestr); } } } @@ -1579,14 +1616,13 @@ class Room } else { /* MLANG: "Questo stato non esiste." */ - $to_user = sprintf('chatt_sub("%s", [2,"%s"],"%s");', $dt, NICKSERV, $mlang_brisk['statunkn'][$G_lang]); + $to_user = sprintf('chatt_sub("%s", [2, 0, "%s"],"%s");', $dt, NICKSERV, $mlang_brisk['statunkn'][$G_lang]); break; } log_main("chatt_send start set"); - if (($user->flags & USER_FLAG_S_ALL) != $st) { - $update_room = TRUE; - $user->flags = ($user->flags & ~USER_FLAG_S_ALL) | $st; + if ($user->flags_vlt_set($st, USER_FLAG_S_ALL)) { + $update_room = TRUE; } } while (0); } // nick chat command @@ -1612,10 +1648,10 @@ class Room } if ($only_you) { - $to_user = sprintf('chatt_sub("%s", [%d, "%s"],"%s");', $dt, $user->flags, xcape($user->name), xcape("== chat ban ==")); + $to_user = sprintf('chatt_sub("%s", [%d, %d, "%s"],"%s");', $dt, $user->flags, $user->flags_vlt, xcape($user->name), xcape("== chat ban ==")); } else { - $to_user = sprintf('chatt_sub("%s", [%d, "%s"],"%s");', $dt, $user->flags, xcape($user->name), xcape($msg)); + $to_user = sprintf('chatt_sub("%s", [%d, %d, "%s"],"%s");', $dt, $user->flags, $user->flags_vlt, xcape($user->name), xcape($msg)); // temporary silentiation for troll (will became array check) // if (strcasecmp($user->name,'JackRokka') != 0 && $user->sess != '47ea653f602e8') $to_room = $to_user; @@ -1645,33 +1681,44 @@ class Room } if ($to_room != FALSE) { - for ($i = 0 ; $i < MAX_PLAYERS ; $i++) { - $user_cur = $this->user[$i]; - if ($target != "" && $user_cur->name != $target) - continue; - if ($user_cur->sess == '' || $user_cur->stat == 'table' || $user->idx_get() == $i) - continue; - - if ($is_normchat == TRUE) { - // use MAP_AUTH to check if auth or isolation - if ($user_cur->flags & USER_FLAG_MAP_AUTH) { - if (($user->flags & USER_FLAG_AUTH) == 0) { - continue; + for ($i = 0 ; $i < MAX_PLAYERS ; $i++) { + $user_cur = $this->user[$i]; + if ($target != "" && $user_cur->name != $target) + continue; + if ($user_cur->sess == '') + continue; + + if ($user_cur->flags_vlt_get(USER_FLAG_MODER)) { + $user_cur->comm[$user_cur->step % COMM_N] .= sprintf('g_moder.add([%d, "%s", %d, "%s", "%s"]);' , + $curtime, "userid", + ($user->stat == 'table' ? $user->table : -1), + xcape($user->name), xcape($msg) ); + $user_cur->step_inc(); } - } - } - /* - else if ($is_ticker) { - if (($user_cur->flags & USER_FLAG_MAP_AUTH) == USER_FLAG_ISOLAUTH) { - if ($user->table >= TABLES_AUTH_N) + + if ($user_cur->stat == 'table' || $user->idx_get() == $i) + continue; + + if ($is_normchat == TRUE) { + // use MAP_AUTH to check if auth or isolation + if ($user_cur->flags & USER_FLAG_MAP_AUTH) { + if (($user->flags & USER_FLAG_AUTH) == 0) { + continue; + } + } + } + /* + else if ($is_ticker) { + if (($user_cur->flags & USER_FLAG_MAP_AUTH) == USER_FLAG_ISOLAUTH) { + if ($user->table >= TABLES_AUTH_N) continue; - } + } + } + */ + $user_cur->comm[$user_cur->step % COMM_N] = "gst.st = ".($user_cur->step+1)."; "; + $user_cur->comm[$user_cur->step % COMM_N] .= $to_room; + $user_cur->step_inc(); } - */ - $user_cur->comm[$user_cur->step % COMM_N] = "gst.st = ".($user_cur->step+1)."; "; - $user_cur->comm[$user_cur->step % COMM_N] .= $to_room; - $user_cur->step_inc(); - } } if ($to_tabl) { @@ -2196,20 +2243,31 @@ class Room $content = ' j_stand_cont( [ '; + $user_cur_id = $user->idx_get(); for ($i = 0 , $ct = 0 ; $i < MAX_PLAYERS ; $i++) { - if ($this->user[$i]->sess == "" || $this->user[$i]->stat != "room" || $this->user[$i]->name == "") - continue; - - $flags = $this->user[$i]->flags; - - if ($this->user[$i]->subst == "standup") { - if ($user->idx_get() == $i) { - $flags |= 1; - } - - $content .= sprintf('%s[ %d, "%s" ]',($ct > 0 ? ', ' : ''), $flags, xcape($this->user[$i]->name)); - $ct++; - } + if ($this->user[$i]->sess == "" || $this->user[$i]->stat != "room" || $this->user[$i]->name == "") + continue; + + $flags = $this->user[$i]->flags; + $flags_vlt = $this->user[$i]->flags_vlt; + + // sql record exists AND last donate > 2013-01-01 + if ($this->user[$i]->is_supp_custom()) { + $supp_comp_s = sprintf(', "%s"', $this->user[$i]->rec->supp_comp); + } + else { + $supp_comp_s = ''; + } + + if ($this->user[$i]->subst == "standup") { + if ($user_cur_id == $i) { + $flags |= 1; + } + $content .= sprintf('%s[ %d, %d, "%s"%s ]',($ct > 0 ? ', ' : ''), + $flags, $flags_vlt, + xcape($this->user[$i]->name), $supp_comp_s); + $ct++; + } } $content .= ' ]);'; @@ -2231,18 +2289,26 @@ class Room if ($user->stat != 'room') return; + $user_cur_id = $user->idx_get(); $content = "[ "; for ($i = 0 ; $i < $table->player_n ; $i++) { $user_cur = $this->user[$table->player[$i]]; $flags = $user_cur->flags; - - if ($user->idx_get() == $table->player[$i]) + $flags_vlt = $user_cur->flags_vlt; + + if ($user_cur_id == $table->player[$i]) $flags |= 1; log_main($user_cur->name. sprintf(" IN TABLE [%d]", $table_idx)); - - $content .= sprintf('%s[ %d, "%s" ]',($i == 0 ? '' : ', '), $flags, xcape($user_cur->name)); + if ($user_cur->is_supp_custom()) + $supp_comp_s = sprintf(', "%s"', $user_cur->rec->supp_comp); + else + $supp_comp_s = ''; + + $content .= sprintf('%s[ %d, %d, "%s"%s ]',($i == 0 ? '' : ', '), + $flags, $flags_vlt, + xcape($user_cur->name), $supp_comp_s); } $content .= ' ]'; @@ -2254,6 +2320,8 @@ class Room function request_mgr(&$s_a_p, $header, &$header_out, &$new_socket, $path, $addr, $get, $post, $cookie) { + GLOBAL $G_black_list; + printf("NEW_SOCKET (root): %d PATH [%s]\n", intval($new_socket), $path); $enc = get_encoding($header); @@ -2814,7 +2882,7 @@ function root_welcome($user) $dt = date("H:i ", $curtime); for ($i = 0 ; $i < count($root_wellarr[$G_lang]) ; $i++) - $ret .= sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, str_replace('"', '\"', $root_wellarr[$G_lang][$i])); + $ret .= sprintf('chatt_sub("%s", [2, 0, "%s"],"%s");', $dt, NICKSERV, str_replace('"', '\"', $root_wellarr[$G_lang][$i])); return ($ret); }