Автор: 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, а у меня показывает нормально
Автор: STIVAN 4.4.2011, 15:16
Артём, все заработало, наверно обновлялось
Автор: Parad0x 20.11.2011, 18:13
Я так понимаю этот скрипт автоматически погоду в чат выводить не умеет, сравнив этот и http://mydc.ru/topic244.html простыми манипуляциями функию таймера от туда не добавить (т.к. не очень силен в lua) умельцы помогите
Автор: 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, специально сейчас скачал скрипт, поставил, ничего не изменяя, запустился нормально. Тыкнул в меню на Харьков - показал погоду на Харьков. Что я не так делал?
Хотя кое-что я изменил, но об этом ниже (ещё ниже, в послании Артёму) и оно не касается твоей проблемы.
Я полагаю, что у тебя в 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 минут" и всё!