Мелкие поделки

Июнь 26, 2009 · Posted in Без рубрики · 2 Comments 

На что только не пойдешь, ради удобства просмотра фильмов.

1. Сделал парсер местного медиа-сайта. Суть проста: вводишь id ресурса и получаешь список фильмов, измененными линками(добавлен тег vod) на фильм.  http://pdahelp.net/share/

2. Доработал генератор плейлистов. Теперь он умеет, кроме мультимедиа rss, еще и WPL и M3U. Ну и простой список в виде ссылок. http://pdahelp.net/myfeed/

Первая штука у меня прописана в медиа-танке и я пользуюсь нею непосредственно с него. Вторая нужна, в основном, для формирования списков просмотра сериалов.

Модификация HLstatsX

Ноябрь 28, 2008 · Posted in Без рубрики · Comment 

[offtop] Cтоило начать появляться в поисковиках, как появились боты. Да здравствует re-captcha ![/offtop]

Этот пост могут пропустить те, кому администрирование игровых серверов неинтересно.

Когда-то делал похожую модификацию для hlstats, теперь сделал ее для HLstatsX, немного расширив.

возможности:

  • Редактирование состава клана
  • Расширенная информация о клане
  • упаковка демок после игры
  • резервирование сервера со своим паролем

Установка:

1. распаковываем архив в корень HLstatsX (см. структуру архива).

2. исполняем файл tables.sql (добавляет необходимые поля в таблицу кланов и админов.)

3. в управлении пользователями добавляем клан-админов, выбирая соотв. им клан.

4. скриптах pack.php и run_rcon.php указываем свои пути.

Скриншоты в архиве.

Написано под *nix, под Вин, возможно, придется переделать чуток.

Для упаковки демок и запуска rcon-скрипта, необходимо, чтобы бинарники zip и php лежали в папке со скриптом (либо в пути, указанном в safe_mode_exec_dir)

Скачать файл hlstatsx.rar с upload.com.ua

из joomla в livejournal

Ноябрь 16, 2008 · Posted in Без рубрики · 1 Comment 

Знаю, о том, как транслировать в ЖЖ произвольный текст написано немало. Но я, все же, напишу. Может даже для себя. А там, глядишь, и кому-то пригодится.

Итак. Есть Joomla, необходимо постить в жж новый материал.
Открываем файл /components/com_content/models/article.php

Находим строки(418-421):

                if ($isNew)
                {
                $this->_id = $article->_db->insertId();

                }

после них вставляем это:

function LJpost($post,$subj){
    require_once ("/ваш путь к джумле/xmlrpc/IXR_Library.inc.php");
define('LJ_HOST',   'www.livejournal.com');
define('LJ_PATH',   '/interface/xmlrpc');
define('LJ_LOGIN',  '********');
define('LJ_PASSWD', '*******');

$ljClient = new IXR_Client(LJ_HOST, LJ_PATH);

if (!$ljClient->query('LJ.XMLRPC.getchallenge')) {
    echo 'Error [' . $ljClient->getErrorCode().'] '.$ljClient->getErrorMessage();
}
else {

    $ljResponse = $ljClient->getResponse();
    $ljChallenge = $ljResponse['challenge'];

    $ljArgs = array();
    $ljArgs['username']       = LJ_LOGIN;
    $ljArgs['auth_method']    = 'challenge';
    $ljArgs['auth_challenge'] = $ljChallenge;
    $ljArgs['auth_response']  = md5($ljChallenge . md5(LJ_PASSWD));
    $ljArgs['ver']            = "1";
    $ljArgs['event']          = $post; //iconv('windows-1251', 'UTF-8', $post);  если  ваш текст и заголовок не в UTF, используйте строчку с iconv
    $ljArgs['subject']        = $subj; //iconv('windows-1251', 'UTF-8', $subj);

                $time_difference = 2;  //timezone=Kiev :)
                           $year = date('Y', (time() + ($time_difference * 3600)));
                           $month = date('m', (time() + ($time_difference * 3600)));
                           $day = date('d', (time() + ($time_difference * 3600)));
                           $hour = date('H', (time() + ($time_difference * 3600)));
                           $minute = date('i', (time() +($time_difference * 3600)));
    $ljArgs['year']           = $year;
    $ljArgs['mon']            = $month;
    $ljArgs['day']            = $day;
    $ljArgs['hour']           = $hour;
    $ljArgs['min']            = $minute;
		 $ljArgs['usejournal']       = 'pdahelp';  //в какой журнал или сообщество постим. Не забываем стать френдом\присоединиться к сообществу перед этим

    $ljArgs['props']          = array(
                                    'opt_preformatted' => true,
                                    'opt_backdated'    => false,
                                    'taglist'          => 'pda, pocket pc, news, article',  //iconv('windows-1251', 'UTF-8', 'pda, pocket pc, news, article'),
                                );

    $ljArgs['security']  = 'public';
    $ljMethod = 'LJ.XMLRPC.postevent';

    if (!$ljClient->query($ljMethod, $ljArgs)) {
       $err='error ['.$ljClient->getErrorCode().'] '.$ljClient->getErrorMessage();
    }
    else {
        $ljResponse = $ljClient->getResponse();
         $err=false;
        //print_r($ljResponse);
    }
 }
 return $err;
}

                $text_id=$this->_id ;
                $subj=$article->title;
                $post=$article->introtext;

				$fulltxt=$article->fulltext;
				if (strlen($fulltxt)>10) {
				$post.="...";
				}
                $post.="<p style=\"border:1px black solid;text-align:center\">эта статья опубликована на сайте <a href=\"http://pdahelp.net\">pdahelp.net</a><br>";
                $post.="полный текст статьи можно прочитать по этой ссылке: <a href=\"http://www.pdahelp.net/index.php?view=article&id=".$text_id."\">".$subj."</a></p>";

                $err=LJpost($post,$subj);

               if ($err) {
                $file=fopen('ваш путь к джумле/tmp/output.txt','w+');
                fwrite($file,$err);
                fclose($file);
                }

Поскольку joomla не выдает ошибок в коде, на этапе отладки просматриваем файл output.txt на предмет ошибок.

Не забываем положить в каталог xmlrpc этот файл (в распакованном виде).

Недостатки:

  • Пост в ЖЖ происходит сразу, без утверждения.
  • Пост в ЖЖ происходит только при публикации материала с главной страницы. Не из админки.
  • Ссылка на статью выглядит некрасиво. Впрочем, документация о том, как сделать из нее «красоту», доступна.

Функция LJPost взята отсюда

Зачем вообще все это ? Две цели:
1. удобство для пользователей ЖЖ.
2. собственно реклама.
Для примера, работающие трансляции (некоторые отличаются xmlrpc библиотеками):

Отдаю даром

Ноябрь 7, 2008 · Posted in Без рубрики · 2 Comments 

…не то, чтобы оно такое плохое, просто не вижу смысла заниматься ним дальше.
Простой и незатейливый видео-каталог с возможностью комментариев и рейтинга фильма.
Проект был написан примерно год-два назад для файл-сервера домосети. Где и проработал примерно с год, после чего был закрыт ввиду перехода на глобальный медиаресурс провайдера. Демо.

Забирайте: Video Catalog
админский вход:

login: admin
pass: 1

TeeWorlds stats

Ноябрь 2, 2008 · Posted in Без рубрики · 138 Comments 

Решил немного доработать TWSTAT.

Одно из изменений (добавлено):

Сделал отдельную страничку для статистики, там же выложил линку на скачку.

Немного позже добавлю на страничку мануал на русском.

UPD: инструкция добавлена.