Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Сетевые скрипты [PtokaX] _ Weather [ Api 1&2 ] [ By Nickolya ]

Автор: Nickolya 4.10.2008, 17:24

Нашел вот в закромах у себя скрипт погоды, был даже сделан под оба апи, на сколько я помню, не выкладывал.
Для работы требуется библиотека сокетов! http://mydc.ru/topic43.html
Для работы с вашим городом идем на http://mydc.ru/r/?http://rp5.ru/ и ищем там свой код города, вставляем его в ссылку в настройках в главном файле скрипта. Код открыт, так что ковыряйте сколько влезет big_smile.gif
Вот результат работы (полный просмотр):

Цитата
<PtokaX> Погода в Туле. Расписание Погоды:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
В 13:00 было +18.8°C, облачность 7-8 баллов, влажность 60%, ветер ЮЮЗ, 3 м/с
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ сб, 4 о. ]
\_ На 22:00: +13°C, без осадков, малооблачно (облачность 19%), влажность 76%, ветер Южный, 4 м/с, давление 745 мм рт. ст.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ воскресенье, 5 октября ]
\_ На 04:00: +10°C, без осадков, переменная облачность (35%), влажность 80%, ветер Южный, 4 м/с, давление 745 мм рт. ст.
\_ На 10:00: +11°C, осадки (0.2 мм / 6 час), пасмурная погода (облачность 100%), влажность 82%, ветер Юго-Восточный,
4 м/с, давление 744 мм рт. ст.
\_ На 16:00: +15°C, преимущественно без осадков (0.1 мм / 6 час), пасмурная погода (облачность 100%),
влажность 74%, ветер Юго-Восточный, 4 м/с, давление 744 мм рт. ст.
\_ На 22:00: +12°C, без осадков, пасмурная погода (облачность 97%), влажность 81%, ветер Юго-Восточный,
2 м/с, давление 744 мм рт. ст.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ понедельник, 6 октября ]
\_ На 04:00: +11°C, без осадков, значительная облачность (81%), влажность 82%, ветер Южный, 3 м/с, давление 744 мм рт. ст.
\_ На 10:00: +11°C, преимущественно без осадков (0.1 мм / 6 час), пасмурная погода (облачность 100%),
влажность 90%, ветер Восточный, 5 м/с, давление 744 мм рт. ст.
\_ На 16:00: +16°C, преимущественно без осадков (0.1 мм / 6 час), пасмурная погода (облачность 100%),
влажность 73%, ветер Юго-Восточный, 4 м/с, давление 743 мм рт. ст.
\_ На 22:00: +13°C, осадки (0.2 мм / 6 час), пасмурная погода (облачность 97%), влажность 90%, ветер Юго-Восточный,
2 м/с, давление 743 мм рт. ст.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ вторник, 7 октября ]
\_ На 04:00: +13°C, осадки (3 мм / 12 час), пасмурная погода (облачность 100%), влажность 93%, ветер Юго-Восточный,
2 м/с, давление 743 мм рт. ст.
\_ На 16:00: +17°C, преимущественно без осадков (0.2 мм / 12 час), пасмурная погода (облачность 100%),
влажность 81%, ветер Юго-Восточный, 4 м/с, давление 744 мм рт. ст.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ среда, 8 октября ]
\_ На 04:00: +11°C, без осадков, малооблачно (облачность 18%), влажность 90%, ветер Юго-Западный, 2 м/с,
давление 744 мм рт. ст.
\_ На 16:00: +17°C, преимущественно без осадков (0.3 мм / 12 час), облачно (облачность 77%), влажность 62%,
ветер Южный, 2 м/с, давление 744 мм рт. ст.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ четверг, 9 октября ]
\_ На 04:00: +11°C, пасмурная погода (облачность 100%), влажность 93%, ветер Северный, 3 м/с, давление 745 мм рт. ст.
\_ На 16:00: +13°C, пасмурная погода (облачность 100%), ветер Северо-Восточный, 4 м/с, давление 748 мм рт. ст.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ пт, 10 о. ]
\_ На 04:00: +10°C, пасмурная погода (облачность 100%), ветер Восточный, 3 м/с, давление 750 мм рт. ст.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> Данные предоставлены rp5.ru - по лицензии Мет.Офиса Великобритании (Met Office) http://mydc.ru/r/?http://rp5.ru/town.php?id=8306
[ Этот скрипт и не только можно найти на портале для администратора хаба: http://mydc.ru/ ]
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


 Weather___API_1_____by_Nickolya___from2ndAPI.rar ( 10.33 килобайт ) : 160
 Weather___API_2_____by_Nickolya___last__.rar ( 5.75 килобайт ) : 406
 

Автор: e-ploko 5.10.2008, 7:57

Большое спасибо, классный скрипт exciting.gif А можно как-нибудь сделать чтобы погода в мэйн чат не каждый час посылалась, а например в 12:00 в 18:00 и в 00:00?

Автор: lezvik 5.10.2008, 10:48

Да нет там ни фига коды городов на rp5.ru, мляха. когда врубаю скрипт пот апи 1, не вылазит ни че кроме ссылок на сайты.

Автор: Infernus-pro 5.10.2008, 11:19

На API 2 все работает замечательно спасибо big_smile.gif

Автор: Nickolya 5.10.2008, 14:25

Сделал вывод по конкретному времени и поправил ошибку в скрипте на 1 апи, видимо были исправения в версии со 2 апи, а в 1 не поправили, переходите на новые версии, вот мой вам совет. big_smile.gif Качаем обновленные файлы из 1 собщения темы.
ЗЫ: если есть ошибки в скриптах - пишите их сюда, так легче понять что не так.
ЗЗЫ: да не за что, пользуйтесь big_smile1.gif

Автор: e-ploko 6.10.2008, 13:23

Спасибо все ок ;) feel_good.gif

Автор: Infernus-pro 6.10.2008, 18:23

Можно сделать так чтобы он вообще не выводил погоду в чат?

Автор: Nickolya 6.10.2008, 18:42

Можно, убери время в таблицах скрипта:

Код
tTimesToSendToChat = { -- по каким минутам часа будет идти информация в чат
}

tShowAtCurTime = {    -- точное время когда будет идти информация в чат
}

Автор: Infernus-pro 6.10.2008, 19:59

это на API 1 а как на API 2 ?
Только это ?

Код
tTimesToSendToChat = { -- по каким минутам часа будет идти информация в чат
}

Автор: Infernus-pro 8.10.2008, 13:13

Не знаю почему но когда выхожу из Птохи загружаю ее снова погода автоматически не включена так же как и bash.org подскажите в чем причина? И еще в погоде выдает обшибку когда нажимаю на "проверить скрипт"

