Fix PEP8 compliance in example plugins and rtmbot
This commit is contained in:
		
							parent
							
								
									6052333c64
								
							
						
					
					
						commit
						25ce082eac
					
				
					 6 changed files with 33 additions and 22 deletions
				
			
		| 
						 | 
				
			
			@ -1,8 +1,9 @@
 | 
			
		|||
import time
 | 
			
		||||
outputs = []
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def canary():
 | 
			
		||||
    #NOTE: you must add a real channel ID for this to work
 | 
			
		||||
    # NOTE: you must add a real channel ID for this to work
 | 
			
		||||
    outputs.append(["D12345678", "bot started: " + str(time.time())])
 | 
			
		||||
 | 
			
		||||
canary()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,9 @@ import time
 | 
			
		|||
crontable = []
 | 
			
		||||
outputs = []
 | 
			
		||||
 | 
			
		||||
crontable.append([5,"say_time"])
 | 
			
		||||
crontable.append([5, "say_time"])
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def say_time():
 | 
			
		||||
    #NOTE: you must add a real channel ID for this to work
 | 
			
		||||
    # NOTE: you must add a real channel ID for this to work
 | 
			
		||||
    outputs.append(["D12345678", time.time()])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,9 @@
 | 
			
		|||
import time
 | 
			
		||||
crontable = []
 | 
			
		||||
outputs = []
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def process_message(data):
 | 
			
		||||
    if data['channel'].startswith("D"):
 | 
			
		||||
        outputs.append([data['channel'], "from repeat1 \"{}\" in channel {}".format(data['text'], data['channel']) ])
 | 
			
		||||
 | 
			
		||||
        outputs.append([data['channel'], "from repeat1 \"{}\" in channel {}".format(
 | 
			
		||||
            data['text'], data['channel'])]
 | 
			
		||||
        )
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,19 +6,21 @@ crontabs = []
 | 
			
		|||
 | 
			
		||||
tasks = {}
 | 
			
		||||
 | 
			
		||||
FILE="plugins/todo.data"
 | 
			
		||||
 | 
			
		||||
FILE = "plugins/todo.data"
 | 
			
		||||
if os.path.isfile(FILE):
 | 
			
		||||
    tasks = pickle.load(open(FILE, 'rb'))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def process_message(data):
 | 
			
		||||
    global tasks
 | 
			
		||||
    channel = data["channel"]
 | 
			
		||||
    text = data["text"]
 | 
			
		||||
    #only accept tasks on DM channels
 | 
			
		||||
    # only accept tasks on DM channels
 | 
			
		||||
    if channel.startswith("D"):
 | 
			
		||||
        if channel not in tasks.keys():
 | 
			
		||||
            tasks[channel] = []
 | 
			
		||||
        #do command stuff
 | 
			
		||||
        # do command stuff
 | 
			
		||||
        if text.startswith("todo"):
 | 
			
		||||
            tasks[channel].append(text[5:])
 | 
			
		||||
            outputs.append([channel, "added"])
 | 
			
		||||
| 
						 | 
				
			
			@ -36,4 +38,4 @@ def process_message(data):
 | 
			
		|||
            tasks[channel].pop(num)
 | 
			
		||||
        if text == "show":
 | 
			
		||||
            print tasks
 | 
			
		||||
        pickle.dump(tasks, open(FILE,"wb"))
 | 
			
		||||
        pickle.dump(tasks, open(FILE, "wb"))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										28
									
								
								rtmbot.py
									
										
									
									
									
								
							
							
						
						
									
										28
									
								
								rtmbot.py
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1,18 +1,17 @@
 | 
			
		|||
#!/usr/bin/env python
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
sys.dont_write_bytecode = True
 | 
			
		||||
 | 
			
		||||
import glob
 | 
			
		||||
import yaml
 | 
			
		||||
import os
 | 
			
		||||
import time
 | 
			
		||||
import logging
 | 
			
		||||
 | 
			
		||||
from argparse import ArgumentParser
 | 
			
		||||
 | 
			
		||||
from slackclient import SlackClient
 | 
			
		||||
 | 
			
		||||
sys.dont_write_bytecode = True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def dbg(debug_string):
 | 
			
		||||
    if debug:
 | 
			
		||||
