eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Решение вопросов при работе с TCL скриптами.

Модератор: Модераторы

eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение tvrsh » 08 авг 2010 00:35

###
#
# Название: eweather.tcl
# Версия: 3.0
# Автор: tvrsh
# Оффсайт: http://egghelp.ru/
#
###
#
# Описание: Скрипт "не простой" погоды с Яндекса. Теперь работает с базой(12000+) городов.
# В скрипте есть запоминалка последнего посмотренного города при просмотре сегодняшней погоды. То-есть будет показываться погода
# при команде без параметров. Как только вы посмотрите погоду на любой другой день кроме сегодняшнего, то запоминалка для вас
# сбрасывается. Объяснить трудно но оно работает.
#
###
#
# Версион хистори:
#
# 1.0(20.03.2010) Первая паблик версия.
# 1.1(21.03.2010) + небольшой хелп по использованию
# + погода в случайном городе
# + небольшие изменения скрипта
# 2.0(24.07.2010) Собрана база городов и скрипт переписан для работы с ней.
# 2.1(26.07.2010) Запоминалка последнего города и показ погоды в нем при команде без параметров.
# 2.2(12.08.2010) Погода на неделю если перед городом поставить +.
# 2.3(12.08.2010) Исправлена ошибка с минусовой температурой на ботах с сузи.
# 2.4(28.09.2010) Исправлена ошибка поиска "многословных" городов.
# 19.11.2010 +сортировка найденных городов по алфавиту.
# 2.5(17.12.2010) Переписан скрипт и база под новый формат запросов сайта.
# + раскраска температуры (с) #eggdrop @ RusNet.
# + много обновлений в оформлении.
# 2.6(25.06.2011) Обновлена база городов.
# + небольшие поправки в недельном и дневном выводах.
# 2.7(29.11.2011) Добавлено локальное время, время и место обновления данных о погоде.
# + обновлен вывод в канал всвязи с увеличением размера сообщения.
# + короткие алиасы городов.
# 2.8(19.02.2012) Скрипт обновлен после изменений на сайте.
# 2.9(06.03.2012) Добавлен показа восхода/захода.
# 3.0(09.06.2013) Обновил вывод и добавил показ вчерашней температуры.
#
###


Пример работы:
# Просто просмотр погоды.
<tvrsh> !п подольск
<@bionic> Пoдoльcк: -9 °C, яcнo. Вocхoд: 07:48/19:16, Дaвлeниe: 758 мм.pт.cт, Вeтep: югo-вocтoчный, 4.0 м/c (14.4 км/ч), Влaжнocть: 58%, Вeчepoм: -14 °C, Hoчью: -18 °C. (138.394мc.)

# Поиск города в базе и показ первого из списка найденных.
<tvrsh> !п под*
<@bionic> По вашему запросу "под" найдено 16 городов. Первые 5 найденных: Подбуж, Подволочиск, Подгайцы, Подгоренский, Подгорица (Черногория).
<@bionic> Пoдбyж: +1 °C, яcнo. Вocхoд: 07:48/19:16, Дaвлeниe: 729 мм.pт.cт, Вeтep: Штиль, Влaжнocть: 74%, Вeчepoм: +2 °C, Hoчью: +1 °C. (137.545мc.)

# Просмотр погоды в городе из списка найденных.
<tvrsh> !п под* -3
<@bionic> По вашему запросу "под" найдено 16 городов. Первые 5 найденных: Подбуж, Подволочиск, Подгайцы, Подгоренский, Подгорица (Черногория).
<@bionic> Пoдoльcк: -9 °C, яcнo. Вocхoд: 07:48/19:16, Дaвлeниe: 758 мм.pт.cт, Вeтep: югo-вocтoчный, 4.0 м/c (14.4 км/ч), Влaжнocть: 58%, Вeчepoм: -14 °C, Hoчью: -18 °C. (123.724мc.)