Цитата
[16:14] Синтаксис [string "sAdress = "http://rp5.ru/" -- адрес..."]:5: attempt to index global 'Core' (a nil value)

Автор: Setuper 8.10.2008, 13:39

Инициализация таблицы настроек и функций Core происходит только непосредственно перед выполнением функции OnStartup().
Функция OnStartup() выполняется только когда хаб и скрипт включены. Поэтому, если у хаба не стоит автозапуск при включении PtokaX, то если скрипт будет написан, например так:

Код
Path=Core.GetPtokaXPath()
function OnStartup()
  ...
end
то будет вылезать ошибка:
Цитата
attempt to index global 'Core' (a nil value)


Если стоит автозапуск хаба пи старте PtokaX, то этой ошибки не будет.
Настройка автозапуска хаба находится тут: Настройки -> Дополнительно -> Автостарт хаба

Для того чтобы в любом случае не было этой ошибки (вне зависимости от настройки автостарта хаба), нужно все функции, в именах которых присутствуют следующие элементы: Core., SetMan., RegMan., BanMan., ProfMan., TmrMan., UDPDbg., ScriptMan., IP2Country., использовать только в функциях и не использовать их вне функций

Таким образом приведённый выше пример следует писать так:
Код
function OnStartup()
  Path=Core.GetPtokaXPath()
  ...
end

Автор: Infernus-pro 8.10.2008, 14:42

Автозапуск стоит, проблема такая:
скрипт погоды включен, выхожу из Птохи загружаю снова - он выключен, в файле Core функция OnStartup() написано так:

Код
function OnStartup()    -- функция выполняемая при загрузке всего скрипта    
    S = {    -- главная таблица, ее мы сохраняем, все данные в ней
        iLastUpdated = 0,    -- время последнего обновлеиня (с начала эпохи)
        sMainTitle = "",    -- заголовок прогноза
        sArchiveData = "",    -- архивные данные
        tRowsInfo = {},    -- информация о колонках
        tData = {},    -- пропарсенная информация
        tMadeData = {},    -- готовая информация
    }
    if loadfile(sDataFileWay) then -- если есть файл
        dofile(sDataFileWay) -- то грузим его
    end
    http = require("socket.http")    -- loads the HTTP module and any libraries it requires (загружаем библиотечку)
    sBot = SetMan.GetString(21)    -- ник бота
    iTimer = math.ceil((os.time() - S.iLastUpdated) / 60) -- текущий таймер скрипта (текущее время - время обновления и переводим в минуты с округлением до большего целого)
    TmrMan.AddTimer(1000, "OnTimer")
end

Автор: Setuper 8.10.2008, 15:05

причём тут файл Core? Я говорю про таблицу Core, а в частности про функцию Core.GetPtokaXPath() в пятой строчке файла Weather [ API 2 ] [ by Nickolya ] .lua Ты вообще прочитал, что я написал? Я написал, что функция Core.GetPtokaXPath() должна выполняться в функции OnStartup()
Ведь из-за пятой строчки у тебя ошибка? или ты вообще на номера строк с ошибками не смотришь?

Автор: sphinx 19.10.2008, 14:03

У кого есть желание потестить скрипт погоды для всех городов, вэлкам: dchub://dc.ozerki.net feel_good.gif
Команда: +погода в главном, или в меню онлайн-инфо - погода.

Автор: Infernus-pro 19.10.2008, 17:31

Цитата
У кого есть желание потестить скрипт погоды для всех городов, вэлкам: dchub://dc.ozerki.net
Команда: +погода в главном, или в меню онлайн-инфо - погода.

Жаль под API 2 нету такого...

Автор: я))) 24.11.2008, 19:47

нифига не прёт beat_plaster.gif , настройте пожалста сами мене... город Кемерово ... буду благодарен ))аа забыл , Птока 0.4.1.1

Автор: sphinx 25.11.2008, 9:22

Цитата(Infernus-pro @ 19.10.2008, 17:31) *
Жаль под API 2 нету такого...

Теперь и под API 2 feel_good.gif

Автор: alekbell 6.12.2008, 20:27

Не правильно скрипт строит таблицу, тюе значения не понятно от куда, как исправить?

Автор: Артём 10.12.2008, 16:41

feel_good.gif У меня маленький вопросик,а можно сделать чтобы погода не выводилачь в чат,а сделать так чтобы через меню кто хочет мог посмотреть,а то иногда даже раздрожает когда общаешся и тут выскакивает прогноз waaaht.gif .
Если можно то как,кто может подскажите :P

Автор: Sephiroth_Lukaw 10.12.2008, 17:01

Я под API1 удалил эту таблицу. И всё.
Вроде ошибок не бъёт.

Код
tShowAtCurTime = {    -- точное время когда будет идти информация в чат
    ["12:00"] = 1,
    --["00:00"] = 1,
}

upd. http://mydc.ru/topic393.html?view=findpost&p=2882

Автор: Caratel 16.12.2008, 1:10

Спасибо, отличный скрипт. feel_good.gif

Автор: Артём 19.12.2008, 18:05

Заметил некоторые косяки,в чём может быть проблемка?Подскажите плз big_smile.gif

CODE
[ пт, 19 д. ]
\_ На 20:00: -5°C, без осадков, пасмурная погода (облачность 100%), влажность 73%, ветер Юго-Восточный,
<div style="text-decoration: blink;color:red">12</a> м/с, давление 756 мм рт. ст.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[ суббота, 20 декабря ]
\_ На 02:00: -5°C, без осадков, пасмурная погода (облачность 100%), влажность 74%, ветер Юго-Восточный,
6 м/с, давление 756 мм рт. ст.
\_ На 08:00: -6°C, без осадков, пасмурная погода (облачность 100%), влажность 78%, ветер Юго-Восточный,
5 м/с, давление 755 мм рт. ст.
\_ На 14:00: -5°C, без осадков, пасмурная погода (облачность 100%), влажность 64%, ветер Юго-Восточный,
5 м/с, давление 754 мм рт. ст.
\_ На 20:00: -6°C, без осадков, пасмурная погода (облачность 100%), влажность 65%, ветер Юго-Восточный,
<div style="text-decoration: blink;color:red">12</a> м/с, давление 753 мм рт. ст.

Автор: Чёткий 19.12.2008, 19:26

[19:25] Нет синтаксических ошибок в файле скрипта OpWhisper.lua
[19:25] Нет синтаксических ошибок в файле скрипта Programma_TV_AP2.lua
[19:25] Нет синтаксических ошибок в файле скрипта Антибан_ОПов.lua
[19:25] Нет синтаксических ошибок в файле скрипта Гороскоп.lua
[19:25] Нет синтаксических ошибок в файле скрипта оповеститель_newapi.lua
[19:25] Нет синтаксических ошибок в файле скрипта Weather [ API 2 ] [ by Nickolya ] .lua
[19:25] Синтаксис C:\0.4.1.1\scripts\Weather\Core.lua:30: module 'socket.http' not found:
no field package.preload['socket.http']
no file 'C:\0.4.1.1\socket\http.lua'
no file 'C:\0.4.1.1\libs\socket\http.lua'
no file 'C:\0.4.1.1\scripts\libs\socket\http.lua'
no file 'C:\0.4.1.1\socket\http.dll'
no file 'C:\0.4.1.1\libs\socket\http.dll'
no file 'C:\0.4.1.1\scripts\libs\socket\http.dll'
no file 'C:\0.4.1.1\socket.dll'
no file 'C:\0.4.1.1\libs\socket.dll'
no file 'C:\0.4.1.1\scripts\libs\socket.dll'
вот у меня эта ошибка с гороскопом не обнавляется что то ну и с погодой почти так же(((( помогите я в скриптах вообще на разбираюсь((((

Автор: Артём 19.12.2008, 19:34

у тебя папка libs где находится?

Автор: Чёткий 19.12.2008, 21:43

Цитата(Артём @ 19.12.2008, 19:34) *
у тебя папка libs где находится?

нету такой вообще)))) засунь мне её в архиев и ссылку дай на неё если можно конечно так.

у меня вообще хаб по интранету кому надо вот 10.2.120.220 ))) в инете ип постоянный делать неохота

Автор: Артём 20.12.2008, 22:59

Цитата(Чёткий @ 19.12.2008, 22:43) *
нету такой вообще)))) засунь мне её в архиев и ссылку дай на неё если можно конечно так.

полистай тему эту,и найдёшь всё что нужно к этому скрипту :P

Автор: Артём 22.12.2008, 12:07

beat_brick.gif Помогите плиз!Что делать с этой фигнёй...

Код
\_ На 20:00: -2°C, осадки (0.7 мм / 6 час), пасмурная погода (облачность 93%), влажность 100%, ветер Восточный,
      [u]<div style="text-decoration: blink;color:red">11</a>[/u] м/с, давление 746 мм рт. ст.

Надоело выскакивать (ошибка подчёркнута)

Автор: sphinx 22.12.2008, 21:04

А по-моему, выглядит неплохо feel_good.gif

Автор: Артём 23.12.2008, 0:06

Цитата(sphinx @ 22.12.2008, 22:04) *
А по-моему, выглядит неплохо feel_good.gif


anger.gif что значит 'неплохо' !?!?! Показует не данные,а какието функции... глюк какойто,а как исправить ненаю

Автор: rus.region78 23.12.2008, 21:11

Спасибо за скрипт!!! хотелось такойже на анекдоты и тв программу! Глюков не наблюдается...
Самый рульный скрипт прогноза погоды!!!

Автор: _LorD_ 20.1.2009, 1:30

хелп, как сделать на город Чебоксары, я там пробывал делать но всё равно Тула вылазит)

Автор: Wariner 20.1.2009, 20:07

а может у тебя сохранилась тульская база а после с мены адреса она просто не обновилась ещё?
и не нада засорять форум лишними файлами!!! достаточно было указать файл и код города!!

Автор: Санёк 21.3.2009, 21:11

Ну да, скрипт отличны! Работает без лагов.
Когда я его увидел на другом хабе, запросил у его хозяина и после этого сразу перешёл с YnHub 1.036 на PtokaX 0.4.1.1 big_smile.gif
Только вот вопрос. Как уменьшить количество разделяющих символов ? ------------------------

Автор: li4nost 21.3.2009, 23:14

открой скрипт блокнотом и поищи.
я тоже думал сложно, но на самом деле все елементарно!
да, писать я не умею - это надо знать много. но удалить тире...

Автор: Setuper 22.3.2009, 0:19

возможно надо искать вот это:

Код
string.rep("-", 24)

Автор: VIPOS 25.3.2009, 5:26

Какой адрес в скрипте прописывать для Киева?

Пробовал прописывать по-разному - выдает ошибку синтаксиса((

Автор: li4nost 25.3.2009, 14:09

Код
iCityCode = 33345                     -- Киев, Код города в gismeteo


[13:10:49] <Погода>
••••••••••••••••••••••••••••••••••••••ПРОГНОЗ ПОГОДЫ••••••••••••••••••••••••••••••••••••••
Киев: День 25 мар, Ср пасмурно, без осадков, температура +4..+6 С, давление 730..732 мм рт.ст., ветер Западный, 1 м/с
Киев: Вечер 25 мар, Ср пасмурно, без осадков, температура +1..+3 С, давление 731..733 мм рт.ст., ветер Северный, 3 м/с
Киев: Ночь 26 мар, Чт пасмурно, без осадков, температура 0..-2 С, давление 733..735 мм рт.ст., ветер Северо-Западный, 2 м/с
Киев: Утро 26 мар, Чт облачно, без осадков, температура 0..+2 С, давление 736..738 мм рт.ст., ветер Северный, 1 м/с
••••••••••••••••••••••••••••••••••••••ПРОГНОЗ ПОГОДЫ••••••••••••••••••••••••••••••••••••••

Автор: THE STRELOK 11.4.2009, 18:17

Помогите сделать парсинг со страницы провайдера ( http://mydc.ru/r/?http://internet.factorial.ru/channel/?section=main )

Мои наброски:

Код
MakeNeedData = function(sData)    -- парсинг (обработка) данных
    local _,_, sArchiveData = sData:find("<div align="center">(.-)</div>")    -- ищем архивные данные
    sArchiveData = sArchiveData:g(" <a.*</a>", ""):g("  ", " ")    -- убираем ссылку и двойной пробел
    local _,_, sMainTitle = sData:find("<b>(.-)</b>")    -- ищем заголовок страницы
    local _,_, sWeatherData = sData:find("<table>
>(.-)</table>") -- ищем табличку с данными о погоде
    local tRowWeatherData, tRowData2, tRowsInfo, tMadeData, tMadeData2 = {}, {}, {}, {}, {}    -- объявляем локальные таблицы
    for sRow in sWeatherData:gmatch("\t<tr.->(.-)</tr>") do    -- заносим данные из каждого ряда таблицы полученных данных в таблицу tRowWeatherData
        table.insert(tRowWeatherData, sRow)
    end
    for i, sMadeRowData in pairs(tRowWeatherData) do    -- проходим по таблице с рядами
        tRowData2[i], tRowsInfo[i] = {}, {}    -- заносим индекс в таблицу
        for sTd, sRow2 in sMadeRowData:gmatch("(<td.->)(.-)</td.->") do -- обрабатывам каждую колонку в каждом ряду по мере прохождения по ним
            local _,_, iColSpan = sTd:find("colspan=(%d)") -- совмещены ли колонки?!
            if not iColSpan then -- если нет
                table.insert(tRowsInfo[i], 1)    -- то заносим в таблицу с инфой о колонках 1
            else    -- если да
                table.insert(tRowsInfo[i], tonumber(iColSpan))    -- то заносим в таблицу с инфой о колонках кол-во совмещенных колонок
            end
            table.insert(tRowData2[i], sRow2)    -- заносим необработанную инфу в таблицу
        end
    end


Код
ReMakeData = function(tData)    -- обработка сырой таблицы данных
    local tData = DeleteNotNeedInfo(tData)    -- удаляем не нужные нам строки
    -- дальше ёпнешься объяснять, в каждой строке - своя система подачи данных при помощи тегом html, в них ищется нужная инфа и уже потом заносится в таблицу готовой информации
    for i, sData in pairs(tData[1]) do
        tData[1][i] = sData:g("<br>", ", "):g("<span.->", ""):g("</span>", "")
    end
    for i, sData in pairs(tData[3]) do
        tData[3][i] = sData:g("<img scr=\"", ""):g("\">", "")
    end
    table.remove(tData[4], 1)
    for i, sData in pairs(tData[4]) do
        tData[4][i] = sData:g("<img scr=\"", ""):g("\">", "")
    end
    for i, sData in pairs(tData[8]) do
        local _,_, sTitle = sData:find("title=\"(.+)\"")
        if sTitle then
            tData[8][i] = sTitle
        end
    end
    tData[10][1] = tData[10][1]:g("<.*>", "")
    for i, sData in pairs(tData[10]) do
        if sData == " " then
            tData[10][i] = ""
        end
    end
    for i, sData in pairs(tData[11]) do
        if sData == " " then
            tData[11][i] = ""
        else
            local _,_, sTitle = sData:find("title='(.+)'")
            if sTitle then
                tData[11][i] = sTitle
            end
        end
    end
    for i, sData in pairs(tData[12]) do
        if sData == " " then
            tData[12][i] = ""
        else
            tData[12][i] = sData:g("<img scr= \"", ""):g("\">", "")
        end
    end
    return tData
end


?

Автор: KRIOS 25.4.2009, 13:51

скрипт отлично работал до сегодняшнего дня
сегодня стал выдавать вот такую ошибку:
[19:44] Syntax Weather\Core.lua:87: attempt to index local 'sArchiveData' (a nil value)

и отключается...
скрипт API 1
скачал скрипт и библиотеки заново таже самая ошибка помогите кто разбирается

Автор: Cjay 25.4.2009, 17:18

у меня под АПИ2 недавно тоже начал примерно каждый час выдавать:
[21:10] Синтаксис ....\scripts\Weather\Core.lua:90: attempt to index local 'sArchiveData' (a nil value)
вот строка: sArchiveData = sArchiveData:g(" <a.*</a>", ""):g(" ", " ") -- убираем ссылку и двойной пробел

Автор: Санёк 25.4.2009, 20:12

Что случилось ? Погода не обновляется!!!

Автор: KRIOS 27.4.2009, 7:49

Цитата(KRIOS @ 25.4.2009, 13:51) *
скрипт отлично работал до сегодняшнего дня
сегодня стал выдавать вот такую ошибку:
[19:44] Syntax Weather\Core.lua:87: attempt to index local 'sArchiveData' (a nil value)

и отключается...
скрипт API 1
скачал скрипт и библиотеки заново таже самая ошибка помогите кто разбирается


вверх

Автор: Trans 27.4.2009, 11:14

И у меня та же проблема со вчерашнего числа:
[19:44] Syntax Weather\Core.lua:88: attempt to index local 'sArchiveData' (a nil value)

Это что такое, связано с каким-то неправильным подсчётом даты (кончился лимит)? Или к Чернобыль-юбилею подарок?

АПИ 1 (Птока 0.3.6.0). До этого с осени работало как часы.
Проверил вдоль и поперёк, вроде ошибок не видно. Что-то не так с библиотеками, даже если они не испорчены?

Автор: Nickolya 27.4.2009, 11:49

Значит сменилась разметка страницы на сайте и ее надо парсить уже немного по-другому. Вот изменения которые надо произвести для работы скрипта:

Для начала для тех, у кого в сообщениях отображаются теги, в духе вот этого: <div style="text-decoration: blink;color:red">11</a>
Для их исключения ищем функцию CreateMsg = function(tMadeData2, sMainTitle, sArchiveData, bNotFullData) -- создание готового сообщения о погоде, в самом ее конце вот такая конструкция:

Код
    sMadeMsg = sMadeMsg..sLine    -- сообщение: линия оформления
    return sMadeMsg    -- готово!
end
заменяем на
Код
    sMadeMsg = sMadeMsg..sLine    -- сообщение: линия оформления
    sMadeMsg = sMadeMsg:g("<.->", "")
    return sMadeMsg    -- готово!
end


Для восстановления работы скрипта делаем вот такое:
Ищем функцию MakeNeedData = function(sData) -- парсинг (обработка) данных, там ЗАменяем первые 4 строки функции и получаем вот такое ее начало:
Код
MakeNeedData = function(sData)    -- парсинг (обработка) данных
    local _,_, sArchiveData = sData:find("<table.-id=archive.->(.-)</table>")    -- ИЗМЕНЕНО! ищем архивные данные, теперь они в табличке
    sArchiveData = sArchiveData:g("<a.->.-</a>", ""):g("<.->", ""):g("  ", " "):g("\n", ""):g("%s*$", "")    -- ИЗМЕНЕНО! убираем ссылку, двойной пробел, все теги и пробел в конце
    local _,_, sMainTitle = sData:find("<TITLE>(.-)</TITLE>")    -- ИЗМЕНЕНО! ищем заголовок страницы, теперь тег заглавными...
    local _,_, sWeatherData = sData:find("<table .*id=forecast.->(.-)</table>") -- ИЗМЕНЕНО! ищем табличку с данными о погоде, тепрь вот такая стока поиска :\

Всё big_smile.gif Скрипт должен работать! На всякий случай можно удалить файл WeatherDataTable.tbl в папке скрипта Weather перед запуском измененного скрипта.

Еще можно заменить во всем скрипте (2 раза)
Код
    local r = "\r\n"    -- новая линия
на
Код
    local r = "\n"    -- новая линия

Автор: Trans 27.4.2009, 13:44

Типа заработало, НО!!! теперь температура и давление числами поменялись. Точнее, в строке про предыдущую точку измерения показывает всё правильно, а все следующие часы во всех следующих сутках - как описал - температура и давление числами поменялись.
Вот пример:
------------------------------------------------------------------------------------------------------------------------------------------------------
В 16:00 было +9.9°C, облачность 7-8 баллов, 749.3 мм рт ст, влажность 30%, ветер ЗСЗ, 3 м/с
------------------------------------------------------------------------------------------------------------------------------------------------------
[ пн, 27 а. ]
\_ На 19:00: 749°C, без осадков, значительная облачность (85%), влажность 28%,
ветер Западный, 6 м/с, давление +9 мм рт. ст.
и т.д.

А вот это:

Цитата
Еще можно заменить во всем скрипте (2 раза)
у меня нашлось только 1 раз.

Автор: Nickolya 27.4.2009, 14:10

За это отвечает функция MakeDayData = function(tData, tRows) -- сборка готовых строк данных, там ищем:

Код
            sOneData = sOneData.." \\_ На "..tData[2][iWas]..": "..tData[6][iWas].."°C, "
Код
            sOneData = sOneData.."давление "..tData[5][iWas].." мм рт. ст."

заменяем соответственно и получаем:
Код
            sOneData = sOneData.." \\_ На "..tData[2][iWas]..": "..tData[5][iWas].."°C, "
Код
            sOneData = sOneData.."давление "..tData[6][iWas].." мм рт. ст."

Ох уж эти изменения в дизайне...

По поводу 2х раз, точно, второй раз вот такой:
Код
    local sNewLine = "\r\n     "    -- новая стока начиначется с этого
на
Код
    local sNewLine = "\n     "    -- новая стока начиначется с этого

Автор: Trans 27.4.2009, 14:31

Yesss!
Спасибо, Nickolya!
Работает нормально.

Автор: Санёк 27.4.2009, 17:13

Вроде бы всё сделал. Но всё равно птоха ругается на синтаксис.

Синтаксис ...Program Files\PtokaX 0.4.1.1\scripts\weathercore.txt:94: bad argument #1 to 'insert' (table expected, got nil)

Может кто зальёт в архиве полностью исправленную версию скриптА ? big_smile.gif

Автор: IceRoma 29.4.2009, 4:28

Синтаксис ...Рабочий стол\Сервер\0.4.1.1\scripts\Weather\Core.lua:90: attempt to index local 'sArchiveData' (a nil value)
И не обновляеться... Долго работал, и на ровном месте начал хандрить)) Помогите кто может!

Автор: Nickolya 29.4.2009, 11:22

IceRoma, читай ВСЮ тему, а именно несколькими постами выше!

Файлы перезалил со всеми изменениями, качаем из первого поста и тестируем. big_smile.gif
Плюс добавил удаление тегов из сообщения, так что не используйте в оформлении конструкции вида <any TEXT here>

Автор: KRIOS 29.4.2009, 17:58

Спасибо !!! Очень помог.

Автор: Санёк 18.5.2009, 14:47

А как уменьшить количество разделителей ? shocked.gif

Автор: Nickolya 18.5.2009, 16:54

Код
    local sLine = string.rep("-", 240)..r    -- линия оформления
думаю ясно что "-" - сам разделитель, а 240 - количество раз его повторяющее.

PS: нежелание видеть ответа когда-нибудь рассердит того кто отвечает на твои вопросы и ты останешься без ответов вообще...
PPS: http://mydc.ru/ipb.html?s=&showtopic=393&view=findpost&p=12389

Автор: Санёк 19.5.2009, 1:26

Nickolya, чувак спс. тебе! big_smile.gif А то там по умолчанию уж оч. много символов.

Автор: Trans 22.6.2009, 17:08

Не могу запустить скрипт на линуксовом сервере. Тот же скрипт без всяких изменений работает на винде. Пути под линукс прописаны правильно - при подсовывании таблицы погоды с виндового скрипта - скрипт на линуксе таблицу находит и выводит погоду по требованию, то есть, находит где надо.
А вот без этой таблицы (она только для проверки была) скрипт не запускается, пишет, что не находит библиотеки и много чего ещё:
[20:45:22] <#OpChat> /home/p2phub/PtokaX/scripts/Weather/Core.lua:30: module 'socket.http' not found:
no field package.preload['socket.http']
no file './socket/http.lua'
no file '/usr/local/share/lua/5.1/socket/http.lua'
no file '/usr/local/share/lua/5.1/socket/http/init.lua'
no file '/usr/local/lib/lua/5.1/socket/http.lua'
no file '/usr/local/lib/lua/5.1/socket/http/init.lua'
no file './socket/http.so'
no file '/usr/local/lib/lua/5.1/socket/http.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file './socket.so'
no file '/usr/local/lib/lua/5.1/socket.so'
no file '/usr/local/lib/lua/5.1/loadall.so'

И вообще, судя по этому сообщению, в комплекте нет много чего для линуха, которые требует скрипт или что-то с подачи скрипта. Скачал библиотеки из темы по ссылке из первого сообщения данной темы.
Кто ставил на линуксовом сервере Птоки этот скрипт, если получилось, расскажите, как это вам удалось...
Кстати, строка 30 выглядит так:
http = require("socket.http") -- loads the HTTP module and any libraries it requires (загружаем библиотечку)

Добавлено через 3 часа:
Похоже, я глупость сморозил. Для линуксовой Птоки библиотеки надо собирать из исходников, а я посовывал виндовские .
Придётся кого-то просить скомпилить из скачанных исходников "luasocket-2.0.2.tar.gz"
Но все равно непонятно, куда они потом должны быть оттартаны? Или по ходу компиляции они сами занимают своё место?
Я в линухах нуль.

Автор: Strannik 22.6.2009, 17:28

Цитата(sphinx @ 19.10.2008, 15:03) *
У кого есть желание потестить скрипт погоды для всех городов, вэлкам: dchub://dc.ozerki.net feel_good.gif
Команда: +погода в главном, или в меню онлайн-инфо - погода.


Есть на этом хабе скрипт ТV программы выложи пожалуста в готовых, а то нормально работающих нет

Автор: F I L I N 8.7.2009, 22:15

Здрасте.. у меня вообще такая беда.. бы до этого другой скрипт по проще тоже погоду выводил.. но чето случилось с ним хз.. помоему сервак упал откуда он обновления брал о пагоде... ну вот и решил я этот скрипт поставить все вроде бы нечего нашел код города поставил запустил работает, решил стереть эти функции в скрипте которые выводят информацию о погоде в общий чат. как и говорилось в начале этого поста просто удалил их.. так вот в чем беда скрипт то работае все норм но теперь ошибка выскакивает ...[23:14] Синтаксис ...я Стронга=-\ptokax v0.4.1.1\scripts\Weather\Core.lua:39: attempt to index global 'tTimesToSendToChat' (a nil value) что именно сделал не правильно?
хотя ладно нестоит ничего высматривать.. я просто вернул обратно эти строчки.. и просто заместо 1 выставлю там нули чтобы информация невыводилась в чат )

Автор: Strannik 8.7.2009, 22:20

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

Автор: F I L I N 9.7.2009, 22:38

спс )) что то невник сразу то...

Автор: valdis73 14.7.2009, 21:18

Николя скрипт хороший . Спасибо. А нельзя сделать на 10-15 городов? Я видел на кобре такой скрипт пашет. А с харькове твой скрипт поставили 12 раз для каждого города. Но бред же. Один нельзя на 15 или более городов?

Автор: Wariner 14.7.2009, 21:25

юзай БД)))) другого пока нет))))

Автор: Sekretchik 1.8.2009, 9:16

Скрипт Отличный!!! Радует, а кучу городов можно сделать одним Weather.lua (разные названия городов - ну и их коды)
Сеньку Верку мяч (:

Автор: Sekretchik 8.8.2009, 8:04

скриптом создается таблица:
S = {
["sArchiveData"] = "\r\rВ 07:00 в Городе (10 км) было +7.2°C, облачность 10 баллов (без просв.), влажность 86%, ветер С, 5 м/с".....(далее опускаем)...

где и что мне поправить в скрипте, чтоб добавить (Tab - отступ) в начале строки и убрать лишние пустые строки.

чтоб выглядело не так:
Расписание Погоды: Погода в Городе:
=======================================================================


В 07:00 в Городе (10 км) было +7.2°C, облачность 10 баллов (без просв.), влажность 86%, ветер С, 5 м/с
=======================================================================
А так:
Расписание Погоды: Погода в Городе:
=======================================================================
В 07:00 в Городе (10 км) было +7.2°C, облачность 10 баллов (без просв.), влажность 86%, ветер С, 5 м/с
=======================================================================

Можно редактировать уже готовую таблицу, но хотелосьбы внести поправку в скрипт Core.lua Только так и не нашел нужной строки

Автор: Uncle_Dif 14.8.2009, 8:41

На 0411-й эта весчь идет, нормально. Пишет в ЛС, в чате меньше нефсеминтересного...
Тем, кто будет ставить: меня сбило с толку, что оно не сразу начинает давать Вашу погоду, нужно время на обновление. Я поставил ночью, заработало утром.

Автор: Санёк 30.8.2009, 13:30

Скрипт не обновляется. Какие-то изменения на сайте??
http://mydc.ru/r/?http://rp5.ru/town.php?id=55

Автор: Nickolya 31.8.2009, 12:31

Да, с этого адреса редиректит на http://rp5.by/55/ru
Попробуйте вбейте новый адрес в скрипт...

Автор: FallenAngel 8.9.2009, 13:01

Если вдруг показывает не тот город, который нужен, то попробуйтеизменить маленько. Вместо

Код
sPage = "town.php?id=6501" -- нужная нам страница

напишите
Код
sPage = "6501/ru" -- нужная нам страница

Автор: Санёк 8.9.2009, 22:17

Цитата(Nickolya @ 31.8.2009, 12:31) *
Да, с этого адреса редиректит на http://rp5.by/55/ru
Попробуйте вбейте новый адрес в скрипт...

Заработало без изменений. А на сайте стоит перенапрвление и страничка всё равно парсится )))))))))))))

Автор: Bassaliga 15.9.2009, 9:56

Nickolya
подскажи как делать что бы отправлялось не вся погода в гл.чат , а только на 1 день, но при этом в личку полностью вырисовались прогнозы?


Сорри под API1


а если еще и что бы только ? (в гл.чате) (тяжело читаемое предложение)

---------------------------------------------------------------------------------------------------------------
В 21:00 было +15.1°C, облаков нет, 738.4 мм рт ст, влажность 66%, ветер ЮВ, 2 м/с
---------------------------------------------------------------------------------------------------------------

Автор: Nickolya 15.9.2009, 10:24

Сделать настройку в основном lua файле:

Код
iDaysToChat = 1 -- информацию о сколькоих днях выводить в чат

Автор: Bassaliga 15.9.2009, 21:41

хм.. А что если сделать что бы ещё и по запросу можно было узнавать погоду и о других городах? money.gif

Автор: Nickolya 16.9.2009, 9:28

Это уже немного другой скрипт, погода от варинера с использованием mysql...

Автор: Sergey613 15.11.2009, 14:41

Цитата(Trans @ 22.6.2009, 18:08) *
Не могу запустить скрипт на линуксовом сервере. Тот же скрипт без всяких изменений работает на винде. Пути под линукс прописаны правильно - при подсовывании таблицы погоды с виндового скрипта - скрипт на линуксе таблицу находит и выводит погоду по требованию, то есть, находит где надо.
А вот без этой таблицы (она только для проверки была) скрипт не запускается, пишет, что не находит библиотеки и много чего ещё:
[20:45:22] <#OpChat> /home/p2phub/PtokaX/scripts/Weather/Core.lua:30: module 'socket.http' not found:
no field package.preload['socket.http']
no file './socket/http.lua'
no file '/usr/local/share/lua/5.1/socket/http.lua'
no file '/usr/local/share/lua/5.1/socket/http/init.lua'
no file '/usr/local/lib/lua/5.1/socket/http.lua'
no file '/usr/local/lib/lua/5.1/socket/http/init.lua'
no file './socket/http.so'
no file '/usr/local/lib/lua/5.1/socket/http.so'
no file '/usr/local/lib/lua/5.1/loadall.so'
no file './socket.so'
no file '/usr/local/lib/lua/5.1/socket.so'
no file '/usr/local/lib/lua/5.1/loadall.so'

И вообще, судя по этому сообщению, в комплекте нет много чего для линуха, которые требует скрипт или что-то с подачи скрипта. Скачал библиотеки из темы по ссылке из первого сообщения данной темы.
Кто ставил на линуксовом сервере Птоки этот скрипт, если получилось, расскажите, как это вам удалось...
Кстати, строка 30 выглядит так:
http = require("socket.http") -- loads the HTTP module and any libraries it requires (загружаем библиотечку)

Добавлено через 3 часа:
Похоже, я глупость сморозил. Для линуксовой Птоки библиотеки надо собирать из исходников, а я посовывал виндовские .
Придётся кого-то просить скомпилить из скачанных исходников "luasocket-2.0.2.tar.gz"
Но все равно непонятно, куда они потом должны быть оттартаны? Или по ходу компиляции они сами занимают своё место?
Я в линухах нуль.

судя по тому, что ответа нет, никто не знает!
у меня такая же проблема!

Автор: Setuper 15.11.2009, 19:00

Библиотеки в юникс системах называются сошками (из-за расширения .so). Поэтому собираем сошки из исходников и кладём в соответствующую папку вместе с остальными файлами и папками, которые относятся к сокетам.

Обратите внимание на пути, по которым ищутся сошки! Подробности можно узнать в makefile.

Автор: Sergey613 18.11.2009, 0:48

Цитата(Setuper @ 15.11.2009, 20:00) *
Библиотеки в юникс системах называются сошками (из-за расширения .so). Поэтому собираем сошки из исходников и кладём в соответствующую папку вместе с остальными файлами и папками, которые относятся к сокетам.

Обратите внимание на пути, по которым ищутся сошки! Подробности можно узнать в makefile.

Класс.
А можно как нить поподробнее, где взять исходники, как из них собрать сошки, и куда их потом кладём, куда именно?
И я не понял зачем на пути внимание обращать? Кроме того makefile в портах море.

Хотя бы на примере одной сошки.

Автор: Come_clarity 5.12.2009, 7:26

Nickolya, так я не понял, как убрать погоду в чат которая появляется раз в час? Убрал я эти таблицы:

tTimesToSendToChat = { -- по каким минутам часа будет идти информация в чат
}

tShowAtCurTime = { -- точное время когда будет идти информация в чат
}

А всё равно выскакивает. Поставил значение 0 - сколько дней в чат выводить, так всё равно показывает погоду "за 0 дня" и показывает текущую погоду.
В файле Core.lua стоит строка обновления 60 минут, так вот как раз видать после обновления и выскакивает в чат. Ну как убрать-то, а то столько грязи в чате?

Автор: Nickolya 5.12.2009, 21:35

По-идее если сделать

Код
tTimesToSendToChat = {}

tShowAtCurTime = {}
тогда инфа перестанет выводиться в чат, проверь еще раз что ты сохранил файл и все сделал именно так, еще можно для надежности удалить все временные файлы из папки скрипта, кроме Core, конечно.

Автор: Come_clarity 8.12.2009, 10:07

Всё, спасибо. Теперь только выходит "прогноз погоды обновлён успешно". Но это мелочи.

Автор: Nickolya 8.12.2009, 10:27

Это тоже просто решается, если так режет глаз(выводится кстати это только операторам), надо всего-то залезть в файл Core.lua и там удалить

Код
        Core.SendToOps("<"..sBot.."> *** Прогноз погоды обновлен успешно!")    -- сообщение опам об обновлении

Автор: Nickolya 31.12.2009, 1:32

Для вывода в чат по таймеру инфы типа

Цитата
<PtokaX> Расписание Погоды в Туле, Тульская область: В 00:00 было -6.5°C, облачность 10 баллов (без просв.), 729.6 мм рт ст, влажность 91%, ветер ЮЮЗ, 1 м/с, ливневой снег слабый

делаем следующее в файле Core.lua, находим:
Код
            local tData2 = {}    -- таблица с данными пустая
            for i = 1, table.maxn(S.tMadeData) do    -- проходим таблицу с готовыми данными
                if i <= iDaysToChat then    -- если нужный нам день, то добавляем в пустую таблицу с данными (кол-во дней - в конфиге)
                    table.insert(tData2, S.tMadeData[i])    -- добавление
                end
            end
            local sTitle2 = S.sMainTitle.." (на "..iDaysToChat.." дня)"    -- заголовок с указанием кол-ва дней для ясности
            local sMsg2 = CreateMsg(tData2, sTitle2, S.sArchiveData, 1)    -- функция создания сообщения из таблицы с данными, заголовка и архивных данных
            Core.SendToAll("<"..sBot.."> "..sMsg2)    -- высылаем в чат
и заменяем это все дело на
Код
            Core.SendToAll("<"..sBot.."> "..S.sMainTitle..": "..S.sArchiveData)

Автор: ЕВГЕНЧИК 13.1.2010, 22:29

Спасибо огромное, работает замечательно. Давно искал такой скрипт! after_boom.gif

Автор: Тёмич 14.2.2010, 15:44

Цитата(lezvik @ 5.10.2008, 19:48) *
Да нет там ни фига коды городов на rp5.ru, мляха. когда врубаю скрипт пот апи 1, не вылазит ни че кроме ссылок на сайты.

ПОМОГИТЕ Я ВСЕ УСТОНОВИЛ и где город код вписавать хз after_boom.gif

Автор: Артём 14.2.2010, 15:50

Цитата(Тёмич @ 14.2.2010, 14:44) *
....и где город код вписавать хз after_boom.gif

скрипт открой и посмотри
Код
sPage = "town.php?id=8306" -- нужная нам страница

Автор: GASTROLER692 2.3.2010, 15:24

как тупые смайлы убрать?вон какая ерунда получается... \_ На 07:00: -20°C, переменная облачность (31%), влажность 64%, ветер Южный, 3 м/с, давление 750 мм рт. ст.
после облачность...!

Автор: Saymon 2.3.2010, 15:25

либо выключить в клиенте их, либо открыть скрипт блокнотом big_smile.gif

Автор: prokazzza 9.6.2010, 9:18

Не работает с PtokaX 0.4.1.2

Синтаксис ...4.1.2\scripts\Weather [ API 2 ] [ by Nickolya ] .lua:5: attempt to index global 'Core' (a nil value)

Автор: Nickolya 9.6.2010, 9:30

Запускать при включенном (читай запущенном) хабе и ошибок не будет, работает все замечательно. Во всех остальных темах где ты нафлудил этим вопросом твои посты удаляю, надеюсь разберешься.

Автор: prokazzza 9.6.2010, 10:29

Спасибо, действительно все работает если включать скрипт при ключенном хабе, сорри я новичек, поэтому впал в панику. )))



Подскажите плиз что нужно подправить в скрипте, щас выводится вот так:

Цитата
[ среда, 9 июня ]
\_ На 17:00: +31°C, без осадков, небольшая облачность (30%), влажность 33%, ветер Северо-Восточный,
1 м/с, давление 713 мм рт. ст.
\_ На 23:00: +23°C, без осадков, ясно (облачность 7%), влажность 59%, ветер Южный, 2 м/с, давление 714 мм рт. ст.



чтобы выводилось вот так:

Цитата
[ среда, 9 июня ]
\_ На 17:00: +31°C, без осадков, небольшая облачность (30%), влажность 33%, ветер Северо-Восточный, 1 м/с, давление 713 мм рт. ст.
\_ На 23:00: +23°C, без осадков, ясно (облачность 7%), влажность 59%, ветер Южный, 2 м/с, давление 714 мм рт. ст.


??

Автор: Accelerator 9.6.2010, 10:51

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

Автор: Nickolya 9.6.2010, 10:59

Надо в самом скрипте найти настройку

Код
iMaxLength = 100 -- после скольких символов в строке будет искаться запятая, и она будет переноситься на новую стоку
и выставить там число побольше, раз в 10, тогда строка переносится не будет. Изучай темы скриптов и настройки внимательно!

Автор: prokazzza 9.6.2010, 11:21

Спасибо!

Автор: prokazzza 10.6.2010, 19:34

Хм, я так понял для этого скрипта необходим постоянный доступ в интернет, сеня я вырубил интернет когда начал пересобирать хаб, так у меня птаха несколько тупо зависала при попытке включить этот скрипт. Включил интернет все сразу заработало. Нельзя чтонить сделать со скриптом?

Автор: Nickolya 10.6.2010, 19:44

Да, скрипт полностью ориентирован на интернет, без него смысла не имеет. Чтобы убрать зависания на минуту выстави сам максимальное время на ожидание ответа от библиотеки. Для этого после

Код
    http = require("socket.http")    -- loads the HTTP module and any libraries it requires (загружаем библиотечку)
добавляй
Код
    http.TIMEOUT = 2

Где 2 - время в секундах на "зависание" хаба.

Автор: prokazzza 19.6.2010, 20:46

[21:46:11] <Эльфийко> *** Прогноз погоды обновлен успешно!
[22:46:08] <Эльфийко> *** Ошибка при получении данных с адреса http://mydc.ru/r/?http://rp5.ru/town.php?id=12859: "timeout" (таймаут соединения)

Можно ли сделать так чтобы сей данные не выводились в общий чат?

Автор: Ksan 20.6.2010, 0:17