| 
						 | 
				
			
			@ -66,14 +65,14 @@ class RtmBot(object):
 | 
			
		|||
                    if limiter:
 | 
			
		||||
                        time.sleep(.1)
 | 
			
		||||
                        limiter = False
 | 
			
		||||
                    message = output[1].encode('ascii','ignore')
 | 
			
		||||
                    message = output[1].encode('ascii', 'ignore')
 | 
			
		||||
                    channel.send_message("{}".format(message))
 | 
			
		||||
                    limiter = True  # TODO: check goal: no sleep for 1st channel, sleep of all after ?
 | 
			
		||||
                    limiter = True
 | 
			
		||||
                    # TODO: check goal: no sleep for 1st channel, sleep of all after ?
 | 
			
		||||
                    # TODO: find out how to safely encode stuff if needed :(
 | 
			
		||||
                    # message = output[1].encode('utf-8','ignore')
 | 
			
		||||
                    channel.send_message(output[1])  # message
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def crons(self):
 | 
			
		||||
        for plugin in self.bot_plugins:
 | 
			
		||||
            plugin.do_jobs()
 | 
			
		||||
| 
						 | 
				
			
			@ -82,7 +81,8 @@ class RtmBot(object):
 | 
			
		|||
        for plugin in glob.glob(directory + '/plugins/*'):
 | 
			
		||||
            sys.path.insert(0, plugin)
 | 
			
		||||
            sys.path.insert(0, directory + '/plugins/')
 | 
			
		||||
        for plugin in glob.glob(directory + '/plugins/*.py') + glob.glob(directory + '/plugins/*/*.py'):
 | 
			
		||||
        for plugin in glob.glob(directory + '/plugins/*.py') + \
 | 
			
		||||
                glob.glob(directory + '/plugins/*/*.py'):
 | 
			
		||||
            logging.info(plugin)
 | 
			
		||||
            name = plugin.split('/')[-1][:-3]
 | 
			
		||||
            # try:
 | 
			
		||||
| 
						 | 
				
			
			@ -90,10 +90,12 @@ class RtmBot(object):
 | 
			
		|||
            # except:
 | 
			
		||||
            #   print "error loading plugin %s" % name
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Plugin(object):
 | 
			
		||||
 | 
			
		||||
    def __init__(self, name, plugin_config=None):
 | 
			
		||||
        if plugin_config is None:
 | 
			
		||||
            plugin_config = {} #TODO: is this necessary?
 | 
			
		||||
            plugin_config = {}  # TODO: is this necessary?
 | 
			
		||||
        self.name = name
 | 
			
		||||
        self.jobs = []
 | 
			
		||||
        self.module = __import__(name)
 | 
			
		||||
| 
						 | 
				
			
			@ -179,7 +181,11 @@ class UnknownChannel(Exception):
 | 
			
		|||
 | 
			
		||||
def main_loop():
 | 
			
		||||
    if "LOGFILE" in config:
 | 
			
		||||
        logging.basicConfig(filename=config["LOGFILE"], level=logging.INFO, format='%(asctime)s %(message)s')
 | 
			
		||||
        logging.basicConfig(
 | 
			
		||||
            filename=config["LOGFILE"],
 | 
			
		||||
            level=logging.INFO,
 | 
			
		||||
            format='%(asctime)s %(message)s'
 | 
			
		||||
        )
 | 
			
		||||
    logging.info(directory)
 | 
			
		||||
    try:
 | 
			
		||||
        bot.start()
 | 
			
		||||
| 
						 | 
				
			
			@ -215,7 +221,7 @@ if __name__ == "__main__":
 | 
			
		|||
    files_currently_downloading = []
 | 
			
		||||
    job_hash = {}
 | 
			
		||||
 | 
			
		||||
    if config.has_key("DAEMON"):
 | 
			
		||||
    if 'DAEMON' in config:
 | 
			
		||||
        if config["DAEMON"]:
 | 
			
		||||
            import daemon
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								tox.ini
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								tox.ini
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -20,4 +20,4 @@ basepython =
 | 
			
		|||
[testenv:flake8]
 | 
			
		||||
basepython=python
 | 
			
		||||
deps=flake8
 | 
			
		||||
commands=flake8 {toxinidir}/rtmbot.py {toxinidir}/example-plugins
 | 
			
		||||
commands=flake8 {toxinidir}/rtmbot.py {toxinidir}/doc/example-plugins
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue