TopicTemp, API2 | Температура воздуха в топике хаба |
Здравствуйте, гость ( Вход | Регистрация )
TopicTemp, API2 | Температура воздуха в топике хаба |
26.7.2009, 15:14
Сообщение
#41
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
TopicTemp Версия: 1.02 Системные требования: PtokaX 0.4.x.x/0.5.x.x (Lua 5.1); LuaSocket; LuaSec Автор: alex82 Описание: Скрипт добавляет в топик хаба информацию о температуре воздуха в указанных городах (в качестве источника информации используется Погода@mail.ru). Также имеется возможность чередования информации о погоде с обычными топиками. TopicTemp_1.02.zip ( 1.27 килобайт ) Кол-во скачиваний: 48 |
|
|
19.2.2010, 1:02
Сообщение
#42
|
|
Освоившийся участник Группа: Модераторы Сообщений: 352 Регистрация: 25.7.2009 Пользователь №: 3 960 Спасибо сказали: 73 раза |
Отключает как?
Во время работы хаба или что? Если да - кидай ошибку скрипта, просто так он не может отключиться |
|
|
21.2.2010, 21:08
Сообщение
#43
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Бывает скрипт отключается после ошибки в этой строке:
Код if not tTemp[tCity[tData.City]] or tTemp[tCity[tData.City]][2]+tCfg.Update*60 < os.time() then Для того чтобы убрать ошибку мы меняем строку на Код if not tTemp[tCity[tData.City]] or not tTemp[tCity[tData.City]][2] or tTemp[tCity[tData.City]][2]+tCfg.Update*60 < os.time() then Плюсом я бы еще советовал приписать после Код http = require("socket.http") вот такую строку:Код http.TIMEOUT = 10 где 10 - таймаут на получение страницы в секундах, у кого хорошее соединение, те могут занижать эту цифру, при плохом соединении мы наоборот увеличиваем таймаут. Без этой приписки таймаут стандартный - 60 секунд.
|
|
|
21.2.2010, 21:37
Сообщение
#44
|
|
Начинающий Группа: Пользователи Сообщений: 15 Регистрация: 16.1.2010 Пользователь №: 5 716 Спасибо сказали: 0 раз |
Спасибо, сейчас проверим на практике
Всё, тест прошёл на ура! Большое вам человеческое Доброго уважаемые! Помогите пожалуйста побороть вот такую " шляпу " - " Произошла ошибка при обновлении информации о погоде: timeout "( выпадает исключительно у пользователей с "ключами" ) |
|
|
1.3.2010, 17:20
Сообщение
#45
|
|
Участник Группа: Пользователи Сообщений: 38 Регистрация: 8.2.2010 Из: Москва Пользователь №: 5 994 Спасибо сказали: 0 раз |
Работал несколько дней отлично....теперь
[17:16:48] *** Не удалось обработать информацию о погоде. Возможно, было изменено оформление страницы. |
|
|
2.3.2010, 18:43
Сообщение
#46
|
|
Начинающий Группа: Пользователи Сообщений: 17 Регистрация: 14.12.2009 Пользователь №: 5 346 Спасибо сказали: 0 раз |
хочу переделать источник температуры под яндекс.погода (с него быстрее загружается да и точнее как-то)
причем конкретно под один город. страница с которой нужно парсить температуру: собсна оригинальный код скрипта: Раскрывающийся текст Код function GetTemp(id) tTemp[id] = {} local msg,err = http.request("http://pogoda.mail.ru/informer/weather.html?view=1&encoding=win&city="..id) if msg then local city = msg:match("<h2>.-target=\"_blank\">(.-)<") local temp = msg:match("<div class=\"gradus\">.-([%+%-]%d+)") if city and temp then tTemp[id][1] = (city or "???")..": "..(temp or "?").."°" tTemp[id][2] = os.time() else Core.SendToOps("Не удалось обработать информацию о погоде. Возможно, было изменено оформление страницы.") end else Core.SendToOps("Произошла ошибка при обновлении информации о погоде: "..err) end end пожалуйста, подскажите что нужно изменить в скрипте чтобы температура отображалась с яндекса? |
|
|
2.3.2010, 22:43
Сообщение
#47
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Рассказываю: идешь по своей ссылке на Яндекс, смотришь исходный код страницы, находишь там то число что сейчас отображается в браузере среди html тегов и записываешь в строках
Код local city = msg:match("<h2>.-target=\"_blank\">(.-)<") правильное регулярное выражение с учетом того что это опять же регулярное выражение. Надеюсь изложил понятно и ты прекрасно справишься с тем что хочешь сделать.
local temp = msg:match("<div class=\"gradus\">.-([%+%-]%d+)") |
|
|
3.3.2010, 1:38
Сообщение
#48
|
|
Участник Группа: Пользователи Сообщений: 38 Регистрация: 8.2.2010 Из: Москва Пользователь №: 5 994 Спасибо сказали: 0 раз |
Цитата хочу переделать источник температуры под яндекс.погода (с него быстрее загружается да и точнее как-то) Точней? судя по градуснику у меня сейчас за окном +2, маил ру показывает что у меня -2, яндекс говорит что у меня минус 6 + валит снег |
|
|
3.3.2010, 22:03
Сообщение
#49
|
|
Начинающий Группа: Пользователи Сообщений: 17 Регистрация: 14.12.2009 Пользователь №: 5 346 Спасибо сказали: 0 раз |
Точней? судя по градуснику у меня сейчас за окном +2, маил ру показывает что у меня -2, яндекс говорит что у меня минус 6 + валит снег в разных районах города температура может различаться на пару градусов, это вполне нормальное явление) по крайней мере меня яндекс вполне устраивает + у провайдера пиринг с яндексом Nickolya спасибо) сейчас попытаюсь придумать нужную формулу regex |
|
|
22.10.2010, 14:17
Сообщение
#50
|
|
Активный участник Группа: Пользователи Сообщений: 65 Регистрация: 29.5.2010 Пользователь №: 6 945 Спасибо сказали: 2 раза |
Пытался переделать этот скрипт чтобы грузил погоду с gismeteo но он так и не заработал.
Код --[[##################################################################################
TopicTemp 1.01a by alex82 API2 (Lua 5.1; PtokaX 0.4.x.x) http://mydc.ru/topic2232.html ###################################################################################]] -- Настройки tCfg = { Update = 5, -- Время обновления информации о погоде (в минутах) Change = 3, -- Время переключения топиков (в минутах) TextTopic = true, -- Чередовать информацию о погоде с текстовыми топиками } tCity = { -- Коды городов (http://www.gismeteo.ru/catalog/russia) 4862, -- Хабаровск } tTopic = { -- Топики "Размести свою рекламу в Топике Хаба", } --################################################################################### tData = {City = 0,Text = false,CurText = 0} tTemp = {} function OnStartup() http = require("socket.http") topic = SetMan.GetString(10) if topic and topic:match("%d+°") then topic = nil end if not tCfg.TextTopic and #tCity <= 1 then OneTopic() TmrMan.AddTimer(tCfg.Update*60000,"OneTopic") else NewTopic() TmrMan.AddTimer(tCfg.Change*60000,"NewTopic") end end function OnExit() SetMan.SetString(10,topic or "") end function NewTopic() if tCfg.TextTopic then if tData.Text then tData.Text = false tData.CurText = tData.CurText+1 if tData.CurText > #tTopic then tData.CurText = 1 end SetMan.SetString(10,tTopic[tData.CurText]) return true else tData.Text = true end end tData.City = tData.City+1 if tData.City > #tCity then tData.City = 1 end if not tTemp[tCity[tData.City]] or tTemp[tCity[tData.City]][2]+tCfg.Update*60 < os.time() then GetTemp(tCity[tData.City]) end SetMan.SetString(10,tTemp[tCity[tData.City]][1] or "") end function OneTopic() GetTemp(tCity[1]) SetMan.SetString(10,tTemp[tCity[1]][1] or "") end function GetTemp(id) tTemp[id] = {} local msg,err = http.request("http://informer.gismeteo.ru/html/2.php?tnumber=1&city0="..id) if msg then local city = msg:match("<h2>.-target=\"_blank\">(.-)<") local temp = msg:match("<div class=\"gradus\">.-([%+%-]%d+)") if city and temp then tTemp[id][1] = (city or "???")..": "..(temp or "?").."°" tTemp[id][2] = os.time() else Core.SendToOps("Не удалось обработать информацию о погоде. Возможно, было изменено оформление страницы.") end else Core.SendToOps("Произошла ошибка при обновлении информации о погоде: "..err) end end |
|
|
21.12.2010, 16:54
Сообщение
#51
|
|
Активный участник Группа: Пользователи Сообщений: 52 Регистрация: 30.6.2010 Из: Волгоград Пользователь №: 7 181 Спасибо сказали: 1 раз |
Здравствуйте все!
Вы не знаете можно ли так сделать? Например город Москва. Что бы через топик показывалось скоко градусов и !+! писало например "В Москве Перем.Оболчность,или Идут дожди,или солнечно" (Автомотически менялось) Возможно ли так зделать? Я плохо разбираюсь в скриптах,есле кто сможет зделать выложите скрипт. Спасибо. |
|
|
22.12.2010, 17:42
Сообщение
#52
|
|
Активный участник Группа: Пользователи Сообщений: 52 Регистрация: 30.6.2010 Из: Волгоград Пользователь №: 7 181 Спасибо сказали: 1 раз |
ну что :? :(
|
|
|
26.12.2010, 21:31
Сообщение
#53
|
|
Начинающий Группа: Пользователи Сообщений: 16 Регистрация: 24.12.2010 Пользователь №: 8 371 Спасибо сказали: 0 раз |
не работает!
у меня он называется -=Kharkov hub=- Врубаю скрипт и нефига только название хаба стало -=Kharkov - hub=- Что делать? |
|
|
26.12.2010, 21:39
Сообщение
#54
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Andry123456, а, так это ты приходил ко мне сегодня с рекламой своего хаба!
Это я испортил тебе скрипт за это. |
|
|
26.12.2010, 21:59
Сообщение
#55
|
|
Начинающий Группа: Пользователи Сообщений: 16 Регистрация: 24.12.2010 Пользователь №: 8 371 Спасибо сказали: 0 раз |
Это не я! я узнал об етом когда комне пришли люди и начали! Пи*деть!
то спамил Swe короче непомню! Я его даже не просил! ВЕРНИ ОБРАТНО СКРИПТ! Я НЕ ВИНОВАТ ЧТО ИДИОТЫ НА СВЕТЕ СУЩЕСТВУЮТ! |
|
|
8.3.2011, 13:18
Сообщение
#56
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 1 Регистрация: 3.8.2009 Пользователь №: 4 050 Спасибо сказали: 0 раз |
а можно сделать чтобы скрипт оставлял старый топик но дописывал к нему температуру после) например: hubtopic - температура ?
|
|
|
20.12.2014, 18:09
Сообщение
#57
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 9.12.2013 Пользователь №: 12 227 Спасибо сказали: 0 раз |
Здравствуйте.
Несколько лет подряд скрипт работал без нареканий, как часы. Но вот поменялась страничка на mail.ru, и всё((( Кто-нибудь, пожалуйста, исправьте!) |
|
|
21.12.2014, 1:27
Сообщение
#58
|
|
Активный участник Группа: Пользователи Сообщений: 93 Регистрация: 25.1.2010 Пользователь №: 5 828 Спасибо сказали: 7 раз |
fabelum!
Исправления есть для бота с температурой в списке пользователей тут: http://mydc.ru/topic5390.html Если хотите добавить этот скрипт себе, то рекомендую его вам! |
|
|
21.12.2014, 13:18
Сообщение
#59
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 9.12.2013 Пользователь №: 12 227 Спасибо сказали: 0 раз |
Благодарю за наводку.
Скрипт заработал после замены http = require("socket.http") на http = require("ssl.https") |
|
|
21.12.2014, 18:00
Сообщение
#60
|
|
Местный Группа: Неактивированные Сообщений: 908 Регистрация: 26.12.2008 Пользователь №: 1 574 Спасибо сказали: 1406 раз |
Обновил скрипт в первом посте: исправил адрес погодногого информера, исправил ошибку, возникающую после неудачного обновления температуры.
|
|
|
22.12.2014, 9:39
Сообщение
#61
|
|
Участник Группа: Пользователи Сообщений: 36 Регистрация: 6.2.2009 Из: Липецк Пользователь №: 2 131 Спасибо сказали: 8 раз |
Обновил скрипт в первом посте: исправил адрес погодногого информера, исправил ошибку, возникающую после неудачного обновления температуры. Попробую третий раз задать вопрос - почему ты свой код не хранишь на гит-хабе? там ведь по дифу будет видно что исправляется + возможно будут слать PR ты не умеешь git или это что-то религиозное? |
|
|
|
Сейчас: 26.11.2024, 21:06 |