Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   скрипт погоды и гороскопа для бота? (https://forum.antichat.xyz/showthread.php?t=38177)

cb93ka 17.04.2007 17:20

скрипт погоды и гороскопа для бота?
 
Щас почти во всех icq ботах реализуют показ погоды и гороскопа

тож делаю бота =\

поделитеся скриптом =)

Isis 17.04.2007 17:23

эм..ну парсить сайт какой-нить =\

DRON-ANARCHY 18.04.2007 01:30

грабберы на пхп не сложно реализуются...

cb93ka 18.04.2007 15:32

http://ircinfo.ru/articles/life-without-egglib.asp вот че немного по теме нашел %)

Цитата:

эм..ну парсить сайт какой-нить =\
gismeteo.ru

Цитата:

грабберы на пхп не сложно реализуются...
я в курсе, но пока не оч в этом =\
жду примеров

DRON-ANARCHY 19.04.2007 10:54

PHP код:

<?
//начинаем-с...
$link 'http://win.subscribe.ru/catalog/latest';
$file = @fopen($link,'r');
if (
$file) {
$rf fread($file200000);
fclose($file);
} else 
{echo 
'Какая-то борода творится там. Совсем скаты одичали. Страницу хрен откроешь...';}

//уменьшаем объем того дерьма, которое надо ворошить
$fr trim(chop($rf));
//определяем место, из которого будем тырить
$s strpos($rf'<! -noindex-><FORM'0);
//удаляем все, что у нас до этого места находится
$rf substr($rf,$s);

//то же самое, что и чуть выше было, только для конца файла
$s strpos($rf'<! -/noindex-><table>');
$rf substr($rf0$s);

//делаем замены(например, чтобы работали ссылки)
$rf str_replace('/catalog/','http://win.subscribe.ru/catalog/'$rf);
//b так дклаем со всеми ссылками и другим трешем, который подлежит нашей правке

//теперь самое сложное. Попробуйте просто запомнить...
echo $rf;
?>

надеюсь, доходчиво))

cb93ka 19.04.2007 23:15

та немного нет ))))

DRON-ANARCHY 20.04.2007 02:12

ну тогда извините..юзайте гуголь

GroM~ 20.04.2007 07:15

Цитата:

Сообщение от DRON-ANARCHY
ну тогда извините..юзайте гуголь

Мне кажется он просил icq бота а ты ему скрипт на php предлагаешь

Isis 20.04.2007 08:03

Цитата:

Сообщение от GroM~
Мне кажется он просил icq бота а ты ему скрипт на php предлагаешь

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

hidden 20.04.2007 09:05

Для начала, сказал-бы на каком скриптовом языке бота пишешь? php, perl, ...?

cb93ka 20.04.2007 10:29

php. бота мне писать ненада!
тока как погоду сделать )

DRON-ANARCHY 20.04.2007 12:17

Ну и вот! Че за наезды я не понял...
обидели меня, засранцы

cb93ka 20.04.2007 12:52

никто тя не обижат!;)

а готовых парсеров нету ни у кого?=)

S1B 20.04.2007 20:43

Готового нет. Погоду можно грабить отсюда: gismeteo.ru. У них вроде бы RSS было даже где-то...

Isis 20.04.2007 23:33

Потерпи до завтра...сейчас нет времени....пропарсю

cb93ka 22.04.2007 15:51

ку ку %)

hidden 22.04.2007 23:38

Вот пример, по этому же принципу можешь и гороскоп сделать))
PHP код:

