logo
logo

Форум Универсальный плагин загрузки курсов v2.0

создать новую тему раскрыть все
Универсальный плагин загрузки курсов v2.0 Дим(м) 23/11/2011 00:22 #написать ответ
На странице загрузки доступна новая версия "универсального плагина".
 
В этой версии:
- Добавлена возможность фильтрации списка валют, подлежащих загрузке.
- Добавлена возможность замены кодов валют (например, EUR => €, RUB => р. и т.д.).
- Файл настроек UniRates.ini полностью переведён в UTF-8.
- Две версии ("обычная" и "специальная") объединены в одну.
- Улучшена диагностика некоторых ошибочных ситуаций.
- Исправлен пресет для Национального банка Украины (изменился сайт).
- PCRE обновлён до версии 8.20
- cURL обновлён до версии 7.23.0
 
Предыдущие версии, а также самую актуальную информацию всегда можно найти на странице плагина http://sabio.at.tut.by/UniRates/
не 2011/11/11, так хотя бы .../22 22:22 :) (-) Дим(м) 23/11/2011 00:23 #написать ответ
Конфиги для загрузки курсов с сайта Приватбанка vovchik23 23/11/2011 15:32 #написать ответ
Для жителей Украины может быть полезным:
 
[pbank.ua_BuyCash]
Name=ПриватБанк (покупка налички)
PageURL=http://www.privatbank.ua/info/index1.stm?url=/info/ccyrate/rate.ssc&typ=N&dayValue=%d%&monthValue=%mm%&yearValue=%yyyy%&whichValue=P
EstimatedPageSize=75000
HomeCurrencyCode=UAH
HomeCurrencyName=Украинская гривня
Prologue=Курс\&nbsp;за\&nbsp;(?<date>.*?)<\/p>
Record=<td class=text align="left">\&nbsp;(?<code>.*?)<\/td><td class=text align="left">(?<name>.*?)<\/td><td class=text align="right">(?<value1>.*?)\&nbsp;<\/td>
Epilogue=name=calcLabel>
 
[pbank.ua_SellCash]
Name=ПриватБанк (продажа налички)
PageURL=http://www.privatbank.ua/info/index1.stm?url=/info/ccyrate/rate.ssc&typ=N&dayValue=%d%&monthValue=%mm%&yearValue=%yyyy%&whichValue=P
EstimatedPageSize=75000
HomeCurrencyCode=UAH
HomeCurrencyName=Украинская гривня
Prologue=Курс\&nbsp;за\&nbsp;(?<date>.*?)<\/p>
Record=<td class=text align="left">\&nbsp;(?<code>.*?)<\/td><td class=text align="left">(?<name>.*?)<\/td><td class=text align="right".*?align="right">(?<value1>.*?)\&nbsp;<\/td>
Epilogue=name=calcLabel>

 
В UniRates.ini лучше включить переименование валют:
 
EnableCurrencyRename=1
[currency-rename]
RUB=RUR
EUR=EUR
USD=USD
GBP=GBP
RUR=RUR
Начало статистики sadko 21/12/2011 19:46 #написать ответ
Здравствуйте!
 
Скажите, начиная с какого года можно выкачать курсы доллара с нацбанка Украины? Нужны курсы доллара с 1990 года. Попробовал - вроде начало что-то грузится, а потом все вылетело
Исправлена обработка пробелов Дим(м) 17/01/2012 00:40 #написать ответ
При переходе на UTF-8 в версии 2.0 сломалась обработка "неразрывного пробела" (например, в курсах НБРБ) - спасибо Алексею за сообщение об ошибке.
 
Исправленная версия 2.0.1 доступна для скачивания: http://sabio.at.tut.by/UniRates/
Проблема с кодировками при загрузке с НБРБ AVC 06/08/2013 17:27 #написать ответ
При загрузке выдает список валют в неправильной кодировке. Версия плагина вроде последняя.
И с апреля 2013 года считывает неправильный курс как минимум с евро и доллара
На сайте действительно сменили кодировку Дим(м) 13/08/2013 15:59 #написать ответ
Чтобы плагин снова работал правильно, нужно добавить строчку
Codepage=65001
в секцию [nbrb.by] файла настроек UniRates.ini
 
Проблем с курсом евро и доллара не вижу.
Была когда-то из-за неразрывного пробела. Но она уже давно исправлена в 2.0.1 (в январе 2012)
Если проблема воспроизводится, нужны подробности: дата, за которую загружается неверный курс, и что именно с ним не так?
Большое спасибо AVC 13/08/2013 18:34 #написать ответ
Все заработало, и проблема с неправильной загрузкой тоже исчезла, может тоже что-то некорректно обрабатывалось в другой кодировке
Переключение ActivePreset: НБРБ вместо ЦБРФ EugeneL 23/03/2014 15:24 #написать ответ
Добрый день.
А подскажите, как правильно переключить плагин на загрузку курсов с сайта НБРБ?
 
В readme сказано, что надо заменить строку с параметром ActivePreset на следующую:
[main]
ActivePreset=nbrb.by

Я сделал эту замену, но в выпадающем списке выбора источников данных плагин не отображается. Хотя, если заменить на
[main]
ActivePreset=cbr.ru

То плагин виден в списке источников данных.
Это странно Дим(м) 24/03/2014 12:22 #написать ответ
Должно работать.
 
Скорее всего, это ваш редактор самовольничает - вставляет в начало файла 3 байта т.н. BOM - признак UTF-8.
Из-за этого механизмы Windows не могут нормально этот файл прочитать.
 
К счастью, это можно легко обойти. Добавьте в самом начале файла пустую строку, перед [main]
 
Если не поможет, пришлите мне ваш уже отредактированный UniRates.ini на почту (см. readme.txt) - попробую разобраться, что же там не так.
Совет помог :) EugeneL 26/03/2014 01:27 #написать ответ
Спасибо, дело действительно было в этом. Убрал из начала файла, все стало работать
Мне, как делитанту Vidocq 25/06/2014 15:34 #написать ответ
хочется узнать, возможно с помощью этого плагина (настроить его) для снятия показаний со страницы _http://www.banki.ru/products/currency/cash/***город***/ -- Лучший курс покупки и Лучший курс продажи для определённого города, в т.ч. название банка?
 
В Абилити, в закладке валюты, хотелось бы конечно видеть колонки курсов не только ЦБ, но по продаже/покупке и название банка (если плагином можно вытащить вsшеуказанную инфу).
Вам точно это надо? Дим(м) 25/06/2014 16:56 #написать ответ
Курс валюты в AC представляет из себя дату и две суммы.
 
На одну и ту же дату не может быть двух курсов. Соответственно, "покупка" и "продажа" отпадают. Курсы за один день из разных банков - тоже.
Да и как вы представляете себе, например, пересчёт остатка в другую валюту - какой из курсов программа должна выбрать для этого?
 
"Самый выгодный курс" вытащить не проблема. Но:
- он будет конкурировать с курсом ЦБ - т.е. из них двоих останется только один
- название банка с лучшим курсом сохранить тоже негде (есть обозначение валюты - "EUR" и название - "Евро" - но банк туда не запишешь)
 
Если вам так хочется загружать курсы любимого банка, можно сделать "виртуальную" валюту а-ля "EUR-СГБ". И загружать с помощью плагина, например, курс покупки.
Тогда, например, можно будет пересчитывать остатки счетов по этому курсу.
Ну или поступить аналогично, но не для конкретного банка, а для лучшего курса - "EUR-best".
 
Только не совсем понятно, что вы с этим хотите делать? Для чего вам в AbilityCash этот целый набор курсов? Колонки курсов ведь можно посмотреть и насайте - зачем их затаскивать в программу?
... Vidocq 01/07/2014 10:59 #написать ответ
конечно программа должна поддерживать двойной курс.
Да и как вы представляете себе, например, пересчёт остатка в другую валюту - какой из курсов программа должна выбрать для этого?

Пересчёт, чтобы было правильно, должен выполняться с использованием курсов. Пересчитать в валюту - по курсу покупки банком, в рубли - по курсу продажи. Или как-то иначе?
Только не совсем понятно, что вы с этим хотите делать?

Правильно пересчитывать наличные средства в ту или иную валюту (как вариант ).
Для чего вам в AbilityCash этот целый набор курсов?

Всего лишь две циферки.
Колонки курсов ведь можно посмотреть и на сайте - зачем их затаскивать в программу?

