Silvesto - Bot Usage



@carletto94



Silvestro, aka @coininger_bot, is a tool designed by a bored student who happens to really like cats and recently developed crypto interests.





The Problem

There are a lot of new currencies since Ethereum launch and it's really hard to keep an eye on them, especially when you're always on the go and have limited connectivity or low data caps.





The Solution

Telegram performs really well, even on GPRS/EDGE it's still blazing fast. What if there's a way to use Telegram to feed my numbers needs? 5 minutes later I was playing with the bot API and later that day the first command was usable.





/coin

This command accepts a single argument, meaning the output will contain information about the first following word. So far our kitty is able to recognize only symbols, it will recognize BTC but not Bitcoin.





Supply: HAT 0 Price: $ 0.1917 | Ξ 0.0004200 Price: € 0.1629 OpenD: $ 0.1735 | Ξ 0.0003800 HighD: $ 0.2100 | Ξ 0.0004600 LowD: $ 0.1735 | Ξ 0.0003800 ΔD: $ 0.018 (% 10.53)









24 Hours Volume: HAT 3,991.55 Ξ 1.63 $ 765.30 € 650.40









Last HAT-ETH trade: HAT 64.80 => Ξ 0.02722 1 hour ago





LAST UPDATED: Just now

Info is provided by CryptoCompare Index





/ex

This allows getting an estimated value of a certain number of coins/tokens in another currency. It also supports FIAT conversions to USD and EUR. If the specified pair is not available at any exchanger Silvestro will use BTC as bridge converter. The command accepts 3 parameters: the first is the number (float type) of coins you want to transform, the second parameter is the symbol of source coin and the third is the destination coin.

/ex 213.65 hat usd

213.65 HAT -> 45.16561 USD

/ex 39 hat pos

39 HAT -> 17.55 POS





/graph

This outputs a candle graph for the desired currency pair. It supports 3 arguments:

the first is the candle interval, the second is the source coin and the third is the destination coin. If a specified pair is not available a BTC bridge will be used.

Candle intervals implemented are:

1m -> 1 Minute

5m -> 5 Minutes

10m -> 10 Minutes

15m -> 15 Minutes

30m -> 30 Minutes

1h -> 1 Hour

1d -> 1 Day

1mo -> 1 Month

/graph 1h btc eth





/global

This will return global market statistics from coinmarketcap.com

/global

TMC: 281767627951$

V24: 11216234724$

BTC%: 51.96%

ACC: 917

ACA: 411

ACM: 6965





/top

This allows to see the top currencies trending on coinmarketcap.com The command accepts 2 arguments to be chosen between "price, 1h, 1g, 1w". Price will sort the output by current price-per-unit while the other options will use the growth percentage from past hour/day/week. The second arg is an integer of how many entries you want to see, if left black the default value of 10 will be assigned.

/top 1h 3

Top growth 1h:

#1 Phantomx (PNX)

Δ: [747.92%]

#2 Acoin (ACOIN)

Δ: [125.27%]

#3 Digital Rupees (DRS)

Δ: [101.68%]





/hatstake

This comes handy to Hawala.Today holders when it comes to staking. There's been a bit of confusion with the IFS model and revenue calculation and this gives an estimated outcome. The command takes only one parameter (float type) which is meant to be the amount a user is willing to stake.

/hatstake 1673.2

Year 1: 1924.18 Year 2: 2212.807 Year 3: 2478.3438 Year 4: 2775.7451 Year 5: 3108.8345 Year 6: 3419.718 Year 7: 3761.6898 Year 8: 4062.6249 Year 9: 4367.3218 Year 10: 4684.8261













/alert

This is the only command that triggers the bot on a loop, so basically it's the only scenario where Silvestro will write you even tho you didn't ask him to. This is still in deep beta and so far I've got mixed results, yet sometimes useful. The purpose of /alert is to tell you when a specific coin increased or decreased the price of a certain percentage.





The command is structured in 3 parts: Create / Read / Delete, unfortunately an Update module would only make more confusion among users so I went for the Delete-Create rather than Update.





The greatest downside is that sometimes the API get's stuck for currencies with low trade volume so it might report a huge loss or huge gains while nothing actually happens. This is an API fail and I'm working on preventing these situations where nothing happens and the user keeps getting alerts for it.





This command is set as private so it cannot be used in a group or channel, in order to prevent spam and keep the world a better place.

/alert list

The following entries have been found:

BTC UP: 10.00 DOWN: 15.00

The name gives it out, this will tell you which alerts are activated on your profile.





/alert add btc 10 15

Added 1 entries

This adds a coin to your watchlist. After the word "add" it demands a symbol and 2 float numbers, the first number is the growth percentage while the second indicates the loss. In this case I will get an alert if BTC grows 10% in the past 5 minutes or lost 15% in the same time span. Both numbers have to be positive, the system will add the minus

"-" while doing the maths. Double entries for the same coin and same user are not allowed. You can add coins not yet listed on exchangers and get an alert when they get listed somewhere. Stating invalid values as percentage will be registered as 00.00% and the system won't send any alert so make sure to check your entries.

/alert remove btc

Entry BTC was removed from your list

This removes an entry [if there is any] from the user's watchlist. After the word "remove" a symbol is demanded. For a better usage /alert list comes handy.





/pawn

This command is very similar to /coin but will only return the value in USD in a rather interesting shape, a Rick Harrison meme.

/pawn hat





Moderation

I've introduced a function that get's triggered everytime a new user joins the group. If the user is a bot it will be kick-banned and so will the person who added it.

The bot is unable to kick-ban admins so it won't work at all for telegram groups where "every user is adminitrator". When it comes to super groups, Silvestro is able to give the most. Once it gets kick/ban permissions it'll take care of the rest... If an admin adds a bot, the bot will be kicked and banned, but the said admin won't be punished. If a normal user adds a bot they'll both receive a permanent ban without any prior notification. In order to add a bot, an admin should disable kick/ban permissions for Silvestro, add the wanted bot and then enable the permissions again, this will prevent unwanted bans. If you have a supergroup and are interested in this feature, write @carletto94





This was made using Alpine Linux, PHP and MariaDB running on Docker with a reverse HTTPS proxy on nginx. The data fed by Silvestro is provided by either coinmarketcap.com or cryptocompare.com





No personal information is stored on the server, Telegram is very keen to user privacy and so am I, only basic information needed to communicate between nodes is saved and we're speaking about chat_id





This runs on a home connection powered by a quad-core Intel Atom x64 and 8GB ram, sometimes /graph may need a couple of seconds to render, convert and upload the picture. However further queries with the same data will benefit from Telegram-side cache.

For further information or feature request contact @carletto94 Donations of any amounts or shapes will be highly appreciated 0x1d47b0c2e39895B3aF7b33b148216D938ac92582







