MyDC.ru _ Запросы скриптов для PtokaX _ Скрипт онлайн-погоды
Автор: Perspect 27.12.2009, 17:22
Просьба модераторам: не удаляйте эту тему, т.к. скрипт реально нужен. Это скрипт НЕ прогноза погоды. Подобные запросы я обнаружил в мусорке этого форума!
У нас на хабе постоянно спрашивают: "Какая у вас погода?". Подобный скрипт был бы очень к стати. Давно о нём размышляю. Хорошо было бы в чат выводить подобный текст: [GMT +2:00] Симферополь, время: 15:00:00, температура: +3°C
Данные об онлайн погоде можно брать например здесь http://mydc.ru/r/?http://gismeteo.ua/city/daily/4995/
Автор: Хабыч 27.12.2009, 17:28
на форуме есть скрипт же, юзай поиск
Автор: Perspect 27.12.2009, 17:35
Цитата(Хабыч @ 27.12.2009, 16:28)
на форуме есть скрипт же, юзай поиск
Повторяю: Это скрипт НЕ прогноза погоды, Погода не по запросу, а автоматом в чат, каждый час, погода за окном сейчас! Совершенно разные скрипты!!!
Автор: Хабыч 27.12.2009, 17:37
флуду будет в чате...
Автор: Perspect 27.12.2009, 17:39
Цитата(Хабыч @ 27.12.2009, 16:37)
флуду будет в чате...
Ты же был на моём хабе и видел ФЛУД? 1 раз в час - это нормальной. Время так выдаёт уже более 2 лет. Никто не жалуется, а наоборот - возникают диалоги.
Автор: Setuper 27.12.2009, 17:56
Ну так возьми скрипт погоды и запихни вызов в таймер.
Автор: Хабыч 27.12.2009, 17:59
скрипт погоды с rp5.ru который Nickolya писал вроде выводит по таймеру
Автор: Setuper 27.12.2009, 18:03
Вот вот. Всё есть, нужно только хорошенько посмотреть.
Автор: Perspect 27.12.2009, 18:04
Цитата(Setuper @ 27.12.2009, 16:56)
Ну так возьми скрипт погоды и запихни вызов в таймер.
Мне не нужен прогноз на завтра и т.д. Нужна погода нынешняя, которая сейчас. Вначале же написано!
Автор: Хабыч 27.12.2009, 18:11
ты не ленись, попробуй что есть найти и поставить http://mydc.ru/topic393.html
Автор: Perspect 27.12.2009, 18:15
Цитата(Хабыч @ 27.12.2009, 17:11)
ты не ленись, попробуй что есть найти и поставить http://mydc.ru/topic393.html
Да я его видел. Скрипт выводит много информации, а надо - миниум: время и нанешняя температура воздуха за окном. Ковырял я его уже.
Автор: Хабыч 27.12.2009, 18:19
ну прости, я думаю чисто для тебя скрипт никто не будет переделывать. с любым скриптом хотя бы немного но ручками придётся поработать
Автор: X-Sky 27.12.2009, 18:24
Конечно нужен такой скрипт, я кстати хотел только сегодня создать такую тему, но только чтоб погода вызывалась по команде и без задержек. Например время обновления была минута.
Вот пример (взято с одного из красноярских хабов)
Цитата
[22:27:47] <X-Sky> !темп [22:27:47] <[^_^]> Поздний вечер. Температура на улице: -9.9 °C
Автор: Perspect 27.12.2009, 18:33
Ручками там запаришься переделывать. Проще с нуля написать. К тому же, тот скрипт ресурсов больше кушает, чем этот. Нужен простенький скрипт.
Автор: X-Sky 27.12.2009, 19:46
Моих знаний луа не хватит написать даже такой скриптик. Я вообще не скриптер, в основном фиксер. Придётся просить помощи у наших знающих LUA, как свои пять пальцев (на одной руке, всмысле ), парней ;)
Автор: Perspect 27.12.2009, 20:27
Вот ещё что-то похожее. Отображается ввиде топика.
Если это тот скрипт, который выдает погоду с weather.mail.ru (не помню точно сайт) - сразу скажу, что фигня. Фигня, потому что погода на "майле" не точная. Переделывал его так, чтобы погоду выдавало по команде в чат (кому нужен - могу сделать). Погоду -14 мне показывало около 3-х часов (погода за это время прилично изменилась), при том, что время обновления погоды стояло 2 минуты. Пробовал сделать, чтобы он парсил гисметео или weather.kraslan.ru (где самая точная погода моего города(Красноярск)), но у меня ничего не вышло.
Автор: Perspect 27.12.2009, 21:27
Пока что показывает правильно. Час назад было +5, сейчас поднялась до +6, точно по термометру. Может они там уже наладили систему?
Автор: X-Sky 27.12.2009, 21:30
Всё может быть)
Автор: Strannik 28.12.2009, 0:38
Цитата(Perspect @ 27.12.2009, 18:35)
Повторяю: Это скрипт НЕ прогноза погоды, Погода не по запросу, а автоматом в чат, каждый час, погода за окном сейчас! Совершенно разные скрипты!!!
так вот же он http://mydc.ru/topic2232.html?hl=погода
Автор: Perspect 28.12.2009, 0:56
Цитата(Strannik @ 27.12.2009, 23:38)
так вот же он http://mydc.ru/topic2232.html?hl=погода
Этот скрипт показывает погоду в топике, но ставить его не советую. Проверил, он изначально глюченный!!! Погоду показывает не правильно и т.д. Скрипт нужен, который бы каждый час в чат выдавал сообщение, типа этого: [GMT +2:00] Симферополь, время: 15:00:00, температура: +3°C
Автор: Wariner 28.12.2009, 8:12
Я никак не пойму что вы заладили одно и тоже?! Все уже давно поняли что вам нужно. Может уже стоит попробовать самому что то изобразить?!
Автор: Nickolya 31.12.2009, 1:00
Вот скрипт что получился для Евгения, если хотите - переделывайте, если не можете - кидайте ссылку на страницу где находятся данные, если страница локальная - можно код этой страницы. Скрипт скачивает страницу и находит на ней температуру, по команде выводит в чат и может выдавать в чат через определенный интервал времени погоду.
http://mydc.ru/r/?http://rp5.ru/town.php?id=8935 можно под это? сорри засыпаю уже
Автор: Nickolya 31.12.2009, 1:33
Это переделка моего скрипта, написал http://mydc.ru/index.html?showtopic=393&view=findpost&p=24795
Автор: Артём 2.1.2010, 8:49
Nickolya http://mydc.ru/r/?http://pogoda.mail.ru/?city=3913 Можно ?
Автор: X-Sky 3.1.2010, 16:39
Nickolya, частенько стал вылазить репорт:
Цитата
Произошла ошибка при обновлении информации о погоде: timeout
За минут 5 может раза 3 вылезти. Частота обновления у меня 1 минута
Автор: CrackWG 11.1.2010, 18:13
Сделайте пожалуйста для новосибирска а то уже мозг сломал:( сайт www.ngs.ru
Цитата(CrackWG @ 11.1.2010, 16:13)
Сделайте пожалуйста для новосибирска а то уже мозг сломал:( сайт www.ngs.ru
огромное спасибо за исходник вот сделал для новосибирска кому надо берите пользуйтесьTemp.lua ( 1.19 килобайт )
: 24
И еще вопрос к автору какой временной интервал по умолчанию сделан а то что то у меня полторачаса хаб включен а он не отсылает автоматом:(
Автор: Nickolya 12.1.2010, 23:37
Разобрались, код из скрипта постом выше надо поправить чтобы была отсылка в чат. Заменяем
Код
if bSendToChat then TmrMan.AddTimer(iTimeToSend*1000,"GetData") end
на
Код
if bSendToChat then TmrMan.AddTimer(iTimeToSend*1000,"SendToChat") end
Еще нашел странный косяк, если у кого есть подобное - правьте:
Код
Core.SendToAll(tUser,"*** Погода в Новосибирске: "..(sTemp or "[нет данных]"))
заменяем на
Код
Core.SendToAll("*** Погода в Новосибирске: "..(sTemp or "[нет данных]"))
Цитата(Артём @ 2.1.2010, 8:49)
Nickolya http://mydc.ru/r/?http://pogoda.mail.ru/?city=3913 Можно ?
Держи, прости что не так быстро как бы ты хотел, если еще сам не переделал + добавил установку задержки для закачки страницы из интернета, чтобы хаб особо не подисал. Если этого нет в вашем скрипте в самом начале делаем настройку
Код
-- Таймаут ожидания загрузки страницы (чтобы хаб не подвисал), в секундах: iTimeOut = 5
Nickolya пожалуйста http://mydc.ru/r/?http://6.pogoda.by/27581 Очень очень благодарен))
Автор: Nickolya 12.1.2010, 23:43
И где там погода онлайн? Я вижу только
Цитата
Фактическая погода
Чебоксары → Нет данных о фактической погоде
Автор: Хабыч 12.1.2010, 23:46
странно очень попробуй тут плиз http://mydc.ru/r/?http://zontik.net.ua/cebokcary/
Автор: Nickolya 12.1.2010, 23:48
Почитай внимательно тему и посмотри страницы в которых ищутся данные и какие данные ищутся, тогда поймешь о чем речь, советую так делать всегда. Скрипт парсит страницы на которых выведен ТЕКУЩИЙ ПОКАЗАТЕЛЬ ТЕМПЕРАТУРЫ, а не какой-то прогноз...
Автор: Хабыч 12.1.2010, 23:51
пробовал не получилось
Автор: Nickolya 12.1.2010, 23:54
Думай, что тут еще сказать... И не превращайте тему в флудильню, пожалуйста.
Автор: CrackWG 13.1.2010, 18:34
у меня не виснит хаю если сделать норм интервал при автоматическом я бы рекомендовал не менее 15 минут
Автор: Хабыч 14.1.2010, 11:50
добил этот скрипт под себя но спустя два дня в чате
Цитата
[10:35:58] Не удалось обработать информацию о погоде. Возможно, было изменено оформление страницы. [10:36:58] Не удалось обработать информацию о погоде. Возможно, было изменено оформление страницы. [10:52:03] Произошла ошибка при обновлении информации о погоде: timeout
что можно с этим поделать?
Автор: Nickolya 14.1.2010, 13:13
Не обрабатывается информация на странице, возможно там немного изменили теги или что-то еще, может ты не так сделал под себя, давай ссылку и сам скрипт, посмотрим что там и как...
Автор: Хабыч 14.1.2010, 13:39
Всё тоже самое что ты сделал Артёму. Я только город изменил, присобачил чтобы от ника бота выходило в чат и когда юзер даёт запрос то ему идёт вот так [13:38:20] <ChebZoneBot> Saymon, Погода в Чебоксарах: -9
Нужна помощь если можно, чтоб брал не с майла, а с нашего местного http://mydc.ru/r/?http://pogodavtomske.ru/ . А то в Майле он берет не с левого угла, а с центра
Автор: Saymon 24.2.2010, 18:04
можно попробовать переделать и скрипт мэйла а насчёт вашего сайта ещё надо подумать, могу после работы попробовать сделать для практики.
Автор: Ksandor 24.2.2010, 18:12
Цитата(Saymon @ 24.2.2010, 18:04)
можно попробовать переделать и скрипт мэйла а насчёт вашего сайта ещё надо подумать, могу после работы попробовать сделать для практики.
Можно и с майла, я попробовал не вышло. Подумал, кто может переделать сделает на наш, но это не принципиально. Все равно показывают одну и ту же практически, с разницей в пол градуса. Хуже когда при минус 27, он показывает -1 =))
Автор: Saymon 24.2.2010, 18:25
Ну да, подобная проблема встретилась у этого скрипта http://mydc.ru/topic3121.html (Моя переделка. Парсер основан на этом же) Придётся оба чуть переделать. Ладно не будем оффтопить и флудить, как нибудь попробуем занятся.
Автор: Perspect 24.2.2010, 18:49
Подскажите, как сделать, чтобы инфо бралась отсюда: http://mydc.ru/r/?http://gismeteo.ua/ ?
Автор: Ksandor 24.2.2010, 22:39
Интересно было бы если будет добавленно в скрипт то, что в скрипте по ссылке выше
Это по запросу:
Цитата
Температура за окном: Атмосферное давление: Влажность: Скорость ветра:
А это (более простенько только погода) по времени в Хаб. Я в существующем скрипте сделал таким вывод.
[21:09:57] <Bot[Security]> Информация о погоде *************************************************************************** Сейчас в г. Чебоксары за окном -7 Атмосферное давление 748mmHg Влажность 99% Скорость и направление ветра 1 м/с СЗ ***************************************************************************
Находим строку local msg,err = http.request("http://pogoda.mail.ru/?city=2867") Заменяем 2867 на свой код города. Находим City = "Чебоксары" --Город хаба Пишем свой город.
Автор: Ksandor 26.2.2010, 11:59
Бегло посмотрев, по команде выводит нормально. По времени в Хаб поставил 1 минуту, чтоб посмотреть. Ждать час долго ))) Первое, что вылезло.
Цитата
[14:57] Синтаксис \0.4.1.2\scripts\Temp.lua:55: bad argument count to 'SendToAll' (1 expected, got 2)
Убрал. Здесь tUser,
Код
Core.SendToAll("<"..sBot.."> \tИнформация о погоде\r\n\t"..sLine.."\r\n"..
Теперь все нормально выводит.
Переодически вылетает правда:
Раскрывающийся текст
Цитата
[15:11:47] <OpChat> Произошла ошибка при обновлении информации о погоде. Причина: timeout
Информация о погоде *************************************************************************** *** Сейчас в г. Томск за окном [нет данных] ° *** Атмосферное давление [Ошибка. Нет данных] *** Влажность [Ошибка. Нет данных] *** Скорость и направление ветра [Ошибка. Нет данных] ***************************************************************************
Но чаще все нормально.
Огромное спасибо
Автор: Ksandor 28.2.2010, 14:20
Подобное лучше наверное вообще убрать, ибо все же этот отчет начинает доставать сильно
Раскрывающийся текст
[17:12:36] <OpChat> Произошла ошибка при обновлении информации о погоде. Причина: timeout [17:15:39] <OpChat> Произошла ошибка при обновлении информации о погоде. Причина: timeout [17:16:36] <OpChat> Произошла ошибка при обновлении информации о погоде. Причина: timeout [17:17:39] <OpChat> Произошла ошибка при обновлении информации о погоде. Причина: timeout
Автор: WINS 1.3.2010, 21:11
Цитата(Ksandor @ 28.2.2010, 15:20)
Подобное лучше наверное вообще убрать, ибо все же этот отчет начинает доставать сильно
Раскрывающийся текст
[17:12:36] <OpChat> Произошла ошибка при обновлении информации о погоде. Причина: timeout [17:15:39] <OpChat> Произошла ошибка при обновлении информации о погоде. Причина: timeout [17:16:36] <OpChat> Произошла ошибка при обновлении информации о погоде. Причина: timeout [17:17:39] <OpChat> Произошла ошибка при обновлении информации о погоде. Причина: timeout
Код
iTimeOut = 10
или больше поставить. добавил вызов через меню, переделал чтоб парсил с апорта, останется только ссыль заменить, может кому пригодится. Если будут ошибки поправьте пожалуйста, так вродь робит)
Отличный скрипт, только трабла, неизвестно почему на на погода@mail.ru тупо нету моего города... можно его как-то переделать чтоб брал с http://mydc.ru/r/?http://www.gismeteo.ru/city/daily/5018/ , там есть он...
Автор: Ksan 3.1.2011, 12:00
1. Пусть скрипт берёт информацию про ближайший к тебе большой город, который есть в списках майл.ру (для тебя, наверно, Саратов), а ты перед выводом этой информации просто подмени тот город на свой через
Код
s = string.gsub(s,x,y)
где s - всё сообщение, выводимое в чат, x - чужой город, y - твой город. Чужой город подменится твоим. Близкие города - погода одинаковая, особенно в европейской части России.
2. Хотя можно ещё проще - как значение переменной City пишешь свой город, а индекс города для получения погоды ставишь саратовский (ближайший с индексом).
Автор: ProGeTTo 3.1.2011, 13:41
неа, ближайший город с похожей погодой оказался http://mydc.ru/r/?http://pogoda.mail.ru/?city=2066 его ставлю, он вместо "0°" ставит "-3°" + гисметео правдивей.
Автор: Ksan 3.1.2011, 17:33
Кстати, выложу-ка я тоже чуть подправленную версию этого скрипта. Изменения: - добавил меню - добавил выборку погодных явлений (облачность, осадки и т.д.) - подправил чуток вывод градусов и мм.рт.ст - подогнал под себя дизайн вывода - при запуске скрипта сразу же с сайта берётся инфа о погоде, не дожидаясь сигнала от таймера (дальше уже отработает таймер)
Думаю, можно добавить в меню разные города (по желанию админа) ---------------------------------------------------------------------------------------
UPD: Всё, сделал с городами. Готовый скрипт с меню и разными городами переложил http://mydc.ru/topic4227.html
Автор: Sinsei 17.7.2014, 5:17
Кто сможет подправит данный скрипт под mail.ru
Раскрывающийся текст
Код
bSendToChat = false -- Отправлять ли в чат сообщения по таймеру (true) или нет (false) local sLine = ("*"):rep(75) sBot = SetMan.GetString(21) City = "Хабаровске" -- Город хаба iTimeToSend = 60*60 -- Интервал в секундах для отправления в чат при включенной опции выше iTimeOut = 5 -- Таймаут ожидания загрузки страницы (чтобы хаб не подвисал), в секундах function UserConnected(tUser) Core.SendToUser(tUser,"$UserCommand 1 3 Развлечения\\Погода$<%[mynick]> !temp|") end OpConnected = UserConnected RegConnected = UserConnected function ChatArrival(tUser, sData) local cmd = sData:match"%b<>%s+(%S+).*|" if cmd == "!темп" or cmd == "!temp" or cmd == "!темп" or cmd == "+temp" then if not sTemp then GetData() end Core.SendToUser(tUser,"<"..sBot.."> \tИнформация о погоде\r\n\t"..sLine.."\r\n".. "\tСейчас в г. "..City.." за окном: "..(sTemp or "[нет данных]").."\r\n".. "\tАтмосферное давление: "..(sAtmos or "[Ошибка. Нет данных]").."\r\n".. "\tВлажность: "..(sHumidity or "[Ошибка. Нет данных]").."\r\n".. "\tСкорость и направление ветра: "..(sWind or "[Ошибка. Нет данных]").."\r\n".. "\t"..sLine.."") return true end end
function OnStartup() http = require("socket.http") http.TIMEOUT = iTimeOut TmrMan.AddTimer(1*60000,"GetData") if bSendToChat then TmrMan.AddTimer(iTimeToSend*1000, "SendToChat") end end
function SendToChat() Core.SendToAll(tUser,"<"..sBot.."> \tИнформация о погоде\r\n\t"..sLine.."\r\n".. "\tСейчас в г. "..City.." за окном "..(sTemp or "[нет данных]").."\r\n".. "\tАтмосферное давление "..(sAtmos or "[Ошибка. Нет данных]").."\r\n".. "\tВлажность "..(sHumidity or "[Ошибка. Нет данных]").."\r\n".. "\tСкорость и направление ветра "..(sWind or "[Ошибка. Нет данных]").."\r\n".. "\t"..sLine.."") end
function GetData() local msg,err = http.request("http://weather.aport.ru/auto/31735/Habarovsk.htm") if msg then local temp = msg:match("<div class=\"field2\">(.-)</div>") local atmos = msg:match("Давление:(.-)<br>") local humidity = msg:match("Влажность:(.-)<br>") local wind = msg:match("<div class=\"field3\">.-%b<((.-)%b<>") if temp then sTemp = temp:gsub("[%°%s]", "") sAtmos = atmos:gsub("[%&de;C%s]", "") sHumidity = humidity:gsub("[%&de;C%s]", "") sWind = wind:gsub("[% (;C%s]", "") else
Core.SendToOpChat(" Не удалось обработать информацию о погоде. Возможно, было изменено оформление страницы.") end else Core.SendToOpChat(" Произошла ошибка при обновлении информации о погоде. Причина: "..err) end end