Тогда смысла нет и в том, что программа вытаскивает только курс ЦБ, который, кроме банков никому не нужен, а уж для личных финансов не годится совсем.
 
В идеале, наверное, надо чтобы программа давала возможность плагину создавать необходимые колонки с соответствующим наполнением.
Позволить создавать колонки - не проблема Дим(м) 01/07/2014 11:19 #написать ответ
Но ведь программа ещё и сама должна будет как-то использовать данные в этих колонках. Т.е. получается она всё равно заранее будет знать их структуру.
 
Что касается пересчёта - это ведь всё равно не точно значение, а только для примерной оценки.
Ну пересчитаете вы свои сбережения в доллары по самому выгодному курсу. А потом придётся вам их обменять в другом банке по другому. И что тогда толку от того "выгодного" пересчёта?
 
Пересчёт нужен, чтобы быстро прикинуть "а сколько это у меня там денег по нынешнему состоянию курсов". Никакой "финансовой силы" в таком пересчёте нет и не будет. А есть она только у фактических операций "сдал 100 рублей - купил 3 доллара".
 
В общем, я не думаю, что в AbilityCash когда-либо появится поддержка отдельных курсов покупки/продажи для разных банков.
Это всё мои размышления по поводу курсов.. Vidocq 01/07/2014 13:01 #написать ответ
В общем, я не думаю, что в AbilityCash когда-либо появится поддержка отдельных курсов покупки/продажи для разных банков.

А в данном случае вообще смысла нет в поддержке валют - на множестве финансовых сайтов и сайтов банков можно зайти, ввести сумму и сайт (банк) пересчитает деньги в ту или иную сторону по своему текущему курсу.
И снова изменился сайт Нацбанка Беларуси Дим(м) 21/01/2015 00:19 #написать ответ
Плагин версии 2.0.3 с исправленными пресетами НБРБ можно скачать на странице http://sabio.at.tut.by/UniRates/
(а скоро, я надеюсь, и на странице загрузок на этом сайте)
 
Также в этой версии устаревший код российского рубля RUR заменён на актуальный RUB.
 
Для тех, кому не очень хочется качать новую версию и кто не боится сам редактировать UniRates.ini, вот исправленные настройки:
 
[nbrb.by]
Name=Нацыянальны банк Беларусi (штодзённа)
PageURL=http://www.nbrb.by/statistics/Rates/RatesPrint.asp?fromDate=%yyyy%-%mm%-%dd%
EstimatedPageSize=6300
HomeCurrencyCode=BYR
HomeCurrencyName=белорусский рубль
Prologue=<br\/>.*(?<date>\d{2}\.\d{2}\.\d{4})<\/h1>
Record=tr>\s*<td.*?>(?<code>.*?)<\/.*?td class="textcol".*?>(?<value2>.*?) (?<name>.*?)<\/.*?td>\s*(?<value1>\d.*?)<\/
Epilogue=<\/table>
DecimalSeparator=,
Codepage=65001
 

[nbrb.by-monthly]
Name=Нацыянальны банк Беларусi
PageURL=http://www.nbrb.by/statistics/Rates/RatesMonthPrint.asp?fromDate=%yyyy%-%mm%-01
EstimatedPageSize=8400
HomeCurrencyCode=BYR
HomeCurrencyName=белорусский рубль
Prologue=<br\/>.*(?<date>\d{2}\.\d{2}\.\d{4})<\/h1>
Record=tr>\s*<td.*?>(?<code>.*?)<\/.*?td class="textcol".*?>(?<value2>.*?) (?<name>.*?)<\/.*?td>\s*(?<value1>\d.*?)<\/
Epilogue=
DecimalSeparator=,
Codepage=65001
Как внести изменения в файл? Rodion 06/02/2015 23:30 #написать ответ
Если после изменений в Unirates.ini, программа вообще не видит ни одно источника данных
 
Уже разобрался. Добавил пустую строку
Ошибка ровно в 10000 раз Юра 22/01/2016 11:39 #написать ответ
Настроил загрузку курсов с НБРБ. Если честно, Особо в скрипт не вдавался. В результате курс доллара грузиться след образом:
0.01 доллара = "Правильный курс"х100, т.е. ошибка ровно в 10000раз.
У меня валюта доллар задана в формате 2 знаков после запятой, т.к. в счете "Карта USD" расходы идут не целыми долларами.
Задав для Евро такую точность (было "0"), получил аналогичный вариант.
Вопрос: есть ли возможность загружать правильные курсы при данной настройке (2 знака после запятой)?
Вводить новую валюту "ДробныйДоллар" и пересчитывать по курсу 1-1 как-то утомительно.
Спасибо
Нужно исправление в AbilityCash Дим(м) 22/01/2016 15:30 #написать ответ
Плагин написан для более старой версии программы - когда у всех валют было максимум 4 знака после запятой. Именно в таком виде он и возвращает данные.
 
В AbilityCash недавно было изменение, которое подняло это ограничение (например, для Bitcoin 4 знаков не достаточно). И теперь программа неверно интерпретирует значения, возвращаемые плагином.
 
Выхода два (они не исключают друг друга):
- AbilityCash должна учитывать, что старые плагины возвращают значения с 4 знаками
- в AbilityCash можно добавить поддержку новых плагинов, которые будут использовать расширенное количество десятичных знаков
 
Мы уже обсуждали этот вопрос с Dervish-ем, и он планировал заняться этими доработками, когда появится возможность.
Очередное изменение на сайте НБРБ Дим(м) 24/05/2016 21:48 #написать ответ
Text
[nbrb.by]
Name=Нацыянальны банк Беларусi (штодзённа)
PageURL=http://www.nbrb.by/Services/XmlExRates.aspx?ondate=%mm%/%dd%/%yyyy%
EstimatedPageSize=6300
HomeCurrencyCode=BYR
HomeCurrencyName=белорусский рубль
Prologue=<DailyExRates Date="(?<month>\d{2})/(?<day>\d{2})/(?<year>\d{4})">
Record=<CharCode>(?<code>.*?)</CharCode>\s*<Scale>(?<value2>.*?)</Scale>\s*<Name>(?<name>.*?)</Name>\s*<Rate>(?<value1>.*?)</Rate>
Epilogue=<\/DailyExRates>
Codepage=65001
 

[nbrb.by-monthly]
Name=Нацыянальны банк Беларусi
PageURL=http://www.nbrb.by/Services/XmlExRates.aspx?ondate=%mm%/01/%yyyy%&period=1
EstimatedPageSize=11000
HomeCurrencyCode=BYR
HomeCurrencyName=белорусский рубль
Prologue=<MonthlyExRates Date="(?<month>\d{2})/(?<day>\d{2})/(?<year>\d{4})">
Record=<CharCode>(?<code>.*?)</CharCode>\s*<Scale>(?<value2>.*?)</Scale>\s*<Name>(?<name>.*?)</Name>\s*<Rate>(?<value1>.*?)</Rate>
Epilogue=<\/MonthlyExRates>
Codepage=65001
Рекомендуемое API nbrb.by MeLioR 18/07/2016 23:45 #написать ответ
INI

[nbrb.by]
Name=Нацыянальны банк Беларусi (штодзённа)
PageURL=http://www.nbrb.by/API/ExRates/Rates?onDate=%yyyy%-%mm%-%dd%&Periodicity=0
EstimatedPageSize=6300
HomeCurrencyCode=BYN
HomeCurrencyName=белорусский рубль
Prologue=\[
Record={.*?Date":"(?<date>\d{4}-\d{2}-\d{2}).*?",.*?Cur_Abbreviation":"(?<code>\S*?)",.*?Cur_Scale":(?<value2>[\d\.]*?),.*?"Cur_Name":"(?<name>.*?)",.*?Cur_OfficialRate":(?<value1>[\d\.]*?)}
Epilogue=\]
DecimalSeparator=.
Codepage=65001
 
[nbrb.by-monthly]
Name=Нацыянальны банк Беларусi
PageURL=http://www.nbrb.by/API/ExRates/Rates?onDate=%yyyy%-%mm%-01&Periodicity=1
EstimatedPageSize=8400
HomeCurrencyCode=BYN
HomeCurrencyName=белорусский рубль
Prologue=\[
Record={.*?Date":"(?<date>\d{4}-\d{2}-\d{2}).*?",.*?Cur_Abbreviation":"(?<code>\S*?)",.*?Cur_Scale":(?<value2>[\d\.]*?),.*?"Cur_Name":"(?<name>.*?)",.*?Cur_OfficialRate":(?<value1>[\d\.]*?)}
Epilogue=\]
DecimalSeparator=.
Codepage=65001
 

Для таких случаев лучше использовать тег [code] (-) Loki 19/07/2016 14:14 #написать ответ
беру курсы из ЦБ РФ (основные валюты)... Daniil 20/07/2016 10:29 #написать ответ
Белорусские рубли перестали закачиваться.
Последняя дата - 30.06.2016.
Я где-то, что-то пропустил?
Подскажите, пожалуйста!
Деноминация Дим(м) 20/07/2016 11:40 #написать ответ
1 июля в РБ произошла деноминация (10000 => 1). И у национальной валюты изменился код: BYR => BYN
 
Курс новой валюты в выдаче Центробанка присутствует:
XML
<Valute ID="R01090B">
    <NumCode>933</NumCode>
    <CharCode>BYN</CharCode>
    <Nominal>1</Nominal>
    <Name>Белорусский рубль</Name>
    <Value>31,8765</Value>
</Valute>
Что-то как-то странно работает ваш тег [ code ] Дим(м) 20/07/2016 11:42 #написать ответ
Только не говорите, что его надо было с пробелами писать.
Вы его не закрыли в конце (-) Loki 22/07/2016 16:46 #написать ответ
Деноминация..... это помню.... Daniil 20/07/2016 12:32 #написать ответ
Спасибо за ответ, только ничего не понял
этот текст куда копипастить? или надо файл какой заменить в котором этот текст уже есть?
В UniRates.ini вроде подобного не видно
Проверьте код валюты в базе Дим(м) 20/07/2016 16:56 #написать ответ
Проверьте код валюты "Белорусские рубли" в своей базе и исправьте его на BYN.
После этого курсы начиная с 1 июля должны загружаться нормально.
СПАСИБО!!! Работает)))))) (-) Daniil 20/07/2016 17:44 #написать ответ
Возможность настройки для собирания информации со страниц других банков EugeneL 20/06/2015 12:52 #написать ответ
Добрый день.
Подскажите, пожалуйста, можно ли настроить плагин, чтобы скачивать курсы в следующем формате:
http://www.nbp.pl/kursy/xml/a117z150619.xml
?
 
Сами курсы находятся в файле xml, дата курсообразования содержится в названии файла.
 
P.S. или есть аналогичная статичная ссылка
http://www.nbp.pl/kursy/xml/lasta.xml
Вечером сделаю (-) Дим(м) 22/06/2015 09:05 #написать ответ
Вот настройки Дим(м) 23/06/2015 00:54 #написать ответ
INI
[npb.pl]
Name=Narodowy Bank Polski
PageURL=http://www.nbp.pl/kursy/xml/lasta.xml
EstimatedPageSize=1024
HomeCurrencyCode=PLN
HomeCurrencyName=Złoty
Prologue=<data_publikacji>(?<date>.*?)<
Record=<nazwa_waluty>(?<name>.*?)<.*?<przelicznik>(?<value1>.*?)<.*?<kod_waluty>(?<code>.*?)<.*?<kurs_sredni>(?<value2>.*?)<
DecimalSeparator=,
Codepage=1252

 
Не забудьте исправить ActivePreset= в самом начале UniRates.ini
Если правите файл в Блокноте, добавьте в самом начале пустую строку.
 
P.S. Если знаете правило, как получить адрес для курсов на заданную дату (что значит 117 после 'a'?), можно улучшить настройки. Сейчас курсы загружаются только "на сегодня".
RE: P.S. Если знаете правило, как получить адрес для курсов на заданную дат EugeneL 23/06/2015 23:17 #написать ответ
Огромное Вам спасибо, очень помогли
 
Касательно Вашего вопроса, да, знаю.
Имя файла имеет формат 'xnnnzyymmdd.xml', где:
x – тип валютной таблицы:
    a - таблица средних курсов иностранных валют;
    b - табоица средних курсов неконвертируемых валют;
    c - таблица курсов покупки/продажи;
    h - таблица курсов единиц расчета.
