| 
 | 
Здравствуйте, гость ( Вход | Регистрация )
| 
 | 
|  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 Спасибо сказали: 777 раз  | 
				Решение проблемы с ошибкой: 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 Спасибо сказали: 777 раз  | 
				Чтобы убрать сообщение "Данные устарели, запрашиваю сервер..." удали строку Код 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 891 | 23.7.2011, 21:48 Посл. сообщение: ufo | 
|  | От: Курсы Валют Цб От темы с ID: 245 | 0 | Ksan | 4 577 | 22.11.2010, 20:04 Посл. сообщение: Ksan | 
|   | Сейчас: 1.11.2025, 0:54 |