создать новую тему раскрыть все
 
На странице загрузки доступна новая версия "универсального плагина".
 
В этой версии:
- Добавлена возможность фильтрации списка валют, подлежащих загрузке.
- Добавлена возможность замены кодов валют (например, EUR => €, RUB => р. и т.д.).
- Файл настроек UniRates.ini полностью переведён в UTF-8.
- Две версии ("обычная" и "специальная") объединены в одну.
- Улучшена диагностика некоторых ошибочных ситуаций.
- Исправлен пресет для Национального банка Украины (изменился сайт).
- PCRE обновлён до версии 8.20
- cURL обновлён до версии 7.23.0
 
Предыдущие версии, а также самую актуальную информацию всегда можно найти на странице плагина http://sabio.at.tut.by/UniRates/
 
 
Для жителей Украины может быть полезным:
 
[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
 
Здравствуйте!
 
Скажите, начиная с какого года можно выкачать курсы доллара с нацбанка Украины? Нужны курсы доллара с 1990 года. Попробовал - вроде начало что-то грузится, а потом все вылетело Not so
 
При переходе на UTF-8 в версии 2.0 сломалась обработка "неразрывного пробела" (например, в курсах НБРБ) - спасибо Алексею за сообщение об ошибке.
 
Исправленная версия 2.0.1 доступна для скачивания: http://sabio.at.tut.by/UniRates/
 
При загрузке выдает список валют в неправильной кодировке. Версия плагина вроде последняя.
И с апреля 2013 года считывает неправильный курс как минимум с евро и доллара
 
Чтобы плагин снова работал правильно, нужно добавить строчку
Codepage=65001
в секцию [nbrb.by] файла настроек UniRates.ini
 
Проблем с курсом евро и доллара не вижу.
Была когда-то из-за неразрывного пробела. Но она уже давно исправлена в 2.0.1 (в январе 2012)
Если проблема воспроизводится, нужны подробности: дата, за которую загружается неверный курс, и что именно с ним не так?
свернуть/развернуть ветвь Большое спасибо [AVC 13/08/2013 18:34] # написать ответ
 
Все заработало, и проблема с неправильной загрузкой тоже исчезла, может тоже что-то некорректно обрабатывалось в другой кодировке
 
Добрый день.
А подскажите, как правильно переключить плагин на загрузку курсов с сайта НБРБ?
 
В 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] # написать ответ
 
конечно программа должна поддерживать двойной курс.
Да и как вы представляете себе, например, пересчёт остатка в другую валюту - какой из курсов программа должна выбрать для этого?

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

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

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

Тогда смысла нет и в том, что программа вытаскивает только курс ЦБ, который, кроме банков никому не нужен, а уж для личных финансов не годится совсем.
 
В идеале, наверное, надо чтобы программа давала возможность плагину создавать необходимые колонки с соответствующим наполнением.
 
Но ведь программа ещё и сама должна будет как-то использовать данные в этих колонках. Т.е. получается она всё равно заранее будет знать их структуру.
 
Что касается пересчёта - это ведь всё равно не точно значение, а только для примерной оценки.
Ну пересчитаете вы свои сбережения в доллары по самому выгодному курсу. А потом придётся вам их обменять в другом банке по другому. И что тогда толку от того "выгодного" пересчёта?
 
Пересчёт нужен, чтобы быстро прикинуть "а сколько это у меня там денег по нынешнему состоянию курсов". Никакой "финансовой силы" в таком пересчёте нет и не будет. А есть она только у фактических операций "сдал 100 рублей - купил 3 доллара".
 
В общем, я не думаю, что в AbilityCash когда-либо появится поддержка отдельных курсов покупки/продажи для разных банков.
 
В общем, я не думаю, что в AbilityCash когда-либо появится поддержка отдельных курсов покупки/продажи для разных банков.

А в данном случае вообще смысла нет в поддержке валют - на множестве финансовых сайтов и сайтов банков можно зайти, ввести сумму и сайт (банк) пересчитает деньги в ту или иную сторону по своему текущему курсу.
 
Плагин версии 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
 
Если после изменений в Unirates.ini, программа вообще не видит ни одно источника данных
 
Уже разобрался. Добавил пустую строкуWell
свернуть/развернуть ветвь Ошибка ровно в 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-ем, и он планировал заняться этими доработками, когда появится возможность.
 
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
 
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
 

 
Белорусские рубли перестали закачиваться.
Последняя дата - 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>
 
Только не говорите, что его надо было с пробелами писать.
 
Спасибо за ответ, только ничего не понял Not so
этот текст куда копипастить? или надо файл какой заменить в котором этот текст уже есть?
В UniRates.ini вроде подобного не видно Not so
 
Проверьте код валюты "Белорусские рубли" в своей базе и исправьте его на BYN.
После этого курсы начиная с 1 июля должны загружаться нормально.
 
Добрый день.
Подскажите, пожалуйста, можно ли настроить плагин, чтобы скачивать курсы в следующем формате:
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'?), можно улучшить настройки. Сейчас курсы загружаются только "на сегодня".
 
Огромное Вам спасибо, очень помогли Well
 
Касательно Вашего вопроса, да, знаю.
Имя файла имеет формат '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