ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

19.11.2008, 00:23
|
|
Познающий
Регистрация: 08.11.2008
Сообщений: 31
Провел на форуме: 139522
Репутация:
4
|
|
Сообщение от aRDee
Frize
есть такое,
анекдоты выдирать.
Просто добавь в default.plugin.php
PHP код:
function plg_anek()
{
$c=file_get_contents('http://www.anekdot.ru/scripts/rand_anekdot.php?t=&rank=4&lim=1');
preg_match('~<pre>(.+?)</pre>~is', $c, $reg);
$r=explode("</h1>",$reg[0]); $r=str_replace("</pre>","",$r[1]); $r=str_replace("<br />","\n",$r);
Proto::Msg(urldecode($r));};
и
PHP код:
SteelBot::RegisterCmd("anek","plg_anek", 1,"anek - анекдот");
код неказист, но рабочий)
неа не работает, команду принимает а текст отсылать не хочет
Последний раз редактировалось Frize; 19.11.2008 в 00:26..
|
|
|

19.11.2008, 00:25
|
|
Познающий
Регистрация: 08.11.2008
Сообщений: 31
Провел на форуме: 139522
Репутация:
4
|
|
вот плагин который выводит рандомную фразу
function rand_plugin() {
$arr = file('https://yoursite/file.txt'); // путь к файлу
$num = mt_rand(1, count($arr));
$content = $arr[$num];
SteelBot::Msg($content);
}
SteelBot::RegisterCmd('test', 'rand_plugin', 1, "test- случайная фраза");
Последний раз редактировалось Frize; 19.11.2008 в 00:34..
|
|
|

19.11.2008, 02:14
|
|
Познающий
Регистрация: 08.11.2008
Сообщений: 31
Провел на форуме: 139522
Репутация:
4
|
|
Сообщение от aRDee
Frize
есть такое,
анекдоты выдирать.
Просто добавь в default.plugin.php
PHP код:
function plg_anek()
{
$c=file_get_contents('http://www.anekdot.ru/scripts/rand_anekdot.php?t=&rank=4&lim=1');
preg_match('~<pre>(.+?)</pre>~is', $c, $reg);
$r=explode("</h1>",$reg[0]); $r=str_replace("</pre>","",$r[1]); $r=str_replace("<br />","\n",$r);
Proto::Msg(urldecode($r));};
и
PHP код:
SteelBot::RegisterCmd("anek","plg_anek", 1,"anek - анекдот");
код неказист, но рабочий)
скрипт рабочий, но у меня косяк в кодировки, русский язык бот не выводит, что можно сделать?
функцию использовать:
convert_cyr_string ( string str, string from, string to )
только как?че?=))))
|
|
|

19.11.2008, 09:51
|
|
Новичок
Регистрация: 18.11.2008
Сообщений: 3
Провел на форуме: 17632
Репутация:
0
|
|
неплохой монолог)
на anekdot.ru кодировка win1251, а бот использует utf-8.
просто заменить последнюю строку в функции на
PHP код:
Proto::Msg(iconv("WINDOWS-1251", "UTF-8",$r);};
p.s.
яхз, что там делает urldecode...
|
|
|

19.11.2008, 18:29
|
|
Познающий
Регистрация: 08.11.2008
Сообщений: 31
Провел на форуме: 139522
Репутация:
4
|
|
steelbot
добавил, плагин вобще не загружается
|
|
|

19.11.2008, 20:19
|
|
Новичок
Регистрация: 18.11.2008
Сообщений: 3
Провел на форуме: 17632
Репутация:
0
|
|
таm было указано "заmенить", а ты скорее всего просто добавил...
вообщеm убирай все изmенения из default.plugin.php(или mеняй на исходный) и просто добавь в папку с плагинаmи этот файл
bugaga.plugin.php
перезапускаешь бота и всё, готово.
если не верится в работоспособность, проверь на боте: icq 358710501
|
|
|

19.11.2008, 21:33
|
|
Познающий
Регистрация: 08.11.2008
Сообщений: 31
Провел на форуме: 139522
Репутация:
4
|
|
steelbot
угу, все норм пашет, спс
|
|
|

19.11.2008, 23:13
|
|
Познающий
Регистрация: 08.11.2008
Сообщений: 31
Провел на форуме: 139522
Репутация:
4
|
|
плагин берет погоду с gismeteo.ru
class weather {
static $towns = array(),
$refresh_delay = 3600,
$regexp = '~<a\shref="http:\/\/www.gismeteo.ru\/towns\/(\d{5}).htm">(.*?)<\/a>~';
static function Refresh() {
$result = '';
if ($sock = fsockopen("search.gismeteo.ru", 80) ) {
fputs ($sock, "GET http://search.gismeteo.ru/?req=listbycountry&country=%D0%EE%F1%F1%E8%FF&lang =rus HTTP/1.0\n");
fputs ($sock, "Connection: Keep-Alive\n".
"User-Agent: SteelBot/1.0 (http://steelbot.net)\n".
"Host: search.gismeteo.ru\n".
"Pragma: no-cache\n".
"Cache-Control: no-cache\n".
"Connection: close\n\n" );
while ( !feof($sock) ) {
$result .= fgets($sock, 1024);
}
preg_match_all(self::$regexp, $result, $matches);
foreach($matches[2] as $k=>$town_name) {
self::$towns[$matches[1][$k]] = $town_name;
}
fclose($sock);
echo "[weather] town list refreshed (".count(self::$towns)." towns).\n";
} else {
echo "[weather] ERROR: can't establish connection to search.gismeteo.ru\n";
}
SteelBot::TimerAdd(self::$refresh_delay, array('bashorg', 'RefreshLast'));
}
static function GetWeather($town) {
if ( empty($towm) ) {
// не указали город, выводим помощь по команде
} else {
$town_id = array_search($town);
if ($town_id == false) {
SteelBot::Msg("Нет информации о погоде в городе $town");
return;
}
$result = '';
if ($sock = fsockopen("www.gismeteo.ru", 80) ) {
fputs ($sock, "GET http://www.gismeteo.ru/towns/$town_id.htm HTTP/1.0\n");
fputs ($sock, "Connection: Keep-Alive\n".
"User-Agent: SteelBot/1.0 (http://steelbot.net)\n".
"Host: search.gismeteo.ru\n".
"Pragma: no-cache\n".
"Cache-Control: no-cache\n".
"Connection: close\n\n" );
while ( !feof($sock) ) {
$result .= fgets($sock, 1024);
}
// здесь парсим информацию о конкретном городе
//preg_match_all(self::$regexp, $result, $matches);
//здесь составляем информацию о погоде
$weather = '';
SteelBot::Msg($weather);
} else {
echo "[weather] ERROR: can't establish connection to search.gismeteo.ru\n";
}
}
}
}
SteelBot::RegisterCmd('weather', array('weather', 'GetWeather'), 1, 'weather город - узнать погоду')
Для завершения в нем нужно дописать парсер информации для конкретного города, например для http://www.gismeteo.ru/towns/22471.htm
;
Последний раз редактировалось Frize; 16.01.2009 в 13:21..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|