# Срабатывает запоминалка последнего города, которая сбросится при просмотре погода на следующие дни.
<tvrsh> !п
<@bionic> Пoдoльcк: -9 °C, яcнo. Вocхoд: 07:48/19:16, Дaвлeниe: 758 мм.pт.cт, Вeтep: югo-вocтoчный, 4.0 м/c (14.4 км/ч), Влaжнocть: 58%, Вeчepoм: -14 °C, Hoчью: -18 °C. (150.791мc.)

# Просмотр погоды на неделю.
<@tvrsh> !пп +подольск
<@bionic> Пoдoльcк: зaвтpa 20 фeвpaля: oблaчнo c пpoяcнeниями -10/-10. вт 21: oблaчнo -2/-6. cp 22: oблaчнo -3/-6. чт 23: oблaчнo, вpeмeнaми cнeг -1/-2. пт 24: oблaчнo, нeбoльшoй дoждь co cнeгoм 0/-1. cб 25: oблaчнo, нeбoльшoй cнeг 0/-3. вc 26: oблaчнo, нeбoльшoй cнeг -1/-6. (171.096мc.)


Также показывается время выполнения запроса. Кому не нравится, то легко убрать.
Инструкция по установке в шапке скрипта.

Скачать скрипт: eweather2.tcl
Скачать базу городов: ewbase.txt
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение tvrsh » 18 дек 2010 00:09

Да хоть тридцать три. Я никуда не спешу.
Обновлено. Скачивайте новый скрипт и новую базу.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

За это сообщение автора tvrsh поблагодарил:
CyibX (18 дек 2010 02:02)
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение Eugine-x » 18 дек 2010 20:16

скрипт можно не менять, а просто заменить базу и перезагрузить бота, работает. При замене скрипта было
[22:03:37] !Eugine-x: !п владимир
[22:03:52] %ботт: ???????????? ???????, ???????? сейчас: -12 °C, ????????, ?????: ?????????, 6 ?/? (22 ??/?), ????????: 751 ?? ??. ??., ?????????: 86%, ??????: 08:46, ?????: 15:42. (1162.0мc.)
Eugine-x
 
Сообщения: 8
Зарегистрирован: 20 окт 2010 15:56
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Версия бота: Eggdrop 1.8

Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение tvrsh » 18 дек 2010 20:36

Можно и не менять конечно. Новая версия внешне покрасивее немного. Раскрашивается температура, полное название дней недели и месяца в запросе на следующие дни, и в таком же роде. Правда опять какой-то косяк с сузи. попробуй грузить скрипт используя опцию -encoding после команды source. Например:
source -encoding utf-8 scripts/eweather2.tcl
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение Baklazhan » 18 дек 2010 21:23

Всё по прежнему отлично работает :) спасибо за скрипт!
Baklazhan
 
Сообщения: 8
Зарегистрирован: 07 фев 2010 00:56
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение Волк » 28 дек 2010 01:48

Еще какой то глюк однако вылез..

<Волк> !gg донецк
<Lupus> По вашему запросу "донецк" найдено 2 города: Донецк (Россия), Донецк (Украина).
<Волк> !gg донецк(украина)
<Lupus> По вашему запросу "донецк(украина)" не найден ни один город.
<Волк> !gg донецк (украина) (в патилайне Tcl error [::eweather::eweather_pub]: can't read "wcity": no such variable)
Аватара пользователя
Волк
 
Сообщения: 27
Зарегистрирован: 25 ноя 2010 01:47
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение tvrsh » 28 дек 2010 11:49

Это была ошибка в базе городов. Она уже исправлена и новая база собирается.Сегодня вечером или завтра все будет готово.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение LuXe » 29 дек 2010 04:26

так же при просмотре !п Одесса показывает вообще техас :)) исправьте пожалуйста
LuXe
 
Сообщения: 38
Зарегистрирован: 18 ноя 2010 17:43
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение tvrsh » 31 дек 2010 12:11

База городов обновлена. Донецки и Одесса работают хорошо. Ссылка на базу в первом посте.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.

За это сообщение автора tvrsh поблагодарил:
LuXe (31 дек 2010 19:01)
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.

Сообщение LuXe » 31 дек 2010 18:59

ох под новый год подарок нам:) Спасибо большое
LuXe
 
