Merge pull request #1 from benaryorg/master

import this
This commit is contained in:
overflowerror 2015-01-27 11:18:39 +01:00
commit 507aa8d895
2 changed files with 15 additions and 13 deletions

View file

@ -21,9 +21,9 @@ LOG_FILE = "~/minerva.log"
COMMAND_NAME_SEPERATOR = "\n"
UPDATE_COMMANDS = [
["uptime:", "uptime"],
["mdstat:", 'cat /proc/mdstat | grep block | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /"'],
["lxc:", 'lxc-ls -f -F name,state | grep -v "NAME" | grep -v \- | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ /: /" | sed "s/RUNNING/UP/" | sed "s/STOPPED/DOWN/"'],
["df:", 'df -h --output=source,size,used | grep /dev/ | grep -v tmpfs | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /"']
]
UPDATE_COMMANDS = {
"uptime:": "uptime",
"mdstat:": 'cat /proc/mdstat | grep block | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /"',
"lxc:": 'lxc-ls -f -F name,state | grep -v "NAME" | grep -v \- | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ /: /" | sed "s/RUNNING/UP/" | sed "s/STOPPED/DOWN/"',
"df:": 'df -h --output=source,size,used | grep /dev/ | grep -v tmpfs | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /" | sed "s/ / /"'
}

16
main.py
View file

@ -12,19 +12,21 @@ def log(text):
logfile.write(datetime.datetime.now().isoformat() + ": " + text))
def connect():
api = twitter.Api(
return twitter.Api(
consume_key = CONSUMER_KEY,
consumer_secret = CONSUMER_SECRET,
access_token_key = ACCESS_TOKEN_KEY,
access_token_secret = ACCESS_TOKEN_SECRET
)
return api
if __name__ == "__main__":
log("starting minerva")
api = connect()
log("connected to Twitter API")
lastChange = 0
lastChange = api.getDirectMessages(since_id = lastChange)[0].GetId()
@ -36,7 +38,7 @@ if __name__ == "__main__":
commandsToExecute = []
for dm in dms:
if COMMAND_SOURCE_ACCOUNTS.__len__() == 0:
if len(COMMAND_SOURCE_ACCOUNTS) == 0:
commandsToExecute.append([
dm.GetSenderScreenName(),
dm.GetText()
@ -51,10 +53,10 @@ if __name__ == "__main__":
else
log("unprivileged user @" + dm.GetSenderScreenName() + " tried to execute command (dm) \"" + dm.GetText().replace("\n", "\\n") + "\"\n")
if ! ALLOW_ONLY_DM_COMMANDS:
if not ALLOW_ONLY_DM_COMMANDS:
mentions = api.GetMentions(since_id = lastChange)
for mention in mentions:
if COMMAND_SOURCE_ACCOUNTS.__len__() == 0:
if len(COMMAND_SOURCE_ACCOUNTS) == 0:
commandsToExecute.append([
mention.GetUser().GetScreenName(),
mention.GetText()
@ -81,8 +83,8 @@ if __name__ == "__main__":
for command in UPDATE_COMMANDS:
output = subprocess.Popen(command[1], shell=True, stdout=PIPE).stdout.read()
api.PostUpdate(status = (command[0] + COMMAND_NAME_SEPERATOR + output))
output = subprocess.Popen(UPDATE_COMMANDS[command], shell=True, stdout=PIPE).stdout.read()
api.PostUpdate(status = (command + COMMAND_NAME_SEPERATOR + output))
time.sleep(5 * 60)