прим.: в таблицы c, h я не заглядывал, что там не могу сказать, в таблице а курсы основных мировых валют (рубль российский, гривна, доллар США, евро и т.п.), в таблице b - курсы валют, которые нельзя купить на территории РП (белорусский рубль, например).
 
nnn – трехзначный (цифровой) номер таблицы в году;
 
z – буква "z" - постоянный элемент
 
yymmdd – дата публикации таблицы курсов,
yy - две последние цифры года (без пробелов, с ведущим нулем)
mm - номер месяца (без пробелов, с ведущим нулем)
dd- число месяца (без пробелов, с ведущим нулем)
 
P.S. c 01.07.2015 файл будет содержать курсы валют текущего года, список с файлами курсов прошлых лет можно будет найти  в файлах dir2002.txt, dir2003.txt ... dir2014.txt
Жаль Дим(м) 24/06/2015 00:02 #написать ответ
При построении адреса плагин манипулирует элементами даты.
И этот трёхзначный номер таблицы в году никак вычислить не сможет.
 
Так что, видимо, придётся смириться, что курсы будут загружаться только "на сегодня".
Вопрос wna 20/07/2016 12:28 #написать ответ
Не могу войти по ссылке http://sabio.at.tut.by/UniRates/, перекидывает на www.tut.by
Этот ресурс закрыли Дим(м) 21/07/2016 11:49 #написать ответ
Последнюю версию плагина можно скачать на этом сайте.
Новая версия плагина - 2.1 Дим(м) 09/09/2016 12:26 #написать ответ
На странице загрузки доступна новая версия "универсального плагина".
 
В этой версии:
- При чтении сумм теперь игнорируются любые не-цифры, кроме десятичного разделителя. Т.е. можно загружать цены вида "2 руб. 13 коп." или "1,047.94".
- В связи с проведённой 1 июля в Беларуси деноминацией, код национальной валюты изменён с BYR на BYN.
- Исправлен пресет для Национального банка Беларуси.
- Исправлен пресет для загрузки цен золотых слитков с сайта Национального банка Беларуси. Т.к. цены теперь в BYN, коды "золотых" валют также были изменены.
- Добавлен пресет Narodowy Bank Polski.
- Примерный размер страницы (EstimatedPageSize) теперь задаётся в килобайтах (изменение в AbilityCash).
- PCRE обновлён до версии 8.39
- cURL обновлён до версии 7.50.2
Перестали скачиваться курсы с nbrb.by ksip 22/01/2018 11:54 #написать ответ
Что можно сделать?
Проверил wna 22/01/2018 13:24 #написать ответ
У меня все работает, проверял 13.22 22 января 2018 г.
Спасибо ksip 22/01/2018 13:52 #написать ответ
Что-то с правами администратора связано было. Поставил галку "Запускать от имени админа", всё стало ОК.
Драгметаллы Vidocq 13/05/2018 10:27 #написать ответ
Всем привет!
не работает загрузка драгметаллов с ЦБ. видимо что-то поменялось на на сайте.
Не подкрутите настройки? или здесь секцию в посте выложить на замену в настройках плагина.
Раньше пользовался плагином UniRates_Metal.dll но он перестал работать - при запуске в Абилити вылетает сообщение с ошибкой (Midding record patterns for preset), вот попробовал использовать данный плагин, но и он не сработал.
Спасибо.
ЦБ, возможно, ни при чём Дим(м) 15/05/2018 14:06 #написать ответ
Ошибка Missing record pattern означает, что плагин не смог загрузить настройки.
 
Проверьте, что рядом с UniRates_Metall.dll находится файл UniRates_Metall.ini
 
Кроме того, Windows не умеет нормально читать .ini файлы, начинающиеся с т.н. BOM. К счастью, есть простой способ решить эту проблему - нужно добавить пустую строку в самом начале файла.
 
Если и это не поможет, покажите содержимое вашего .ini файла.
Спасибо за подсказку с UniRates_Metall.ini Vidocq 16/05/2018 19:23 #написать ответ
пересмотрел папку с прогой - файла нет... Давно туда не заглядывал - запускаю прогу ссылкой. Нашёл в старом бэкапе, подсунул и ... все заработало.
Как-то из головы выпало, что и UniRates_Metall.dll тоже должен быть с настройкой.
Спасибо.