Сообщения: 38
Зарегистрирован: 18 ноя 2010 17:43
Благодарил (а): 8 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение sad » 14 май 2011 14:09

Буквально с начала этой недели началось такое:
[21:00:21] <sad> !п кмс
[21:00:23] <@Vesemir> Хабаровский край, Комсомольск-на-Амуре сейчас: +18 °C, Малооблачно, Ветер: северо-восточный, 3 м/с (11 км/ч), Давление: 747 мм рт. ст., Влажность: 21%, Восход: 06:06, Заход: 21:30 <tr> Местное время 39600,, данные зарегистрированны в 17:00 на станции Gorin, расположенной в 74 км от центра населенного пункта. (1996.0мc.)
[21:02:25] <sad> !п москва
[21:02:29] <@Vesemir> Москва сейчас: +10 °C, Облачно, временами дождь, Ветер: юго-восточный, 2 м/с (7 км/ч), Давление: 747 мм рт. ст., Влажность: 51%, Восход: 05:20, Заход: 21:31 <tr> Местное время 14400,, данные зарегистрированны в 13:00 на станции Moskva, расположенной в 9 км от центра населенного пункта. (2975.0мc.)


лишнее в парсинге, такое ощущение что яндекс поменял страницу. если скрипт поддерживается - исправте, если нет - отпишитесь.
Нежелание играться - первый признак деградации ;)
Аватара пользователя
sad
 
Сообщения: 28
Зарегистрирован: 15 авг 2010 16:17
Откуда: Комсомольск-на-Амуре
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение tvrsh » 14 май 2011 17:26

