Курсы Валют Цб, API2 | Скрипт-информатор. 18 валют на выбор. |
Здравствуйте, гость ( Вход | Регистрация )
Курсы Валют Цб, API2 | Скрипт-информатор. 18 валют на выбор. |
6.8.2008, 3:34
Сообщение
#21
|
|
Участник Группа: Пользователи Сообщений: 30 Регистрация: 25.7.2008 Пользователь №: 264 Спасибо сказали: 12 раз |
Только что дописал. У меня вроде бы работает. Тестируйте.
Поскольку не нашел, когда обновляют курсы, пока обновляется по интервалу. Потом, наверное, как соберу статистику, допишу, чтобы исключались интервалы, когда обновления быть не может. ЗЫ: Библиотек pxluasocket опять не прикладываю. Обнаружил баг неприятный. Залил новую версию.
Прикрепленные файлы
|
|
|
21.3.2009, 6:34
Сообщение
#22
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 25.2.2009 Пользователь №: 2 361 Спасибо сказали: 0 раз |
Переделал парсинг строк спецом для курса валют НБУ. Для меня это все еще на грани фантастики и на уровен инстинкта. Запарился приводить отображение в порядок, удалил следующие строчки, так как выравнения текста на выходе у меня нет и я решил не резать названия валют. И всеравно их надо менять на аналоги
Код fd=string.gsub(fd,"Соединенного королевства", "") fd=string.gsub(fd,"%(специальные права заимствования%)", "") fd=string.gsub(fd,"Жэньминьби", "") В итоге выводит в окно чата что-то типа Цитата •••••••••••••• Курсы валют НБУ на 23.03.2009 •••••••••••••• Вообщем главная задача выполнена, красоту уже сами наводите. Для добавления еще каких-то валют, смотрите список доступных "Цифровых кодов" USD 100 доларів США = 770 грн. +0 EUR 100 ЄВРО = 1043.273 грн. +0 RUB 10 російських рублів = 2.3038 грн. +0 •••••••••••••• Курсы валют НБУ на 23.03.2009 •••••••••••••• Код Currency={840, 978, 643}
Прикрепленные файлы
|
|
|
21.3.2009, 21:04
Сообщение
#23
|
|
Активный участник Группа: Пользователи Сообщений: 83 Регистрация: 14.3.2009 Из: Belarus', Minsk Пользователь №: 2 593 Спасибо сказали: 0 раз |
comua, супер.
Но вот кто бы для бел. валюты сделал ? |
|
|
22.3.2009, 0:48
Сообщение
#24
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 25.2.2009 Пользователь №: 2 361 Спасибо сказали: 0 раз |
Кто разбирается, подскажите пожалуйста один момент.
вот пирмер для курса рубля есть строчка в полученом XML Код <ValCurs Date="21.03.2009" name="Foreign Currency Market"> за парсинг этой строчки отвечает этот код в скрипте Код _,_,Date.day,Date.month,Date.year=string.find(fd,"Date=\"(%d%d)%.(%d%d)%.(%d%d%d%d)") теперь пытаюсь переделать для белорусов строчка с датой в XML в таком вот виде Код <DailyExRates Date="3/23/2009"> изменяю часть кода вот так Код _,_,Date.month,Date.day,Date.year=string.find(fd,"Date=\"(%d%d)%/(%d%d)%/(%d%d%d%d)") строка не парсится так как надо. Меняю на Код _,_,Date.month,Date.day,Date.year=string.find(fd,"Date=\"(%d)%/(%d%d)%/(%d%d%d%d)") и все работает. Но это будет работать пока месяц не больше 9-ти. Как это обойти? |
|
|
22.3.2009, 1:00
Сообщение
#25
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
символ / не нуждается в экранировании.
Код Date.month,Date.day,Date.year=string.match(fd, "Date=\"(%d+)/(%d+)/(%d+)")
|
|
|
22.3.2009, 1:22
Сообщение
#26
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 25.2.2009 Пользователь №: 2 361 Спасибо сказали: 0 раз |
Я уже разобрался что ошибка была не в символе разделителе, но благодарю за пример, очень помог. В частности вот это "%d+". Теперь все, держите и для белоруского рубля информер.
Прикрепленные файлы
|
|
|
22.3.2009, 3:04
Сообщение
#27
|
|
Продвинутый участник Группа: Пользователи Сообщений: 137 Регистрация: 22.2.2009 Из: Минск, Беларусь Пользователь №: 2 321 Спасибо сказали: 12 раз |
ДА ТЫ ПРОСТО МЕГАЗВЕРЬ!
все отлично работает! (пока) спасибо огромное!!! |
|
|
22.3.2009, 13:11
Сообщение
#28
|
|
Активный участник Группа: Пользователи Сообщений: 83 Регистрация: 14.3.2009 Из: Belarus', Minsk Пользователь №: 2 593 Спасибо сказали: 0 раз |
Я уже разобрался что ошибка была не в символе разделителе, но благодарю за пример, очень помог. В частности вот это "%d+". Теперь все, держите и для белоруского рубля информер. Спасибо!! Работает! Вот только: kurs.jpg ( 18.81 килобайт ) Кол-во скачиваний: 167 У меня как всегда куча вопросов и пожеланий по скрипту )) Курс евро получается немного смещённым! Как сделать что бы по комманде курсы отсылались ботом приватной мессагой? Как убрать подменю "информатор" ? т.е. что бы сразу была менюшка "Курсы валют" Как сделать что бы курс валют периодически отсылался в общий чат и был видим всем пользователям (вообщем наподобие скрипта погоды с rp5.ru) заранее огромное спс. за помощь |
|
|
23.3.2009, 4:44
Сообщение
#29
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 25.2.2009 Пользователь №: 2 361 Спасибо сказали: 0 раз |
Выровнять никак не получится, все упирается в шрифт, он у кадого клиента может быть разным. Я вообще привел все к такому вот виду
Цитата •••••••••••••• Курсы валют НБУ на 23.03.2009 •••••••••••••• USD 100 доларів США = 770 грн. +0 EUR 100 ЄВРО = 1043.273 грн. +0 RUB 10 російських рублів = 2.3038 грн. +0 •••••••••••••• Курсы валют НБУ на 23.03.2009 •••••••••••••• по привату. думаю, надо изменить строчки Код Core.SendToUser(user, "<"..sBotName.."> Данные устарели, запрашиваю сервер...") Core.SendToUser(user, "<"..sBotName.."> \n"..sMsg) на Код Core.SendPmToUser(user, "<"..sBotName..">", "Данные устарели, запрашиваю сервер...") Core.SendPmToUser(user, "<"..sBotName..">", "\n"..sMsg) по поводу менюхи, надо менять Код Core.SendToUser(user, "$UserCommand 1 3 "..sMainMenu.."Курсы валют ЦБ $<%[mynick]> !курс".."|") на Код Core.SendToUser(user, "$UserCommand 1 3 Курсы валют ЦБ $<%[mynick]> !курс".."|") и самое интересное - таймер. Возможно сработает (взял за основу другой скрипт) после строчки Код Currency={840, 978, 392, ............ добавляем вот это Код timer = 60 -- в минутах timeron = 1 -- включить - 1, выключить - 0 А после строк Код OpConnected = UserConnected RegConnected = UserConnected надо добавить Код function OnStartup() Правильную работу не гарантирую, хотелось бы увидеть комментарии более продвинутых пользователей. Просто сам недавно начал разбираться в синтаксисе и принципах.if (timeron = 1) then tmr = TmrMan.AddTimer (timer*60*1000) end end function OnTimer(tmr) local difftime = os.difftime(os.time(), iLastTime) if (difftime > iExpireTime) then table.insert(tReqUsers, user) Core.SendToAll("<"..sBotName.."> Данные устарели, запрашиваю сервер...") GetInfo() iLastTime = os.time() else Core.SendToAll("<"..sBotName.."> \n"..sMsg) end end зы: на этом форуме есть возможность скрыть часть сообщения под спойлер, чтобы не загромождать? |
|
|
24.3.2009, 17:52
Сообщение
#30
|
|
Активный участник Группа: Пользователи Сообщений: 83 Регистрация: 14.3.2009 Из: Belarus', Minsk Пользователь №: 2 593 Спасибо сказали: 0 раз |
Менюшка действительно изменяется как я хотел, но в общий чат проходит лишь !курсбел и ничего не происходит |
|
|
24.3.2009, 19:10
Сообщение
#31
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ошибки смотри!!!
|
|
|
11.4.2009, 22:19
Сообщение
#32
|
|
Участник Группа: Пользователи Сообщений: 40 Регистрация: 22.3.2009 Пользователь №: 2 696 Спасибо сказали: 0 раз |
Как реализовать связь птохи с интернетом через прокси, чтобы она знала?
Хаб в локальной сети. Сервер, на котором хаб имеет связь с интернетом через прокси. Спасибо. |
|
|
11.4.2009, 22:24
Сообщение
#33
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
через прокси работать не будет!
|
|
|
15.4.2009, 0:56
Сообщение
#34
|
|
Начинающий Группа: Пользователи Сообщений: 29 Регистрация: 15.9.2008 Пользователь №: 541 Спасибо сказали: 0 раз |
на первый апи не ожидаетса?
|
|
|
24.1.2010, 13:30
Сообщение
#35
|
|
Начинающий Группа: Пользователи Сообщений: 23 Регистрация: 21.4.2009 Пользователь №: 3 131 Спасибо сказали: 0 раз |
[13:28] Синтаксис Currency.lua:96: attempt to index field '?' (a nil value)
после запуска не выводит, делаешь второй раз вывести выводит 2 раза лол |
|
|
13.3.2010, 13:40
Сообщение
#36
|
|
Начинающий Группа: Пользователи Сообщений: 19 Регистрация: 7.11.2008 Пользователь №: 1 019 Спасибо сказали: 0 раз |
[13:28] Синтаксис Currency.lua:96: attempt to index field '?' (a nil value) после запуска не выводит, делаешь второй раз вывести выводит 2 раза лол Подтверждаю. PtokaX 0.4.1.2. Аналогичная ошибка вываливается и во второй и в третий-четвёртый раз...Рокировка скрипта вверх-вниз результата не даёт. |
|
|
14.3.2010, 17:13
Сообщение
#37
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Решение проблемы с ошибкой:
1. Заменить два раза Код while string.find(fd,"<Value>") do на Код while string.find(fd,"<Valute ID=\".-\">") do 2. Заменить Код sMsg=sMsg..val[i].CharCode.."\t"..val[i].Nominal.." "..val[i].Name..string.rep("\t",math.floor((MaxLen-string.len(val[i].Name)-string.len(val[i].Nominal)+1)/8+1))..val[i].Value.."\t"..((val[i].Diff<0) and "" or "+")..val[i].Diff.."\n" наif sMidChar~="" and x<table.getn(Currency) then sMsg = sMsg..string.rep(sMidChar,iMidChar).."\n" end Код if val[i] then
sMsg=sMsg..val[i].CharCode.."\t"..val[i].Nominal.." "..val[i].Name..string.rep("\t",math.floor((MaxLen-string.len(val[i].Name)-string.len(val[i].Nominal)+1)/8+1))..val[i].Value.."\t"..((val[i].Diff<0) and "" or "+")..val[i].Diff.."\n" if sMidChar~="" and x<table.getn(Currency) then sMsg = sMsg..string.rep(sMidChar,iMidChar).."\n" end end |
|
|
14.3.2010, 20:28
Сообщение
#38
|
|
Начинающий Группа: Пользователи Сообщений: 19 Регистрация: 7.11.2008 Пользователь №: 1 019 Спасибо сказали: 0 раз |
Благодарствую. Работает. Осталось корректно увести "Данные устарели, запрашиваю сервер" и сам вывод информации в приват, ибо советы выше в других постах ни к чему, кроме ошибок, не приводят.
Причина редактирования: не надо цитировать предыдущий пост, особенно такой большой!
|
|
|
14.3.2010, 20:50
Сообщение
#39
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
Чтобы убрать сообщение "Данные устарели, запрашиваю сервер..." удали строку
Код Core.SendToUser(user, "<"..sBotName.."> Данные устарели, запрашиваю сервер...") А чтобы выводить данные в приват замени Код Core.SendToUser(user, "<"..sBotName.."> \n"..sMsg) наКод Core.SendPmToUser(user, sBotName, "\n"..sMsg)
|
|
|
14.3.2010, 21:15
Сообщение
#40
|
|
Начинающий Группа: Пользователи Сообщений: 19 Регистрация: 7.11.2008 Пользователь №: 1 019 Спасибо сказали: 0 раз |
Спасибо. Всё корректно.
|
|
|
1.4.2010, 9:40
Сообщение
#41
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 4 Регистрация: 13.10.2009 Пользователь №: 4 718 Спасибо сказали: 0 раз |
scripts\Currency.lua:102: 'end' expected (to close 'for' at line 95) near 'else' вот такая ошибка после замены
|
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
Курс валют/Exchange rate, более чем для 11ти стран. | 0 | ufo | 4 455 | 23.7.2011, 21:48 Посл. сообщение: ufo | |
От: Курсы Валют Цб От темы с ID: 245 |
0 | Ksan | 4 133 | 22.11.2010, 20:04 Посл. сообщение: Ksan |
|
Сейчас: 26.11.2024, 23:36 |