<?
$towns
=array(
'Абакан'=>29862,'Агинское'=>29676,'Адлер'=>37171,'Алапаевск'=>28248,'Алдан'=>31004,
'АлександровСад'=>34391,'Александровск-Сах.'=>32061,'Александровское'=>23955,
'Амдерма'=>23022,'Анадырь'=>25563,'Анапа'=>37001,'Ангарск'=>30715,'Арзамас'=>27653,
'Армавир'=>37031,'Архангельск'=>22550,'Астрахань'=>34880,'Ачинск'=>29467,
'Байкальск'=>30818,'Балашов'=>34152,'Балтийск'=>26701,'Барабинск'=>29612,
'Баргузин'=>30636,'Баренцбург'=>20107,'Белгород'=>34214,'Белозерск'=>22939,
'Беломорск'=>22551,'Белорецк'=>28831,'Березники'=>28028,'Березово'=>23631,
'Бийск'=>29939,'Биробиджан'=>31713,'Бирск'=>28621,'Благовещенск'=>31510,
'Богучар'=>34336,'Бологое'=>26298,'Большеречье'=>28593,'Борзя'=>30965,'Брянск'=>26898,
'Бугульма'=>28711,'Бугуруслан'=>28806,'Буденовск'=>37061,'Бузулук'=>28909,
'Буйнакск'=>37471,'БухтаПровидения'=>25594,'Верещагино'=>28216,
'ВерхнийБаскунчак'=>34579,'Верхотурье'=>28144,'Верхоянск'=>24266,'Вилюйск'=>24641,
'Витим'=>30054,'Владивосток'=>31960,'Владикавказ'=>37228,'Владимир'=>27532,
'Волгоград'=>34560,'Вологда'=>27037,'Воркута'=>23226,'Воронеж'=>34123,'Вуктыл'=>23612,
'Выборг'=>22892,'Вытегра'=>22837,'ВышнийВолочок'=>26393,'Вязьма'=>26695,'Гагарин'=>27507,
'Гдов'=>26157,'Геленжик'=>37004,'Глазов'=>28214,'Горин'=>31489,'Горно-Алтайск'=>36052,
'ГорячийКлюч'=>37014,'Губаха'=>28134,'Гусь-Хрустальный'=>27539,'Дальнереченск'=>31873,
'ДвинскойБерезник'=>22762,'Дербент'=>37470,'Дивное'=>34858,'Дмитров'=>27419,'Дно'=>26268,
'Долинск'=>32133,'Дудинка'=>23074,'Екатеринбург'=>28440,'Елабуга'=>28506,
'Елатьма'=>27648,'Елец'=>27928,'Ельня'=>26783,'Енисейск'=>29263,'Ербогачен'=>24817,
'ЕрофейПавлович'=>30683,'Ершов'=>34186,'Ефремов'=>27921,'Забайкальск'=>30968,
'Звериноголовское'=>28756,'Зея'=>31300,'Зима'=>30603,'Златоуст'=>28630,
'Змеиногорск'=>36038,'Зырянка'=>25400,'Иваново'=>27347,'Ивдель'=>23921,'Игарка'=>23274,
'Игнашино'=>30686,'Ижевск'=>28411,'Иркутск'=>30791,'Истра'=>27511,'Ича'=>32411,
'Ишим'=>27485,'Йошкар-Ола'=>28573,'Казань'=>27595,'Калач'=>34247,'Калевала'=>22408,
'Калининград'=>26702,'Калуга'=>27703,'Каменск-Уральский'=>28449,'Камень-наОби'=>29822,
'Камышин'=>34363,'Кандалакша'=>22217,'Канск'=>29581,'Каргополь'=>22845,'Карталы'=>28941,
'Кашин'=>27316,'Кемерово'=>29645,'Киренск'=>30230,'Киров'=>27199,'Кирсанов'=>27957,
'Кисловодск'=>37123,'Клин'=>27417,'Когалым'=>23748,'Коломна'=>27625,'Колпашево'=>29231,
'Комсомольск-на-Амуре'=>31561,'Кондопога'=>22727,'Корсаков'=>32158,'Кострома'=>27333,
'Котлас'=>22887,'Кош-Агач'=>36259,'Краснодар'=>34929,'Красноозерск'=>29813,
'Красноселькуп'=>23465,'Красноуфимск'=>28434,'Красноярск'=>29570,'Кропоткин'=>34936,
'Кудымкар'=>28116,'Кунгур'=>36024,'Курган'=>28661,'Курильск'=>32174,'Курск'=>34009,
'Куртамыш'=>28659,'Кызыл'=>36096,'Ленск'=>24923,'Липецк'=>27930,'Ловозеро'=>22127,
'ЛодейноеПоле'=>22913,'Лысьва'=>28234,'Магадан'=>25913,'Магнитогорск'=>28838,
'Майкоп'=>37021,'Макаров'=>32116,'Макушино'=>28666,'Малоярославец'=>27606,'Мама'=>30157,
'Мариинск'=>29551,'Махачкала'=>37472,'Медвежьегорск'=>22721,'Мезень'=>22471,
'Миллерово'=>34438,'МинеральныеВоды'=>37054,'Мирный'=>24726,'Мичуринск'=>27935,
'Могоча'=>30673,'Можайск'=>27509,'Можга'=>28409,'Моздок'=>37145,'Мончегорск'=>22212,
'Морозовск'=>34545,'Моршанск'=>27848,'Мурманск'=>22113,'Мценск'=>27817,
'МысТерпения'=>32099,'МысШмидта'=>25173,'Н.Новгород'=>27459,'Надым'=>23445,
'Нальчик'=>37212,'Наро-Фоминск'=>27611,'Нарьян-Мар'=>23205,'Находка'=>31970,
'Невельск'=>32145,'Невинномысск'=>37036,'Нерчинск'=>30768,'Нефтеюганск'=>23848,
'Нижнеангарск'=>30433,'Нижневартовск'=>23471,'Нижнеудинск'=>29698,'НижнийТагил'=>28240,
'Николаевск-на-Амуре'=>31369,'Новгород'=>26179,'Новокузнецк'=>29846,'Новосибирск'=>29634,
'НовыйОскол'=>34213,'НовыйУренгой'=>23358,'Ноглики'=>32053,'Норильск'=>23078,
'Облучье'=>31702,'Обоянь'=>34109,'Оймякон'=>24688,'Октябрьское'=>23734,
'Олекминск'=>24944,'Оленек'=>24125,'Омск'=>28698,'Онега'=>22641,'Орел'=>27906,
'Оренбург'=>35121,'Оса'=>28324,'Осташков'=>26389,'ОстровБеринга'=>32618,
'ОстровВизе'=>20069,'ОстровВрангеля'=>21982,'ОстровДиксон'=>20674,
'ОстровКотельный'=>21432,'Охотск'=>31088,'П.-Камчатский'=>32594,'ПавловскийПосад'=>27523,
'Партизанск'=>31987,'Певек'=>25051,'Пенза'=>27962,'Пермь'=>28224,'Петрозаводск'=>22820,
'Печора'=>23418,'Пинега'=>22563,'Поронайск'=>32098,'Поярково'=>31587,
'Преображение'=>31989,'Приаргунск'=>30975,'Приморско-Ахтарск'=>34824,'Прохладный'=>37144,
'Псков'=>26258,'Пушкинскиегоры'=>26359,'Радужный'=>23758,'Ребриха'=>29923,
'Рославль'=>26882,'Ростов-на-Дону'=>34730,'Ростов'=>27329,'Рубцовск'=>36034,
'Рыльск'=>33166,'Ряжск'=>27835,'Рязань'=>27730,'Салехард'=>23330,'Самара'=>28807,
'Санкт-Петербург'=>26063,'Саранск'=>27760,'Саратов'=>34172,'Сасово'=>27745,
'Северо-Енисейск'=>23986,'Северо-Курильск'=>32215,'Северобайкальск'=>30435,
'Северодвинск'=>22546,'Сеймчан'=>25703,'Семячики'=>32509,'Серафимович'=>34357,
'Серов'=>28044,'Серпухов'=>27618,'Сковородино'=>30692,'Славгород'=>29915,
'Сладково'=>28587,'Смоленск'=>26781,'Соболево'=>32477,'СоветскаяГавань'=>31770,
'Соловки'=>22429,'Сортавала'=>22802,'Сосьва'=>23625,'Средне-Колымск'=>25206,
'СреднийВасюган'=>29111,'Сретенск'=>30777,'Ставрополь'=>34949,'СтаницаКаневская'=>34825,
'СтараяРусса'=>26275,'СтарыйОскол'=>34116,'Стерлитамак'=>28825,'Сузун'=>29823,
'Сургут'=>23849,'Сусуман'=>24790,'Сухиничи'=>27707,'Сызрань'=>27983,'Сыктывкар'=>23804,
'Таганрог'=>34720,'Тайга'=>29541,'Тайшет'=>29594,'Тамбов'=>27947,'ТаркоСале'=>23552,
'Татарск'=>29605,'Таштагол'=>29954,'Тверь'=>27402,'Териберка'=>22028,'Терней'=>31909,
'Тикси'=>21824,'Тихвин'=>26094,'Тихорецк'=>34838,'Тобольск'=>28275,'Токма'=>30127,
'Тольятти'=>27890,'Томпа'=>30439,'Томск'=>29430,'Тотьма'=>27051,'Троицк'=>28748,
'ТроицкоПечорск'=>23711,'Туапсе'=>37018,'Тула'=>27719,'Тулун'=>30504,'Тура'=>24507,
'Туринск'=>28255,'Туруханск'=>23472,'Тутончаны'=>23589,'Тымовское'=>32017,'Тында'=>30499,
'Тюмень'=>28367,'Углегорск'=>32088,'Улан-Удэ'=>30823,'Ульяновск'=>27786,'Уральск'=>35108,
'Урюпинск'=>34240,'Усть-Баргузин'=>30635,'Усть-Ишим'=>28382,'Усть-Калманка'=>36044,
'Усть-Камчатск'=>32408,'Усть-Кулом'=>23803,'Усть-Ордынский'=>30713,'Уфа'=>28722,
'Ухта'=>23606,'Уэлен'=>25399,'Хабаровск'=>31735,'Ханты-Мансийск'=>23933,
'Хасавьюрт'=>37248,'Хатанга'=>20891,'Холмогоры'=>22559,'Холмск'=>32128,
'Чайковский'=>28413,'Чара'=>30372,'Чебоксары'=>27581,'Челюскин'=>20292,
'Челябинск'=>28645,'Черемхово'=>30617,'Череповец'=>27113,'Черкесск'=>37047,
'Чермоз'=>28128,'ЧерныйЯр'=>34578,'Чернышевск'=>30766,'Черняховск'=>26711,
'Черский'=>25123,'Черусти'=>27538,'Чита'=>30758,'Чокурдах'=>21946,'Чулым'=>29625,
'Шадринск'=>28552,'Шарья'=>27271,'Шахты'=>34635,'Шелагонцы'=>24329
);

$xxx file_get_contents('http://meteo.ru/weather/index.php?id='.$towns['Таганрог'].'&townlist=1');

$a '<[^>]+>';
$b '[^<]*';
$c '\s*';
$d '[^<]+';
$a1"$c$a$c";
$a2"$c$a$b$a$c";
$a3"$c$a$b$a$b$a$c";
$a4"$c$a$b$a$b$a$b$a$c";
$a5"$c$a$b$a$b$a$b$a$b$a$c";
$a7"$c$a$b$a$b$a$b$a$b$a$b$a$b$a$c";

if(
preg_match("/>($d )$a4($d)$a4($d)$a2($d)$a2$b$a1($d)(?:$a5|$a7)($d)$a1($d)$a3($d)$a1($d)</i"$xxx$m))
{
  echo 
$m[1].$m[2].$m[3].$m[4].$m[5].'<br>'.$m[6].$m[7].$m[8].$m[9];
}
else
{
  echo 
'Sorry, cant get information.';
}
?>

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

cb93ka 23.04.2007 13:06

+1 спс!;)

офф
кто каким гороскоп пользуется?;)

DRON-ANARCHY 23.04.2007 14:49

не верю в гороскопы

cb93ka 23.04.2007 15:31

аналогично.. но нада =\

cb93ka 20.05.2007 21:57

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

поможет кто парсер http://informer.gismeteo.ru/xml/28573_1.xml - вот этого написать ? :-[

//стыдно читать старые сообщения =\

cb93ka 22.05.2007 17:23

PHP код:

<?php
defined
'_VALID_MOS' ) or die( 'Прямой доступ к файлам по этому адресу запрещен!' );
global 
$mosConfig_absolute_path;

error_reporting(7);
require_once( 
$mosConfig_absolute_path '/includes/domit/xml_domit_lite_include.php' );

$cache_time     intval$params->def'cache_time') );
$cityid     $params->def'cityid');

$week_days = array("","Вс.","Пн.","Вт.","Ср.","Чт.","Пт.","Сб.");
$ru_monthes = array("","янв","фев","мар","апр","мая","июн","июл","авг","сен","окт","ноя","дек");
$sutki = array("ночь","утро","день","вечер");
$winds = array("сев","с-в","вост","ю-в","ю","ю-з","зап","с-з");
$oblaka = array("ясно","малооблачно","облачно","пасмурно","дождь","ливень","снег","снег","гроза","нет данных об осадках","без осадков");

$cache_file $mosConfig_absolute_path."/modules/mod_gismeteo/file.xml";
$result_file $mosConfig_absolute_path."/modules/mod_gismeteo/result.txt";
$template_file $mosConfig_absolute_path."/modules/mod_gismeteo/template.txt";

if( 
|| !file_exists$result_file ) || ( time() - filemtime($result_file) > $cache_time ) ) {
    
$gis_addr "http://informer.gismeteo.ru/xml/{$cityid}_1.xml";
    if( !
$gis_stream fopen$gis_addr"rb" ) ) {
        echo 
"Невозможно соединиться с богом погоды";
        return;
    }
    
$gis_file '';
    do {
        
$data fread($gis_stream8192 );
        if( 
strlen$data ) == ) {
            break;
        }
        
$gis_file .= $data;
    } while( 
true );
    
fclose($gis_stream);
    if( !
$cache_stream fopen($cache_file"w") ) {
         echo 
"Невозможно использовать кэш";
         return;
    }
    
$cache_ok fwrite($cache_stream$gis_file);
    
fclose($cache_stream);
    
$xmlfile $cache_file;

    
$template file_get_contents$template_file );
    
$result "";
    if (
file_exists$xmlfile )) {
        
$xmlDoc =& new DOMIT_Lite_Document();
        
$xmlDoc->resolveErrorstrue );
        if (
$xmlDoc->loadXML$xmlfilefalsetrue )) {
            
$element = &$xmlDoc->documentElement;
            if (
$element->getTagName() == 'MMWEATHER') {
                if( 
$report = &$xmlDoc->getElementsByPath'REPORT') ) {
                    if( 
$town $report->getElementsByPath'TOWN') ) {
                        for( 
$k=1$k<5$k++ ) {
                            
$forecast $town->getElementsByPath'FORECAST'$k ) ;
                            
$day $forecast->getAttribute('day');
                            
$month $ru_monthes[$forecast->getAttribute('month')];
                            
$year $forecast->getAttribute('year');
                            
$tod $sutki[$forecast->getAttribute('tod')];
                            
$hour $forecast->getAttribute('hour');
                            
                            
$temperature $forecast->getElementsByPath'TEMPERATURE');
                            
$min_temperature $temperature->getAttribute('min');
                            
$max_temperature $temperature->getAttribute('max');
    
                            
$pressure $forecast->getElementsByPath'PRESSURE');
                            
$min_pressure $pressure->getAttribute('min');
                            
$max_pressure $pressure->getAttribute('max');
                            
                            
$wind $forecast->getElementsByPath'WIND');
                            
$wind_direction $winds$wind->getAttribute('direction') ];
                            
$min_wind $wind->getAttribute('min');
                            
$max_wind $wind->getAttribute('max');
                            
                            
$relwet $forecast->getElementsByPath'RELWET');
                            
$min_relwet $relwet->getAttribute('min');
                            
$max_relwet $relwet->getAttribute('max');
                            
                            
$heat $forecast->getElementsByPath'HEAT');
                            
$min_heat $heat->getAttribute('min');
                            
$max_heat $heat->getAttribute('max');
                            
                            
$phenomena $forecast->getElementsByPath'PHENOMENA');
                            
$cloudiness $oblaka[$phenomena->getAttribute('cloudiness')];
                            
$precipitation $oblaka[$phenomena->getAttribute('precipitation')];
                            
                            eval(
"\$result .= \"{$template}\";");
                        }
                    }
                }
            } else echo 
"Некорректный xml-документ";
        } else echo 
"Невозможно открыть xml-документ";
    } else echo 
'Не найден xml-файл';

    if( 
$cache_time    && $result_stream fopen($result_file"w") ) {
        
fwrite($result_stream$result);
        
fclose($result_stream);
    }
    echo 
$result;
    
} else echo 
file_get_contents$result_file );



?>

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

поправьте плз.


Время: 13:51