Яндекс добавил местное время и время когда были запрошены данные.
В строке
regexp {<td class=\".*?\">(.*?)</table>} $data "" wnow
замени </table> на </tr>.
Можно еще сделать чтобы показывалось местное время. Но оно там как-то хитро у них работает. В исходном коде Комсомольска-На-Амуре вместо нормального времени такая строка
HTML4STRICT: [ Скачать ] [ Скрыть ]
Местное время <span class="forecast-tz-shift">39600</span>, данные

Время указывается не напрямую а разницей в секундах(может быть) с московским(может быть). Я не уверен. Как только разберусь сделаю показ местного времени.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение Eugine-x » 15 май 2011 03:59

Подскажите пожалуйста, а почему по некоторым городам не выдается погода? Я живу в Алтайском крае, поэтому смотрел свои города, а именно Яровое и Славгород. По Яровому разные сообщения - на
*Eugine-x: !п яровое
+He3HauKa: По вашему запросу "яровое" не найден ни один город.
на
*Eugine-x: !п Яровое ошибка в патилайн - Tcl error [::eweather::eweather_pub]: can't read "wcity": no such variable.
Теперь по Славгороду:
*Eugine-x: !п Славгород
+He3HauKa: По вашему запросу "славгород" найдено 2 города: Славгород (Беларусь), Славгород (Россия).
*Eugine-x: !п Славгород -2
+He3HauKa: По вашему запросу "славгород" найдено 2 города: Славгород (Беларусь), Славгород (Россия).
и так дальше, в общем погоду получить не получается.
Оба эти города в базе городов есть, запись такая:
yarovoe|Яровое (Россия)
slavgorod|Славгород (Россия)
Eugine-x
 
Сообщения: 8
Зарегистрирован: 20 окт 2010 15:56
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Версия бота: Eggdrop 1.8

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение Волк » 23 май 2011 14:43

замени </table> на </tr>.

вот токмо после этого не только местное время не показывает, но и "данные зарегистрированы" и пр
фишка то довольно интересная
Аватара пользователя
Волк
 
Сообщения: 27
Зарегистрирован: 25 ноя 2010 01:47
Благодарил (а): 3 раз.
Поблагодарили: 1 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение tvrsh » 23 май 2011 22:34

Eugine-x, быстрым фиксом данной проблемы будет замена строки
          if {[string match -nocase "$cit*" [lindex [split $city "|"] 1]]} {

на
          if {[string match -nocase [string map {"я" "Я"} "$cit*"] [lindex [split $city "|"] 1]]} {

А Славгород у меня нормально работает.
Славгород.
<tvrsh> !п славгород -2
<bionic> По вашему запросу "славгород" найдено 2 города: Славгород (Беларусь), Славгород (Россия).
<bionic> Алтайский край, Славгород сейчас: +16 °C, Ясно, Ветер: северный, 3 м/с (11 км/ч), Давление: 749 мм рт. ст., Влажность: 26%, Восход: 05:34, Заход: 21:49. (241.054мc.)
<tvrsh> !п Славгород -2
<bionic> По вашему запросу "Славгород" найдено 2 города: Славгород (Беларусь), Славгород (Россия).
<bionic> Алтайский край, Славгород сейчас: +16 °C, Ясно, Ветер: северный, 3 м/с (11 км/ч), Давление: 749 мм рт. ст., Влажность: 26%, Восход: 05:34, Заход: 21:49. (321.246мc.)

Яровое.
<tvrsh> !п Яровое
<bionic> Алтайский край, Яровое сейчас: +16 °C, Ясно, Ветер: северный, 3 м/с (11 км/ч), Давление: 749 мм рт. ст., Влажность: 26%, Восход: 05:35, Заход: 21:49. (253.949мc.)
<tvrsh> !п яровое
<bionic> Алтайский край, Яровое сейчас: +16 °C, Ясно, Ветер: северный, 3 м/с (11 км/ч), Давление: 749 мм рт. ст., Влажность: 26%, Восход: 05:35, Заход: 21:49. (252.846мc.)


Добавлено спустя 52 минуты 8 секунд:
Re: eweather2.tcl - Easy weather 2. Не простая погода с Яндекса.
Обновил скрипт в архиве. Теперь показывает и местное время. Проверяйте, правильно ли это он делает.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение sad » 11 июн 2011 09:19

detected:
[16:16:08] <%sad> !п кмс
[16:16:10] <+Vesemir> Хабаровский край, Комсомольск-на-Амуре</h2> сейчас: +8 °C,Облачно, небольшой дождь,Ветер: северо-западный, 3 м/с (11 км/ч),Давление: 748 мм рт. ст.,Влажность: 93%,Восход: 05:40,Заход: 22:02. Местное время: 05:16 (1472.0мc.)

видно опять изменилась страница (
Нежелание играться - первый признак деградации ;)
Аватара пользователя
sad
 
Сообщения: 28
Зарегистрирован: 15 авг 2010 16:17
Откуда: Комсомольск-на-Амуре
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение wr` » 11 июн 2011 12:11

а у меня стало выдавать ошибку
Tcl error [::eweather::eweather_pub]: can't read "wcity": no such variable
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение tvrsh » 11 июн 2011 12:46

Попробуйте в строке
regsub -all -- "<h2>| </h2>" $wcity "$eweather(color2)" wcity
убрать пробел между | и <.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение wr` » 11 июн 2011 12:52

убрал,пишет ту же ошибку..
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение tvrsh » 12 июн 2011 21:36

Значит что-то ты не так делаешь, у меня все работает.
Have fun.
-
Получить помощь можно на каналах #egghelp в сети IrcNet.ru и #eggdrop в сети RusNet(Ключ канала eggdrop).
Перед созданием новой темы внимательно читайте Правила оформления топиков.
Аватара пользователя
tvrsh
 
Сообщения: 1230
Зарегистрирован: 19 авг 2008 16:55
Откуда: Russian Federation, Podolsk
Благодарил (а): 6 раз.
Поблагодарили: 130 раз.
Версия бота: Eggdrop 1.6.20+suzi

Re: eweather2.tcl - Easy weather 2. Не простая погода с Янде

Сообщение wr` » 13 июн 2011 13:59

нового бота создал,теперь этот при команде !п город ругается в dcc
Warning! putdccraw is deprecated. Use putnow instead! почему так?
Аватара пользователя
wr`
 
Сообщения: 121
Зарегистрирован: 26 май 2009 21:17
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

Пред.След.

Вернуться в TCL скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron