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 » 16 сен 2010 22:35

Не плачьте.
<tvrsh> !пп оймякон
<Info> Якутия, Оймякон сейчас: -6 °C, Переменная облачность, Ветер: западно-северо-западный, 1 м/с (4 км/ч), Давление: 693 мм рт. ст., Влажность: 82%, Восход: 05:55, Заход: 18:47. (267.49мc.)
<tvrsh> !пп оймякон +1
<Info> В сб 18 в Якутия, Оймякон будет переменная облачность. Температура днем +4 и ночью -7. (410.884мc.)
<tvrsh> !пп +оймякон
<Info> Погода на неделю в Якутия, Оймякон: сегодня 17 сентября: переменная облачность +4/-7. сб 18: переменная облачность +4/-7. вс 19: ясно +5/-7. пн 20 сентября: ясно +6/-6. вт 21: переменная облачность, небольшой снег +6/-5. ср 22: ясно +6/-6. чт 23: ясно +4/-8. (292.457мc.)

Везде минусы и все счастливы. Обновленный скрипт в первом посте темы.

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. Не простая погода с Яндекса.

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

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

Сообщение nksp » 17 сен 2010 01:17

[01:16:15] [@SmOkE] !пп оймякон
[01:16:17] [+bot] Якутия, Оймякон сейчас: - °C, Переменная облачность, Ветер: северо-западный, 4 м/с (14 км/ч), Давление: 688 мм рт. ст., Влажность: 54%, Восход: 05:55, Заход: 18:47. (279.0мc.)

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

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

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

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

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

Сообщение tvrsh » 17 сен 2010 06:22

Видимо сейчас в Оймяконе ноль градусов. Если да, то замени
    if {[string index [join $wnow] 0] != "+"} {
 
на
    if {[string index [join $wnow] 0] != "+" && [string index [join $wnow] 0] != "0"} {
 
после чего замени
        if {[string index [join $wdaysntt] 0] != "+"} {
 
на
        if {[string index [join $wdaysntt] 0] != "+" && [string index [join $wdaysntt] 0] != "0"} {
 
и ниже
            if {[string index [join $wdaysntt] 0] != "+"} {
на
            if {[string index [join $wdaysntt] 0] != "+" && [string index [join $wdaysntt] 0] != "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. Не простая погода с Яндекса.

Сообщение triton » 19 сен 2010 11:27

спс за скрипт, с первого раза все работает.
triton
 
Сообщения: 40
Зарегистрирован: 07 июн 2010 08:14
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение Pers » 27 сен 2010 23:40

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

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

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

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 » 28 сен 2010 05:51

!п нижний тагил
По вашему запросу "нижний" найдено 3 города: Нижний Новгород (Россия), Нижний Ломов (Россия), Нижний Тагил (Россия).
Нижегородская область, Нижний Новгород
Pers
 
Сообщения: 13
Зарегистрирован: 12 сен 2010 06:32
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21

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

Сообщение Teppopucm » 28 сен 2010 10:10

отличный скрипт.
Аватара пользователя
Teppopucm
 
Сообщения: 24
Зарегистрирован: 25 фев 2010 21:29
Благодарил (а): 12 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.20

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

Сообщение tvrsh » 28 сен 2010 18:18

#egghelp @ IrcNet.ru писал(а): <@tvrsh> !пп нижний тагил
<+bionic> Свердловская область, Нижний Тагил сейчас: +6 °C, Облачность с просветами, Ветер: северо-западный, 3 м/с (11 км/ч), Давление: 739 мм рт. ст., Влажность: 60%, Восход: 07:57, Заход: 19:43. (425.746мc.)
<@tvrsh> !пп нижний тагил +1
<+bionic> В ср 29 в Свердловская область, Нижний Тагил будет дождь. Температура днем +6 и ночью +6. (398.076мc.)
<@tvrsh> !пп +нижний тагил
<+bionic> Погода на неделю в Свердловская область, Нижний Тагил: сегодня 28 сентября: переменная облачность +9/-1. ср 29: дождь +6/+6. чт 30: переменная облачность, небольшой дождь +6/-1. пт 1 октября: переменная облачность, небольшой снег +4/-3. сб 2: переменная облачность +3/-6. вс 3: ясно +5/-5. пн 4 октября: переменная облачность +4/-3. (627.382мc.)

Обновленный скрипт в первом посте темы. Пробуйте.
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. Не простая погода с Яндекса.

Сообщение madcat600 » 03 окт 2010 23:56

для жителей прибрежных городов он температуру морской воды будет показывать?
madcat600
 
Сообщения: 1
Зарегистрирован: 03 окт 2010 23:37
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Windrop 1.6.21

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

Сообщение tvrsh » 04 окт 2010 00:02

madcat600 писал(а):для жителей прибрежных городов он температуру морской воды будет показывать?

Завист от того, будет ли это показывать яндекс.
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. Не простая погода с Яндекса.

Сообщение smile » 16 окт 2010 20:06

че то не качает:\
smile
 
Сообщения: 7
Зарегистрирован: 16 окт 2010 20:01
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.18+suzi

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

Сообщение tvrsh » 16 окт 2010 20:13

smile писал(а):че то не качает:\

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

Сообщение oIIa4ku » 20 окт 2010 04:24

Отличный скрипт. Правда вопросы всё-таки присутствуют при просмотре погоды на неделю:
(12:26:14) <@mircbot> Погода на неделю в Магаданская область, Магадан: сегодня 20 октября: переменная облачность ?5/-10. чт 21: переменная облачность ?5/-9. пт 22: переменная облачность, небольшой снег ?2/-8. сб 23: переменная облачность, небольшой снег ?3/-8. вс 24: переменная облачность, небольшой снег ?6/-12. пн 25 октября: переменная облачность ?8/-12. вт 26: снег ?9/-12. (6
oIIa4ku
 
Сообщения: 22
Зарегистрирован: 07 окт 2010 00:23
Откуда: Магадан
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Версия бота: Eggdrop 1.6.21+suzi

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

Сообщение tvrsh » 20 окт 2010 23:45

oIIa4ku писал(а):Отличный скрипт. Правда вопросы всё-таки присутствуют при просмотре погоды на неделю:
(12:26:14) <@mircbot> Погода на неделю в Магаданская область, Магадан: сегодня 20 октября: переменная облачность ?5/-10. чт 21: переменная облачность ?5/-9. пт 22: переменная облачность, небольшой снег ?2/-8. сб 23: переменная облачность, небольшой снег ?3/-8. вс 24: переменная облачность, небольшой снег ?6/-12. пн 25 октября: переменная облачность ?8/-12. вт 26: снег ?9/-12. (6

У меня на непатченном боте никаких вопросительных знаков нет.
<@tvrsh> !пп +магадан
<+bionic> Погода на неделю в Магаданская область, Магадан: сегодня 21 октября: переменная облачность -5/-7. пт 22: ясно -3/-7. сб 23: переменная облачность -4/-8. вс 24: облачно, небольшой снег -6/-9. пн 25 октября: переменная облачность -8/-9. вт 26: переменная облачность -8/-9. ср 27: переменная облачность -8/-9. (428.747мc.)
<@tvrsh> $$ encoding system
<+bionic> OK: utf-8 - 0.059 ms.

Да и на патченном эта ошибка уже исправлена.
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. Не простая погода с Яндекса.

Сообщение Radiosignal » 23 окт 2010 16:11

tvrsh, можно ли добавить в скрипт во такой девайс, чтоб показывал время и погоду в городе(день недели еще можно), например, в интервале час или полчаса. Город или родной или город-рандом.
Radiosignal
 
Сообщения: 87
Зарегистрирован: 17 июн 2009 18:01
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

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

Сообщение tvrsh » 24 окт 2010 11:47

Radiosignal писал(а):tvrsh, можно ли добавить в скрипт во такой девайс, чтоб показывал время и погоду в городе(день недели еще можно), например, в интервале час или полчаса. Город или родной или город-рандом.

Пока нет.
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 » 10 ноя 2010 14:29

Столкнулся с проблемой когда прогноз на неделю не умещается в одну строку и не выводится в канал. Чтобы это исправить замените
    putserv "PRIVMSG $chan :[join $wmsg] \00315([expr ($eweather(end) - $eweather(start))/1000.0]мc.)\003"
на
TCL: [ Скачать ] [ Скрыть ]
    if {[expr 512 - [string length ":$::botname PRIVMSG [join $wmsg] :\r\n"]] <= 0} {
        putserv "PRIVMSG $chan :[stripcodes c "[join $wmsg] \00315([expr ($eweather(end) - $eweather(start))/1000.0]мc.)\003"]"
    } else {
        putserv "PRIVMSG $chan :[join $wmsg] \00315([expr ($eweather(end) - $eweather(start))/1000.0]мc.)\003"
    }

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

Пред.След.

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

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

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

cron