-
-
Save emre/be5ca4c550df4e5d865f to your computer and use it in GitHub Desktop.
cryptospots miner check
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
import re | |
from clint.textui import colored, puts, indent | |
import warnings | |
import sys | |
import smtplib | |
from email.MIMEMultipart import MIMEMultipart | |
from email.MIMEText import MIMEText | |
warnings.filterwarnings("ignore") | |
# EDIT BELOW. | |
CRYPTOSPOTS_USERNAME = "<CS_USERNAME>" | |
CRYPTOSPOTS_PASSWORD = "<CS_PASSWORD>" | |
# GMAIL INFO | |
GMAIL_USERNAME = "<GMAIL_USERNAME>" | |
GMAIL_PASS = "<GMAIL_PASSWORD>" | |
def get_header(text): | |
return colored.white(text, bold=True) | |
def send_email(): | |
msg = MIMEMultipart() | |
msg['From'] = GMAIL_USERNAME | |
msg['To'] = GMAIL_USERNAME | |
msg['Subject'] = "Miners are stopped on cryptospots!" | |
body = "Check it out. You're losing money." | |
msg.attach(MIMEText(body, 'plain')) | |
server = smtplib.SMTP('smtp.gmail.com:587') | |
server.starttls() | |
server.login(GMAIL_USERNAME, GMAIL_PASS) | |
server.sendmail(GMAIL_USERNAME, [GMAIL_USERNAME, ], msg.as_string()) | |
server.quit() | |
def login(session): | |
data = { | |
"username": CRYPTOSPOTS_USERNAME, | |
"password": CRYPTOSPOTS_PASSWORD, | |
"doLogin": True, | |
} | |
r = session.post("https://cryptospot.me/auth/login", data=data, verify=False) | |
if not 'Earnings History' in r.text: | |
print("Login Failed.") | |
sys.exit(2) | |
strong_words = re.findall('<h4><strong>(.*?)</strong></h4>', r.text.strip()) | |
hash_rate, bitcoins, cryptospots = strong_words[0:3] | |
with indent(2): | |
puts("- Logged in!") | |
with indent(4, quote=' >'): | |
puts("Total Hashrate: {} GH/s".format(hash_rate)) | |
puts("BTC Balance: {}".format(bitcoins)) | |
puts("CS Balance: {}".format(cryptospots)) | |
def check_mining_rigs(session): | |
url = "https://cryptospot.me/account/{}/miners".format(CRYPTOSPOTS_USERNAME) | |
r = session.get(url, verify=False) | |
miners = re.findall('<td style="width: 45%">(.*?)</td>', r.text) | |
del miners[0] | |
statuses = re.findall('<td style="width: 20%">\n(.*?) </td>', r.text.strip(), flags=re.MULTILINE) | |
with indent(2): | |
puts("- Miners:") | |
for index, item in enumerate(statuses): | |
with indent(4, quote=' >'): | |
if not statuses[index] == "Hashing": | |
send_email() | |
puts("Miners are down. Email sent!") | |
break | |
puts("{}: {}".format(miners[index], statuses[index])) | |
def main(): | |
session = requests.session() | |
login(session) | |
check_mining_rigs(session) | |
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
import re | |
import warnings | |
import sys | |
import smtplib | |
from email.MIMEMultipart import MIMEMultipart | |
from email.MIMEText import MIMEText | |
warnings.filterwarnings("ignore") | |
# EDIT BELOW. | |
CRYPTOSPOTS_USERNAME = "<CS_USERNAME>" | |
CRYPTOSPOTS_PASSWORD = "<CS_PASSWORD>" | |
# GMAIL INFO | |
GMAIL_USERNAME = "<GMAIL_USERNAME>" | |
GMAIL_PASS = "<GMAIL_PASSWORD>" | |
# USER AGENT | |
USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A" | |
HTTP_HEADERS = { | |
"User-Agent": USER_AGENT, | |
} | |
def get_header(text): | |
return colored.white(text, bold=True) | |
def send_email(): | |
msg = MIMEMultipart() | |
msg['From'] = GMAIL_USERNAME | |
msg['To'] = GMAIL_USERNAME | |
msg['Subject'] = "Miners are stopped on cryptospots!" | |
body = "Check it out. You're losing money." | |
msg.attach(MIMEText(body, 'plain')) | |
server = smtplib.SMTP('smtp.gmail.com:587') | |
server.starttls() | |
server.login(GMAIL_USERNAME, GMAIL_PASS) | |
server.sendmail(GMAIL_USERNAME, [GMAIL_USERNAME, ], msg.as_string()) | |
server.quit() | |
def login(session): | |
data = { | |
"username": CRYPTOSPOTS_USERNAME, | |
"password": CRYPTOSPOTS_PASSWORD, | |
"doLogin": True, | |
} | |
r = session.post("https://cryptospot.me/auth/login", data=data, verify=False, headers=HTTP_HEADERS) | |
if not 'Earnings History' in r.text: | |
print "Login Failed." | |
sys.exit(2) | |
strong_words = re.findall('<h4><strong>(.*?)</strong></h4>', r.text.strip()) | |
hash_rate, bitcoins, cryptospots = strong_words[0:3] | |
print "- Logged in!" | |
print "Total Hashrate: {0} GH/s".format(hash_rate) | |
print "BTC Balance: {0}".format(bitcoins) | |
print "CS Balance: {0}".format(cryptospots) | |
def check_mining_rigs(session): | |
url = "https://cryptospot.me/account/{0}/miners".format(CRYPTOSPOTS_USERNAME) | |
r = session.get(url, verify=False, headers=HTTP_HEADERS) | |
miners = re.findall('<td style="width: 45%">(.*?)</td>', r.text) | |
del miners[0] | |
statuses = re.findall('<td style="width: 20%">\n(.*?) </td>', r.text.strip(), flags=re.MULTILINE) | |
print "- Miners:" | |
for index, item in enumerate(statuses): | |
if not statuses[index] == "Hashing": | |
send_email() | |
print "Miners are down. Email sent!" | |
break | |
print "{0}: {1}".format(miners[index], statuses[index]) | |
def main(): | |
session = requests.session() | |
login(session) | |
check_mining_rigs(session) | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment