Render token balances to Github comment image
This commit is contained in:
parent
5b639e1f20
commit
d6aae3fb5e
|
@ -11,7 +11,7 @@
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
width: 1336px;
|
width: 1336px;
|
||||||
height: 300px;
|
height: {{ image-height }}px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.commiteth-logo {
|
.commiteth-logo {
|
||||||
|
@ -34,11 +34,28 @@
|
||||||
top: 196px;
|
top: 196px;
|
||||||
left: 32px;
|
left: 32px;
|
||||||
}
|
}
|
||||||
.comment-balance {
|
.comment-eth-balance {
|
||||||
color: #343434;
|
color: #343434;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 196px;
|
top: 196px;
|
||||||
left: 135px;
|
left: 135px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.token-list {
|
||||||
|
position: fixed;
|
||||||
|
top: 253px;
|
||||||
|
left: 32px;
|
||||||
|
}
|
||||||
|
.comment-token {
|
||||||
|
color: #a8aab1;
|
||||||
|
display: inline;
|
||||||
|
font-size: 48px;
|
||||||
|
}
|
||||||
|
.comment-token-balance {
|
||||||
|
color: #343434;
|
||||||
|
display:inline;
|
||||||
|
font-size: 48px;
|
||||||
|
left: 135px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.qr-image {
|
.qr-image {
|
||||||
|
@ -64,7 +81,12 @@
|
||||||
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAABT1JREFUaAXdWmtMHFUUPmcWZEVRYrDSyqNYozb+sSkxgsvysLawJfpDa1ob44/+Mjb+MDH6h/hKjMbExBKNMekPTdQmjYkvFpXIcxtNRekfY0RSnr4oMUDpspSdOZ47eLcg9+7OsrvDyE3g7px7znfPN3PuuY8ZgC1SMFs89g4OFl6YWawlojK0YLsFVMrgpYB0Vbb6EDhEjA4wDL78k1PNtSMSOyMiu77qK79sYisBtSJQExH4JXDua4z6DNo33tLwregrbyMdlofP7EKIv7gUhyMAliEwaCNAGdlQoUnwBkPUCJi0iJR/HdkBcbMNIH7MIsrPyI8sGHM47ZEwjolUdvaFrLj5EY+B66TxZtccyqPSBzss5IWurgj3PWta8LmXSKz4ii9Ln5MO9p09o35zceIkE3hUGjiuETkHwAIiLLBN1oYQg3LWwmEEbJ8MBT+R/iQNrXh0/F1WdEYCccgA7AIDuyzw/VhzoGbuNKIpO8p1rX0iZeH+40y+PaUDiJ1885+fbGn4PqVuDhWURCo6IwEis5tDKklmwl85jz8u83gOfXQEvY7Izp6hYjM69zMHdakOgY2+9BVef2Sscc+sTsdt+bqsFV+ceyo5CXz7WKj+oJdIiJu25oncHokURefNMQ6pG5R3FLG7piW4381BrPRDIVzzRBYvmk/qScCUH/CwF0kIXgkiYs6wCJ5WkLVFaBjHR0LBC7r2zZYniFhLUwFeI9+ocogntZ8mDtR9pmrziixBBCy6X+cUovEqipnawyVBhDdCSiJMYP4Wf90pD3OwXbOJ3NYzWMJXd6mc5bVNf28jxlVtXpLZRJZil+4We0iVYxxW3Sq512T2opGzlXYW5w3gQKZOV31zpjJ+2bzDAPJlimWiYRl5MDyxr+78aiybCGelbbxJURbDZ/2mbHAgFAcSf00vvLccW35YqGdnKWyCxUBl4d4v/OA/OhK6Z15g26FFFm0TF6pSUlI4o5I7kU1PX3qJdyI2CSf6aekQtMZg6XVpYxPhzKQkwoNm9ofq6mWpnH5ND6Vvk47FFXybCB8kaAIrHdDN1V15IgDKpQezK+Y4T7InSeU8fpxKI7P2K/grRAyc1gHOzETFHLOhQsX5bZxITm/IOKURdvih4BmpZmctDiwtEcs0bmblP6RBOvVUbe0i6z/iWvo1EP7kUzt1Maw6bhhUNzqTjt537zhrir+cFTu0CvzXnAXNopDIaspZ71kEtokMN1aLueKcEpewvqGHkh4bKe1cFtpERJ/2mZSycyo6Hxs4rGzykDBBRBys6fzi8HqOpxrlolJn47Y8QcQoKIvwOFHPJwR3VnQOPOi2c+n0lyAy1lgV4+wl3jcoC4HVfmu4X7kVVhq4LEwQEf1eXeR7i9ddfyt9ICiLAZ06RJkvxZX4GQrXEPklELjIO8I3tZhETd+F+0+8QLTGTqvvYsO6AbxljkzFUSgaeYc4xLTLd14ENMej82crO3vt93cu3nhtV+ueiNTcEq8VEmQ6et/n34/J6xT1OR44Yi7q8hdeO7QD9s66efqifSLC6YxevdmsMcrH5AvIM6p9Kf9p1nWymWvdEpYb/n31ZuCJyebgp9ImKRGpJF6G8knLK4zvsWyFR6cO1n8o/HTk2ESo/jWfDx8Qp46SnDdqapN+OCIilMebgx2Q59vNZN5JltEksBs17z6rZD+OiQiDyf2B3ydD9U/wBxO7DcQP+D3R2tiXqC7VPJCGZFeOxohU/m/tpY9qMiKymljiMycTyvlLIf68ydrOK/+b3PrMabUv/+vf/wB8Edrv6oR/RwAAAABJRU5ErkJggg=="/>
|
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAABT1JREFUaAXdWmtMHFUUPmcWZEVRYrDSyqNYozb+sSkxgsvysLawJfpDa1ob44/+Mjb+MDH6h/hKjMbExBKNMekPTdQmjYkvFpXIcxtNRekfY0RSnr4oMUDpspSdOZ47eLcg9+7OsrvDyE3g7px7znfPN3PuuY8ZgC1SMFs89g4OFl6YWawlojK0YLsFVMrgpYB0Vbb6EDhEjA4wDL78k1PNtSMSOyMiu77qK79sYisBtSJQExH4JXDua4z6DNo33tLwregrbyMdlofP7EKIv7gUhyMAliEwaCNAGdlQoUnwBkPUCJi0iJR/HdkBcbMNIH7MIsrPyI8sGHM47ZEwjolUdvaFrLj5EY+B66TxZtccyqPSBzss5IWurgj3PWta8LmXSKz4ii9Ln5MO9p09o35zceIkE3hUGjiuETkHwAIiLLBN1oYQg3LWwmEEbJ8MBT+R/iQNrXh0/F1WdEYCccgA7AIDuyzw/VhzoGbuNKIpO8p1rX0iZeH+40y+PaUDiJ1885+fbGn4PqVuDhWURCo6IwEis5tDKklmwl85jz8u83gOfXQEvY7Izp6hYjM69zMHdakOgY2+9BVef2Sscc+sTsdt+bqsFV+ceyo5CXz7WKj+oJdIiJu25oncHokURefNMQ6pG5R3FLG7piW4381BrPRDIVzzRBYvmk/qScCUH/CwF0kIXgkiYs6wCJ5WkLVFaBjHR0LBC7r2zZYniFhLUwFeI9+ocogntZ8mDtR9pmrziixBBCy6X+cUovEqipnawyVBhDdCSiJMYP4Wf90pD3OwXbOJ3NYzWMJXd6mc5bVNf28jxlVtXpLZRJZil+4We0iVYxxW3Sq512T2opGzlXYW5w3gQKZOV31zpjJ+2bzDAPJlimWiYRl5MDyxr+78aiybCGelbbxJURbDZ/2mbHAgFAcSf00vvLccW35YqGdnKWyCxUBl4d4v/OA/OhK6Z15g26FFFm0TF6pSUlI4o5I7kU1PX3qJdyI2CSf6aekQtMZg6XVpYxPhzKQkwoNm9ofq6mWpnH5ND6Vvk47FFXybCB8kaAIrHdDN1V15IgDKpQezK+Y4T7InSeU8fpxKI7P2K/grRAyc1gHOzETFHLOhQsX5bZxITm/IOKURdvih4BmpZmctDiwtEcs0bmblP6RBOvVUbe0i6z/iWvo1EP7kUzt1Maw6bhhUNzqTjt537zhrir+cFTu0CvzXnAXNopDIaspZ71kEtokMN1aLueKcEpewvqGHkh4bKe1cFtpERJ/2mZSycyo6Hxs4rGzykDBBRBys6fzi8HqOpxrlolJn47Y8QcQoKIvwOFHPJwR3VnQOPOi2c+n0lyAy1lgV4+wl3jcoC4HVfmu4X7kVVhq4LEwQEf1eXeR7i9ddfyt9ICiLAZ06RJkvxZX4GQrXEPklELjIO8I3tZhETd+F+0+8QLTGTqvvYsO6AbxljkzFUSgaeYc4xLTLd14ENMej82crO3vt93cu3nhtV+ueiNTcEq8VEmQ6et/n34/J6xT1OR44Yi7q8hdeO7QD9s66efqifSLC6YxevdmsMcrH5AvIM6p9Kf9p1nWymWvdEpYb/n31ZuCJyebgp9ImKRGpJF6G8knLK4zvsWyFR6cO1n8o/HTk2ESo/jWfDx8Qp46SnDdqapN+OCIilMebgx2Q59vNZN5JltEksBs17z6rZD+OiQiDyf2B3ydD9U/wBxO7DcQP+D3R2tiXqC7VPJCGZFeOxohU/m/tpY9qMiKymljiMycTyvlLIf68ydrOK/+b3PrMabUv/+vf/wB8Edrv6oR/RwAAAABJRU5ErkJggg=="/>
|
||||||
</div>
|
</div>
|
||||||
<div class="comment-issue-url">{{issue-url}}</div>
|
<div class="comment-issue-url">{{issue-url}}</div>
|
||||||
<div class="comment-eth">ETH<div class="comment-balance">{{balance}}</div></div>
|
<div class="comment-eth">ETH<div class="comment-eth-balance">{{eth-balance}}</div></div>
|
||||||
|
<div class="token-list">
|
||||||
|
{% for token in tokens %}
|
||||||
|
<div class="token-list-item"><div class="comment-token">{{ token.tla }}<div class="comment-token-balance"> {{ token.balance }}</div></div></div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
<div class="qr-image">
|
<div class="qr-image">
|
||||||
<img src="data:image/png;base64,{{qr-image}}"/>
|
<img src="data:image/png;base64,{{qr-image}}"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -59,15 +59,16 @@
|
||||||
(map (partial add-bounty-for-issue repo repo-id) bounty-issues))))
|
(map (partial add-bounty-for-issue repo repo-id) bounty-issues))))
|
||||||
|
|
||||||
|
|
||||||
(defn update-bounty-comment-image [issue-id owner repo issue-number contract-address balance balance-str]
|
(defn update-bounty-comment-image [issue-id owner repo issue-number contract-address eth-balance eth-balance-str tokens]
|
||||||
(let [hash (github/github-comment-hash owner repo issue-number balance)
|
(let [hash (github/github-comment-hash owner repo issue-number eth-balance)
|
||||||
issue-url (str owner "/" repo "/issues/" (str issue-number))
|
issue-url (str owner "/" repo "/issues/" (str issue-number))
|
||||||
png-data (png-rendering/gen-comment-image
|
png-data (png-rendering/gen-comment-image
|
||||||
contract-address
|
contract-address
|
||||||
balance-str
|
eth-balance-str
|
||||||
|
tokens
|
||||||
issue-url)]
|
issue-url)]
|
||||||
(log/debug "update-bounty-comment-image" issue-id owner repo issue-number)
|
(log/debug "update-bounty-comment-image" issue-id owner repo issue-number)
|
||||||
(log/debug contract-address balance-str)
|
(log/debug contract-address eth-balance-str)
|
||||||
(log/debug "hash" hash)
|
(log/debug "hash" hash)
|
||||||
|
|
||||||
(if png-data
|
(if png-data
|
||||||
|
|
|
@ -37,7 +37,8 @@
|
||||||
issue-number
|
issue-number
|
||||||
contract-address
|
contract-address
|
||||||
balance
|
balance
|
||||||
balance-str)
|
balance-str
|
||||||
|
{})
|
||||||
(github/update-comment owner
|
(github/update-comment owner
|
||||||
repo
|
repo
|
||||||
comment-id
|
comment-id
|
||||||
|
@ -227,7 +228,8 @@
|
||||||
issue-number
|
issue-number
|
||||||
contract-address
|
contract-address
|
||||||
balance-eth
|
balance-eth
|
||||||
balance-eth-str)
|
balance-eth-str
|
||||||
|
token-balances)
|
||||||
(github/update-comment owner
|
(github/update-comment owner
|
||||||
repo
|
repo
|
||||||
comment-id
|
comment-id
|
||||||
|
|
|
@ -25,13 +25,23 @@
|
||||||
:size [255 255])))
|
:size [255 255])))
|
||||||
|
|
||||||
|
|
||||||
(defn gen-comment-image [address balance issue-url]
|
(defn token-map->list [tokens]
|
||||||
|
(mapv (fn [[tla balance]] {:tla (subs (str tla) 1)
|
||||||
|
:balance balance})
|
||||||
|
tokens))
|
||||||
|
|
||||||
|
(defn image-height [tokens]
|
||||||
|
(+ 300 (* 32 (count (keys tokens)))))
|
||||||
|
|
||||||
|
(defn gen-comment-image [address balance-eth tokens issue-url]
|
||||||
(let [qr-image (String. (image->base64 (generate-qr-image address))
|
(let [qr-image (String. (image->base64 (generate-qr-image address))
|
||||||
"ISO-8859-1")
|
"ISO-8859-1")
|
||||||
html (:body (render "bounty.html"
|
html (:body (render "bounty.html"
|
||||||
{:qr-image qr-image
|
{:qr-image qr-image
|
||||||
:balance balance
|
:eth-balance balance-eth
|
||||||
:address address
|
:tokens (token-map->list tokens)
|
||||||
|
:image-height (image-height tokens)
|
||||||
|
:address address
|
||||||
:issue-url issue-url}))
|
:issue-url issue-url}))
|
||||||
command (env :html2png-command "wkhtmltoimage")
|
command (env :html2png-command "wkhtmltoimage")
|
||||||
{out :out err :err exit :exit}
|
{out :out err :err exit :exit}
|
||||||
|
|
Loading…
Reference in New Issue