Questions générales sur Manjaro Linux.
S'il vous plaît, avant de poster, essayez la fonction de recherche du forum.
Répondre

Commande GREP avec conky

#1Messageil y a 3 ans

Je post ça ici car je suis pas au top avec cette commande.

Voici la ligne de référence que j'utilise dans mon conky pour afficher le prix d'une crypto avec l'API Kraken.

${font Monospace:normal:size=8}${color1} LTC ${texeci 300 curl https://api.kraken.com/0/public/Ticker?pair=XLTCZUSD | jq ".result.XLTCZUSD.c[0]" | grep -oE "[0-9]*\....."}
J'essais d'adapter cette ligne avec l'API de min-api.cryptocompare car il y a plus de crypto listé.

Par exemple pour afficher l'ERD j'utilise cette ligne:
https://min-api.cryptocompare.com/data/ ... &tsyms=USD

J'ai essayé de plusieurs manière mais j'ai une erreur à l'affichage de mon conky.
Exemple:

${font Monospace:normal:size=8}${color1} ERD ${texeci 300 curl https://min-api.cryptocompare.com/data/price?fsym=ERD&tsyms=USD | jq ".USD.[0]" | grep -oE "[0-9]*\....."}
Si quelqu'un pouvait me donner un coup de pouce ce serait bien venu :gsourire:

Commande GREP avec conky

#2Messageil y a 3 ans

bonjour

ta commande jq ne fonctionne pas :oops: dans ta requete, le noeud USD n'est pas une liste mais une valeur (donc le grep ...?)

jq ".USD" 
Que tu sois avec conky ne change rien: il faut tester les commandes une à une dans le terminal :wink:

curl -s https://min-api.cryptocompare.com/data/price\?fsym\=ERD\&tsyms\=USD
curl -s https://min-api.cryptocompare.com/data/price\?fsym\=ERD\&tsyms\=USD | jq ".USD" 
curl -s https://min-api.cryptocompare.com/data/price\?fsym\=ERD\&tsyms\=USD | jq ".USD" | xxx
Ensuite, si bon, on insert le tout dans conky

Commande GREP avec conky

#3Messageil y a 3 ans

papajoke a écrit : il y a 3 ans bonjour

ta commande jq ne fonctionne pas :oops: dans ta requete, le noeud USD n'est pas une liste mais une valeur (donc le grep ...?)

jq ".USD" 
Que tu sois avec conky ne change rien: il faut tester les commandes une à une dans le terminal :wink:

curl -s https://min-api.cryptocompare.com/data/price\?fsym\=ERD\&tsyms\=USD
curl -s https://min-api.cryptocompare.com/data/price\?fsym\=ERD\&tsyms\=USD | jq ".USD" 
curl -s https://min-api.cryptocompare.com/data/price\?fsym\=ERD\&tsyms\=USD | jq ".USD" | xxx
Ensuite, si bon, on insert le tout dans conky
Un grand merci papajoke car du coup je vais pouvoir ajouter plus de crypto et la ligne est plus simple :maître:

Commande GREP avec conky

#4Messageil y a 3 ans

Je partage le script si cela intéresse quelqu'un :sourire:

conky.config = {
-- — SETTINGS — #
	background = false,
	update_interval = 1,
	cpu_avg_samples = 2,
	net_avg_samples = 2,
	double_buffer = true,
	no_buffers = true,
	text_buffer_size = 1024,
	imlib_cache_size = 0,

-- — WINDOW — #
	own_window = true,
	own_window_type = 'normal',
	own_window_transparent = false,
	own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',

-- — BORDER — #
	border_inner_margin = 1,
	border_outer_margin = 1,
	border_width = 1,

-- — ALIGNMENT — #
	alignment = 'top_right',
	gap_x = 1520,
	gap_y = 10,

-- — GRAPHIC — #
	draw_shades = false,
	draw_outline = false,
	draw_borders = false,
	draw_graph_borders = true,

-- — TEXT — #
	use_xft = true,
	font = 'Dejavu Sans:size=8',
	xftalpha = 1.0,
	uppercase = false,
	override_utf8_locale = true,
	default_color = '#3E5C6E',

-- — Colors — #
	color1 = '#C8E3F6',

	own_window_argb_visual = false,
	own_window_colour = '#000000',
	minimum_width = 100, minimum_height = 50,
	own_window_argb_value = 0,
};

conky.text = [[
${font Monospace:normal:size=8}${color1} BTC ${texeci 300 curl curl -s https://min-api.cryptocompare.com/data/price\?fsym\=BTC\&tsyms\=USD | jq ".USD"} ${goto 90}USD
${font Monospace:normal:size=8}${color1} BAT ${texeci 300 curl curl -s https://min-api.cryptocompare.com/data/price\?fsym\=BAT\&tsyms\=USD | jq ".USD"} ${goto 90}USD
${font Monospace:normal:size=8}${color1} LTC ${texeci 300 curl curl -s https://min-api.cryptocompare.com/data/price\?fsym\=LTC\&tsyms\=USD | jq ".USD"} ${goto 90}USD
${font Monospace:normal:size=8}${color1} ERD ${texeci 300 curl curl -s https://min-api.cryptocompare.com/data/price\?fsym\=ERD\&tsyms\=USD | jq ".USD"} ${goto 90}USD
${font Monospace:normal:size=8}${color1} CKB ${texeci 300 curl curl -s https://min-api.cryptocompare.com/data/price\?fsym\=CKB\&tsyms\=USD | jq ".USD"} ${goto 90}USD
]];
Pour afficher en EURO mettre comme ceci:

${font Monospace:normal:size=8}${color1} BTC ${texeci 300 curl curl -s https://min-api.cryptocompare.com/data/price\?fsym\=BTC\&tsyms\=EUR | jq ".EUR"} ${goto 90}EUR
PS: Ce script n'affiche que le prix des cryptos
Image

Commande GREP avec conky

#5Messageil y a 3 ans

J'ai modifier mon scrypt pour afficher le pourcentage dans les derniers 24h mais j'ai encore un prob avec le grep :desole:
Je ne trouve pas comment supprimer les guillemets.

${font impact:normal:size=8}${color1} BTC $color2 ${texeci 300 curl -s https://api.binance.com/api/v1/ticker/price?symbol=BTCUSDT | jq ".price" | grep -oE "[0-9]*\....."} $color3 ${goto 105}${texeci 300 curl -s https://api.binance.com/api/v1/ticker/24hr?symbol=BTCUSDT | jq ".priceChangePercent"} % ${goto 165}$color1 USD


Image

Rectification j'arrive à supprimer les guillemets mais il me manque le signe moins si la valeur est négative.
Image

:sos:

Commande GREP avec conky

#6Messageil y a 3 ans

curl -s "https://api.binance.com/api/v1/ticker/24hr?symbol=BTCUSDT" | jq ".priceChangePercent"
Me donne des valeurs négative en sortie avec le " - "

Commande GREP avec conky

#7Messageil y a 3 ans

l'api donne bien ce genre de résultat

"-0.945"
Moi je voudrai supprimer les guillemets pour afficher comme ceci

-0.945
Mais quand je fais ça le signe moins disparait alors qu'il faudrait le garder.
Je ne trouve pas comment faire

Commande GREP avec conky

#8Messageil y a 3 ans

grep n'est pas le top pour cela (et tu dois donner de mauvais paramètres à grep ?)
mais le plus simple est d'indiquer à jq que l'on désire ce résultat en ajoutant l'option -r : jq -r ".priceChangePercent"

----

sinon on peut utiliser sed, par exemple

... | jq ".priceChangePercent"| sed 's/"//g' 
en clair: remplacer tous les " par rien du tout


----

Ou avec grep

| jq ".priceChangePercent" | grep -o '[-.0-9]*'
on ne retourne que les caractères -, . et de 0 à 9

Commande GREP avec conky

#9Messageil y a 3 ans

Un grand merci à toi papajoke pour ces précisions et ce bout de code :maître:

Image
Répondre