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 » 08 авг 2010 20:27

Небольшой багфикс, спасибо за который Vertigo.
Для закрытия файла базы городов после каждого его открытия в процедуре ::eweather::eweather_proc замените строку
    foreach city [split [read [open $eweather(base) "r"]] "\n"] {
на
    foreach city [split [read [set fid [open $eweather(base) "r"]]] "\n"] {

Далее перед строкой
    if {![info exists citys]} {
 
допишите строку
    close $fid
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 » 15 авг 2010 15: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. Не простая погода с Яндекса.

Сообщение nksp » 11 сен 2010 04:07

Что нужно сделать что бы скачать скрипт ? Пишет что нету прав.
Аватара пользователя
nksp
 
Сообщения: 10
Зарегистрирован: 11 сен 2010 04:05
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота:

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

Сообщение tvrsh » 11 сен 2010 10:34

nksp писал(а):Что нужно сделать что бы скачать скрипт ? Пишет что нету прав.

Нужно написать хотябы одно сообщение: viewtopic.php?p=981#p981
Теперь можешь скачивать.
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. Не простая погода с Яндекса.

Сообщение nksp » 11 сен 2010 11:38

Благодарю вас, сейчас буду скачивать а то я уже третий день ищу хотя бы один рабочий скрипт на погоду. Не знаю куда они все делись. :oops:
Аватара пользователя
nksp
 
Сообщения: 10
Зарегистрирован: 11 сен 2010 04:05
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота:

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

Сообщение tvrsh » 11 сен 2010 11:45

В поиске архива по запросу "погод" много скриптов находится, все не работают?
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. Не простая погода с Яндекса.

Сообщение Pers » 12 сен 2010 06:36

Скрипт работает? но через какое то время может начать выдавать ошибку:

Tcl error [::eweather::eweather_pub]: can't read "wcity": no such variable


потом опять заработает...
Pers
 
Сообщения: 13
Зарегистрирован: 12 сен 2010 06:32
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение tvrsh » 12 сен 2010 08:41

Pers писал(а):Скрипт работает? но через какое то время может начать выдавать ошибку:

Tcl error [::eweather::eweather_pub]: can't read "wcity": no such variable


потом опять заработает...

Как появится эта ошибка напиши в патилайне .set errorInfo и покажи тут результат.
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 » 12 сен 2010 20:00

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

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

Сообщение Pers » 13 сен 2010 06:52

Место минуса(-) знак вопроса показывает
Pers
 
Сообщения: 13
Зарегистрирован: 12 сен 2010 06:32
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение tvrsh » 13 сен 2010 22:03

Pers писал(а):Место минуса(-) знак вопроса показывает

При каком запросе? Я никаких знаков вопроса пока не видел.
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. Не простая погода с Яндекса.

Сообщение Pers » 14 сен 2010 05:28

сейчас: ?3 °C, Ясно, Штиль, 1 м/с (4 км/ч),

должно быть -3
Pers
 
Сообщения: 13
Зарегистрирован: 12 сен 2010 06:32
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение tvrsh » 14 сен 2010 23:03

Pers писал(а):
сейчас: ?3 °C, Ясно, Штиль, 1 м/с (4 км/ч),

должно быть -3

[23:00:35] <@tvrsh> !пп оймякон
[23:00:36] <+bionic> Якутия, Оймякон сейчас: -3 °C, Переменная облачность, Ветер: западный, 1 м/с (4 км/ч),
Разбирайся со своим клиентом. Возможно это он не понимает минусы.
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. Не простая погода с Яндекса.

Сообщение Pers » 15 сен 2010 07:06

Нет, это дело в кодировках, проверь на suzi, у меня получался нормальный минус но всё остальное при этом в вопросах(
Pers
 
Сообщения: 13
Зарегистрирован: 12 сен 2010 06:32
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение tvrsh » 15 сен 2010 15:42

Pers писал(а):Нет, это дело в кодировках, проверь на suzi, у меня получался нормальный минус но всё остальное при этом в вопросах(

Ты мне скажи свой город в котором всегда минус, а то надоедает каждый раз искать города с минусовой температурой.
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. Не простая погода с Яндекса.

Сообщение Pers » 15 сен 2010 16:48

В моём уже плюс, но не надолго же) !п +оймякон использовал я.

Ещё почему то не всегда выводиться температура на ночь при !п оймякон +1
"Температура днем +3" и всё на этом конец
Pers
 
Сообщения: 13
Зарегистрирован: 12 сен 2010 06:32
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение tvrsh » 16 сен 2010 00:23

После строки
    regsub -all -- "<div class=\"b-gale\" title=\"Сильный ветер\">" $wnow "\002Сильный ветер\002" wnow
добавь
    if {[string index [join $wnow] 0] != "+"} {
        set wnow [string replace [join $wnow] 0 0 -]
    }
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. Не простая погода с Яндекса.

Сообщение Pers » 16 сен 2010 11:13

не помогло, да и какой смысл менять только в # Получаем погоду сейчас.
если набрать !rehash затем !п оймякон +1 то не будет температуры на ночь, и вообще не очень как то удачно реализована эта запоминалка города, лучше еслиб бот записывал в файл это.
Pers
 
Сообщения: 13
Зарегистрирован: 12 сен 2010 06:32
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение nksp » 16 сен 2010 11:15

Я добавил строчку и теперь при !п москва +1 пишет ошибку

Tcl error [::eweather::eweather_pub]: can't read "eweather(nickbase)": no such element in array

Но написал потом !п москва а потом снова !п москва +1 и выдало, странно.

Это если сразу написать просто погоду а потом на +1 и на +2

а если проходит время пишу !п москва +1 то такую же ошибку выдает. печально.
Аватара пользователя
nksp
 
Сообщения: 10
Зарегистрирован: 11 сен 2010 04:05
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота:

След.

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

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

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

cron