Открываешь скрипт, находишь строку, отправляющую текст про ошибку в чат, и переделываешь под отправку в приват админа или вовсе закомментиваешь.. Пора уже такой пустяк самому делать.
Вообще-то админство предполагает умение хотя бы такие лёгкие переделки делать...для начала. Или собираетесь вечно просить переделывать под вас всё, что вам надо?
Извините, но уж слишком много стало вечно просящих тупо переделать, а не просящих научить, КАК переделать..
Похоже, темы с уроками никто не читает. :(

Автор: prokazzza 20.6.2010, 9:07

Вынужден с тобой не согласится, во-первых, изучение кучи материалов/книг по скриптам скриптов для меня и моей жизни абсолютно не нужно, разве что для небольшого редактирования под себя скриптов на хабе, так зачем тратить кучу времени на знания, которые мне никогда не пригодятся в дальнейшем, к тому же подстроив скрипты на хабе я их более трогать не буду. Во-вторых для этого и существует Форум чтобы спрашивать, я лучше автора скрипта спрошу, который может подсказать за пару секунд где и что безболезненно подредактировать, чем потрать недели на изучение строения скриптов (смотри пункт 1). В-третьи если не собираешься помогать, зачем оффтопить абсолютно ненужной мне информацией и нравоучениями, неужели так трудно написать - эту строку заменяешь на эту и все.

Автор: Ksan 20.6.2010, 17:13

Если ты взялся держать и управлять хабом, никуда ты не денешься, со скриптами и Луа тебе все равно придётся возиться. Не обольщайся, "поставить и забыть" не получится. И не думай, что мы тут все программисты, таких тут, может, 10 процентов, остальные такие же как ты (включая и меня)..только более любопытные и не халявщики.
Я помогаю, когда действительно проблемная ситуация, но не ленивым.

Админам форума: Сорри за оффтоп.

Автор: Nickolya 20.6.2010, 17:49

Да ниче, все правильно, так с ними, немощными, и надо! Никто не заставляет вас изучать конструкции языка и функции апи, открываем блокнотом файлы скрипта и там через встроенный в блокнот поиск ищем строку с "Ошибка при получении данных с адреса". Находим.

Код
    else    -- если другая обшибка
        local sMsg = "*** Ошибка при получении данных с адреса "..sNeedAdress..": \""..sError.."\""    -- делаем сообщение о ней
        if tErrors[sError] then -- если она описана в таблице
            sMsg = sMsg.." ("..tErrors[sError]..")"    -- добавляем описание
        end
        Core.SendToOps("<"..sBot.."> "..sMsg)    -- отсылаем опам

Даже видим что все с комментариями big_smile.gif Удаляем полностью вышеприведенный код из скрипта. Теперь можно пить прохладный сок наслаждаясь проделанной работой.

Автор: 7up 23.6.2010, 15:18

поставил на 0.3.6.0
при запуске выдаются сообщения

Код
[16:13] Нет синтаксических ошибок в файле скрипта Weather [ lua 5.1 ] [ API 1 ] [ by Nickolya ] .lua
[16:13] Скрипт запущен.
[16:13] Синтакс Weather\Core.lua:87: attempt to index local 'sArchiveData' (a nil value)

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

Автор: Nickolya 23.6.2010, 18:53

Может фиксы были только во 2 апи ввиду его текущей поддержки как основного. Попробуй поправить скрипт в соответствии с моими правками в середине этой темы. Ни у кого больше таких проблем сейчас нет??

Автор: 7up 24.6.2010, 9:54

выполнил фикс по рекомендации. теперь работает без ошибок.
странно, до того как обратиться за помощью, уже пробовал. в тот раз неизвестно по какой причине не сработало.
спасибо за помощь, скрипт просто замечательный

еще одно уточнение, по выводу информации. в прогнозе потерялась температура:

Код
[ пятница, 25 июня ]
\_ На 04:00: 749°C, без осадков, переменная облачность (40%), влажность 76%, ветер Восточный, 4 м/с,
      давление +15 мм рт. ст.
\_ На 10:00: 748°C, без осадков, облачно с прояснениями (облачность 59%), влажность 52%, ветер Восточный,
      3 м/с, давление +23 мм рт. ст.
\_ На 16:00: 747°C, без осадков, облачно с прояснениями (облачность 61%), влажность 48%, ветер Южный,
      3 м/с, давление +28 мм рт. ст.
\_ На 22:00: 746°C, без осадков, облачно с прояснениями (облачность 60%), влажность 77%, ветер Северо-Восточный,
      2 м/с, давление +22 мм рт. ст.

Автор: Nickolya 24.6.2010, 10:57

Выкладывай свой поправленный скрипт сюда, будем смотреть почему так...

Автор: 7up 24.6.2010, 12:23

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

 weath.zip ( 7.59 килобайт ) : 29
 

Автор: DEN 007 26.7.2010, 10:00

скрипт у меня не работает..( у меня система бсд стоит...

Но я нашел ошибочку!

в фаилике основном неправильна прописана папочка...

Цитата
sMainPath = "Weather\\" -- основная папка бота

а надо..
Цитата
sMainPath = Core.GetPtokaXPath().."scripts/Weather/"


а так скрипт кулл...

Автор: TommyKaira 20.9.2010, 21:30

[22:29] Синтаксис D:\server\scripts\Weather\Core.lua:94: attempt to index local 'sWeatherData' (a nil value)

Стало появлятся...

Автор: Ksan 20.9.2010, 21:44

Да, есть такое, похоже, на сайте погоды опять изменения..

Автор: Nickolya 21.9.2010, 13:40

Из изменений на сайте - замена

Код
id=forecast
на
Код
class=forecast
и полный переход на utf-8... Исправленная версия для 2 апи в первом посту.

Автор: 7up 9.10.2010, 8:53

большие изменения нужно вносить в скрипт?
у меня 0.3.6.0

Автор: Nickolya 9.10.2010, 11:38

7up, изменения описаны мной выше. Может проще будет попробовать воспользоваться http://mydc.ru/topic605.html? Пора уже обновлять софт...

Автор: artist07 12.10.2010, 6:12

Цитата(Nickolya @ 4.10.2008, 18:24) *
Нашел вот в закромах у себя скрипт погоды, был даже сделан под оба апи, на сколько я помню, не выкладывал.
Для работы требуется библиотека сокетов! http://mydc.ru/topic43.html
Для работы с вашим городом идем на http://mydc.ru/r/?http://rp5.ru/ и ищем там свой код города, вставляем его в ссылку в настройках в главном файле скрипта. Код открыт, так что ковыряйте сколько влезет big_smile.gif
Вот результат работы (полный просмотр):


Автор: Nickolya 21.10.2010, 19:17

Для особо ленивых выложил версию под 1 апи, переведенную методом быстрого перевода + пара правок для работоспособности. Thx Lite за старания.

Автор: baralgin 15.11.2010, 16:42

парни, а можно реализовать скрипт погоды не через инет? в кратцы такая проблема - инет тока через впн у меня от универа, на сервак хаба канал не дают. есть сервак мирки уневеровский, там есть бот у которого можно узнать погоду (сам народ в мирке не сидит уже давно ). можно реализовать работу скрипта через бота в мирке? ( сор если вопрос глупый )

Автор: Nickolya 17.11.2010, 0:27

С миркой связи скриптами не делали, хотя вроде как-то линковали чаты хаба и ирс. Теоретически скрипт может работать с прокси, если ты поставишь ее туда, то сможешь работать с интернетом через нее. А если доступа к серверу универа нет, чтобы там поставить какой-то твой софт, - забудь про эту идею.

Автор: Saymon 17.11.2010, 0:33

Почему только теоретически? Может, 2 минуты заставить.

Автор: baralgin 17.11.2010, 11:40

да универ вообще сволочь, точнее директор интернет центра. анлима не дает, другого провайдера не пускает...

Автор: Strannik 6.12.2010, 0:56

Укрошаловка уберается там Core.lua

sOneData = sOneData.." \\_ На "..tData[2][iWas]..": "..tData[5][iWas].."°C, "

на

sOneData = sOneData.." На "..tData[2][iWas]..": "..tData[5][iWas].."°C, "

Автор: driwars 15.12.2010, 16:14

Команда не проходит. В меню выбираю погода, он в главный чат от моего имени шлет команду +show_me_some_weather_plz и ничего. Как исправить?
П.С. с курсами валют такая же ерунда.

Автор: Артём 15.12.2010, 16:55

driwars, подвигать вверх вниз скрипт пробовал? big_smile.gif

Автор: driwars 15.12.2010, 17:37

Вроде помогло, спасибо.

Автор: Санёк 7.5.2011, 1:40

Помогите! Ядро хаба выдаёт ошибку:
Синтаксис ...rogram Files\PtokaX 0.4.1.1\scripts\Weather\Core.lua:94: attempt to index local 'sWeatherData' (a nil value)

Автор: Санёк 25.9.2011, 13:16

Спасибо !
Тот что в 1 посте скрипт под API2 работает ! still_dreaming.gif

Автор: Санёк 4.10.2011, 22:20

Извиняюсь, НО
*** Ошибка при получении данных с адреса http://mydc.ru/r/?http://rp5.by/55/ru: "timeout" (таймаут соединения)
На конце в адресе двоеточие. Сайт доступен. Не обновляется уже как несколько дней! Где может быть косяк ?

Автор: Marc 5.10.2011, 0:28

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

Автор: Санёк 15.10.2011, 0:30

Синтаксис ...rogram Files/PtokaX 0.4.1.1/scripts/Weather/Core.lua:264: bad argument #1 to 'remove' (table expected, got nil)

Автор: Санёк 21.10.2011, 20:52

Под API2 скрипт работает ?

Автор: ncux-ny 21.10.2011, 22:43

сменили страницу. чёрт ногу сломает. надо переделывать парсер.

Автор: Strannik 5.3.2012, 23:38

Мда видать никто таки не исправил C:/PtokaX/scripts/Weather/Core.lua:91: attempt to index local 'sArchiveData' (a nil value)

Автор: FIGO 13.5.2012, 11:27

Код
Синтаксис ...C Hub\scripts\Weather [ API 2 ] [ by Nickolya ] .lua:6: attempt to index global 'Core' (a nil value)


Вроде папка там где надо, ниче не пойму ((

при проверке скрипта выдает:
Код
Синтаксис [string "sAdress = "http://rp5.ru/" -- адрес..."]:6: attempt to index global 'Core' (a nil value)

Автор: Ksan 14.5.2012, 0:56

FIGO, сначала запусти хаб (включи его так, чтоб можно было туда заходить юзерам), только потом ставь галочку включения скрипта. Так же и с другими скриптами, в частности, скрипт погоды на несколько городов (я тебе там советовал заменить запятую на точку).
Никогда не включай галочки при незапущенном хабе.

Автор: Litе 16.5.2012, 19:33

 scripts.rar ( 8.49 килобайт ) : 17

Автор: Артём 16.5.2012, 20:23

Litе, и что это?

Автор: Nickolya 16.5.2012, 23:13

Артём, это он мне. Может ты ему пока что посоветуешь? Цитирую его проблему:

Цитата
Доброго времени суток! Помоги с твоим скриптом Weather, около месяца не запускал хаб, включаю, и скрипт выбивает вот такую ошибку: Core.lua:89: attempt to index local 'sArchiveData' (a nil value)
Как быть?

Автор: KCAHDEP 26.6.2012, 10:11

26.06.2012 11:11:01 - /var/ptokax/scripts/Weather/Core.lua:91: attempt to index local 'sArchiveData' (a nil value) тоже самое...

Автор: KCAHDEP 11.7.2012, 15:03

Так никто и не разобрался?

Автор: striker 12.7.2012, 12:59

Цитата(KCAHDEP @ 11.7.2012, 21:03) *
Так никто и не разобрался?

никто и не будет разбираться, потому что у всех нормально работает