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

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

MyDC.ru _ Сетевые скрипты [PtokaX] _ Погода для нескольких городов

Автор: Damaks 3.2.2011, 17:42

Погода для нескольких городов.


Название: multi_weather_api2
Версия API: API1, API2
Автор: Damaks

Основывается на скрипте http://mydc.ru/topic244.html.

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

Цитата( будет выглядеть примерно так )
============================================================================================
Прогноз погоды
============================================================================================

Вечер 03 Feb, Thu Пасмурно, температура -1..1 С, давление 742..744 мм рт.ст., ветер Юго-Западный, 4 м/с
Ночь 04 Feb, Fri Облачно, температура -2..-4 С, давление 741..743 мм рт.ст., ветер Южный, 4 м/с
Утро 04 Feb, Fri Пасмурно, температура 0..-2 С, давление 738..740 мм рт.ст., ветер Южный, 5 м/с
День 04 Feb, Fri Пасмурно, температура 1..3 С, давление 737..739 мм рт.ст., ветер Юго-Западный, 5 м/с

============================================================================================

Для работы скрипта необходимы библиотеки http://mydc.ru/topic43.html.
Коды городов можно найти здесь:  multi_weather_codes.txt ( 69.89 килобайт ) : 236

Подробнее работу скрипта можете проверить у меня на хабе.
Версию скрипта для API1 необходимо использовать в паре с http://mydc.ru/topic605.html (уже находится в архиве, также копируется в папку "scripts").


Скачать:

 multi_weather_api2.lua ( 6.84 килобайт ) : 322

 multi_weather_api1.zip ( 8.99 килобайт ) : 56


P.S.
Необходима помощь знатоков. В отличие от оригинала скрипт отправляет запрос при каждом просмотре. Это было сделано для исключения "артефактов", двойных запросов или накапливающихся. Если кто-то добавит кэширование, буду очень признателен.

Автор: Артём 4.3.2011, 19:59

+ Добавлена возможность опционального просмотра погоды по ЛЮБОМУ городу, который есть в базе "optional_Weather_script_city_codes.txt"
(скрипт и базу распаковать в папку scripts)
Добавил: alex82
[attachment=5867:optional...ript.lua.rar]

Автор: STIVAN 4.4.2011, 14:26

Артём, у меня что то пишет: Прогноз погоды в данный момент недоступен. Попробуйте позже. г. Волгоград

Автор: Артём 4.4.2011, 14:57

STIVAN, а у меня показывает нормально big_smile.gif

г. Волгоград

Автор: STIVAN 4.4.2011, 15:16

Артём, все заработало, наверно обновлялось

Автор: abcdg 2.7.2011, 11:09

спасибо. всё работает

Автор: Parad0x 20.11.2011, 18:13

Я так понимаю этот скрипт автоматически погоду в чат выводить не умеет, сравнив этот и http://mydc.ru/topic244.html простыми манипуляциями функию таймера от туда не добавить (т.к. не очень силен в lua) умельцы помогите big_smile.gif

Автор: Артём 1.5.2012, 10:49

dell pls

Автор: bonch 8.5.2012, 16:14

Здравствуйте.
Что сделать, чтобы инфа шла в личку, а не в чат?

Автор: Артём 8.5.2012, 17:42

bonch, Сделать Core.SendPmToNick

Автор: FIGO 13.5.2012, 0:17

Артём
этот скрипт не пошел у меня

Синтаксис ...C Hub\scripts\optional_Weather_script_city_timer.lua:9: attempt to index global 'SetMan' (a nil value)

Автор: Ksan 13.5.2012, 3:13

FIGO, специально сейчас скачал скрипт, поставил, ничего не изменяя, запустился нормально. Тыкнул в меню на Харьков - показал погоду на Харьков. Что я не так делал? big_smile.gif
Хотя кое-что я изменил, но об этом ниже (ещё ниже, в послании Артёму) и оно не касается твоей проблемы.

Я полагаю, что у тебя в 9-й строке в середине выражения вместо точки стоит запятая:

Код
local sBot = SetMan.GetString(21)         -- Имя бота
Исправь на точку и запусти, если больше ничего не менял, будет работать, думаю.

PS: Артём, у тебя в архиве текстовый файл имеет сдвоенное расширение - ".txt.txt", надо бы подправить, а то при первом включении говорит, что не нашёлся файл. И правильно говорит, я не глянул и запустил, и получил эту ошибку.

Автор: FIGO 13.5.2012, 9:53

Ksan

Код
local sBot = SetMan.GetString(21)         -- Имя бота

стоит именно точка, в скрипте ничего не менял

http://mydc.ru/topic2222.html - этот скрипт нормально работает

Автор: Alexey 13.5.2012, 12:18

Ты пытаешься включить скрипт на незапущенном хабе.

Автор: Артём 13.5.2012, 14:42

Ksan, переименовал txt и перезалил.

Цитата
Я полагаю, что у тебя в 9-й строке в середине выражения вместо точки стоит запятая:

Имя бота у меня нормально, без ошибок.

Автор: Sergey613 8.10.2012, 19:22

Синтаксис ...0-x64\scripts\optional_Weather_script_city_timer.lua:82: bad argument #1 to 'RemoveTimer' (number expected, got userdata)

Автор: Alexey 8.10.2012, 21:01

Причина в птоке 0.4.2.0, обнови её или вернись на более раннюю.

Автор: Sergey613 9.10.2012, 13:48

optional_Weather_script_city_timer.lua
Ошибка:
Синтаксис ...-Lua5.2.1\scripts\optional_Weather_script_city_timer.lua:40: invalid escape sequence near '\П'
Строка 40:
Core.SendToAll("<"..sBot.."> "..sMsg.." ".."\t\t\Прогноз погоды на любой другой город можно посмотреть через "..sMenu.."\n\t"..string.rep("~",92).."\n\n")

Перед: \Прогноз убрать слэш!

Скрипт работает, пишет: "Подождите 10 минут" и всё!