Exemplo n.º 1
0
def refresh():
    rost = Roster("password.json", "EAST")
    rost.setEmployees()
    rost.setOutOfQueue()
    s = SlackBot()
    s.refreshOOQ()
    print(f"Refresh Complete! Value of inTraining: {s.inTraining}")
Exemplo n.º 2
0
def instance():
    channels = {
        'dev': '#test-dev-channel',
        'infra': '#infra-support-channel',
    }
    slackbot = SlackBot(mock.Mock, 'slack-token', channels)
    return slackbot
Exemplo n.º 3
0
class SlackBotTestCase(unittest.TestCase):
    """ Tests for slackbot runner. """

    def setUp(self):
        self.bot = SlackBot()

    def test_is_canteen_day(self):
        saturday = date(2000, 1, 1)
        sunday = date(2000, 1, 2)
        monday = date(2000, 1, 3)
        tuesday = date(2000, 1, 4)
        wednesday = date(2000, 1, 5)
        thursday = date(2000, 1, 6)
        friday = date(2000, 1, 7)
        self.assertFalse(self.bot.is_canteen_day(saturday), "No canteen on saturdays")
        self.assertFalse(self.bot.is_canteen_day(sunday), "No canteen on sundays")
        self.assertTrue(self.bot.is_canteen_day(monday), "Canteen on mondays")
        self.assertTrue(self.bot.is_canteen_day(tuesday), "Canteen on tuesdays")
        self.assertTrue(self.bot.is_canteen_day(wednesday), "Canteen on wednesdays")
        self.assertTrue(self.bot.is_canteen_day(thursday), "Canteen on thursdays")
        self.assertTrue(self.bot.is_canteen_day(friday), "Canteen on fridays")

    def test_make_message(self):
        text, attachments = self.bot.make_message(Menu())
        self.assertIsNone(attachments, "Empty meals should have no attachments")

        text, attachments = self.bot.make_message(Menu(plats=[mock_meal]))
        self.assertIsNotNone(attachments, "Meals should have some attachments")

    def test_format_meal(self):
        (fr, en, q) = mock_meal
        field = self.bot.format_dish(fr, en, q)
        self.assertTrue(fr in str(field), "The text should contain the french dish")
        self.assertTrue(en in str(field), "The text should contain the english dish")
        if q is not None:
            self.assertTrue(str(q) in str(field), "The text should contain the quantity")

    def test_spellcheck_when_translation(self):
        query = "Focacia d'aubergine,légumes grillés et mayonnaise aubergines"
        actual = did_you_mean(query)

        self.assertFalse("Showing translation for" in actual)
        self.assertFalse("Translate instead" in actual)
        print(actual)
Exemplo n.º 4
0
def daily():
    rost = Roster("password.json", "EAST")
    rost.setEmployees()
    rost.setOutOfQueue()

    s = SlackBot()
    print("From cron.py")
    print(s.inTraining)

    if s.inTraining:
        for engineer in s.inTraining:
            s.setStatus(engineer)

    s.msgOutOfQueue()
    s.msgAllStaff()
Exemplo n.º 5
0
def daily():
    rost = Roster("password.json", "EAST")
    rost.setEmployees()
    rost.setOutOfQueue()

    s = SlackBot()
    print("From cron.py")  #debugging
    print(s.inTraining)

    #iterate through list of CEs that are out of queue
    if s.inTraining:
        for engineer in s.inTraining:
            s.setStatus(engineer)

    #send message to staff channels with current out of queue people
    s.msgOutOfQueue()
    s.msgAllStaff()
Exemplo n.º 6
0
def main():

    #バッチサイズ
    batch_size = 50

    #学習回数
    epoch = 30

    #過去何回分のデータを用いて次の回の当選番号を予想するか
    vertical_len = 3

    #slackに通知を飛ばすかどうか
    useSlack = False

    #既に学習させたモデルを使用するかどうか
    is_load_other_model = False

    #誤差の遷移図の名前
    loss_picture_name = "loss.png"
    
    #精度の遷移図の名前
    accuracy_picture_name = "acc.png"

    #保存するモデルの名前
    cnn_model_name = "model.npz"

    #既に学習させたモデルを用いる場合のモデルのパス
    use_cnn_model_name = "model.npz"

    observer = CNN_observer(vertical_len)
    updater = CNN_updater()
    updater.initialize(is_load_other_model, use_cnn_model_name)

    # dotenv用の初期設定 + slackAPIの初期設定
    dotenv_path = os.path.join(os.path.dirname(__file__), '.env')
    load_dotenv(dotenv_path)
    token = os.environ.get("API_KEY")
    slack = SlackBot(token)

    trainer = Trainer(batch_size, epoch, slack, observer, updater, useSlack, loss_picture_name, accuracy_picture_name, cnn_model_name)

    trainer.learn()
Exemplo n.º 7
0
from slackbot import SlackBot
import sys

state_path = None

if len(sys.argv) > 1:
    state_path = sys.argv[1]

bot = SlackBot(state_path)
Exemplo n.º 8
0
client_secret = os.environ["SLACK_CLIENT_SECRET"]
oauth_scope = os.environ["SLACK_SCOPE"]
CONNECT_STRING = os.environ["CONNECT_STRING"]

app = Flask(__name__)

client = MongoClient(f'{CONNECT_STRING}')
db = client.queue
employees = db.employees

ZOOM_MONGO = os.environ["ZOOM_MONGO"]
zoomDBClient = MongoClient(ZOOM_MONGO)
zdb = zoomDBClient.zoom
zoomUsers = zdb.users

s = SlackBot()

COMMANDS = {"list", "listall", "run", "runall", "refresh", "test", "zoom"}

PRIVILIGED_COMMANDS = {"listall", "runall"}

PRIVILIGED_USERS = {"UF57DA49F", "U054G9J88", "U26R8ML07"}


@app.errorhandler(404)
def page_not_found(e):
    return "Command not found"


@app.route("/", methods=["GET"])
def pre_install():
Exemplo n.º 9
0
def main():
    """main"""

    # parse arguments
    args = parse_args()
    if args is None:
        exit()

    # Slack Bot
    if args.slack:
        config = configparser.ConfigParser()
        config.read('slack.config')
        bot = SlackBot(token=config['SLACK']['token'],
                       channel_name=config['SLACK']['channel_name'])
    else:
        bot = None

    gpu_options = tf.GPUOptions(visible_device_list=args.gpu_id,
                                allow_growth=True)
    session_conf = tf.ConfigProto(intra_op_parallelism_threads=1,
                                  inter_op_parallelism_threads=1,
                                  gpu_options=gpu_options,
                                  allow_soft_placement=True)

    # open session
    models = [DCGAN, WGAN_GP, BEGAN, EBGAN]
    with tf.Session(config=session_conf) as sess:
        # declare instance for GAN

        gan = None
        for model in models:
            if args.gan_type == model.model_name:
                gan = model(sess,
                            epoch=args.epoch,
                            batch_size=args.batch_size,
                            z_dim=args.z_dim,
                            dataset_name=args.dataset,
                            compute_metrics_it=args.compute_metrics_it,
                            checkpoint_dir=args.checkpoint_dir,
                            result_dir=args.result_dir,
                            log_dir=args.log_dir,
                            gpu_id=args.gpu_id,
                            bot=bot,
                            redo=args.redo,
                            verbosity=args.verbosity)
        if gan is None:
            print("<!channel> ERROR!\n\n"
                  "[!] There is no option for " + args.gan_type)
            raise Exception("[!] There is no option for " + args.gan_type)

        # build graph
        gan.build_model()

        # show network architecture
        show_all_variables()

        # launch the graph in a session
        gan.train()
        print("[*] Training finished!")

        # visualize learned generator
        gan.visualize_results(args.epoch - 1)
        print("[*] Testing finished!")
Exemplo n.º 10
0
from slackbot import SlackBot
from config import LOG_FILE
import logging

logging.basicConfig(filename=LOG_FILE)
slackbot = SlackBot()
slackbot.read_messages_while()
Exemplo n.º 11
0
import os
import json
from slackbot import SlackBot
from roster import Roster

rost = Roster("password.json", "EAST")

rost.setEmployees()
rost.setOutOfQueue()

s = SlackBot()
print("From cron.py")
print(s.inTraining)

if s.inTraining:
    for engineer in s.inTraining:
        s.setStatus(engineer)

s.msgOutOfQueue()
s.msgAllStaff()
Exemplo n.º 12
0
            bot.init()
        while True:
            for bot in bots:
                # print 'processing', bot
                bot.process()
                relay_ins = bot.collect_relay()
                for xbot in bots:
                    if type(bot) == type(xbot):
                        continue
                    xbot.relay(bot, relay_ins)

            time.sleep(.2)
    except KeyboardInterrupt:
        sys.exit(0)
    except:
        logging.exception('OOPS')


if __name__ == "__main__":
    config = load_config('config')
    slackbot = SlackBot(config['slack']['token'], config)
    ircbot = IrcBot(config['irc']['host'],
                    int(config['irc'].get('port', '6667')), config)

    if "DAEMON" in config:
        if config["DAEMON"]:
            import daemon
            with daemon.DaemonContext():
                main_loop((slackbot, ircbot), config)
    main_loop((slackbot, ircbot), config)
Exemplo n.º 13
0
#!/usr/bin/env python
# coding: utf-8

from slackbot import SlackBot
from slackbot.web import SlackHandler
import mybot_config


bot = SlackBot(mybot_config)


@bot.on_event('hello')
def hello(msg):
    return msg.reply("I'm online!", channel='slack-test')


@bot.on_event('message')
def repeat(msg):
    return msg.reply('You just said: %s' % msg.raw['text'])


@bot.route('/send')
class SendHandler(SlackHandler):
    def get(self):
        text = self.get_argument('text')
        channel = self.get_argument('channel')
        channel_id = bot.channels.get(name=channel)['id']

        bot.client.send_message(channel_id, text)

Exemplo n.º 14
0
import sys
import yaml
from argparse import ArgumentParser
from slackbot import SlackBot

if __name__ == '__main__':
    # XXX: read config from passed argument
    parser = ArgumentParser()
    parser.add_argument('-c',
                        '--config',
                        help='path of config file',
                        metavar='path',
                        default='config.yaml')
    args = parser.parse_args()

    if not args.config:
        parser.print_help()
        sys.exit(0)

    try:
        with open(args.config) as f:
            config = yaml.load(f)
    except IOError:
        print 'No such file or broken file.'
        sys.exit(0)
    except yaml.YAMLError:
        print 'Error in config file.'
        sys.exit(0)
    bot = SlackBot(config)
    bot.start()
Exemplo n.º 15
0
 def setUp(self):
     self.bot = SlackBot()
Exemplo n.º 16
0
import sys
import yaml
from argparse import ArgumentParser
from slackbot import SlackBot

if __name__ == "__main__":
    # XXX: read config from passed argument
    parser = ArgumentParser()
    parser.add_argument("-c", "--config", help="path of config file", metavar="path", default="config.yaml")
    args = parser.parse_args()

    if not args.config:
        parser.print_help()
        sys.exit(0)

    try:
        with open(args.config) as f:
            config = yaml.load(f)
    except IOError:
        print "No such file or broken file."
        sys.exit(0)
    except yaml.YAMLError:
        print "Error in config file."
        sys.exit(0)
    bot = SlackBot(config)
    bot.start()
Exemplo n.º 17
0
phabricatorUrl = os.getenv("PHABRICATOR_URL",
                           "https://reviews.bitcoinabc.org/api/")
slack_token = os.getenv('SLACK_BOT_TOKEN', None)

tc = TeamCity('https://build.bitcoinabc.org', tc_user, tc_pass)
phab = PhabWrapper(host=phabricatorUrl, token=conduit_token)
phab.update_interfaces()
slack_channels = {
    #  #dev
    'dev': 'C62NSDC6N',
    #  #abcbot-testing
    'test': 'CQMSVCY66',
    #  #infra-support
    'infra': 'G016CFAV8KS',
}
slackbot = SlackBot(slack.WebClient, slack_token, slack_channels)
cirrus = Cirrus()


def main(args):
    parser = argparse.ArgumentParser(
        description='Continuous integration build bot service.')
    parser.add_argument('-p',
                        '--port',
                        help='port for server to start',
                        type=int,
                        default=8080)
    parser.add_argument('-l',
                        '--log-file',
                        help='log file to dump requests payload',
                        type=str,
Exemplo n.º 18
0
    # Get temporary random number generator based on todays date
    myrandom = random.Random(int(time.strftime("%Y%m%d")))
    myrandom.shuffle(members)

    return members


def _parse_args():
    parser = ArgumentParser()
    parser.add_argument('-c',
                        '--config',
                        help='Full path to config file.',
                        metavar='path',
                        required=True)
    return parser.parse_args()


if __name__ == '__main__':
    args = _parse_args()
    config = yaml.load(file(args.config, 'r'))
    if config.get('serious_business_mode'):
        response = answers
    else:
        response = pikachu

    bot_function = partial(response,
                           wolfram_appid=config.get('wolfram_alpha_appid'),
                           bingid=config.get('bingid'))
    SlackBot(config['slack_token'], bot_function,
             only_speaking_to_me=False).start()
Exemplo n.º 19
0
def mockSlackBot():
    channels = {
        'test': '#test-channel',
    }
    slackbot = SlackBot(mock.Mock, 'slack-token', channels)
    return slackbot
Exemplo n.º 20
0
        return
    bot.register('hi', hi)
    bot.register('help', help)
    bot.register('stats', getStats)
    bot.register('fortune', getFortune)
    bot.register('seen <@([^>]+)>', seen)
    bot.run()

def parseSettings():
    filename = expanduser("~/.crashbot")
    config = ConfigParser.ConfigParser()
    config.read(filename)
    settings = dict(config.items('CrashBot'))
    return settings

if __name__ == '__main__':
    settings = parseSettings()
    if 'token' not in settings:
        print "No token in the settings file"
        sys.exit(1)
    bot = SlackBot(settings['token'])
    while True:
        try:
            main(bot)
        except KeyboardInterrupt:
            break
        except:
            traceback.print_exc()
            bot.saveState()
            time.sleep(5)