|
Здравствуйте, гость ( Вход | Регистрация )
|
3.1.2011, 18:31
Сообщение
#1
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
Скрипт просмотра текущей погоды в разных городах (в чате периодически или по запросу через меню) с сервера (перекочевал из этой темы )
Название: Temperature.lua Платформа: PtokaX API: API 2 Авторы: Nickolya, Saymon Изменил: Ksan Исправил: Ksan Библиотека: Для работы скрипта требуется библиотека Lua Socket Изменения от Ksan: - добавил меню - добавил выборку погодных явлений (облачность, осадки и т.д.) - подправил чуток вывод градусов и мм.рт.ст - подогнал под себя дизайн вывода - можно смотреть текущую погоду разных городов (через меню) - меню с разными городами строится автоматически в зависимости от таблицы городов - добавлено ограничение частоты запросов погодного сервера - добавил сборщик мусора - добавлена инфа про макс. и мин. температуру в этот же день из архивов этого города (если отсутствует пр выводе, значит, нет информации в архивах) - добавлено время восхода/захода солнца (для полярной ночи или дня вместо времени будет -*- ) - добавлен вывод текущих даты/времени для просматриваемой местности Исправления от Ksan: - при попадании на просмотре через меню города без архивов погоды (есть и такие) следующие города показывались тоже без данных из архива (до перезапуска скрипта). Исправлено. - на сайте изменили вид ссылки (теперь там вместо кодов городов - названия самих городов латиницей и без пробелов (вместо пробела - символ подчеркивания)). Скрипт переделан под это. Примечания: 1. 2. Таблицу городов стройте аналогично уже вписанным в скрипт. Названия городов транслитом можно получить через этот же сайт погоды (прописываете город в окошке ввода кириллицей, и потом получаете в адресной строке последнее слово - название города латинскими буквами). 3. И да, кому хочется показывать давление и влажность в чате (для всех), можете просто раскомментить 2 строки в функции "functionSendToChat()" Пример результата работы скрипта - ответ на запрос через меню: Код [05:07:40] <Current_Weather_Indy> Сейчас в г.Томск: ************************************************************ Время: четверг, 22 декабря 2011, 05:02 (GMT +7) ************************************************************ Температура: -14° Погодные явления: "пасмурно" Давление: 765 мм рт.ст Влажность: 80% Ветер: 2 м/с ЮЗ Солнце: восход: 09:54 заход: 16:43 В этот же день (из архивов): Max.: +1.1° (1996г.) Min: -42.0° (1949г.) ************************************************************ UPD: - добавлена инфа про макс. и мин. температуру в этот же день из архивов этого города (если отсутствует при выводе, значит, нет информации в архивах), скрипт перезалит. UPD-2: - добавлена возможность выбора места вывода по запросу - в приват или чат ( local bSendToPrivat = true ) UPD-3: - скрипт исправлен и добавлена как новая версия. Причина - изменение представления адреса на сайте погоды. Но нет худа без добра - пока менял скрипт под это изменение, нашёл(и исправил) причину потери временами архивных данных при выводе информации. UPD-4: - скрипт исправлен и залит сюда, старые версии удалены за ненадобностью. Причина - полное изменение структуры страницы на сайте. Пришлось всё перелопатить. - добавил показ восхода/захода солнца. UPD-5: - добавил показ текущей даты/времени местности (UPD: убрал показ даты/времени для вывода в чат местнй погоды (зачем местным показывать их время, тем более, не очень точное)) - исключил вывод данных при получении ошибки с сайта (чтоб все города не получали одну и ту же погоду) - небольшие косметические малозаметные изменения, улучшающие работу скрипта Дата перезаливки первой версии: 23-01-2011 03:45 (мск.) Дата заливки второй версии: 18-11-2011 05:32 (мск.) Дата заливки третьей версии: Дата заливки последней версии: 22-12-2011
Прикрепленные файлы
|
|
|
|
![]() |
19.1.2011, 7:15
Сообщение
#2
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
UPD-2:
- подправлен чуток код, так как по запросу архивные данные по температуре могли не выводиться, даже если они есть. Также добавлена возможность выбора места вывода по запросу - в приват или чат. ( local bSendToPrivat = true ) Перезалит в первом сообщении. |
|
|
|
22.1.2011, 6:46
Сообщение
#3
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 7 Регистрация: 20.1.2011 Из: Комса Пользователь №: 8 586 Спасибо сказали: 0 раз |
Блин, скрипт как раз то что нужно, но есть проблемка...
Где можно взять http.lua , socket.dll , http.dll ? Простите меня нуба, но я реально не знаю откуда их скачать можно) только начал заниматся хабом) |
|
|
|
22.1.2011, 6:54
Сообщение
#4
|
|
![]() Активист! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 614 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 401 раз |
BOKOREZ, http://mydc.ru/topic43.html
|
|
|
|
22.1.2011, 7:54
Сообщение
#5
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 7 Регистрация: 20.1.2011 Из: Комса Пользователь №: 8 586 Спасибо сказали: 0 раз |
За ссылку спасибо большое, нашел уже)))
Автору за скрипт великая признательность))) |
|
|
|
22.1.2011, 9:36
Сообщение
#6
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
Да, забыл я написать в первом сообщении про библиотеку...Исправил уже.
Но на всякий случай продублирую тут: Библиотека: для работы скрипта требуется библиотека Lua Socket |
|
|
|
23.1.2011, 2:46
Сообщение
#7
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 31 Регистрация: 28.11.2009 Пользователь №: 5 196 Спасибо сказали: 0 раз |
[01:40:16] <OpChat> D:\()PtokaX\scripts\Temperature.lua:133: attempt to concatenate global 'sArchive' (a nil value)
я так понял это происходит в момент запроса на температуру в общий чат =) |
|
|
|
23.1.2011, 4:43
Сообщение
#8
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
Dan Claimant, найди эти строки:
Код function SendToChat() и добавь сразу под ними эту: bArchive = GetData(tCities[sCity]) Код local sArchive = "" Когда делал последнее исправление, забыл с тестируемого скрипта скопировать эту строку сюда. UPD: Исправил и перезалил в первом сообщении. Тест ɐwʎ ɔ ɐvmоɔ |
|
|
|
24.3.2011, 10:09
Сообщение
#9
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 14 Регистрация: 6.2.2010 Пользователь №: 5 974 Спасибо сказали: 0 раз |
Поставил скрипт, поставил свой город. смотрю -8 в окно смотрю солнышко +2.. бред.
|
|
|
|
24.3.2011, 10:33
Сообщение
#10
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
Градусник должен быть в тени, а также не подогреваться снизу или отражением..
Это как рабочая версия. Сходи по ссылке из первого сообщения и глянь температуру через сайт и сравни с тем, что сейчас видишь за окном и через скрипт... Если что и не так, всё равно скрипт тут ни при чем (если он у тебя обновлялся с ночи). |
|
|
|
17.11.2011, 7:14
Сообщение
#11
|
|
![]() Абсолютный новичок Группа: Пользователи Сообщений: 3 Регистрация: 12.8.2010 Пользователь №: 7 476 Спасибо сказали: 0 раз |
Ставил скрипт и напоролся на то, что pogoga.mail.ru теперь пишет в конце не цифры города, а название в латинской транскрипции. Попробовал в скрипте - не заработало. В общем кому все же нужен номер города - надо навести курсор на вкладу "архив погоды" на странице нужного города и увидете в конце ссылки нужный номер.
И еще, если нужный город состоит из двух слов - в названии не надо ставить пробел. Например: Новые Васюки - не работает Новые_Васюки - работает. Спасибо за скрипт! |
|
|
|
18.11.2011, 5:38
Сообщение
#12
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
1. Pickayurik, не знаю, почему у тебя не работал, у меня работает без всяких изменений.
При запросе по ссылке со скрипта (которая с кодом в конце), ссылка на сайте преобразуется в другую (с городом в конце) и выдаёт необходимую информацию по погоде. 2. А насчёт пробела в названии населённого пункта - это нормально, что не выдаст, ибо в ссылке пробел - недопустимый символ, а символ подчеркивания издавна используется вместо пробела в таких случаях. PS: Хотя можно и попробовать сразу добавить в скрипт новую ссылку с вытекающими отсюда небольшими изменениями...но стоит ли оно того, если и так работает? PPS: Решил всё же подкорректировать скрипт. О результатах - ниже. UPDATE-3: Скрипт исправлен и перезалит, точнее, дозалит (оставил и первую версию пока) Исправления: - при попадании на просмотре через меню города без архивов погоды (есть и такие) следующие города показывались тоже без данных из архива (до перезапуска скрипта). Исправлено. - на сайте изменили вид ссылки (теперь там вместо кодов городов - названия самих городов латиницей и без пробелов (вместо пробела - символ подчеркивания)). Скрипт переделан под это. Доп. информация по поводу исправлений - в первом сообщении. |
|
|
|
27.11.2011, 7:04
Сообщение
#13
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 59 Регистрация: 4.9.2011 Из: Республика Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 0 раз |
Хотелось бы узнать как сделать так, чтобы города шли в том порядке, в котором я захочу: алфавитном, или, например, так как в конфиге скрипта. Спрашиваю потому, что порядок следования в конфиге скрипта не всегда соблюдается и зависит от количества городов почему-то?..
Вообщем, короче говоря, порядок следования названий городов в конфиге скрипта не всегда (или почти не всегда) соблюдается в контекстном меню. Почему такое происходит?.. |
|
|
|
27.11.2011, 11:13
Сообщение
#14
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
MIKHAIL, это зависит от структуры таблицы городов в скрипте. В данном случае таблица с названиями городов не структурирована по номерам, и отправляется юзеру в том порядке, в каком находится в памяти на данный момент. А это, в свою очередь, насколько я понимаю, зависит от предыдущих выборок юзеров при вызовах через меню.
Хотя можно было бы таблицу организовать иначе, по номерам, но лично мне пофиг, как расположены города в меню. По большому счёту, это не имеет никакого значения, согласись?! |
|
|
|
27.11.2011, 19:03
Сообщение
#15
|
|
![]() Продвинутый участник ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 178 Регистрация: 20.5.2008 Пользователь №: 5 Спасибо сказали: 18 раз |
Цитата По большому счёту, это не имеет никакого значения, согласись?! Если городов много (например штук 30), то искать в меню их все-таки удобней по алфавиту. |
|
|
|
28.11.2011, 1:15
Сообщение
#16
|
|
![]() Активный участник ![]() ![]() ![]() Группа: Пользователи Сообщений: 59 Регистрация: 4.9.2011 Из: Республика Беларусь, Минск Пользователь №: 9 667 Спасибо сказали: 0 раз |
ustas, +1!
|
|
|
|
9.12.2011, 20:25
Сообщение
#17
|
|
![]() Участник ![]() ![]() Группа: Пользователи Сообщений: 31 Регистрация: 28.11.2009 Пользователь №: 5 196 Спасибо сказали: 0 раз |
что-то сегодня скрипт совсем разбушевался:
[19:34] Синтаксис D:\****\PtokaX\scripts\Temperature_New.lua:105: attempt to concatenate global 'sWeather' (a nil value) а в опчате в итоге: [19:34:32] <OpChat> Не удалось обработать информацию о погоде. Возможно, было изменено оформление страницы. [19:34:32] <OpChat> D:\****\PtokaX\scripts\Temperature_New.lua:105: attempt to concatenate global 'sWeather' (a nil value) |
|
|
|
9.12.2011, 20:34
Сообщение
#18
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
Наверно, опять что-то на сайте изменили и парсинг не выдаёт нужного..
Придётся опять править.. |
|
|
|
15.12.2011, 7:24
Сообщение
#19
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
Наконец-то собрался и переделал скрипт. Причина - полное изменение структуры страницы на сайте. Пришлось всё перелопатить. Плюс добавил показ восхода/захода солнца. Дата заливки: 15-12-2011 06:25 (мск.) Качайте из первого сообщения темы. |
|
|
|
19.12.2011, 12:57
Сообщение
#20
|
|
![]() Белый Волк ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 413 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 445 раз |
UPD:
Выявился неучтённый момент - в архивных данных могут оказаться 2 года через запятую с одинаковой температурой Max. или Min., и при попадании такого случая скрипт падает. Что сегодня и случилось с Владивостоком. Хорошо, хоть сам город не пострадал. Код подправил, скрипт перезалил в сообщении #1. UPD-2: Сделал косметическую подправку - восход/заход солнца разделил на 2 строки, а то слишком длинная получалась: Код Солнце: восход: 09:52 заход: 16:42 Скрипт перезалил в сообщении #1. |
|
|
|
![]() ![]() |
|
Сейчас: 24.5.2012, 2:22 |