Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • weechat/scripts
1 result
Show changes
Commits on Source (2)
#!/usr/bin/env python
# coding=utf-8
 
# Copyright (c) 2014, Eugene Ciurana (pr3d4t0r)
# Copyright (c) 2014, 2017 Eugene Ciurana (pr3d4t0r)
# All rights reserved.
#
# Version 1.1.1
# Version 1.2.0
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
Loading
Loading
@@ -32,27 +32,29 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
# Main repository, version history: https://github.com/pr3d4t0r/weechat-btc-ticker
#
# Version history: https://github.com/pr3d4t0r/weechat-btc-ticker
 
 
from time import gmtime, strftime
from time import gmtime, strftime
 
import json
import json
 
import weechat
import weechat
 
 
# *** Symbolic constants ***
# *** constants ***
 
BTCE_API_TIME_OUT = 15000 # ms
BTCE_API_URI = u'url:https://btc-e.com/api/2/%s_%s/ticker'
BTCE_API_URI = 'url:https://btc-e.com/api/2/%s_%s/ticker'
 
DEFAULT_CRYPTO_CURRENCY = u'btc'
DEFAULT_FIAT_CURRENCY = u'usd'
DEFAULT_CRYPTO_CURRENCY = 'btc'
DEFAULT_FIAT_CURRENCY = 'usd'
 
VALID_CRYPTO_CURRENCIES = [ DEFAULT_CRYPTO_CURRENCY, u'ltc' ]
VALID_FIAT_CURRENCIES = [ DEFAULT_FIAT_CURRENCY, u'eur', u'rur' ]
VALID_CRYPTO_CURRENCIES = [ DEFAULT_CRYPTO_CURRENCY, 'ltc', 'eth' ]
VALID_FIAT_CURRENCIES = [ DEFAULT_FIAT_CURRENCY, 'eur', 'rur' ]
 
COMMAND_NICK = u'tick'
COMMAND_NICK = 'tick'
 
 
# *** Functions ***
Loading
Loading
@@ -61,35 +63,31 @@ def extractRelevantInfoFrom(rawTicker):
payload = json.loads(rawTicker)
result = dict()
 
result[u'avg'] = payload[u'ticker'][u'avg']
result[u'buy'] = payload[u'ticker'][u'buy']
result[u'high'] = payload[u'ticker'][u'high']
result[u'last'] = payload[u'ticker'][u'last']
result[u'low'] = payload[u'ticker'][u'low']
result[u'sell'] = payload[u'ticker'][u'sell']
result[u'updated'] = unicode(payload[u'ticker'][u'updated'])
for key in payload['ticker']:
result[key] = payload['ticker'][key]
 
result[u'time'] = strftime(u'%Y-%b-%d %H:%M:%S Z', gmtime(payload[u'ticker'][u'updated']))
result['updated'] = unicode(payload['ticker']['updated'])
result['time'] = strftime('%Y-%b-%d %H:%M:%S Z', gmtime(payload['ticker']['updated']))
 
return result
 
 
def display(buffer, ticker, currencyLabel, fiatCurrencyLabel):
output = (u'%s:%s sell = %4.2f, buy = %4.2f, last = %4.2f; high = %4.2f, low = %4.2f, avg = %4.2f || via BTC-e on %s' % \
output = ('%s:%s sell = %4.2f, buy = %4.2f, last = %4.2f; high = %4.2f, low = %4.2f, avg = %4.2f || via BTC-e on %s' % \
(currencyLabel, fiatCurrencyLabel, \
ticker[u'sell'], ticker[u'buy'], ticker[u'last'], \
ticker[u'high'], ticker[u'low'], ticker[u'avg'], \
ticker[u'time']))
ticker['sell'], ticker['buy'], ticker['last'], \
ticker['high'], ticker['low'], ticker['avg'], \
ticker['time']))
 
weechat.command(buffer, u'/say %s' % output)
weechat.command(buffer, '/say %s' % output)
 
 
def displayCurrentTicker(buffer, rawTicker, cryptoCurrency, fiatCurrency):
if rawTicker is not None:
def displayCurrentTicker(buffer, rawTicker, cryptoCurrency, fiatCurrency, serviceURI):
if rawTicker:
ticker = extractRelevantInfoFrom(rawTicker)
display(buffer, ticker, cryptoCurrency.upper(), fiatCurrency.upper())
else:
weechat.prnt(buffer, u'%s\t*** UNABLE TO READ DATA FROM: %s ***' % (COMMAND_NICK, serviceURI))
weechat.prnt(buffer, '%s\t*** UNABLE TO READ DATA FROM: %s ***' % (COMMAND_NICK, serviceURI))
 
 
def tickerPayloadHandler(tickerData, service, returnCode, out, err):
Loading
Loading
@@ -97,7 +95,7 @@ def tickerPayloadHandler(tickerData, service, returnCode, out, err):
weechat.prnt(u"", u"%s\tError with service call '%s'" % (COMMAND_NICK, service))
return weechat.WEECHAT_RC_OK
 
tickerInfo = tickerData.split(u' ')
tickerInfo = tickerData.split(' ')
displayCurrentTicker('', out, tickerInfo[0], tickerInfo[1])
 
return weechat.WEECHAT_RC_OK
Loading
Loading
@@ -105,29 +103,29 @@ def tickerPayloadHandler(tickerData, service, returnCode, out, err):
 
def fetchJSONTickerFor(cryptoCurrency, fiatCurrency):
serviceURI = BTCE_API_URI % (cryptoCurrency, fiatCurrency)
tickerData = cryptoCurrency+u' '+fiatCurrency
tickerData = cryptoCurrency+' '+fiatCurrency
 
weechat.hook_process(serviceURI, BTCE_API_TIME_OUT, u'tickerPayloadHandler', tickerData)
weechat.hook_process(serviceURI, BTCE_API_TIME_OUT, 'tickerPayloadHandler', tickerData)
 
 
def displayCryptoCurrencyTicker(data, buffer, arguments):
cryptoCurrency = DEFAULT_CRYPTO_CURRENCY
fiatCurrency = DEFAULT_FIAT_CURRENCY
 
if len(arguments) > 0:
tickerArguments = arguments.split(u' ') # no argparse module; these aren't CLI, but WeeChat's arguments
if len(arguments):
tickerArguments = arguments.split(' ') # no argparse module; these aren't CLI, but WeeChat's arguments
 
if len(tickerArguments) >= 1:
if tickerArguments[0].lower() in VALID_CRYPTO_CURRENCIES:
cryptoCurrency = tickerArguments[0].lower()
else:
weechat.prnt(buffer, u'%s\tInvalid crypto currency; using default %s' % (COMMAND_NICK, DEFAULT_CRYPTO_CURRENCY))
weechat.prnt(buffer, '%s\tInvalid crypto currency; using default %s' % (COMMAND_NICK, DEFAULT_CRYPTO_CURRENCY))
 
if len(tickerArguments) == 2:
if tickerArguments[1].lower() in VALID_FIAT_CURRENCIES:
fiatCurrency = tickerArguments[1].lower()
else:
weechat.prnt(buffer, u'%s\tInvalid fiat currency; using default %s' % (COMMAND_NICK, DEFAULT_FIAT_CURRENCY))
weechat.prnt(buffer, '%s\tInvalid fiat currency; using default %s' % (COMMAND_NICK, DEFAULT_FIAT_CURRENCY))
 
fetchJSONTickerFor(cryptoCurrency, fiatCurrency)
 
Loading
Loading
@@ -136,7 +134,7 @@ def displayCryptoCurrencyTicker(data, buffer, arguments):
 
# *** main ***
 
weechat.register(u'btc_ticker', u'pr3d4t0r', u'1.1.1', u'BSD', u'Display a crypto currency spot price ticker (BTC, LTC) in the active buffer', u'', u'UTF-8')
weechat.register('btc_ticker', 'pr3d4t0r', '1.2.0', 'BSD', 'Display a crypto currency spot price ticker (BTC, LTC) in the active buffer', '', 'UTF-8')
 
weechat.hook_command(COMMAND_NICK, u'Display Bitcoin or other crypto currency spot exchange value in a fiat currency like USD or EUR',\
u'[btc|ltc|nmc [usd|eur|rur] ]', u' btc = Bitcoin\n ltc = Litecoin\n nmc = Namecoin\n usd = US dollar\n eur = euro\n rur = Russian ruble', u'', u'displayCryptoCurrencyTicker', u'')
weechat.hook_command(COMMAND_NICK, 'Display common crypto currency spot exchange values conveted to fiat currencies like USD or EUR',\
'[btc|ltc|nmc [usd|eur|rur] ]', ' btc = Bitcoin\n ltc = Litecoin\n eth = Ethereum\n nmc = Namecoin\n usd = US dollar\n eur = euro\n rur = Russian ruble', '', 'displayCryptoCurrencyTicker', '')
Loading
Loading
@@ -8,6 +8,8 @@
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
#
# 0. You just DO WHAT THE FUCK YOU WANT TO.
# 2017-06-28, Aoede <eevee@posteo.eu>
# v0.2.11: add -k switch to add black background
# 2015-11-16, wowaname <wowaname@volatile.ch>
# v0.2.9, 0.2.10: wrote an actual parser rather than regex
# 2014-09-03, Matthew Martin <phy1729@gmail.com>
Loading
Loading
@@ -34,7 +36,7 @@ import re
 
SCRIPT_NAME = "prism"
SCRIPT_AUTHOR = "Alex Barrett <al.barrett@gmail.com>"
SCRIPT_VERSION = "0.2.10"
SCRIPT_VERSION = "0.2.11"
SCRIPT_LICENSE = "WTFPL"
SCRIPT_DESC = "Taste the rainbow."
 
Loading
Loading
@@ -59,12 +61,13 @@ if w.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION,
SCRIPT_LICENSE, SCRIPT_DESC, "", ""):
w.hook_command("prism",
SCRIPT_DESC,
"[-rwmbe] text|-c[wbe] <sep> <command> <sep>text",
"[-rwmbek] text|-c[wbe] <sep> <command> <sep>text",
" -r: randomizes the order of the color sequence\n"
" -w: color entire words instead of individual characters\n"
" -m: append /me to beginning of output\n"
" -b: backwards text (entire string is reversed)\n"
" -e: eye-destroying colors (randomized background colors)\n"
" -k: add black background (note: -e overrides this)\n"
" -c: specify a separator to turn on colorization\n"
" eg. -c : /topic :howdy howdy howdy\n"
" text: text to be colored",
Loading
Loading
@@ -103,6 +106,7 @@ def prism_cmd_cb(data, buffer, args):
regex = regex_words if 'w' in opts else regex_chars
inc = 'r' not in opts
bs = 'e' in opts
k = 'k' in opts
input = input[::-1] if 'b' in opts else input
 
output = u""
Loading
Loading
@@ -112,6 +116,8 @@ def prism_cmd_cb(data, buffer, args):
color_code = unicode(colors[color_index % color_count]).rjust(2, "0")
if bs == 1:
output += u'\x03' + color_code + ',' + find_another_color(color_code) + token
elif k == 1:
output += u'\x03' + color_code + ',' + '1'.rjust(2, "0") + token
else:
output += u"\x03" + color_code + token
 
Loading
Loading