Продавая свои крохотные GBG за ГОЛОСа не местной бирже, в надежде хоть чуть-чуть увеличить силу голоса, я переживаю, продались - не продались, как там курс, не дорого ли я запросил, в общем дело на копейку, а суеты на тыщу. Ну, и раз я начал разбираться в работе с API, то подумал, а почему бы не попробовать сделать расширение Chrome для подглядывания за курсом через API Голоса, тем более, что vik делал классный разбор кода обращения через сокет.
Почитал, что да как, примерно понял как делать расширение и начал искать запросы на которые реагирует API Голоса, а именно запросы касающиеся Маркета Голоса. Нашел, труды asuleymanov https://golos.id/ru--otkrytyij-kod/@asuleymanov/opisanie-golosapi-chast-3 и Golos API Explorer , автор on0tole . Из всех запросов, у меня сработал только get_order_book. Может у других параметры не правильные задавал, может знаний не хватает, не знаю. В общем получилось, то, что получилось. Отдаю на ваш суд как есть, чур сильно не пинать.:))
Вот такое чудо чудное, да диво дивное выдает API Голоса на запрос get_order_book с параметром "3".
Это HTML файл с таблицей размещения данных.
Скрипт, в комментариях постарался описать, что делает.
Файл .json нужен Chrome для правильной работы расширения.
Ну, и конечный результат, так расширение работает у меня. Данные обновляются каждые 7 секунд.
Хотел сначала сделать, чтобы отображались последние десять ордеров покупки и последние десять ордеров продажи.
Но, меня смутило некоторое несоответствие данных от API и отображаемых в Маркете. Почему-то API выдает в верхней строке продажи Голосов одни данные, а в Маркете совсем другие данные в этой строке. Иногда все совпадает на 100%, а иногда непонятное не соответствие в этой строке. Пол дня убил наблюдая , сравнивая и пытаясь найти причину, но так и не понял, поэтому не вставил эти данные в расширение.
Попробовать работу расширения в Google Chrome можно так: складываем три файла и две картинки в одну пустую папку, дальше в Chrome Меню – Дополнительные инструменты – Расширения – ставим «галочку» Режим разработчика – Загрузить распакованное расширение и указываем папку в которой лежат файлы расширения. Все, в панели появится значок расширения и можно пользоваться. Картинки можно просто сохранить отсюда, имена правильные.
Файл popup.js
var socket = new WebSocket('wss://ws.golos.io');
socket.onopen = function(event) {
socket.send(JSON.stringify({
id: 2,
method: 'get_order_book',
'params': [1]
}));
socket.onmessage = function(event) {
var otvet = JSON.parse(event.data);
var sellVoicePrice = Number(otvet.result.asks[0].real_price);
var buyVoicePrice = Number(otvet.result.bids[0].real_price);
var SVP = sellVoicePrice.toFixed(6);
var BVP = buyVoicePrice.toFixed(6);
var RZN = (((sellVoicePrice-buyVoicePrice)/((sellVoicePrice+buyVoicePrice)/2))*100).toFixed(3);
document.getElementById('hbuyVoicePrice').innerHTML = (BVP+' GBG');
document.getElementById('hsellVoicePrice').innerHTML = (SVP+' GBG');
document.getElementById('hraznica').innerHTML = (RZN+'%');
};
};
Файл manifest.json
{
"manifest_version": 2,
"name": "Golos market",
"version": "1.0",
"icons": {
"128": "icon.png"
},
"content_scripts": [
{
"matches": [ "*://*/*" ],
"js": [ "popup.js" ]
}
],
"background": {
"scripts": []
},
"permissions": [],
"browser_action": {
"default_title": "Golog market",
"default_icon": "icon.png",
"default_popup": "popup.html"
}
}
Файл popup.html
Всем удачи и здоровья! Ваш @dimas102
@dimas102 Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за Количество комментариев
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@dimas102 Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@dimas102 Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@dimas102, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
@dimas102 Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за общую выплату получил
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Спасибо вам, что вы такой специалист!
А я вот когда что-то подобное читаю, как-то сразу успокаиваюсь: «Ведь все равно я ничего не понимаю в этом, ну и слава Богу…»- -)))
:)) Спасибо! Но я далеко не специалист, я только начал осваивать JavaScript. Это мое первое творчество. Спасибо еще раз, очень приятно!
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
midnight, dimarss, vik, vasilisapor2, gryph0n, voltash, orezaku, asuleymanov, exan, gapel, acidgarry, blondinka, dimas102, nerengot, lokkie, ifingramota, stonee
Поэтому я тоже проголосовал за него!
Если Вы проголосуете за этот комментарий, то поможете сделать "Доброго Кита" сильнее!
Вы молодец! Не останавливайтесь плиз, делайте новое!
@dimas102 Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество полученных голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@dimas102 Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@dimas102 Поздравляю! Вы получили личную награду!
С Днём Рождения - 2 лет на Голосе
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
@dimas102, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за Количество комментариев
Вы можете нажать на бейдж, чтобы увидеть свою страницу на Доске Почета.
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@dimas102 Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
@dimas102 Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп