359 lines
7.6 KiB
PHP
359 lines
7.6 KiB
PHP
<?
|
|
/*
|
|
Copyright (C) 2009 Zbigniew Zolkiewski
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
###########################################################################
|
|
|
|
Helper classes for Jorge. Performs various operations.
|
|
|
|
|
|
*/
|
|
|
|
Class url_crypt Extends parser {
|
|
|
|
private $td;
|
|
|
|
public function __construct($key) {
|
|
|
|
$td = mcrypt_module_open('des', '', 'ecb', '');
|
|
$key = substr($key, 0, mcrypt_enc_get_key_size($td));
|
|
$iv_size = mcrypt_enc_get_iv_size($td);
|
|
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
|
|
mcrypt_generic_init($td, $key, $iv);
|
|
$this->td = $td;
|
|
|
|
}
|
|
|
|
public function __destruct() {
|
|
|
|
mcrypt_generic_deinit($this->td);
|
|
mcrypt_module_close($this->td);
|
|
|
|
}
|
|
|
|
public function crypt_url($url) {
|
|
|
|
return str_replace("+", "kezyt2s0", $this->url_encrypt($url));
|
|
}
|
|
|
|
public function decrypt_url($url) {
|
|
|
|
$url = str_replace("kezyt2s0", "+",$url);
|
|
return $this->decode_string($this->url_decrypt(base64_decode($url)));
|
|
|
|
}
|
|
|
|
private function url_encrypt($url) {
|
|
|
|
$prepared_string = "begin&".$url;
|
|
$integrity = md5($prepared_string);
|
|
$url = "integrity=$integrity&".$prepared_string;
|
|
$td = $this->td;
|
|
$c_t = mcrypt_generic($td, $url);
|
|
return base64_encode($c_t);
|
|
|
|
}
|
|
|
|
private function url_decrypt($url) {
|
|
|
|
$td = $this->td;
|
|
$p_t = mdecrypt_generic($td, $url);
|
|
return trim($p_t);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
Class parser {
|
|
|
|
public $tslice = null;
|
|
public $peer_name_id = null;
|
|
public $peer_name = null;
|
|
public $peer_server_id = null;
|
|
public $peer_server = null;
|
|
public $jid = null;
|
|
public $ismylink = null;
|
|
public $linktag = null;
|
|
public $strt = null;
|
|
public $lnk = null;
|
|
public $action = null;
|
|
public $search_phase = null;
|
|
public $offset_arch = null;
|
|
public $offset_day = null;
|
|
public $tag_count = null;
|
|
public $time_start = null;
|
|
public $time_end = null;
|
|
public $single = null;
|
|
|
|
|
|
protected function decode_string($url) {
|
|
|
|
parse_str($url);
|
|
$reconstructed = strstr($url,"begin");
|
|
settype($integrity,"string");
|
|
if ($integrity === md5($reconstructed)) {
|
|
|
|
if (isset($tslice)) {
|
|
$this->tslice = $tslice;
|
|
}
|
|
if (isset($peer_name_id)) {
|
|
$this->peer_name_id = $peer_name_id;
|
|
}
|
|
if (isset($peer_server_id)) {
|
|
$this->peer_server_id = $peer_server_id;
|
|
}
|
|
if (isset($jid)) {
|
|
$this->jid = $jid;
|
|
}
|
|
if (isset($lnk)) {
|
|
$this->lnk = $lnk;
|
|
}
|
|
if (isset($ismylink)) {
|
|
$this->ismylink = $ismylink;
|
|
}
|
|
if (isset($linktag)) {
|
|
$this->linktag = $linktag;
|
|
}
|
|
if (isset($strt)) {
|
|
$this->strt = $strt;
|
|
}
|
|
if (isset($action)) {
|
|
$this->action = $action;
|
|
}
|
|
if (isset($peer_name)) {
|
|
$this->peer_name = $peer_name;
|
|
}
|
|
if (isset($peer_server)) {
|
|
$this->peer_server = $peer_server;
|
|
}
|
|
if (isset($search_phase)) {
|
|
$this->search_phase = $search_phase;
|
|
}
|
|
if (isset($offset_arch)) {
|
|
$this->offset_arch = $offset_arch;
|
|
}
|
|
if (isset($offset_day)) {
|
|
$this->offset_day = $offset_day;
|
|
}
|
|
if (isset($tag_count)) {
|
|
$this->tag_count = $tag_count;
|
|
}
|
|
if (isset($time_start)) {
|
|
$this->time_start = $time_start;
|
|
}
|
|
if (isset($time_end)) {
|
|
$this->time_end = $time_end;
|
|
}
|
|
if (isset($single)) {
|
|
$this->single = $single;
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
Class render_html {
|
|
|
|
protected $html_head = array();
|
|
protected $html_menu = array();
|
|
protected $html_over;
|
|
protected $html_main = array();
|
|
protected $html_body = array();
|
|
protected $html_foot = array();
|
|
private $head_items = integer;
|
|
private $menu_items = integer;
|
|
private $main_items = integer;
|
|
private $body_items = integer;
|
|
private $foot_itesm = integer;
|
|
|
|
public function system_message($html) {
|
|
|
|
$this->html_main = array("sys_message"=>$this->render_system($html));
|
|
return;
|
|
|
|
}
|
|
|
|
public function status_message($html) {
|
|
|
|
$this->html_main = array("status_message"=>$this->render_status($html));
|
|
return;
|
|
|
|
}
|
|
|
|
public function alert_message($html) {
|
|
|
|
$this->html_main = array("alert_message"=>$this->render_alert($html));
|
|
return;
|
|
|
|
}
|
|
|
|
public function headers($html) {
|
|
|
|
if ($this->head_items === 0) {
|
|
|
|
$this->html_head = array("0"=>$html);
|
|
$this->head_items = 1;
|
|
|
|
}
|
|
else{
|
|
|
|
$this->head_items = $this->head_items + 1;
|
|
$this->html_head = $this->html_head += array($this->head_items=>$html);
|
|
|
|
}
|
|
return;
|
|
|
|
}
|
|
|
|
public function menu($html) {
|
|
|
|
if ($this->menu_items === 0) {
|
|
|
|
$this->html_menu = array("0"=>$html);
|
|
$this->menu_items = 1;
|
|
|
|
}
|
|
else{
|
|
|
|
$this->menu_items = $this->menu_items + 1;
|
|
$this->html_menu = $this->html_menu += array($this->menu_items=>$html);
|
|
}
|
|
return;
|
|
|
|
}
|
|
|
|
public function set_overview($html) {
|
|
|
|
$this->html_over = $html;
|
|
return;
|
|
|
|
}
|
|
|
|
public function set_body($html) {
|
|
|
|
if ($this->body_items === 0) {
|
|
|
|
$this->html_body = array("0"=>$html);
|
|
$this->body_items = 1;
|
|
|
|
}
|
|
else{
|
|
|
|
$this->body_items = $this->body_items + 1;
|
|
$this->html_body = $this->html_body += array($this->body_items=>$html);
|
|
}
|
|
return;
|
|
|
|
}
|
|
|
|
public function foot($html) {
|
|
|
|
if ($this->foot_items === 0) {
|
|
|
|
$this->html_foot = array("0"=>$html);
|
|
$this->foot_items = 1;
|
|
}
|
|
else{
|
|
|
|
$this->foot_items = $this->foot_items + 1;
|
|
$this->html_foot = $this->html_foot += array($this->foot_items=>$html);
|
|
}
|
|
return;
|
|
|
|
}
|
|
|
|
public function commit_render() {
|
|
|
|
$html_head = $this->html_head;
|
|
$html_menu = $this->html_menu;
|
|
$html_over = $this->html_over;
|
|
$html_main = $this->html_main;
|
|
$html_body = $this->html_body;
|
|
$html_foot = $this->html_foot;
|
|
|
|
for ($z=0;$z<=$this->head_items;$z++) {
|
|
|
|
$out .= $html_head[$z];
|
|
|
|
}
|
|
$out .= $html_main[sys_message];
|
|
for ($z=0;$z<=$this->menu_items;$z++) {
|
|
|
|
$out .= $html_menu[$z];
|
|
|
|
}
|
|
$out .= $html_over;
|
|
$out .= $html_main[alert_message];
|
|
$out .= $html_main[status_message];
|
|
for ($z=0;$z<=$this->body_items;$z++) {
|
|
|
|
$out .= $html_body[$z];
|
|
|
|
}
|
|
for ($z=0;$z<=$this->foot_items;$z++) {
|
|
|
|
$out .= $html_foot[$z];
|
|
|
|
}
|
|
echo $out;
|
|
return;
|
|
|
|
}
|
|
|
|
public function destroy_content() {
|
|
|
|
$this->html_body = array();
|
|
return;
|
|
|
|
}
|
|
|
|
protected function render_alert($message, $class = "message") {
|
|
|
|
|
|
return '<center><div class="'.$class.'">'.$message.'</div><br></center>';
|
|
|
|
}
|
|
|
|
protected function render_status($message, $class = "message") {
|
|
|
|
return '<center><div class="'.$class.'">'.$message.'</div><br></center>';
|
|
|
|
}
|
|
|
|
protected function render_system($message, $class = null) {
|
|
|
|
return '<center><div class="system">'.$message.'</div><br></center>';
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
?>
|